ACE.h File Reference

#include "ace/config-lite.h"
#include "ace/Flag_Manip.h"
#include "ace/Handle_Ops.h"
#include "ace/Lib_Find.h"
#include "ace/Init_ACE.h"
#include "ace/Sock_Connect.h"
#include "ace/Default_Constants.h"
#include "ace/ACE.inl"

Include dependency graph for ACE.h:

This graph shows which files directly or indirectly include this file:


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)
ACE_NAMESPACE_INLINE_FUNCTION
ssize_t 
ACE::recv_n (ACE_HANDLE handle, void *buf, size_t len, int flags, const ACE_Time_Value *timeout=0, size_t *bytes_transferred=0)
ACE_NAMESPACE_INLINE_FUNCTION
ssize_t 
ACE::t_rcv_n (ACE_HANDLE handle, void *buf, size_t len, int *flags, const ACE_Time_Value *timeout=0, size_t *bytes_transferred=0)
ACE_NAMESPACE_INLINE_FUNCTION
ssize_t 
ACE::recv_n (ACE_HANDLE handle, void *buf, size_t len, const ACE_Time_Value *timeout=0, size_t *bytes_transferred=0)
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)
ACE_NAMESPACE_INLINE_FUNCTION
ssize_t 
ACE::recvv_n (ACE_HANDLE handle, iovec *iov, int iovcnt, const ACE_Time_Value *timeout=0, size_t *bytes_transferred=0)
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)
ACE_NAMESPACE_INLINE_FUNCTION
ssize_t 
ACE::send_n (ACE_HANDLE handle, const void *buf, size_t len, int flags, const ACE_Time_Value *timeout=0, size_t *bytes_transferred=0)
ACE_NAMESPACE_INLINE_FUNCTION
ssize_t 
ACE::t_snd_n (ACE_HANDLE handle, const void *buf, size_t len, int flags, const ACE_Time_Value *timeout=0, size_t *bytes_transferred=0)
ACE_NAMESPACE_INLINE_FUNCTION
ssize_t 
ACE::send_n (ACE_HANDLE handle, const void *buf, size_t len, const ACE_Time_Value *timeout=0, size_t *bytes_transferred=0)
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)
ACE_NAMESPACE_INLINE_FUNCTION
ssize_t 
ACE::sendv_n (ACE_HANDLE handle, const iovec *iov, int iovcnt, const ACE_Time_Value *timeout=0, size_t *bytes_transferred=0)
ssize_t ACE::send_n (ACE_HANDLE handle, const ACE_Message_Block *message_block, const ACE_Time_Value *timeout, size_t *bt)
ACE_NAMESPACE_INLINE_FUNCTION
ssize_t 
ACE::read_n (ACE_HANDLE handle, void *buf, size_t len, size_t *bytes_transferred=0)
ACE_NAMESPACE_INLINE_FUNCTION
ssize_t 
ACE::write_n (ACE_HANDLE handle, const void *buf, size_t len, size_t *bytes_transferred=0)
ssize_t ACE::write_n (ACE_HANDLE handle, const ACE_Message_Block *message_block, 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)

Defines

#define ACE_EXPORT_MACRO   ACE_Export

Functions

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.
int ACE::out_of_handles (int error)
bool ACE::wild_match (const char *str, const char *pat, bool case_sensitive)
int ACE::handle_timed_accept (ACE_HANDLE listener, ACE_Time_Value *timeout, int restart)
ACE_HANDLE ACE::handle_timed_complete (ACE_HANDLE h, const ACE_Time_Value *timeout, int is_tli)
int ACE::set_handle_limit (int new_limit, int increase_limit_only)
int ACE::max_handles (void)
ACE_TCHARACE::strenvdup (const ACE_TCHAR *str)
const char * ACE::strend (const char *s)
char * ACE::strnew (const char *s)
ACE_NAMESPACE_INLINE_FUNCTION
void 
ACE::strdelete (char *s)
 Delete the memory allocated by strnew.
char * ACE::strndup (const char *str, size_t n)
char * ACE::strnnew (const char *str, size_t n)
const wchar_t * ACE::strend (const wchar_t *s)
wchar_t * ACE::strnew (const wchar_t *s)
ACE_NAMESPACE_INLINE_FUNCTION
void 
ACE::strdelete (wchar_t *s)
wchar_t * ACE::strndup (const wchar_t *str, size_t n)
wchar_t * ACE::strnnew (const wchar_t *str, size_t n)
const ACE_TCHARACE::execname (const ACE_TCHAR *old_name)
const ACE_TCHARACE::basename (const ACE_TCHAR *pathname, ACE_TCHAR delim)
const ACE_TCHARACE::dirname (const ACE_TCHAR *pathname, ACE_TCHAR delim)
ACE_TCHARACE::timestamp (ACE_TCHAR date_and_time[], int date_and_timelen, int return_pointer_to_first_digit)
pid_t ACE::fork (const ACE_TCHAR *program_name, int avoid_zombies)
int ACE::daemonize (const ACE_TCHAR pathname[], int close_all_handles, const ACE_TCHAR program_name[])
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.
size_t ACE::format_hexdump (const char *buffer, size_t size, ACE_TCHAR *obuf, size_t obuf_sz)
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 char *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.
u_long ACE::hash_pjw (const wchar_t *str, size_t len)
 Computes the hash value of {str} using the "Hash PJW" routine.
ACE_Export ACE_UINT16 ACE::crc_ccitt (const char *str)
 Computes CRC-CCITT for the string.
ACE_Export ACE_UINT16 ACE::crc_ccitt (const void *buf, size_t len, ACE_UINT16 crc=0)
 Computes CRC-CCITT for the buffer.
ACE_Export ACE_UINT16 ACE::crc_ccitt (const iovec *iov, int len, ACE_UINT16 crc=0)
 Computes CRC-CCITT for the @ len iovec buffers.
ACE_Export ACE_UINT32 ACE::crc32 (const char *str)
 Computes the ISO 8802-3 standard 32 bits CRC for the string.
ACE_Export ACE_UINT32 ACE::crc32 (const void *buf, size_t len, ACE_UINT32 crc=0)
 Computes the ISO 8802-3 standard 32 bits CRC for the buffer.
ACE_Export ACE_UINT32 ACE::crc32 (const iovec *iov, int len, ACE_UINT32 crc=0)
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)
int ACE::map_errno (int error)
const ACE_TCHARACE::sock_error (int error)
bool ACE::is_sock_error (int error)
int ACE::process_active (pid_t pid)
int ACE::terminate_process (pid_t pid)
ACE_NAMESPACE_INLINE_FUNCTION
void 
ACE::unique_name (const void *object, ACE_TCHAR *name, size_t length)
ACE_NAMESPACE_INLINE_FUNCTION
u_long 
ACE::log2 (u_long num)
 Computes the base 2 logarithm of {num}.
ACE_NAMESPACE_INLINE_FUNCTION
ACE_TCHAR 
ACE::nibble2hex (u_int n)
 Hex conversion utility.
ACE_NAMESPACE_INLINE_FUNCTION
u_char 
ACE::hex2byte (ACE_TCHAR c)
 Convert a hex character to its byte representation.
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)
ACE_NAMESPACE_INLINE_FUNCTION
int 
ACE::handle_read_ready (ACE_HANDLE handle, const ACE_Time_Value *timeout)
 Timed wait for handle to get read ready.
ACE_NAMESPACE_INLINE_FUNCTION
int 
ACE::handle_write_ready (ACE_HANDLE handle, const ACE_Time_Value *timeout)
 Timed wait for handle to get write ready.
ACE_NAMESPACE_INLINE_FUNCTION
int 
ACE::handle_exception_ready (ACE_HANDLE handle, const ACE_Time_Value *timeout)
 Timed wait for handle to get exception ready.
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)
ACE_NAMESPACE_INLINE_FUNCTION
ssize_t 
ACE::recv_i (ACE_HANDLE handle, void *buf, size_t len)
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)
ACE_NAMESPACE_INLINE_FUNCTION
ssize_t 
ACE::send_i (ACE_HANDLE handle, const void *buf, size_t len)
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)

Detailed Description

Id
ACE.h,v 4.155 2006/06/01 09:09:17 jwillemsen Exp

This file contains value added ACE functions that extend the behavior of the UNIX and Win32 OS calls.

All these ACE static functions are consolidated in a single place in order to manage the namespace better. These functions are put here rather than in ACE_OS in order to separate concerns.

Author:
Douglas C. Schmidt <schmidt@cs.wustl.edu>

Define Documentation

#define ACE_EXPORT_MACRO   ACE_Export


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