*Backed out changeset 3be01fb200a5
--HG-- branch : trunk
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
// -*- C++ -*-
|
||||
|
||||
//=============================================================================
|
||||
/**
|
||||
* @file SOCK_Stream.h
|
||||
@@ -8,17 +9,24 @@
|
||||
* @author Douglas C. Schmidt <[email protected]>
|
||||
*/
|
||||
//=============================================================================
|
||||
|
||||
#ifndef ACE_SOCK_STREAM_H
|
||||
#define ACE_SOCK_STREAM_H
|
||||
#include /**/ "ace/pre.h"
|
||||
|
||||
#include "ace/SOCK_IO.h"
|
||||
|
||||
#if !defined (ACE_LACKS_PRAGMA_ONCE)
|
||||
# pragma once
|
||||
#endif /* ACE_LACKS_PRAGMA_ONCE */
|
||||
|
||||
#include "ace/INET_Addr.h"
|
||||
|
||||
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
|
||||
|
||||
// Forward declarations.
|
||||
class ACE_Message_Block;
|
||||
|
||||
/**
|
||||
* @class ACE_SOCK_Stream
|
||||
*
|
||||
@@ -35,10 +43,13 @@ public:
|
||||
// Initialization and termination methods.
|
||||
/// Constructor.
|
||||
ACE_SOCK_Stream (void);
|
||||
|
||||
/// Constructor (sets the underlying ACE_HANDLE with @a h).
|
||||
ACE_SOCK_Stream (ACE_HANDLE h);
|
||||
|
||||
/// Destructor.
|
||||
~ACE_SOCK_Stream (void);
|
||||
|
||||
/** @name Counted send/receive methods
|
||||
*
|
||||
* The counted send/receive methods attempt to transfer a specified number
|
||||
@@ -89,68 +100,86 @@ public:
|
||||
int flags,
|
||||
const ACE_Time_Value *timeout = 0,
|
||||
size_t *bytes_transferred = 0) const;
|
||||
|
||||
/// Try to recv exactly @a len bytes into @a buf from the connected socket.
|
||||
ssize_t recv_n (void *buf,
|
||||
size_t len,
|
||||
const ACE_Time_Value *timeout = 0,
|
||||
size_t *bytes_transferred = 0) const;
|
||||
|
||||
/// Receive an @c iovec of size @a iovcnt from the connected socket.
|
||||
ssize_t recvv_n (iovec iov[],
|
||||
int iovcnt,
|
||||
const ACE_Time_Value *timeout = 0,
|
||||
size_t *bytes_transferred = 0) const;
|
||||
|
||||
/// Try to send exactly @a len bytes from @a buf to the connection socket.
|
||||
ssize_t send_n (const void *buf,
|
||||
size_t len,
|
||||
int flags,
|
||||
const ACE_Time_Value *timeout = 0,
|
||||
size_t *bytes_transferred = 0) const;
|
||||
|
||||
/// Try to send exactly @a len bytes from @a buf to the connected socket.
|
||||
ssize_t send_n (const void *buf,
|
||||
size_t len,
|
||||
const ACE_Time_Value *timeout = 0,
|
||||
size_t *bytes_transferred = 0) const;
|
||||
|
||||
/// Send all the message blocks chained through their @c next and
|
||||
/// @c cont pointers. This call uses the underlying OS gather-write
|
||||
/// operation to reduce the domain-crossing penalty.
|
||||
ssize_t send_n (const ACE_Message_Block *message_block,
|
||||
const ACE_Time_Value *timeout = 0,
|
||||
size_t *bytes_transferred = 0) const;
|
||||
|
||||
/// Send an @c iovec of size @a iovcnt to the connected socket.
|
||||
ssize_t sendv_n (const iovec iov[],
|
||||
int iovcnt,
|
||||
const ACE_Time_Value *timeout = 0,
|
||||
size_t *bytes_transferred = 0) const;
|
||||
|
||||
//@}
|
||||
|
||||
// = Send/receive ``urgent'' data (see TCP specs...).
|
||||
ssize_t send_urg (const void *ptr,
|
||||
size_t len = sizeof (char),
|
||||
const ACE_Time_Value *timeout = 0) const;
|
||||
|
||||
ssize_t recv_urg (void *ptr,
|
||||
size_t len = sizeof (char),
|
||||
const ACE_Time_Value *timeout = 0) const;
|
||||
|
||||
// = Selectively close endpoints.
|
||||
/// Close down the reader.
|
||||
int close_reader (void);
|
||||
|
||||
/// Close down the writer.
|
||||
int close_writer (void);
|
||||
|
||||
/**
|
||||
* Close down the socket (we need this to make things work correctly
|
||||
* on Win32, which requires use to do a close_writer() before doing
|
||||
* the close to avoid losing data).
|
||||
*/
|
||||
int close (void);
|
||||
|
||||
// = Meta-type info
|
||||
typedef ACE_INET_Addr PEER_ADDR;
|
||||
|
||||
/// Dump the state of an object.
|
||||
void dump (void) const;
|
||||
|
||||
/// Declare the dynamic allocation hooks.
|
||||
ACE_ALLOC_HOOK_DECLARE;
|
||||
};
|
||||
|
||||
ACE_END_VERSIONED_NAMESPACE_DECL
|
||||
|
||||
#if defined (__ACE_INLINE__)
|
||||
#include "ace/SOCK_Stream.inl"
|
||||
#endif /* __ACE_INLINE__ */
|
||||
|
||||
#include /**/ "ace/post.h"
|
||||
#endif /* ACE_SOCK_STREAM_H */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user