00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 #ifndef ACE_TLI_STREAM_H
00015 #define ACE_TLI_STREAM_H
00016 #include  "ace/pre.h"
00017 
00018 #include "ace/config-lite.h"
00019 
00020 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00021 # pragma once
00022 #endif 
00023 
00024 #include "ace/TLI.h"
00025 
00026 #include "ace/INET_Addr.h"
00027 
00028 #if defined (ACE_HAS_TLI)
00029 
00030 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00031 
00032 class ACE_Time_Value;
00033 
00034 
00035 
00036 
00037 
00038 
00039 class ACE_Export ACE_TLI_Stream : public ACE_TLI
00040 {
00041 public:
00042   friend class ACE_TLI_Acceptor;
00043   friend class ACE_TLI_Connector;
00044 
00045   
00046 
00047   ACE_TLI_Stream (void);
00048 
00049   
00050 
00051   int close (void);
00052 
00053 
00054   int active_close (void);
00055 
00056 
00057 
00058   int passive_close (void);
00059 
00060 
00061   int get_remote_addr (ACE_Addr &) const;
00062 
00063   
00064 
00065   ssize_t send (const void *buf,
00066                 size_t n,
00067                 int flags,
00068                 const ACE_Time_Value *timeout = 0) const;
00069 
00070 
00071   ssize_t recv (void *buf,
00072                 size_t n,
00073                 int *flags,
00074                 const ACE_Time_Value *timeout = 0) const;
00075 
00076 
00077   ssize_t send_n (const void *buf,
00078                   size_t n,
00079                   int flags,
00080                   const ACE_Time_Value *timeout = 0,
00081                   size_t *bytes_transferred = 0) const;
00082 
00083 
00084   ssize_t recv_n (void *buf,
00085                   size_t n,
00086                   int *flags,
00087                   const ACE_Time_Value *timeout = 0,
00088                   size_t *bytes_transferred = 0) const;
00089 
00090   
00091 
00092   ssize_t send (const void *buf,
00093                 size_t n,
00094                 const ACE_Time_Value *timeout = 0) const;
00095 
00096 
00097   ssize_t recv (void *buf,
00098                 size_t n,
00099                 const ACE_Time_Value *timeout = 0) const;
00100 
00101 
00102   ssize_t send_n (const void *buf,
00103                   size_t n,
00104                   const ACE_Time_Value *timeout = 0,
00105                   size_t *bytes_transferred = 0) const;
00106 
00107 
00108   ssize_t recv_n (void *buf,
00109                   size_t n,
00110                   const ACE_Time_Value *timeout = 0,
00111                   size_t *bytes_transferred = 0) const;
00112 
00113   
00114   typedef ACE_INET_Addr PEER_ADDR;
00115 
00116 
00117   void dump (void) const;
00118 
00119 
00120   ACE_ALLOC_HOOK_DECLARE;
00121 
00122 private:
00123 
00124   int rwflag_;
00125 
00126 
00127   int get_rwflag (void) const;
00128 
00129 
00130   void set_rwflag (int value);
00131 };
00132 
00133 ACE_END_VERSIONED_NAMESPACE_DECL
00134 
00135 #if defined (__ACE_INLINE__)
00136 #include "ace/TLI_Stream.inl"
00137 #endif 
00138 
00139 #endif 
00140 #include  "ace/post.h"
00141 #endif