private: Storage for header information of all persistent block. More...

Public Types | |
| enum | Header_Type { BT_Routing_Slip, BT_Event, BT_Overflow } |
Public Member Functions | |
| Block_Header (Header_Type type) | |
| virtual | ~Block_Header (void) |
| virtual size_t | extract_header (Persistent_Storage_Block &psb, size_t offset=0) |
| virtual size_t | put_header (Persistent_Storage_Block &psb, size_t offset=0) |
Public Attributes | |
| Block_Serial_Number | serial_number |
| Our serial number. | |
| Block_Number | next_overflow |
| Address of the overflow record (if any). | |
| Block_Type | header_type |
| How much extra header data is in this block (not including this header). | |
| Block_Size | data_size |
| How much actual data is in this block? (not including headers). | |
private: Storage for header information of all persistent block.
Definition at line 126 of file Routing_Slip_Persistence_Manager.h.
Definition at line 129 of file Routing_Slip_Persistence_Manager.h.
{
BT_Routing_Slip,
BT_Event,
BT_Overflow
};
| TAO_Notify::Routing_Slip_Persistence_Manager::Block_Header::Block_Header | ( | Header_Type | type | ) |
Definition at line 268 of file Routing_Slip_Persistence_Manager.cpp.
: serial_number (0)
| TAO_Notify::Routing_Slip_Persistence_Manager::Block_Header::~Block_Header | ( | void | ) | [virtual] |
Definition at line 275 of file Routing_Slip_Persistence_Manager.cpp.
: serial_number (0) , next_overflow(0) , header_type (static_cast<Block_Type> (type))
| size_t TAO_Notify::Routing_Slip_Persistence_Manager::Block_Header::extract_header | ( | Persistent_Storage_Block & | psb, | |
| size_t | offset = 0 | |||
| ) | [virtual] |
Reimplemented in TAO_Notify::Routing_Slip_Persistence_Manager::Routing_Slip_Header.
Definition at line 280 of file Routing_Slip_Persistence_Manager.cpp.
{
}
size_t
Routing_Slip_Persistence_Manager::Block_Header::extract_header(
Persistent_Storage_Block& psb, size_t offset)
{
size_t pos = offset;
unsigned char* data = psb.data();
serial_number = data[pos++];
serial_number = (serial_number << 8) + data[pos++];
serial_number = (serial_number << 8) + data[pos++];
serial_number = (serial_number << 8) + data[pos++];
serial_number = (serial_number << 8) + data[pos++];
serial_number = (serial_number << 8) + data[pos++];
serial_number = (serial_number << 8) + data[pos++];
serial_number = (serial_number << 8) + data[pos++];
next_overflow = data[pos++];
next_overflow = (next_overflow << 8) + data[pos++];
next_overflow = (next_overflow << 8) + data[pos++];
next_overflow = (next_overflow << 8) + data[pos++];
header_type = data[pos++];
| size_t TAO_Notify::Routing_Slip_Persistence_Manager::Block_Header::put_header | ( | Persistent_Storage_Block & | psb, | |
| size_t | offset = 0 | |||
| ) | [virtual] |
Reimplemented in TAO_Notify::Routing_Slip_Persistence_Manager::Routing_Slip_Header.
Definition at line 309 of file Routing_Slip_Persistence_Manager.cpp.
{
// Assume that our psb can hold our small amount of data...
size_t pos = offset;
unsigned char* data = psb.data();
// Store serial_number
data[pos++] = static_cast<unsigned char> ((serial_number >> 56) & 0xff);
data[pos++] = static_cast<unsigned char> ((serial_number >> 48) & 0xff);
data[pos++] = static_cast<unsigned char> ((serial_number >> 40) & 0xff);
data[pos++] = static_cast<unsigned char> ((serial_number >> 32) & 0xff);
data[pos++] = static_cast<unsigned char> ((serial_number >> 24) & 0xff);
data[pos++] = static_cast<unsigned char> ((serial_number >> 16) & 0xff);
data[pos++] = static_cast<unsigned char> ((serial_number >> 8) & 0xff);
data[pos++] = static_cast<unsigned char> ((serial_number >> 0) & 0xff);
// Store next_overflow
data[pos++] = static_cast<unsigned char> (next_overflow >> 24);
data[pos++] = static_cast<unsigned char> ((next_overflow >> 16) & 0xff);
data[pos++] = static_cast<unsigned char> ((next_overflow >> 8) & 0xff);
data[pos++] = static_cast<unsigned char> (next_overflow & 0xff);
// Store header_type
data[pos++] = static_cast<unsigned char> ((header_type >> 8) & 0xff);
data[pos++] = static_cast<unsigned char> (header_type & 0xff);
How much actual data is in this block? (not including headers).
Definition at line 150 of file Routing_Slip_Persistence_Manager.h.
How much extra header data is in this block (not including this header).
Definition at line 148 of file Routing_Slip_Persistence_Manager.h.
Address of the overflow record (if any).
Definition at line 146 of file Routing_Slip_Persistence_Manager.h.
Our serial number.
Definition at line 144 of file Routing_Slip_Persistence_Manager.h.
1.7.0