SockStream.h
上传用户:nvosite88
上传日期:2007-01-17
资源大小:4983k
文件大小:1k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* SockStream */
  2. /* Copyright (c) 1999 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01b,02oct01,nel  Add debug hooks for dcomShow.
  7. 01a,11may99,aim  created
  8. */
  9. #ifndef __INCSockStream_h
  10. #define __INCSockStream_h
  11. #include <SockIO.h>
  12. #include <INETSockAddr.h>
  13. #include "private/DebugHooks.h"
  14. class SockStream : public SockIO
  15.     {
  16.   public:
  17.     virtual ~SockStream ();
  18.     SockStream ();
  19.     // Selectively close endpoints.
  20.     int readerClose ();
  21.     int writerClose ();
  22.     int close ();
  23.     // calls ::shutdown (n, 2) first.
  24.     void processDebugOutput
  25.         (
  26. void (*pHook)(const BYTE *, DWORD, const char *, int, int),
  27. BYTE * pBuf,
  28. DWORD length
  29. )
  30. {
  31. if (CHECKHOOK(pHook))
  32.     {
  33.     INETSockAddr peerAddr;
  34.     INETSockAddr hostAddr;
  35.     char hostName [32] = { 0, };
  36.     if (peerAddrGet (peerAddr) >= 0)
  37. {
  38. if (peerAddr.hostAddrGet (hostName, sizeof (hostName)) < 0)
  39.     {
  40.     memset (hostName, '', sizeof (hostName));
  41.     }
  42. }
  43.     hostAddrGet (hostAddr);
  44.     HOOK(pHook)((BYTE *)pBuf, 
  45.         (DWORD)length, 
  46. hostName, 
  47. hostAddr.portGet (),
  48. peerAddr.portGet ());
  49.     }
  50.         }
  51.     // Meta-type info
  52.     typedef INETSockAddr PEER_ADDR;
  53.     };
  54. #endif // __INCSockStream_h