ACE.cpp File Reference

#include "ace/ACE.h"
#include "ace/Basic_Types.h"
#include "ace/Handle_Set.h"
#include "ace/Auto_Ptr.h"
#include "ace/SString.h"
#include "ace/Version.h"
#include "ace/Message_Block.h"
#include "ace/Log_Msg.h"
#include "ace/OS_NS_sys_select.h"
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_strings.h"
#include "ace/OS_NS_signal.h"
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_sys_resource.h"
#include "ace/OS_NS_sys_wait.h"
#include "ace/OS_NS_sys_time.h"
#include "ace/OS_NS_time.h"
#include "ace/OS_NS_sys_uio.h"
#include "ace/OS_NS_sys_stat.h"
#include "ace/OS_NS_ctype.h"
#include "ace/OS_TLI.h"

Include dependency graph for ACE.cpp:


Namespaces

namespace  ACE

I/O operations

Notes on common parameters:

handle is the connected endpoint that will be used for I/O.

buf is the buffer to write from or receive into.

len is the number of bytes to transfer.

The timeout parameter in the following methods indicates how long to blocking trying to transfer data. If timeout == 0, then the call behaves as a normal send/recv call, i.e., for blocking sockets, the call will block until action is possible; for non-blocking sockets, EWOULDBLOCK will be returned if no action is immediately possible.

If timeout != 0, the call will wait until the relative time specified in *timeout elapses.

The "_n()" I/O methods keep looping until all the data has been transferred. These methods also work for sockets in non-blocking mode i.e., they keep looping on EWOULDBLOCK. timeout is used to make sure we keep making progress, i.e., the same timeout value is used for every I/O operation in the loop and the timeout is not counted down.

The return values for the "*_n()" methods match the return values from the non "_n()" methods and are specified as follows:

  • On complete transfer, the number of bytes transferred is returned.
  • On timeout, -1 is returned, errno == ETIME.
  • On error, -1 is returned, errno is set to appropriate error.
  • On EOF, 0 is returned, errno is irrelevant.

On partial transfers, i.e., if any data is transferred before timeout / error / EOF, bytes_transferred> will contain the number of bytes transferred.

Methods with iovec parameter are I/O vector variants of the I/O operations.

Methods with the extra flags argument will always result in send getting called. Methods without the extra flags argument will result in send getting called on Win32 platforms, and write getting called on non-Win32 platforms.

ssize_t ACE::recv (ACE_HANDLE handle, void *buf, size_t len, int flags, const ACE_Time_Value *timeout)
ssize_t ACE::t_rcv (ACE_HANDLE handle, void *buf, size_t len, int *flags, const ACE_Time_Value *timeout)
ssize_t ACE::recv (ACE_HANDLE handle, void *buf, size_t n, const ACE_Time_Value *timeout)
ssize_t ACE::recvmsg (ACE_HANDLE handle, struct msghdr *msg, int flags, const ACE_Time_Value *timeout)
ssize_t ACE::recvfrom (ACE_HANDLE handle, char *buf, int len, int flags, struct sockaddr *addr, int *addrlen, const ACE_Time_Value *timeout)
ssize_t ACE::recv (ACE_HANDLE handle, size_t n,...)
 Receive into a variable number of pieces.
ssize_t ACE::recvv (ACE_HANDLE handle, iovec *iov, int iovcnt, const ACE_Time_Value *timeout)
ssize_t ACE::recv_n (ACE_HANDLE handle, ACE_Message_Block *message_block, const ACE_Time_Value *timeout, size_t *bt)
ssize_t ACE::send (ACE_HANDLE handle, const void *buf, size_t n, int flags, const ACE_Time_Value *timeout)
ssize_t ACE::t_snd (ACE_HANDLE handle, const void *buf, size_t n, int flags, const ACE_Time_Value *timeout)
ssize_t ACE::send (ACE_HANDLE handle, const void *buf, size_t n, const ACE_Time_Value *timeout)
ssize_t ACE::sendmsg (ACE_HANDLE handle, const struct msghdr *msg, int flags, const ACE_Time_Value *timeout)
ssize_t ACE::sendto (ACE_HANDLE handle, const char *buf, int len, int flags, const struct sockaddr *addr, int addrlen, const ACE_Time_Value *timeout)
ssize_t ACE::send (ACE_HANDLE handle, size_t n,...)
 Varargs variant.
ssize_t ACE::sendv (ACE_HANDLE handle, const iovec *iov, int iovcnt, const ACE_Time_Value *timeout)
ssize_t ACE::write_n (ACE_HANDLE handle, const ACE_Message_Block *message_block, size_t *bt)
ssize_t ACE::send_n (ACE_HANDLE handle, const ACE_Message_Block *message_block, const ACE_Time_Value *timeout, size_t *bt)
ssize_t ACE::readv_n (ACE_HANDLE handle, iovec *iov, int iovcnt, size_t *bt)
ssize_t ACE::writev_n (ACE_HANDLE handle, const iovec *i, int iovcnt, size_t *bt)

Functions

int ACE::out_of_handles (int error)
u_int ACE::major_version (void)
 e.g., the "5" in ACE 5.1.12.
u_int ACE::minor_version (void)
 e.g., the "1" in ACE 5.1.12.
u_int ACE::beta_version (void)
const ACE_TCHARACE::compiler_name (void)
 E.g., the "SunPro C++" in SunPro C++ 4.32.0.
u_int ACE::compiler_major_version (void)
 E.g., the "4" in SunPro C++ 4.32.0.
u_int ACE::compiler_minor_version (void)
 E.g., the "32" in SunPro C++ 4.32.0.
u_int ACE::compiler_beta_version (void)
 E.g., the "0" in SunPro C++ 4.32.0.
char ACE::debug (void)
void ACE::debug (char c)
int ACE::select (int width, ACE_Handle_Set *readfds, ACE_Handle_Set *writefds=0, ACE_Handle_Set *exceptfds=0, const ACE_Time_Value *timeout=0)
 Wrapper facade for select that uses ACE_Handle_Sets.
int ACE::select (int width, ACE_Handle_Set &readfds, const ACE_Time_Value *timeout)
int ACE::terminate_process (pid_t pid)
int ACE::process_active (pid_t pid)
const ACE_TCHARACE::execname (const ACE_TCHAR *old_name)
u_long ACE::hash_pjw (const char *str, size_t len)
 Computes the hash value of {str} using the "Hash PJW" routine.
u_long ACE::hash_pjw (const char *str)
 Computes the hash value of {str} using the "Hash PJW" routine.
u_long ACE::hash_pjw (const wchar_t *str, size_t len)
 Computes the hash value of {str} using the "Hash PJW" routine.
u_long ACE::hash_pjw (const wchar_t *str)
 Computes the hash value of {str} using the "Hash PJW" routine.
ACE_TCHARACE::strenvdup (const ACE_TCHAR *str)
const ACE_TCHARACE::basename (const ACE_TCHAR *pathname, ACE_TCHAR delim)
const ACE_TCHARACE::dirname (const ACE_TCHAR *pathname, ACE_TCHAR delim)
ssize_t ACE::recv_n_i (ACE_HANDLE handle, void *buf, size_t len, int flags, size_t *bt)
ssize_t ACE::recv_n_i (ACE_HANDLE handle, void *buf, size_t len, int flags, const ACE_Time_Value *timeout, size_t *bt)
ssize_t ACE::t_rcv_n_i (ACE_HANDLE handle, void *buf, size_t len, int *flags, size_t *bt)
ssize_t ACE::t_rcv_n_i (ACE_HANDLE handle, void *buf, size_t len, int *flags, const ACE_Time_Value *timeout, size_t *bt)
ssize_t ACE::recv_n_i (ACE_HANDLE handle, void *buf, size_t len, size_t *bt)
ssize_t ACE::recv_n_i (ACE_HANDLE handle, void *buf, size_t len, const ACE_Time_Value *timeout, size_t *bt)
ssize_t ACE::recvv_n_i (ACE_HANDLE handle, iovec *iov, int iovcnt, size_t *bt)
ssize_t ACE::recvv_n_i (ACE_HANDLE handle, iovec *iov, int iovcnt, const ACE_Time_Value *timeout, size_t *bt)
ssize_t ACE::send_n_i (ACE_HANDLE handle, const void *buf, size_t len, int flags, size_t *bt)
ssize_t ACE::send_n_i (ACE_HANDLE handle, const void *buf, size_t len, int flags, const ACE_Time_Value *timeout, size_t *bt)
ssize_t ACE::t_snd_n_i (ACE_HANDLE handle, const void *buf, size_t len, int flags, size_t *bt)
ssize_t ACE::t_snd_n_i (ACE_HANDLE handle, const void *buf, size_t len, int flags, const ACE_Time_Value *timeout, size_t *bt)
ssize_t ACE::send_n_i (ACE_HANDLE handle, const void *buf, size_t len, size_t *bt)
ssize_t ACE::send_n_i (ACE_HANDLE handle, const void *buf, size_t len, const ACE_Time_Value *timeout, size_t *bt)
ssize_t ACE::sendv_n_i (ACE_HANDLE handle, const iovec *i, int iovcnt, size_t *bt)
ssize_t ACE::sendv_n_i (ACE_HANDLE handle, const iovec *i, int iovcnt, const ACE_Time_Value *timeout, size_t *bt)
int ACE::handle_ready (ACE_HANDLE handle, const ACE_Time_Value *timeout, int read_ready, int write_ready, int exception_ready)
 Timed wait for handle to get read, write, or exception ready.
int ACE::enter_recv_timedwait (ACE_HANDLE handle, const ACE_Time_Value *timeout, int &val)
int ACE::enter_send_timedwait (ACE_HANDLE handle, const ACE_Time_Value *timeout, int &val)
void ACE::record_and_set_non_blocking_mode (ACE_HANDLE handle, int &val)
void ACE::restore_non_blocking_mode (ACE_HANDLE handle, int val)
size_t ACE::format_hexdump (const char *buffer, size_t size, ACE_TCHAR *obuf, size_t obuf_sz)
ACE_TCHARACE::timestamp (ACE_TCHAR date_and_time[], int date_and_timelen, int return_pointer_to_first_digit)
size_t ACE::round_to_pagesize (off_t len)
 Rounds the request to a multiple of the page size.
size_t ACE::round_to_allocation_granularity (off_t len)
 Rounds the request to a multiple of the allocation granularity.
ACE_HANDLE ACE::handle_timed_complete (ACE_HANDLE h, const ACE_Time_Value *timeout, int is_tli)
int ACE::handle_timed_accept (ACE_HANDLE listener, ACE_Time_Value *timeout, int restart)
int ACE::daemonize (const ACE_TCHAR pathname[], int close_all_handles, const ACE_TCHAR program_name[])
pid_t ACE::fork (const ACE_TCHAR *program_name, int avoid_zombies)
int ACE::max_handles (void)
int ACE::set_handle_limit (int new_limit, int increase_limit_only)
int ACE::map_errno (int error)
u_long ACE::gcd (u_long x, u_long y)
 Euclid's greatest common divisor algorithm.
u_long ACE::minimum_frame_size (u_long period1, u_long period2)
 Calculates the minimum enclosing frame size for the given values.
u_long ACE::is_prime (const u_long n, const u_long min_factor, const u_long max_factor)
const ACE_TCHARACE::sock_error (int error)
bool ACE::is_sock_error (int error)
char * ACE::strndup (const char *str, size_t n)
wchar_t * ACE::strndup (const wchar_t *str, size_t n)
char * ACE::strnnew (const char *str, size_t n)
wchar_t * ACE::strnnew (const wchar_t *str, size_t n)
const char * ACE::strend (const char *s)
const wchar_t * ACE::strend (const wchar_t *s)
char * ACE::strnew (const char *s)
wchar_t * ACE::strnew (const wchar_t *s)
static bool equal_char (char a, char b, bool case_sensitive)
bool ACE::wild_match (const char *str, const char *pat, bool case_sensitive)

Variables

size_t ACE::allocation_granularity_ = 0
size_t ACE::pagesize_ = 0
char ACE::debug_

Function Documentation

static bool equal_char ( char  a,
char  b,
bool  case_sensitive 
) [inline, static]


Generated on Sun Jul 9 08:17:41 2006 for ACE by  doxygen 1.4.7-1