3 // ===================================================================
5 * @file GIOP_Message_Generator_Parser_12.h
7 * @author Balachandran Natarajan <bala@cs.wustl.edu>
9 // ===================================================================
11 #ifndef TAO_GIOP_MESSAGE_GENERATOR_PARSER_12_H
12 #define TAO_GIOP_MESSAGE_GENERATOR_PARSER_12_H
14 #include /**/ "ace/pre.h"
16 #include "tao/GIOP_Message_Generator_Parser.h"
18 #if !defined (ACE_LACKS_PRAGMA_ONCE)
20 #endif /* ACE_LACKS_PRAGMA_ONCE */
22 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
24 class TAO_Service_Context
;
28 * @class TAO_GIOP_Message_Generator_Parser_12
30 * @brief Implementation for GIOP v1.2
33 class TAO_GIOP_Message_Generator_Parser_12
:
34 public TAO_GIOP_Message_Generator_Parser
37 /// Write the request header in to @a msg
38 virtual bool write_request_header (
39 const TAO_Operation_Details
&opdetails
,
40 TAO_Target_Specification
&spec
,
43 /// Write the LocateRequest header
44 virtual bool write_locate_request_header (
45 CORBA::ULong request_id
,
46 TAO_Target_Specification
&spec
,
49 /// Write the reply header in to @a output
50 virtual bool write_reply_header (
51 TAO_OutputCDR
&output
,
52 TAO_Pluggable_Reply_Params_Base
&reply
);
54 /// Writes the locate _reply message in to the @a output
55 virtual bool write_locate_reply_mesg (
56 TAO_OutputCDR
&output
,
57 CORBA::ULong request_id
,
58 TAO_GIOP_Locate_Status_Msg
&status
);
60 virtual bool write_fragment_header (TAO_OutputCDR
& cdr
,
61 CORBA::ULong request_id
);
63 /// Parse the Request Header from the incoming stream. This will do a
64 /// version specific parsing of the incoming Request header
65 virtual int parse_request_header (TAO_ServerRequest
&);
67 /// Parse the LocateRequest Header from the incoming stream. This will do a
68 /// version specific parsing of the incoming Request header
69 virtual int parse_locate_header (TAO_GIOP_Locate_Request_Header
&);
71 /// Parse the reply message
72 virtual int parse_reply (TAO_InputCDR
&input
,
73 TAO_Pluggable_Reply_Params
¶ms
);
75 /// Parse the locate reply message
76 virtual int parse_locate_reply (TAO_InputCDR
&input
,
77 TAO_Pluggable_Reply_Params
¶ms
);
80 virtual CORBA::Octet
major_version () const;
81 virtual CORBA::Octet
minor_version () const;
83 /// Is the messaging object ready for processing BiDirectional
85 virtual bool is_ready_for_bidirectional () const;
87 /// The header length of a fragment
88 virtual size_t fragment_header_length () const;
91 /// Marshall the TargetSpecification
92 /// This method may be required for other GIOP version coming out
93 /// later than 1.2. We need to share this method
94 bool marshall_target_spec (TAO_Target_Specification
&spec
,
98 TAO_END_VERSIONED_NAMESPACE_DECL
100 #include /**/ "ace/post.h"
102 #endif /* TAO_GIOP_MESSAGE_GENERATOR_PARSER_12_H */