diff options
author | bala <balanatarajan@users.noreply.github.com> | 2001-05-15 16:47:23 +0000 |
---|---|---|
committer | bala <balanatarajan@users.noreply.github.com> | 2001-05-15 16:47:23 +0000 |
commit | 0ccda76aacdd36184b458dc8472be65eb8d79d8b (patch) | |
tree | 0dc634cac83953b5d32d314b725fc84408c09ac3 | |
parent | 8398994201dd223ac8234e2f10355fec5ceaebe6 (diff) | |
download | ATCD-0ccda76aacdd36184b458dc8472be65eb8d79d8b.tar.gz |
*** empty log message ***
-rw-r--r-- | TAO/tao/GIOP_Message_Base.h | 9 | ||||
-rw-r--r-- | TAO/tao/Strategies/GIOP_Message_NonReactive_Base.cpp | 48 | ||||
-rw-r--r-- | TAO/tao/Strategies/GIOP_Message_NonReactive_Base.h | 11 | ||||
-rw-r--r-- | TAO/tao/Strategies/GIOP_Message_NonReactive_Handler.cpp | 5 | ||||
-rw-r--r-- | TAO/tao/Strategies/GIOP_Message_NonReactive_Handler.h | 4 |
5 files changed, 72 insertions, 5 deletions
diff --git a/TAO/tao/GIOP_Message_Base.h b/TAO/tao/GIOP_Message_Base.h index efbef29e6a2..17cf6491bcb 100644 --- a/TAO/tao/GIOP_Message_Base.h +++ b/TAO/tao/GIOP_Message_Base.h @@ -136,6 +136,11 @@ protected: void set_state (CORBA::Octet major, CORBA::Octet minor); + /// Print out a debug messages.. + void dump_msg (const char *label, + const u_char *ptr, + size_t len); + private: /// Writes the GIOP header in to <msg> @@ -169,10 +174,6 @@ private: IOP::ServiceContextList *svc_info, CORBA::Exception *x); - /// Print out a debug messages.. - void dump_msg (const char *label, - const u_char *ptr, - size_t len); /// Write the locate reply header virtual int generate_locate_reply_header ( diff --git a/TAO/tao/Strategies/GIOP_Message_NonReactive_Base.cpp b/TAO/tao/Strategies/GIOP_Message_NonReactive_Base.cpp index 8c6761de3e1..b1167496e9a 100644 --- a/TAO/tao/Strategies/GIOP_Message_NonReactive_Base.cpp +++ b/TAO/tao/Strategies/GIOP_Message_NonReactive_Base.cpp @@ -1,5 +1,6 @@ #include "GIOP_Message_NonReactive_Base.h" #include "tao/Leader_Follower.h" +#include "tao/debug.h" #if !defined (__ACE_INLINE__) # include "GIOP_Message_NonReactive_Base.inl" @@ -40,11 +41,58 @@ TAO_GIOP_Message_NonReactive_Base::read_message (TAO_Transport *transport, this->set_state (state.giop_version.major, state.giop_version.minor); + if (TAO_debug_level > 2) + { + TAO_InputCDR &cdr = + this->message_handler_.input_cdr (); + + char *buf = cdr.rd_ptr (); + + buf -= TAO_GIOP_MESSAGE_HEADER_LEN; + size_t len = cdr.length () + TAO_GIOP_MESSAGE_HEADER_LEN; + + this->dump_msg ("Recv", + ACE_reinterpret_cast (u_char *, + buf), + len); + + } // We return 2, it is ugly. But the reactor semantics has made us to // limp :( return 2; } +TAO_Pluggable_Message_Type +TAO_GIOP_Message_NonReactive_Base::message_type (void) +{ + // @@ maybe we should refactor this code and put it in + // GIOP_Message_Base.- NB + switch (this->message_handler_.message_state ().message_type) + { + case TAO_GIOP_REQUEST: + case TAO_GIOP_LOCATEREQUEST: + return TAO_PLUGGABLE_MESSAGE_REQUEST; + + case TAO_GIOP_LOCATEREPLY: + case TAO_GIOP_REPLY: + return TAO_PLUGGABLE_MESSAGE_REPLY; + + case TAO_GIOP_CLOSECONNECTION: + return TAO_PLUGGABLE_MESSAGE_CLOSECONNECTION; + + case TAO_GIOP_CANCELREQUEST: + case TAO_GIOP_MESSAGERROR: + case TAO_GIOP_FRAGMENT: + // Never happens: why?? + default: + ACE_ERROR ((LM_ERROR, + ACE_TEXT ("TAO (%P|%t) %N:%l message_type : ") + ACE_TEXT ("wrong message.\n"))); + } + + return TAO_PLUGGABLE_MESSAGE_MESSAGERROR; +} + int TAO_GIOP_Message_NonReactive_Base::process_request_message (TAO_Transport *transport, diff --git a/TAO/tao/Strategies/GIOP_Message_NonReactive_Base.h b/TAO/tao/Strategies/GIOP_Message_NonReactive_Base.h index 206855db3e5..d6e8b434ecd 100644 --- a/TAO/tao/Strategies/GIOP_Message_NonReactive_Base.h +++ b/TAO/tao/Strategies/GIOP_Message_NonReactive_Base.h @@ -40,6 +40,9 @@ class TAO_Pluggable_Reply_Params; class TAO_Strategies_Export TAO_GIOP_Message_NonReactive_Base :public TAO_GIOP_Message_Base { public: + + friend class TAO_GIOP_Message_NonReactive_Handler; + /// Constructor TAO_GIOP_Message_NonReactive_Base (TAO_ORB_Core *orb_core, size_t cdr_size = ACE_CDR::DEFAULT_BUFSIZE); @@ -54,6 +57,14 @@ public: ACE_Time_Value *max_wait_time = 0); + /// Get the message type. The return value would be one of the + /// following: + /// TAO_PLUGGABLE_MESSAGE_REQUEST, + /// TAO_PLUGGABLE_MESSAGE_REPLY, + /// TAO_PLUGGABLE_MESSAGE_CLOSECONNECTION, + /// TAO_PLUGGABLE_MESSAGE_MESSAGE_ERROR. + virtual TAO_Pluggable_Message_Type message_type (void); + /// Process the request message that we have received on the /// connection virtual int process_request_message (TAO_Transport *transport, diff --git a/TAO/tao/Strategies/GIOP_Message_NonReactive_Handler.cpp b/TAO/tao/Strategies/GIOP_Message_NonReactive_Handler.cpp index 1e8fa4a9252..8f18033ab58 100644 --- a/TAO/tao/Strategies/GIOP_Message_NonReactive_Handler.cpp +++ b/TAO/tao/Strategies/GIOP_Message_NonReactive_Handler.cpp @@ -18,6 +18,7 @@ TAO_GIOP_Message_NonReactive_Handler::TAO_GIOP_Message_NonReactive_Handler (TAO_ : TAO_GIOP_Message_Reactive_Handler (orb_core, mesg_base, cdr_size), + mesg_base_ (mesg_base), input_cdr_ (orb_core->data_block_for_message_block (cdr_size)) { } @@ -91,10 +92,12 @@ TAO_GIOP_Message_NonReactive_Handler::read_parse_message(TAO_Transport *transpor return -1; } + buf = this->input_cdr_.rd_ptr (); + // Read the rest of the message if (this->read_message (transport, buf, - msg_size, + msg_size - TAO_GIOP_MESSAGE_HEADER_LEN, max_wait_time) == -1) { if (TAO_debug_level > 1) diff --git a/TAO/tao/Strategies/GIOP_Message_NonReactive_Handler.h b/TAO/tao/Strategies/GIOP_Message_NonReactive_Handler.h index fee6f6dd55d..5c401b0c27b 100644 --- a/TAO/tao/Strategies/GIOP_Message_NonReactive_Handler.h +++ b/TAO/tao/Strategies/GIOP_Message_NonReactive_Handler.h @@ -73,6 +73,10 @@ private: ACE_Time_Value *max_wait_time); private: + + /// Our Message base + TAO_GIOP_Message_NonReactive_Base *mesg_base_; + /// The input cdr stream in which the incoming data is stored. TAO_InputCDR input_cdr_; }; |