diff options
Diffstat (limited to 'TAO/tao/GIOP_Message_State.h')
-rw-r--r-- | TAO/tao/GIOP_Message_State.h | 44 |
1 files changed, 20 insertions, 24 deletions
diff --git a/TAO/tao/GIOP_Message_State.h b/TAO/tao/GIOP_Message_State.h index 9ae3db82230..f902fa03a0e 100644 --- a/TAO/tao/GIOP_Message_State.h +++ b/TAO/tao/GIOP_Message_State.h @@ -41,10 +41,11 @@ class TAO_Export TAO_GIOP_Message_State public: /// Ctor - TAO_GIOP_Message_State (TAO_ORB_Core *orb_core = 0, - TAO_GIOP_Message_Base *base = 0); + TAO_GIOP_Message_State (TAO_ORB_Core *orb_core, + TAO_GIOP_Message_Base *base); - int take_values_from_message_block (const ACE_Message_Block& mb); + /// Parse the message header. + int parse_message_header (ACE_Message_Block &incoming); /// Return the message size CORBA::ULong message_size (void) const; @@ -52,24 +53,9 @@ public: /// Return the message size CORBA::ULong payload_size (void) const; - /*! - \brief Return the byte order information. - \return 0 big-endian - \return 1 little-endian - */ + /// Return the byte order information CORBA::Octet byte_order (void) const; - /*! - \brief Return GIOP version information. - */ - const TAO_GIOP_Message_Version &giop_version () const; - - /// (Requests and Replys) - CORBA::Octet more_fragments () const; - - /// MsgType above - CORBA::Octet message_type () const; - /// Reset the state.. void reset (void); @@ -77,30 +63,40 @@ private: friend class TAO_GIOP_Message_Base; + /// Parse the message header. + int parse_message_header_i (ACE_Message_Block &incoming); + + /// Checks for the magic word 'GIOP' in the start of the incoing + /// stream + int parse_magic_bytes (char *buf); + /// Extracts the version information from the incoming /// stream. Performs a check for whether the version information is /// right and sets the information in the <state> - int set_version_info_from_buffer (const char *buf); + int get_version_info (char *buf); /// Extracts the byte order information from the incoming /// stream. Performs a check for whether the byte order information /// right and sets the information in the <state> - int set_byte_order_info_from_buffer (const char *buf); + int get_byte_order_info (char *buf); /// Gets the size of the payload and set the size in the <state> - void set_payload_size_from_buffer (const char *buf); + void get_payload_size (char *buf); /// Parses the GIOP FRAGMENT_HEADER information from the incoming /// stream. - int parse_fragment_header (const char *buf, + int parse_fragment_header (char *buf, size_t length); /// Read the unsigned long from the buffer. The <buf> should just /// point to the next 4 bytes data that represent the ULong - CORBA::ULong read_ulong (const char *buf); + CORBA::ULong read_ulong (char *buf); private: + /// The GIOP base class.. + TAO_GIOP_Message_Base *base_; + // GIOP version information.. TAO_GIOP_Message_Version giop_version_; |