ATM_Stream.inl

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //
00003 // ATM_Stream.inl,v 4.2 2005/10/28 16:14:51 ossama Exp
00004 
00005 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00006 
00007 ACE_INLINE void
00008 ACE_ATM_Stream::dump (void) const
00009 {
00010 #if defined (ACE_HAS_DUMP)
00011   ACE_TRACE ("ACE_ATM_Stream::dump");
00012 #endif /* ACE_HAS_DUMP */
00013 }
00014 
00015 ACE_INLINE
00016 ACE_ATM_Stream::ACE_ATM_Stream (void)
00017 {
00018   ACE_TRACE ("ACE_ATM_Stream::ACE_ATM_Stream");
00019 }
00020 
00021 ACE_INLINE
00022 int
00023 ACE_ATM_Stream::open (ACE_ATM_Params params)
00024 {
00025   ACE_TRACE ("ACE_ATM_Stream::open");
00026 #if defined (ACE_HAS_FORE_ATM_XTI)
00027   ACE_HANDLE handle = stream_.open (params.get_device(),
00028                                     params.get_oflag(),
00029                                     params.get_info());
00030   return (handle == ACE_INVALID_HANDLE ? -1 : 0);
00031 #elif defined (ACE_HAS_FORE_ATM_WS2)
00032   params.set_flags( ACE_FLAG_MULTIPOINT_C_ROOT | ACE_FLAG_MULTIPOINT_D_ROOT );
00033 
00034   int retval = stream_.open (params.get_type(),
00035                              params.get_protocol_family(),
00036                              params.get_protocol(),
00037                              params.get_protocol_info(),
00038                              params.get_sock_group(),
00039                              params.get_flags(),
00040                              params.get_reuse_addr());
00041   if (retval == -1)
00042     return -1;
00043 
00044   struct sockaddr_atm sock_addr;
00045 
00046   ACE_OS::memset(&sock_addr, 0, sizeof(struct sockaddr_atm));
00047   sock_addr.satm_family = AF_ATM;
00048   sock_addr.satm_number.AddressType=ADDR_ANY;
00049   sock_addr.satm_number.NumofDigits = ATM_ADDR_SIZE;
00050   sock_addr.satm_blli.Layer2Protocol = SAP_FIELD_ABSENT;
00051   sock_addr.satm_blli.Layer3Protocol = SAP_FIELD_ABSENT;
00052   sock_addr.satm_bhli.HighLayerInfoType = SAP_FIELD_ABSENT;
00053   if (ACE_OS::bind(get_handle(),
00054                    (struct sockaddr FAR *)&sock_addr,
00055                    sizeof(struct sockaddr_atm)) < 0)
00056     {
00057       ACE_OS::printf("Error binding local address: %d",WSAGetLastError());
00058       return -1;
00059     }
00060 
00061   return 0;
00062 #else
00063   ACE_UNUSED_ARG(params);
00064   return 0;
00065 #endif /* ACE_HAS_FORE_ATM_XTI */
00066 }
00067 
00068 ACE_INLINE
00069 int
00070 ACE_ATM_Stream::close (void)
00071 {
00072   ACE_TRACE ("ACE_ATM_Stream::close");
00073 #if defined (ACE_HAS_FORE_ATM_XTI) || defined (ACE_HAS_FORE_ATM_WS2)
00074   return stream_.close ();
00075 #else
00076   return 0;
00077 #endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 */
00078 }
00079 
00080 ACE_INLINE
00081 ATM_Stream&
00082 ACE_ATM_Stream::get_stream (void)
00083 {
00084   ACE_TRACE ("ACE_ATM_Stream::get_stream");
00085   return stream_;
00086 }
00087 
00088 ACE_INLINE
00089 ssize_t
00090 ACE_ATM_Stream::recv (void *buf,
00091                       size_t n,
00092                       int *flags) const
00093 {
00094   ACE_TRACE ("ACE_ATM_Stream::recv");
00095 #if defined (ACE_HAS_FORE_ATM_XTI)
00096   return stream_.recv (buf,
00097                        n,
00098                        flags);
00099 #elif defined (ACE_HAS_FORE_ATM_WS2)
00100   return stream_.recv (buf,
00101                        n);
00102 #else
00103   ACE_UNUSED_ARG(buf);
00104   ACE_UNUSED_ARG(n);
00105   ACE_UNUSED_ARG(flags);
00106   return (0);
00107 #endif /* ACE_HAS_FORE_ATM_XTI */
00108 }
00109 
00110 ACE_INLINE
00111 ssize_t
00112 ACE_ATM_Stream::send_n (const void *buf,
00113                         size_t n,
00114                         int flags) const
00115 {
00116   ACE_TRACE ("ACE_ATM_Stream::send_n");
00117 #if defined (ACE_HAS_FORE_ATM_XTI)
00118   return stream_.send_n (buf,
00119                          n,
00120                          flags);
00121 #elif defined (ACE_HAS_FORE_ATM_WS2)
00122   return stream_.send_n (buf,
00123                          n,
00124                          flags);
00125 #else
00126   ACE_UNUSED_ARG(buf);
00127   ACE_UNUSED_ARG(n);
00128   ACE_UNUSED_ARG(flags);
00129   return (0);
00130 #endif /* ACE_HAS_FORE_ATM_XTI */
00131 }
00132 
00133 ACE_END_VERSIONED_NAMESPACE_DECL

Generated on Thu Nov 9 09:41:46 2006 for ACE by doxygen 1.3.6