summaryrefslogtreecommitdiff
path: root/TAO/tao/GIOP_Message_State.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/GIOP_Message_State.h')
-rw-r--r--TAO/tao/GIOP_Message_State.h44
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_;