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.