TAO_CosNotification
2.0.8
|
A class to represent a block on disk. More...
#include <Persistent_File_Allocator.h>
Public Member Functions | |
Persistent_Storage_Block (const size_t block_number, const size_t block_size) | |
The constructor. Initializes the callback to NULL. | |
Persistent_Storage_Block (const Persistent_Storage_Block &psb) | |
The copy constructor. Makes a deep copy of the passed in PSB. | |
~Persistent_Storage_Block () | |
The destructor. | |
void | set_no_write () |
bool | get_no_write () |
Find out whether we have data to be written. | |
void | set_sync () |
Set our block to be written as a near-atomic operation. | |
bool | get_sync () const |
Find out whether this block should be written near-atomically. | |
size_t | block_number () const |
Find out our physical block number. | |
unsigned char * | data () const |
Return our data to the user. | |
void | reassign_data (unsigned char *newptr, bool delete_old=false) |
Set our data pointer, and optionally delete it. | |
size_t | detach () |
Return block number and relinquish ownership. | |
void | set_callback (Persistent_Callback *callback) |
Set our callback. | |
Persistent_Callback * | get_callback () const |
Get our callback. | |
void | set_allocator_owns (bool allocator_owns=true) |
Set ownership of this PSB. | |
bool | get_allocator_owns () const |
Get ownership status of this PSB. | |
Private Attributes | |
unsigned char * | data_ |
Our raw data. | |
size_t | block_number_ |
The block number corresponding to our data. | |
bool | no_write_ |
Are we a no-op with just a callback? | |
bool | sync_ |
Write in near-atomic fashion. | |
size_t | block_size_ |
The size of our block. | |
Persistent_Callback * | callback_ |
bool | allocator_owns_ |
Does the allocator obtain ownership of our block? |
A class to represent a block on disk.
Contains the raw data to be written on disk as well as positioning information, synchronization information, and a pointer to a callback.
TAO_Notify::Persistent_Storage_Block::Persistent_Storage_Block | ( | const size_t | block_number, |
const size_t | block_size | ||
) |
The constructor. Initializes the callback to NULL.
TAO_Notify::Persistent_Storage_Block::Persistent_Storage_Block | ( | const Persistent_Storage_Block & | psb | ) |
The copy constructor. Makes a deep copy of the passed in PSB.
TAO_Notify::Persistent_Storage_Block::~Persistent_Storage_Block | ( | ) |
The destructor.
size_t TAO_Notify::Persistent_Storage_Block::block_number | ( | ) | const |
Find out our physical block number.
unsigned char * TAO_Notify::Persistent_Storage_Block::data | ( | ) | const |
Return our data to the user.
size_t TAO_Notify::Persistent_Storage_Block::detach | ( | ) |
Return block number and relinquish ownership.
bool TAO_Notify::Persistent_Storage_Block::get_allocator_owns | ( | ) | const |
Get ownership status of this PSB.
Persistent_Callback * TAO_Notify::Persistent_Storage_Block::get_callback | ( | ) | const |
Get our callback.
bool TAO_Notify::Persistent_Storage_Block::get_no_write | ( | ) |
Find out whether we have data to be written.
bool TAO_Notify::Persistent_Storage_Block::get_sync | ( | ) | const |
Find out whether this block should be written near-atomically.
void TAO_Notify::Persistent_Storage_Block::reassign_data | ( | unsigned char * | newptr, |
bool | delete_old = false |
||
) |
Set our data pointer, and optionally delete it.
void TAO_Notify::Persistent_Storage_Block::set_allocator_owns | ( | bool | allocator_owns = true | ) |
Set ownership of this PSB.
void TAO_Notify::Persistent_Storage_Block::set_callback | ( | Persistent_Callback * | callback | ) |
Set our callback.
void TAO_Notify::Persistent_Storage_Block::set_no_write | ( | ) |
Set our block to not have any data at all - a no-op. This can be used to implement a checkpoint in the write stream.
void TAO_Notify::Persistent_Storage_Block::set_sync | ( | ) |
Set our block to be written as a near-atomic operation.
bool TAO_Notify::Persistent_Storage_Block::allocator_owns_ [private] |
Does the allocator obtain ownership of our block?
size_t TAO_Notify::Persistent_Storage_Block::block_number_ [private] |
The block number corresponding to our data.
size_t TAO_Notify::Persistent_Storage_Block::block_size_ [private] |
The size of our block.
Our optional callback function, to be used in such things as state transitions.
unsigned char* TAO_Notify::Persistent_Storage_Block::data_ [private] |
Our raw data.
bool TAO_Notify::Persistent_Storage_Block::no_write_ [private] |
Are we a no-op with just a callback?
bool TAO_Notify::Persistent_Storage_Block::sync_ [private] |
Write in near-atomic fashion.