TAO_Notify::Routing_Slip_Persistence_Manager::Routing_Slip_Header Class Reference

private: Storage for header information for Routing_Slip blocks. More...

Inheritance diagram for TAO_Notify::Routing_Slip_Persistence_Manager::Routing_Slip_Header:

Inheritance graph
[legend]
Collaboration diagram for TAO_Notify::Routing_Slip_Persistence_Manager::Routing_Slip_Header:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Routing_Slip_Header ()
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_Number next_routing_slip_block
 The next event in the system.
Block_Serial_Number next_serial_number
 The next expected serial number.
Block_Number event_block

Detailed Description

private: Storage for header information for Routing_Slip blocks.

Definition at line 156 of file Routing_Slip_Persistence_Manager.h.


Constructor & Destructor Documentation

TAO_Notify::Routing_Slip_Persistence_Manager::Routing_Slip_Header::Routing_Slip_Header (  ) 

Definition at line 345 of file Routing_Slip_Persistence_Manager.cpp.

00346   : Block_Header (BT_Event)
00347   , next_routing_slip_block(0)
00348   , next_serial_number(0)
00349   , event_block(0)
00350 {
00351 }


Member Function Documentation

size_t TAO_Notify::Routing_Slip_Persistence_Manager::Routing_Slip_Header::extract_header ( Persistent_Storage_Block psb,
size_t  offset = 0 
) [virtual]

Reimplemented from TAO_Notify::Routing_Slip_Persistence_Manager::Block_Header.

Definition at line 354 of file Routing_Slip_Persistence_Manager.cpp.

References TAO_Notify::Persistent_Storage_Block::data(), event_block, TAO_Notify::Routing_Slip_Persistence_Manager::Block_Header::extract_header(), next_routing_slip_block, and next_serial_number.

00356 {
00357   size_t pos = offset;
00358   pos = this->Block_Header::extract_header(psb, pos);
00359   unsigned char* data = psb.data();
00360   next_routing_slip_block = data[pos++];
00361   next_routing_slip_block = (next_routing_slip_block << 8) + data[pos++];
00362   next_routing_slip_block = (next_routing_slip_block << 8) + data[pos++];
00363   next_routing_slip_block = (next_routing_slip_block << 8) + data[pos++];
00364   next_serial_number = data[pos++];
00365   next_serial_number = (next_serial_number << 8) + data[pos++];
00366   next_serial_number = (next_serial_number << 8) + data[pos++];
00367   next_serial_number = (next_serial_number << 8) + data[pos++];
00368   next_serial_number = (next_serial_number << 8) + data[pos++];
00369   next_serial_number = (next_serial_number << 8) + data[pos++];
00370   next_serial_number = (next_serial_number << 8) + data[pos++];
00371   next_serial_number = (next_serial_number << 8) + data[pos++];
00372   event_block = data[pos++];
00373   event_block = (event_block << 8) + data[pos++];
00374   event_block = (event_block << 8) + data[pos++];
00375   event_block = (event_block << 8) + data[pos++];
00376   return pos;
00377 }

size_t TAO_Notify::Routing_Slip_Persistence_Manager::Routing_Slip_Header::put_header ( Persistent_Storage_Block psb,
size_t  offset = 0 
) [virtual]

Reimplemented from TAO_Notify::Routing_Slip_Persistence_Manager::Block_Header.

Definition at line 380 of file Routing_Slip_Persistence_Manager.cpp.

References TAO_Notify::Persistent_Storage_Block::data(), event_block, next_routing_slip_block, next_serial_number, and TAO_Notify::Routing_Slip_Persistence_Manager::Block_Header::put_header().

Referenced by TAO_Notify::Routing_Slip_Persistence_Manager::store_root(), and TAO_Notify::Routing_Slip_Persistence_Manager::write_first_routing_slip_block().

00382 {
00383   // Assume that our psb can hold our small amount of data...
00384   size_t pos = offset;
00385   // Store serial number, next_overflow and data_size
00386   pos = this->Block_Header::put_header(psb, pos);
00387 
00388   unsigned char* data = psb.data();
00389   // Store next_routing_slip_block
00390   data[pos++] = static_cast<unsigned char> (next_routing_slip_block >> 24);
00391   data[pos++] = static_cast<unsigned char> ((next_routing_slip_block >> 16) & 0xff);
00392   data[pos++] = static_cast<unsigned char> ((next_routing_slip_block >> 8) & 0xff);
00393   data[pos++] = static_cast<unsigned char> (next_routing_slip_block & 0xff);
00394   // Store serial_number
00395   data[pos++] = static_cast<unsigned char> ((next_serial_number >> 56) & 0xff);
00396   data[pos++] = static_cast<unsigned char> ((next_serial_number >> 48) & 0xff);
00397   data[pos++] = static_cast<unsigned char> ((next_serial_number >> 40) & 0xff);
00398   data[pos++] = static_cast<unsigned char> ((next_serial_number >> 32) & 0xff);
00399   data[pos++] = static_cast<unsigned char> ((next_serial_number >> 24) & 0xff);
00400   data[pos++] = static_cast<unsigned char> ((next_serial_number >> 16) & 0xff);
00401   data[pos++] = static_cast<unsigned char> ((next_serial_number >> 8) & 0xff);
00402   data[pos++] = static_cast<unsigned char> ((next_serial_number >> 0) & 0xff);
00403   // Store event_block
00404   data[pos++] = static_cast<unsigned char> (event_block >> 24);
00405   data[pos++] = static_cast<unsigned char> ((event_block >> 16) & 0xff);
00406   data[pos++] = static_cast<unsigned char> ((event_block >> 8) & 0xff);
00407   data[pos++] = static_cast<unsigned char> (event_block & 0xff);
00408   return pos;
00409 }


Member Data Documentation

Block_Number TAO_Notify::Routing_Slip_Persistence_Manager::Routing_Slip_Header::event_block

Definition at line 170 of file Routing_Slip_Persistence_Manager.h.

Referenced by extract_header(), put_header(), and TAO_Notify::Routing_Slip_Persistence_Manager::store_i().

Block_Number TAO_Notify::Routing_Slip_Persistence_Manager::Routing_Slip_Header::next_routing_slip_block

The next event in the system.

Definition at line 167 of file Routing_Slip_Persistence_Manager.h.

Referenced by extract_header(), put_header(), and TAO_Notify::Routing_Slip_Persistence_Manager::update_next_manager().

Block_Serial_Number TAO_Notify::Routing_Slip_Persistence_Manager::Routing_Slip_Header::next_serial_number

The next expected serial number.

Definition at line 169 of file Routing_Slip_Persistence_Manager.h.

Referenced by extract_header(), put_header(), and TAO_Notify::Routing_Slip_Persistence_Manager::update_next_manager().


The documentation for this class was generated from the following files:
Generated on Tue Feb 2 17:46:43 2010 for TAO_CosNotification by  doxygen 1.4.7