diff options
Diffstat (limited to 'TAO/tao/GIOP_Message_Factory.h')
-rw-r--r-- | TAO/tao/GIOP_Message_Factory.h | 70 |
1 files changed, 51 insertions, 19 deletions
diff --git a/TAO/tao/GIOP_Message_Factory.h b/TAO/tao/GIOP_Message_Factory.h index 3eb257a6ee0..e771fc5c800 100644 --- a/TAO/tao/GIOP_Message_Factory.h +++ b/TAO/tao/GIOP_Message_Factory.h @@ -13,15 +13,18 @@ // Interface for the GIOP messaging protocol // // = AUTHOR +// Copyright 1994-1995 by Sun Microsystems Inc., // Balachandran Natarajan <bala@cs.wustl.edu> // // ============================================================================ #ifndef _TAO_GIOP_MESSAGE_H_ #define _TAO_GIOP_MESSAGE_H_ +#include "tao/Pluggable_Messaging.h" +#include "tao/debug.h" -class TAO_Export TAO_GIOP_Message_Factory :public TAO_Pluggable_Message +class TAO_Export TAO_GIOP_Message_Factory :public TAO_Pluggable_Message_Factory { // = TITLE // Definitions of GIOP specific stuff @@ -30,6 +33,9 @@ class TAO_Export TAO_GIOP_Message_Factory :public TAO_Pluggable_Message // This class will hold the specific details common to all the // GIOP versions. Some of them which are here may be shifted if // things start changing between versions + + // IMPORTANT: This code was based on the GIOP.h & GIOP.cpp + public: TAO_GIOP_Message_Factory (void); @@ -55,37 +61,63 @@ class TAO_Export TAO_GIOP_Message_Factory :public TAO_Pluggable_Message }; - virtual CORBA::Boolean start_message (const TAO_GIOP_Version &version, - TAO_GIOP_Message_Factory::Message_Type t, - TAO_OutputCDR &msg); - // Build the header for a message of type <t> into stream - // <msg>. Other GIOP related protocols that do not use this can - // override this. Like GIOP_lite - + /**********************************************************/ + // Methods related to the messages that would be sent by the client + /**********************************************************/ virtual CORBA::Boolean write_request_header (const IOP::ServiceContextList& svc_ctx, CORBA::ULong request_id, CORBA::Octet response_flags, - const TAO_opaque& key, + TAO_Stub *stub, + const CORBA::Short address_disposition, const char* opname, - CORBA::Principal_ptr principal, - TAO_OutputCDR &msg, - TAO_ORB_Core *orb_core); + TAO_OutputCDR &msg); + // Write the GIOP request header. CORBA::Boolean write_locate_request_header (CORBA::ULong request_id, - const TAO_opaque &key, - TAO_OutputCDR &msg); + TAO_Stub *stub, + const CORBA::Short address_disposition, + TAO_OutputCDR &msg) = 0; // Write the GIOP locate request header. - int send_message (TAO_Transport *transport, - TAO_OutputCDR &stream, - TAO_ORB_Core* orb_core, - ACE_Time_Value *max_wait_time = 0, - TAO_Stub *stub = 0); + + virtual int send_message (TAO_Transport *transport, + TAO_OutputCDR &stream, + ACE_Time_Value *max_wait_time = 0, + TAO_Stub *stub = 0); // Send message, returns TRUE if success, else FALSE. + virtual const size_t get_header_len (void) = 0; + // This will give the size of the header for different variants of + // GIOP. + + virtual const size_t get_message_size_offset (void) = 0; + // This will give the message_size offset as specified by different + // variants of GIOP + + void dump_msg (const char *label, + const u_char *ptr, + size_t len); + // Print out a debug messages.. + + // We need to add a Cancel request. But TAO does not support. + + + /**********************************************************/ + // Methods related to the messages that would be sent by the server. + /**********************************************************/ + //virtual CORBA::Boolean start_message (const TAO_GIOP_Version &version, + // TAO_GIOP_Message_Factory::Message_Type t, + // TAO_OutputCDR &msg); + // Build the header for a message of type <t> into stream + // <msg>. Other GIOP related protocols that do not use this can + // override this. Like GIOP_lite private: }; +#if defined (__ACE_INLINE__) +# include "tao/GIOP_Message_Factory.i" +#endif /* __ACE_INLINE__ */ + #endif /*_TAO_GIOP_MESSAGE_H_*/ |