diff options
Diffstat (limited to 'TAO/tao/GIOP_Message_Accept_State.h')
-rw-r--r-- | TAO/tao/GIOP_Message_Accept_State.h | 255 |
1 files changed, 0 insertions, 255 deletions
diff --git a/TAO/tao/GIOP_Message_Accept_State.h b/TAO/tao/GIOP_Message_Accept_State.h deleted file mode 100644 index 2ae48c8a27b..00000000000 --- a/TAO/tao/GIOP_Message_Accept_State.h +++ /dev/null @@ -1,255 +0,0 @@ -// -*- C++ -*- -//$Id$ -// ============================================================================ -// -// = LIBRARY -// TAO -// -// = FILENAME -// GIOP_Message_Acceptors.h -// -// = DESCRIPTION -// Interface for the different accept states -// -// = AUTHOR -// Balachandran Natarajan <bala@cs.wustl.edu> -// ============================================================================ -#ifndef TAO_GIOP_MESSAGE_ACCEPT_STATE_H -#define TAO_GIOP_MESSAGE_ACCEPT_STATE_H -#include "ace/pre.h" - -#include "tao/GIOP_Message_Headers.h" -#include "tao/Exception.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -class TAO_Tagged_Profile; -// @@ Bala: do we want to have separate classes for the server side -// and client side? IMHO not, with bi-directional connections the -// differences will be completely blurred. -// @@ Carlos: Yes I agree in a perfect world. But if we look back we -// see our pluggabl_protocol framework having WELL driven a well -// defined wedge, which we have to live with. Unless, we think/redo -// some work on the pluggable_protocol framework to close these -// gaps, IMHO we need to keep making this division further. But, -// there is a hack for Bi-Dir GIOP till we solve the above -// problem. Hack can be applied to specific versions -// alone. Moreover, most of the protocols like HTTP-NG, HTTP have -// this server/client differentiation in their basic -// framework. Please let me know if I am wrong. -// @@ OK, but then name the classes properly, 'FooServer' is better -// @@ than 'FooAcceptor' because Acceptor is what we reserve for -// @@ accepting connections, and Connector for establishing -// @@ connections. - -// Please think about designs that do not require separate state -// objects, a good side effect: that should reduce code size... -// @@ Carlos:I need sometime to think on this. Will surely do. -class TAO_ServerRequest; -class TAO_OutputCDR; -class TAO_GIOP_Locate_Status_Msg; -class TAO_Pluggable_Reply_Params; - -class TAO_Export TAO_GIOP_Message_Accept_State -{ - // = TITLE - // TAO_GIOP_Message_Accept_State - // - // = DESCRIPTION - // Strategy to determine which version of the GIOP request have we - // received. This is to aid the server in replying back to the - // client in the same version as that of the received request. - // -public: - - virtual int parse_request_header (TAO_ServerRequest &) = 0; - // Parse the Request Header from the incoming stream. This will do a - // version specific parsing of the incoming Request header - - virtual CORBA::Boolean - write_reply_header (TAO_OutputCDR &output, - TAO_Pluggable_Reply_Params &reply, - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment ()) - ACE_THROW_SPEC ((CORBA::SystemException)) = 0; - // Write the reply header in to <output> - - virtual int parse_locate_header (TAO_GIOP_Locate_Request_Header &) = 0; - // Parse the Loacte Request Header from the incoming stream. This will do a - // version specific parsing of the incoming Request header - - virtual CORBA::Boolean - write_locate_reply_mesg (TAO_OutputCDR &output, - CORBA::ULong request_id, - TAO_GIOP_Locate_Status_Msg &status) = 0; - // Writes the locate _reply message in to the <output> - - virtual CORBA::Octet major_version (void) = 0; - virtual CORBA::Octet minor_version (void) = 0; - // Our versions - -protected: - void marshal_reply_status (TAO_OutputCDR &output, - TAO_Pluggable_Reply_Params &reply); - // Marshall the reply status - - virtual CORBA::Boolean - unmarshall_object_key (TAO_ObjectKey &object_key, - TAO_InputCDR &cdr); - // Unmarshals the received object key - - virtual CORBA::Boolean - unmarshall_iop_profile (TAO_Tagged_Profile &profile, - TAO_InputCDR &cdr); - // Unmarshall the IOP::TaggedProfile - - virtual CORBA::Boolean - unmarshall_ref_addr (TAO_Tagged_Profile &profile, - TAO_InputCDR &cdr); - // Unmarshalls the GIOP::IORAddressingInfo -}; - - -/*****************************************************************/ -// @@ Bala: a physical design issue: if the protocol is truly -// pluggable then you should be able to (and you should) put the -// classes for each protocol in separate files. -// @@ Carlos: Only GIOP/GIOPlite is pluggable and not the -// implementation details I think. Does that answer your question? -// @@ I don't think so, are GIOP 1.0, GIOP 1.1, and GIOP 1.2 to be -// different pluggable protocols? If so they should be in separate -// files. Same deal to GIOPlite. You may even have to put the -// shared implementation details in yet another file. The mindset is: -// Can i create a completely separate library for each protocol and -// then just add it to TAO? Can TAO compile without the pluggable -// protocol (except for a couple of lines where the default protocol -// is set)? I think it is OK if GIOP 1.1 depends on 1.0 (and 1.2 -// depends on both), but not vice-versa.... - -class TAO_Export TAO_GIOP_Message_Accept_State_10 : public TAO_GIOP_Message_Accept_State -{ - // = TITLE - // TAO_GIOP_Message_Accept_State_10 - // = DESCRIPTION - // - -public: - virtual int parse_request_header (TAO_ServerRequest &); - // Parse the Request Header from the incoming stream. This will do a - // version specific parsing of the incoming Request header - - - virtual CORBA::Boolean write_reply_header (TAO_OutputCDR &output, - TAO_Pluggable_Reply_Params &reply, - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment ()) - ACE_THROW_SPEC ((CORBA::SystemException)); - // Write the version specific reply header in to <output> - - virtual int parse_locate_header (TAO_GIOP_Locate_Request_Header &); - // Parse the Loacte Request Header from the incoming stream. This will do a - // version specific parsing of the incoming Request header - - virtual CORBA::Boolean - write_locate_reply_mesg (TAO_OutputCDR &output, - CORBA::ULong request_id, - TAO_GIOP_Locate_Status_Msg &status); - // Writes the locate reply message in to <output> - - virtual CORBA::Octet major_version (void); - virtual CORBA::Octet minor_version (void); - // Our versions -}; - - -/*****************************************************************/ - -class TAO_Export TAO_GIOP_Message_Accept_State_11: public TAO_GIOP_Message_Accept_State_10 -{ - // = TITLE - // TAO_GIOP_Message_Accept_State_11 - // = DESCRIPTION -public: - virtual CORBA::Octet minor_version (void); -}; - - - -/********************************************************************/ -class TAO_Export TAO_GIOP_Message_Accept_State_12 : public TAO_GIOP_Message_Accept_State -{ - // = TITLE - // TAO_GIOP_Message_Accept_State_12 - // = DESCRIPTION - // - -public: - virtual int parse_request_header (TAO_ServerRequest &); - // Parse the Request Header from the incoming stream. This will do a - // version specific parsing of the incoming Request header - - - virtual CORBA::Boolean - write_reply_header (TAO_OutputCDR &output, - TAO_Pluggable_Reply_Params &reply_params, - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment ()) - ACE_THROW_SPEC ((CORBA::SystemException)); - // Write the version specific reply header in to <output> - - virtual int parse_locate_header (TAO_GIOP_Locate_Request_Header &); - // Parse the Loacte Request Header from the incoming stream. This will do a - // version specific parsing of the incoming Request header - - virtual CORBA::Boolean - write_locate_reply_mesg (TAO_OutputCDR &output, - CORBA::ULong request_id, - TAO_GIOP_Locate_Status_Msg &status); - // Writes the locate reply message in to <output> - - virtual CORBA::Octet major_version (void); - virtual CORBA::Octet minor_version (void); - // Our versions - - -private: - virtual CORBA::Boolean - unmarshall_iop_profile (TAO_Tagged_Profile &profile, - TAO_InputCDR &cdr); - // Unmarshall the IOP::TaggedProfile - - virtual CORBA::Boolean - unmarshall_ref_addr (TAO_Tagged_Profile &profile, - TAO_InputCDR &cdr); - // Unmarshall the IOR Addressing info -}; - - -/*****************************************************************/ - -class TAO_Export TAO_GIOP_Message_Accept_Impl -{ - // = TITLE - // = DESCRIPTION - // The class that would hold the actual references to the concrete - // strategy. - public: - CORBA::Boolean check_revision (CORBA::Octet incoming_major, - CORBA::Octet incoming_minor); - // Performs a check of the revision tags - - - TAO_GIOP_Message_Accept_State_10 version_10; - TAO_GIOP_Message_Accept_State_11 version_11; - TAO_GIOP_Message_Accept_State_12 version_12; - // The concrete implementations that we hold -}; - -#if defined (__ACE_INLINE__) -# include "tao/GIOP_Message_Accept_State.i" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /*_TAO_GIOP_MESSAGE_ACCEPT_STATE_H_*/ |