Transport.cpp File Reference

#include "tao/Transport.h"
#include "tao/LF_Follower.h"
#include "tao/Leader_Follower.h"
#include "tao/Client_Strategy_Factory.h"
#include "tao/Wait_Strategy.h"
#include "tao/Transport_Mux_Strategy.h"
#include "tao/Stub.h"
#include "tao/Transport_Queueing_Strategies.h"
#include "tao/Connection_Handler.h"
#include "tao/Pluggable_Messaging.h"
#include "tao/Synch_Queued_Message.h"
#include "tao/Asynch_Queued_Message.h"
#include "tao/Flushing_Strategy.h"
#include "tao/Thread_Lane_Resources.h"
#include "tao/Resume_Handle.h"
#include "tao/Codeset_Manager.h"
#include "tao/Codeset_Translator_Base.h"
#include "tao/debug.h"
#include "tao/CDR.h"
#include "tao/ORB_Core.h"
#include "tao/MMAP_Allocator.h"
#include "ace/OS_NS_sys_time.h"
#include "ace/OS_NS_stdio.h"
#include "ace/Reactor.h"
#include "ace/os_include/sys/os_uio.h"

Include dependency graph for Transport.cpp:

Include dependency graph

Go to the source code of this file.

Functions

void dump_iov (iovec *iov, int iovcnt, size_t id, size_t current_transfer, const char *location)


Function Documentation

void dump_iov iovec iov,
int  iovcnt,
size_t  id,
size_t  current_transfer,
const char *  location
[static]
 

Definition at line 50 of file Transport.cpp.

References ACE_DEBUG, ACE_HEX_DUMP, ACE_SIZE_T_FORMAT_SPECIFIER, ACE_TCHAR, ACE_TEXT, ACE_TEXT_CHAR_TO_TCHAR, ACE_Log_Msg::acquire(), ACE_Log_Msg::instance(), iovec::iov_len, LM_DEBUG, ACE_Log_Msg::release(), and ACE_OS::sprintf().

Referenced by TAO_Transport::drain_queue_helper().

00053 {
00054   ACE_Log_Msg::instance ()->acquire ();
00055 
00056   ACE_DEBUG ((LM_DEBUG,
00057               ACE_TEXT ("TAO (%P|%t) - Transport[%d]::%s, ")
00058               ACE_TEXT ("sending %d buffers\n"),
00059               id, ACE_TEXT_CHAR_TO_TCHAR (location), iovcnt));
00060 
00061   for (int i = 0; i != iovcnt && 0 < current_transfer; ++i)
00062     {
00063       size_t iov_len = iov[i].iov_len;
00064 
00065       // Possibly a partially sent iovec entry.
00066       if (current_transfer < iov_len)
00067         {
00068           iov_len = current_transfer;
00069         }
00070 
00071       ACE_DEBUG ((LM_DEBUG,
00072                   ACE_TEXT ("TAO (%P|%t) - Transport[%d]::%s, ")
00073                   ACE_TEXT ("buffer %d/%d has %d bytes\n"),
00074                   id, ACE_TEXT_CHAR_TO_TCHAR(location),
00075                   i, iovcnt,
00076                   iov_len));
00077 
00078       size_t len;
00079 
00080       for (size_t offset = 0; offset < iov_len; offset += len)
00081         {
00082           ACE_TCHAR header[1024];
00083           ACE_OS::sprintf (header,
00084                            ACE_TEXT("TAO - ")
00085                            ACE_TEXT("Transport[")
00086                            ACE_SIZE_T_FORMAT_SPECIFIER
00087                            ACE_TEXT("]::%s")
00088                            ACE_TEXT(" (")
00089                            ACE_SIZE_T_FORMAT_SPECIFIER ACE_TEXT("/")
00090                            ACE_SIZE_T_FORMAT_SPECIFIER ACE_TEXT(")"),
00091                            id, location, offset, iov_len);
00092 
00093           len = iov_len - offset;
00094 
00095           if (len > 512)
00096             {
00097               len = 512;
00098             }
00099 
00100           ACE_HEX_DUMP ((LM_DEBUG,
00101                          static_cast<char*> (iov[i].iov_base) + offset,
00102                          len,
00103                          header));
00104         }
00105       current_transfer -= iov_len;
00106     }
00107 
00108   ACE_DEBUG ((LM_DEBUG,
00109               ACE_TEXT ("TAO (%P|%t) - Transport[%d]::%s, ")
00110               ACE_TEXT ("end of data\n"),
00111               id, ACE_TEXT_CHAR_TO_TCHAR(location)));
00112 
00113   ACE_Log_Msg::instance ()->release ();
00114 }


Generated on Thu Nov 9 12:09:02 2006 for TAO by doxygen 1.3.6