Revert "Minor modernization of DynamicAny code"
[ACE_TAO.git] / TAO / tao / GIOP_Message_Generator_Parser_12.h
blob8bfb114ce9276ffd5f4806d4d97adb864b147552
1 // -*- C++ -*-
3 // ===================================================================
4 /**
5 * @file GIOP_Message_Generator_Parser_12.h
7 * @author Balachandran Natarajan <bala@cs.wustl.edu>
8 */
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)
19 # pragma once
20 #endif /* ACE_LACKS_PRAGMA_ONCE */
22 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
24 class TAO_Service_Context;
25 class TAO_Transport;
27 /**
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
36 public:
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,
41 TAO_OutputCDR &msg);
43 /// Write the LocateRequest header
44 virtual bool write_locate_request_header (
45 CORBA::ULong request_id,
46 TAO_Target_Specification &spec,
47 TAO_OutputCDR &msg);
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 &params);
75 /// Parse the locate reply message
76 virtual int parse_locate_reply (TAO_InputCDR &input,
77 TAO_Pluggable_Reply_Params &params);
79 /// Our versions
80 virtual CORBA::Octet major_version () const;
81 virtual CORBA::Octet minor_version () const;
83 /// Is the messaging object ready for processing BiDirectional
84 /// request/response?
85 virtual bool is_ready_for_bidirectional () const;
87 /// The header length of a fragment
88 virtual size_t fragment_header_length () const;
90 private:
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,
95 TAO_OutputCDR &msg);
98 TAO_END_VERSIONED_NAMESPACE_DECL
100 #include /**/ "ace/post.h"
102 #endif /* TAO_GIOP_MESSAGE_GENERATOR_PARSER_12_H */