Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

ACE Namespace Reference

The namespace containing the ACE framework itself. More...


Classes

struct  ACE::If_Then_Else< true, Ta, Tb >
struct  ACE::If_Then_Else< false, Ta, Tb >
struct  ACE::VP_traits< T >
 Value_Ptr traits template structure. More...
class  ACE::Value_Ptr< T >
 Smart pointer implementation designed for use as a class member. More...
struct  ACE::If_Then_Else
 Compile-time selection of type based on a boolean value. More...

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.

ACE_Export ssize_t recv (ACE_HANDLE handle, void *buf, size_t len, int flags, const ACE_Time_Value *timeout=0)
ACE_Export ssize_t t_rcv (ACE_HANDLE handle, void *buf, size_t len, int *flags, const ACE_Time_Value *timeout=0)
ACE_Export ssize_t recv (ACE_HANDLE handle, void *buf, size_t len, const ACE_Time_Value *timeout=0)
ACE_Export ssize_t recvmsg (ACE_HANDLE handle, struct msghdr *msg, int flags, const ACE_Time_Value *timeout=0)
ACE_Export ssize_t recvfrom (ACE_HANDLE handle, char *buf, int len, int flags, struct sockaddr *addr, int *addrlen, const ACE_Time_Value *timeout=0)
ACE_NAMESPACE_INLINE_FUNCTION
ssize_t 
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 
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 
recv_n (ACE_HANDLE handle, void *buf, size_t len, const ACE_Time_Value *timeout=0, size_t *bytes_transferred=0)
ACE_Export ssize_t recv (ACE_HANDLE handle, size_t n,...)
 Receive into a variable number of pieces.
ACE_Export ssize_t recvv (ACE_HANDLE handle, iovec *iov, int iovcnt, const ACE_Time_Value *timeout=0)
ACE_NAMESPACE_INLINE_FUNCTION
ssize_t 
recvv_n (ACE_HANDLE handle, iovec *iov, int iovcnt, const ACE_Time_Value *timeout=0, size_t *bytes_transferred=0)
ACE_Export ssize_t recv_n (ACE_HANDLE handle, ACE_Message_Block *message_block, const ACE_Time_Value *timeout=0, size_t *bytes_transferred=0)
ACE_Export ssize_t send (ACE_HANDLE handle, const void *buf, size_t len, int flags, const ACE_Time_Value *timeout=0)
ACE_Export ssize_t t_snd (ACE_HANDLE handle, const void *buf, size_t len, int flags, const ACE_Time_Value *timeout=0)
ACE_Export ssize_t send (ACE_HANDLE handle, const void *buf, size_t len, const ACE_Time_Value *timeout=0)
ACE_Export ssize_t sendmsg (ACE_HANDLE handle, const struct msghdr *msg, int flags, const ACE_Time_Value *timeout=0)
ACE_Export ssize_t sendto (ACE_HANDLE handle, const char *buf, int len, int flags, const struct sockaddr *addr, int addrlen, const ACE_Time_Value *timeout=0)
ACE_NAMESPACE_INLINE_FUNCTION
ssize_t 
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 
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 
send_n (ACE_HANDLE handle, const void *buf, size_t len, const ACE_Time_Value *timeout=0, size_t *bytes_transferred=0)
ACE_Export ssize_t send (ACE_HANDLE handle, size_t n,...)
 Varargs variant.
ACE_Export ssize_t sendv (ACE_HANDLE handle, const iovec *iov, int iovcnt, const ACE_Time_Value *timeout=0)
ACE_NAMESPACE_INLINE_FUNCTION
ssize_t 
sendv_n (ACE_HANDLE handle, const iovec *iov, int iovcnt, const ACE_Time_Value *timeout=0, size_t *bytes_transferred=0)
ACE_Export ssize_t send_n (ACE_HANDLE handle, const ACE_Message_Block *message_block, const ACE_Time_Value *timeout=0, size_t *bytes_transferred=0)
ACE_NAMESPACE_INLINE_FUNCTION
ssize_t 
read_n (ACE_HANDLE handle, void *buf, size_t len, size_t *bytes_transferred=0)
ACE_NAMESPACE_INLINE_FUNCTION
ssize_t 
write_n (ACE_HANDLE handle, const void *buf, size_t len, size_t *bytes_transferred=0)
ACE_Export ssize_t write_n (ACE_HANDLE handle, const ACE_Message_Block *message_block, size_t *bytes_transferred=0)
ACE_Export ssize_t readv_n (ACE_HANDLE handle, iovec *iov, int iovcnt, size_t *bytes_transferred=0)
ACE_Export ssize_t writev_n (ACE_HANDLE handle, const iovec *iov, int iovcnt, size_t *bytes_transferred=0)

Functions

ACE_Export u_int major_version (void)
 e.g., the "5" in ACE 5.1.12.
ACE_Export u_int minor_version (void)
 e.g., the "1" in ACE 5.1.12.
ACE_Export u_int beta_version (void)
ACE_Export const ACE_TCHARcompiler_name (void)
 E.g., the "SunPro C++" in SunPro C++ 4.32.0.
ACE_Export u_int compiler_major_version (void)
 E.g., the "4" in SunPro C++ 4.32.0.
ACE_Export u_int compiler_minor_version (void)
 E.g., the "32" in SunPro C++ 4.32.0.
ACE_Export u_int compiler_beta_version (void)
 E.g., the "0" in SunPro C++ 4.32.0.
ACE_Export int out_of_handles (int error)
ACE_Export bool wild_match (const char *s, const char *pattern, bool case_sensitive=true)
ACE_Export int handle_timed_accept (ACE_HANDLE listener, ACE_Time_Value *timeout, int restart)
ACE_Export ACE_HANDLE handle_timed_complete (ACE_HANDLE listener, const ACE_Time_Value *timeout, int is_tli=0)
ACE_Export int set_handle_limit (int new_limit=-1, int increase_limit_only=0)
ACE_Export int max_handles (void)
ACE_Export ACE_TCHARstrenvdup (const ACE_TCHAR *str)
ACE_Export const char * strend (const char *s)
ACE_Export char * strnew (const char *s)
ACE_NAMESPACE_INLINE_FUNCTION
void 
strdelete (char *s)
 Delete the memory allocated by strnew.
ACE_Export char * strndup (const char *str, size_t n)
ACE_Export char * strnnew (const char *str, size_t n)
ACE_Export const wchar_t * strend (const wchar_t *s)
ACE_Export wchar_t * strnew (const wchar_t *s)
ACE_NAMESPACE_INLINE_FUNCTION
void 
strdelete (wchar_t *s)
ACE_Export wchar_t * strndup (const wchar_t *str, size_t n)
ACE_Export wchar_t * strnnew (const wchar_t *str, size_t n)
ACE_Export const ACE_TCHARexecname (const ACE_TCHAR *pathname)
ACE_Export const ACE_TCHARbasename (const ACE_TCHAR *pathname, ACE_TCHAR delim=ACE_DIRECTORY_SEPARATOR_CHAR)
ACE_Export const ACE_TCHARdirname (const ACE_TCHAR *pathname, ACE_TCHAR delim=ACE_DIRECTORY_SEPARATOR_CHAR)
ACE_Export ACE_TCHARtimestamp (ACE_TCHAR date_and_time[], int time_len, int return_pointer_to_first_digit=0)
ACE_Export pid_t fork (const ACE_TCHAR *program_name=ACE_LIB_TEXT("<unknown>"), int avoid_zombies=0)
ACE_Export int daemonize (const ACE_TCHAR pathname[]=ACE_LIB_TEXT("/"), int close_all_handles=ACE_DEFAULT_CLOSE_ALL_HANDLES, const ACE_TCHAR program_name[]=ACE_LIB_TEXT("<unknown>"))
ACE_Export size_t round_to_pagesize (off_t length)
 Rounds the request to a multiple of the page size.
ACE_Export size_t round_to_allocation_granularity (off_t len)
 Rounds the request to a multiple of the allocation granularity.
ACE_Export size_t format_hexdump (const char *buffer, size_t size, ACE_TCHAR *obuf, size_t obuf_sz)
ACE_Export u_long hash_pjw (const char *str)
 Computes the hash value of {str} using the "Hash PJW" routine.
ACE_Export u_long hash_pjw (const char *str, size_t len)
 Computes the hash value of {str} using the "Hash PJW" routine.
ACE_Export u_long hash_pjw (const wchar_t *str)
 Computes the hash value of {str} using the "Hash PJW" routine.
ACE_Export u_long hash_pjw (const wchar_t *str, size_t len)
 Computes the hash value of {str} using the "Hash PJW" routine.
ACE_Export ACE_UINT16 crc_ccitt (const char *str)
 Computes CRC-CCITT for the string.
ACE_Export ACE_UINT16 crc_ccitt (const void *buf, size_t len, ACE_UINT16 crc=0)
 Computes CRC-CCITT for the buffer.
ACE_Export ACE_UINT16 crc_ccitt (const iovec *iov, int len, ACE_UINT16 crc=0)
 Computes CRC-CCITT for the @ len iovec buffers.
ACE_Export ACE_UINT32 crc32 (const char *str)
 Computes the ISO 8802-3 standard 32 bits CRC for the string.
ACE_Export ACE_UINT32 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 crc32 (const iovec *iov, int len, ACE_UINT32 crc=0)
ACE_Export u_long gcd (u_long x, u_long y)
 Euclid's greatest common divisor algorithm.
ACE_Export u_long minimum_frame_size (u_long period1, u_long period2)
 Calculates the minimum enclosing frame size for the given values.
ACE_Export u_long is_prime (const u_long n, const u_long min_factor, const u_long max_factor)
ACE_Export int map_errno (int error)
ACE_Export const ACE_TCHARsock_error (int error)
ACE_Export bool is_sock_error (int error)
ACE_Export int process_active (pid_t pid)
ACE_Export int terminate_process (pid_t pid)
ACE_NAMESPACE_INLINE_FUNCTION
void 
unique_name (const void *object, ACE_TCHAR *name, size_t length)
ACE_NAMESPACE_INLINE_FUNCTION
u_long 
log2 (u_long num)
 Computes the base 2 logarithm of {num}.
ACE_NAMESPACE_INLINE_FUNCTION
ACE_TCHAR 
nibble2hex (u_int n)
 Hex conversion utility.
ACE_NAMESPACE_INLINE_FUNCTION
u_char 
hex2byte (ACE_TCHAR c)
 Convert a hex character to its byte representation.
ACE_Export char debug (void)
ACE_Export void debug (char d)
ACE_Export int 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.
ACE_Export int select (int width, ACE_Handle_Set &readfds, const ACE_Time_Value *timeout=0)
ACE_NAMESPACE_INLINE_FUNCTION
int 
handle_read_ready (ACE_HANDLE handle, const ACE_Time_Value *timeout)
 Timed wait for handle to get read ready.
ACE_NAMESPACE_INLINE_FUNCTION
int 
handle_write_ready (ACE_HANDLE handle, const ACE_Time_Value *timeout)
 Timed wait for handle to get write ready.
ACE_NAMESPACE_INLINE_FUNCTION
int 
handle_exception_ready (ACE_HANDLE handle, const ACE_Time_Value *timeout)
 Timed wait for handle to get exception ready.
ACE_Export int 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.
ACE_Export int enter_recv_timedwait (ACE_HANDLE handle, const ACE_Time_Value *timeout, int &val)
ACE_Export int enter_send_timedwait (ACE_HANDLE handle, const ACE_Time_Value *timeout, int &val)
ACE_Export void record_and_set_non_blocking_mode (ACE_HANDLE handle, int &val)
ACE_Export void restore_non_blocking_mode (ACE_HANDLE handle, int val)
ACE_NAMESPACE_INLINE_FUNCTION
ssize_t 
recv_i (ACE_HANDLE handle, void *buf, size_t len)
ACE_Export ssize_t recv_n_i (ACE_HANDLE handle, void *buf, size_t len, int flags, size_t *bytes_transferred)
ACE_Export ssize_t recv_n_i (ACE_HANDLE handle, void *buf, size_t len, int flags, const ACE_Time_Value *timeout, size_t *bytes_transferred)
ACE_Export ssize_t t_rcv_n_i (ACE_HANDLE handle, void *buf, size_t len, int *flags, size_t *bytes_transferred)
ACE_Export ssize_t t_rcv_n_i (ACE_HANDLE handle, void *buf, size_t len, int *flags, const ACE_Time_Value *timeout, size_t *bytes_transferred)
ACE_Export ssize_t recv_n_i (ACE_HANDLE handle, void *buf, size_t len, size_t *bytes_transferred)
ACE_Export ssize_t recv_n_i (ACE_HANDLE handle, void *buf, size_t len, const ACE_Time_Value *timeout, size_t *bytes_transferred)
ACE_Export ssize_t recvv_n_i (ACE_HANDLE handle, iovec *iov, int iovcnt, size_t *bytes_transferred)
ACE_Export ssize_t recvv_n_i (ACE_HANDLE handle, iovec *iov, int iovcnt, const ACE_Time_Value *timeout, size_t *bytes_transferred)
ACE_NAMESPACE_INLINE_FUNCTION
ssize_t 
send_i (ACE_HANDLE handle, const void *buf, size_t len)
ACE_Export ssize_t send_n_i (ACE_HANDLE handle, const void *buf, size_t len, int flags, size_t *bytes_transferred)
ACE_Export ssize_t send_n_i (ACE_HANDLE handle, const void *buf, size_t len, int flags, const ACE_Time_Value *timeout, size_t *bytes_transferred)
ACE_Export ssize_t t_snd_n_i (ACE_HANDLE handle, const void *buf, size_t len, int flags, size_t *bytes_transferred)
ACE_Export ssize_t t_snd_n_i (ACE_HANDLE handle, const void *buf, size_t len, int flags, const ACE_Time_Value *timeout, size_t *bytes_transferred)
ACE_Export ssize_t send_n_i (ACE_HANDLE handle, const void *buf, size_t len, size_t *bytes_transferred)
ACE_Export ssize_t send_n_i (ACE_HANDLE handle, const void *buf, size_t len, const ACE_Time_Value *timeout, size_t *bytes_transferred)
ACE_Export ssize_t sendv_n_i (ACE_HANDLE handle, const iovec *iov, int iovcnt, size_t *bytes_transferred)
ACE_Export ssize_t sendv_n_i (ACE_HANDLE handle, const iovec *iov, int iovcnt, const ACE_Time_Value *timeout, size_t *bytes_transferred)
ACE_Export int set_flags (ACE_HANDLE handle, int flags)
 Set flags associated with handle.
ACE_Export int clr_flags (ACE_HANDLE handle, int flags)
 Clear flags associated with handle.
ACE_NAMESPACE_INLINE_FUNCTION
int 
get_flags (ACE_HANDLE handle)
 Return the current setting of flags associated with handle.
ACE_Export ACE_HANDLE handle_timed_open (ACE_Time_Value *timeout, const ACE_TCHAR *name, int flags, int perms, LPSECURITY_ATTRIBUTES sa=0)
ACE_Export int init (void)
ACE_Export int fini (void)
ACE_Export int ldfind (const ACE_TCHAR *filename, ACE_TCHAR pathname[], size_t maxpathnamelen)
ACE_Export FILE * ldopen (const ACE_TCHAR *filename, const ACE_TCHAR *type)
ACE_Export ACE_TCHARldname (const ACE_TCHAR *entry_point)
ACE_Export int get_temp_dir (ACE_TCHAR *buffer, size_t buffer_len)
ACE_Export ACE_HANDLE open_temp_file (const ACE_TCHAR *name, int mode, int perm=0)
ACE_Export size_t strrepl (char *s, char search, char replace)
ACE_Export char * strsplit_r (char *s, const char *token, char *&next_start)
ACE_Export size_t strrepl (wchar_t *s, wchar_t search, wchar_t replace)
 As strrepl, but for wide characters.
ACE_Export wchar_t * strsplit_r (wchar_t *s, const wchar_t *token, wchar_t *&next_start)
 As strsplit_r, but for wide characters.
ACE_Export int bind_port (ACE_HANDLE handle, ACE_UINT32 ip_addr=INADDR_ANY, int address_family=AF_UNSPEC)
 Bind a new unused port to handle.
ACE_Export int get_bcast_addr (ACE_UINT32 &bcast_addr, const ACE_TCHAR *hostname=0, ACE_UINT32 host_addr=0, ACE_HANDLE handle=ACE_INVALID_HANDLE)
ACE_Export int get_ip_interfaces (size_t &count, ACE_INET_Addr *&addr_array)
ACE_Export int count_interfaces (ACE_HANDLE handle, size_t &how_many)
ACE_Export ACE_HANDLE get_handle (void)
ACE_Export int ipv6_enabled (void)

Variables

size_t allocation_granularity_ = 0
size_t pagesize_ = 0
char debug_
unsigned int init_fini_count_ = 0


Detailed Description

The namespace containing the ACE framework itself.

The ACE namespace contains all types (classes, structures, typedefs, etc), and global functions and variables in the ACE framework.


Function Documentation

const ACE_TCHAR * ACE::basename const ACE_TCHAR pathname,
ACE_TCHAR  delim = ACE_DIRECTORY_SEPARATOR_CHAR
 

Returns the "basename" of a pathname separated by delim. For instance, the basename of "/tmp/foo.cpp" is "foo.cpp" when delim is '/'.

u_int ACE::beta_version void   ) 
 

e.g., the "12" in ACE 5.1.12. Returns 0 for "stable" (non-beta) releases.

ACE_BEGIN_VERSIONED_NAMESPACE_DECL int ACE::bind_port ACE_HANDLE  handle,
ACE_UINT32  ip_addr = INADDR_ANY,
int  address_family = AF_UNSPEC
 

Bind a new unused port to handle.

int ACE::clr_flags ACE_HANDLE  handle,
int  flags
 

Clear flags associated with handle.

u_int ACE::compiler_beta_version void   ) 
 

E.g., the "0" 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.

const ACE_TCHAR * ACE::compiler_name void   ) 
 

E.g., the "SunPro C++" in SunPro C++ 4.32.0.

int ACE::count_interfaces ACE_HANDLE  handle,
size_t &  how_many
 

Helper routine for get_ip_interfaces, differs by UNIX platform so put into own subroutine. perform some ioctls to retrieve ifconf list of ifreq structs.

ACE_UINT32 ACE::crc32 const iovec iov,
int  len,
ACE_UINT32  crc = 0
 

Computes the ISO 8802-3 standard 32 bits CRC for the @ len iovec buffers.

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_BEGIN_VERSIONED_NAMESPACE_DECL ACE_UINT32 ACE::crc32 const char *  str  ) 
 

Computes the ISO 8802-3 standard 32 bits CRC for the string.

ACE_UINT16 ACE::crc_ccitt const iovec iov,
int  len,
ACE_UINT16  crc = 0
 

Computes CRC-CCITT for the @ len iovec buffers.

ACE_UINT16 ACE::crc_ccitt const void *  buf,
size_t  len,
ACE_UINT16  crc = 0
 

Computes CRC-CCITT for the buffer.

ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_UINT16 ACE::crc_ccitt const char *  str  ) 
 

Computes CRC-CCITT for the string.

int ACE::daemonize const ACE_TCHAR  pathname[] = ACE_LIB_TEXT("/"),
int  close_all_handles = ACE_DEFAULT_CLOSE_ALL_HANDLES,
const ACE_TCHAR  program_name[] = ACE_LIB_TEXT("<unknown>")
 

Become a daemon process using the algorithm in Richard Stevens "Advanced Programming in the UNIX Environment." If close_all_handles is non-zero then all open file handles are closed.

void ACE::debug char  d  ) 
 

char ACE::debug void   ) 
 

const ACE_TCHAR * ACE::dirname const ACE_TCHAR pathname,
ACE_TCHAR  delim = ACE_DIRECTORY_SEPARATOR_CHAR
 

Returns the "dirname" of a pathname. For instance, the dirname of "/tmp/foo.cpp" is "/tmp" when delim is '/'. If pathname has no delim ".\0" is returned. This method does not modify pathname and is not reentrant.

int ACE::enter_recv_timedwait ACE_HANDLE  handle,
const ACE_Time_Value timeout,
int &  val
 

Wait for timeout before proceeding to a recv operation. val keeps track of whether we're in non-blocking mode or not.

int ACE::enter_send_timedwait ACE_HANDLE  handle,
const ACE_Time_Value timeout,
int &  val
 

Wait for timeout before proceeding to a send operation. val keeps track of whether we're in non-blocking mode or not.

const ACE_TCHAR * ACE::execname const ACE_TCHAR pathname  ) 
 

On Windows, determines if a specified pathname ends with ".exe" (not case sensitive). If on Windows and there is no ".exe" suffix, a new ACE_TCHAR array is allocated and a copy of pathname with the ".exe" suffix is copied into it. In this case, the caller is responsible for calling delete [] on the returned pointer.

Parameters:
pathname The name to check for a proper suffix.
Return values:
@c pathname if there is a proper suffix for Windows. This is always the return value for non-Windows platforms.
If a suffix needs to be added, returns a pointer to new[] allocated memory containing the original pathname plus a ".exe" suffix. The caller is responsible for freeing the memory using delete [].

int ACE::fini void   ) 
 

Shut down ACE library services. Can be called only once per program invocation.

Returns:
Returns 0 on success, -1 on failure, and 1 if it had already been called.

pid_t ACE::fork const ACE_TCHAR program_name = ACE_LIB_TEXT("<unknown>"),
int  avoid_zombies = 0
 

if avoid_zombies == 0 call ACE_OS::fork directly, else create an orphan process that's inherited by the init process; init cleans up when the orphan process terminates so we don't create zombies. Returns -1 on failure and either the child PID on success if avoid_zombies == 0 or 1 on success if avoid_zombies != 0 (this latter behavior is a known bug that needs to be fixed).

size_t ACE::format_hexdump const char *  buffer,
size_t  size,
ACE_TCHAR obuf,
size_t  obuf_sz
 

Format buffer into printable format. This is useful for debugging.

u_long ACE::gcd u_long  x,
u_long  y
 

Euclid's greatest common divisor algorithm.

int ACE::get_bcast_addr ACE_UINT32 &  bcast_addr,
const ACE_TCHAR hostname = 0,
ACE_UINT32  host_addr = 0,
ACE_HANDLE  handle = ACE_INVALID_HANDLE
 

Get our broadcast address based on our host_addr. If hostname is non-0 we'll use it to determine our IP address. If handle is not ACE_INVALID_HANDLE then we'll use this to determine our broadcast address, otherwise we'll have to create a socket internally (and free it). Returns -1 on failure and 0 on success.

ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE int ACE::get_flags ACE_HANDLE  handle  ) 
 

Return the current setting of flags associated with handle.

ACE_HANDLE ACE::get_handle void   ) 
 

Routine to return a handle from which ioctl requests can be made. Caller must close the handle.

int ACE::get_ip_interfaces size_t &  count,
ACE_INET_Addr *&  addr_array
 

Return count and array of all configured IP interfaces on this host, rc = 0 on success (count == number of interfaces else -1). Caller is responsible for calling delete [] on addr_array.

int ACE::get_temp_dir ACE_TCHAR buffer,
size_t  buffer_len
 

Returns the temporary directory including the trailing slash in buffer. Returns -1 for an error or if the buffer_len is not long enough.

ACE_INLINE int ACE::handle_exception_ready ACE_HANDLE  handle,
const ACE_Time_Value timeout
 

Timed wait for handle to get exception ready.

ACE_INLINE int ACE::handle_read_ready ACE_HANDLE  handle,
const ACE_Time_Value timeout
 

Timed wait for handle to get read 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::handle_timed_accept ACE_HANDLE  listener,
ACE_Time_Value timeout,
int  restart
 

Wait up to timeout amount of time to passively establish a connection. This method doesn't perform the accept, it just does the timed wait.

ACE_HANDLE ACE::handle_timed_complete ACE_HANDLE  listener,
const ACE_Time_Value timeout,
int  is_tli = 0
 

Wait up to timeout amount of time to complete an actively established non-blocking connection. If is_tli is non-0 then we are being called by a TLI wrapper (which behaves slightly differently from a socket wrapper).

ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_HANDLE ACE::handle_timed_open ACE_Time_Value timeout,
const ACE_TCHAR name,
int  flags,
int  perms,
LPSECURITY_ATTRIBUTES  sa = 0
 

Wait up to timeout> amount of time to actively open a device. This method doesn't perform the connect, it just does the timed wait.

ACE_INLINE int ACE::handle_write_ready ACE_HANDLE  handle,
const ACE_Time_Value timeout
 

Timed wait for handle to get write ready.

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.

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.

ACE_INLINE u_char ACE::hex2byte ACE_TCHAR  c  ) 
 

Convert a hex character to its byte representation.

int ACE::init void   ) 
 

This class implements the functions for the initialization and shutting down ACE. These functions are called only once per ACE invokation.

Returns:
Returns 0 on success, -1 on failure, and 1 if it had already been called.

int ACE::ipv6_enabled void   ) 
 

Returns 1 if IPv6 is enabled on the current host; 0 if not. This is an execution-time check. If ACE has not been compiled with ACE_HAS_IPV6, it always returns 0. If ACE_HAS_IPV6 is enabled, this function tries to create a PF_INET6 socket, returning 1 if it succeeds, and 0 if it fails. Caches the result so it only gets checked once.

u_long ACE::is_prime const u_long  n,
const u_long  min_factor,
const u_long  max_factor
 

Function that can burn up noticeable CPU time: brute-force determination of whether number n is prime. Returns 0 if it is prime, or the smallest factor if it is not prime. min_factor and max_factor can be used to partition the work among threads. For just one thread, typical values are 2 and n/2.

bool ACE::is_sock_error int  error  ) 
 

Determins whether the given error code corresponds to to a WinSock error. If so returns true, false otherwise.

For internal use only.

ACE_BEGIN_VERSIONED_NAMESPACE_DECL int ACE::ldfind const ACE_TCHAR filename,
ACE_TCHAR  pathname[],
size_t  maxpathnamelen
 

Finds the file filename either using an absolute path or using a relative path in conjunction with ACE_LD_SEARCH_PATH (e.g., $LD_LIBRARY_PATH on UNIX or the directories scaned by Win32 API SearchPath on Win32). This function will add appropriate suffix (e.g., .dll on Win32 or .so on UNIX) according to the OS platform. In addition, this function will apply the appropriate prefix (e.g., "lib" on UNIX and "" on Win32) if the filename doesn't match directly.

ACE_TCHAR * ACE::ldname const ACE_TCHAR entry_point  ) 
 

Transforms entry_point into a form that can be located in a dynamic library using <dlsym>. For example, with Win32/Borland extern "C" functions which use the default calling convention have a '_' prepended. Always returns a buffer that has been dynamically allocated using <operator new="">.

FILE * ACE::ldopen const ACE_TCHAR filename,
const ACE_TCHAR type
 

Uses ldfind to locate and open the appropriate filename and returns a pointer to the file, else it returns a NULL pointer. type specifies how the file should be open.

ACE_INLINE u_long ACE::log2 u_long  num  ) 
 

Computes the base 2 logarithm of {num}.

u_int ACE::major_version void   ) 
 

e.g., the "5" in ACE 5.1.12.

int ACE::map_errno int  error  ) 
 

Map troublesome win32 errno values to values that standard C strerr function understands. Thank you Microsoft.

int ACE::max_handles void   ) 
 

Returns the maximum number of open handles currently permitted in this process. This maximum may be extended using ACE::set_handle_limit.

u_long ACE::minimum_frame_size u_long  period1,
u_long  period2
 

Calculates the minimum enclosing frame size for the given values.

u_int ACE::minor_version void   ) 
 

e.g., the "1" in ACE 5.1.12.

ACE_INLINE ACE_TCHAR ACE::nibble2hex u_int  n  ) 
 

Hex conversion utility.

ACE_HANDLE ACE::open_temp_file const ACE_TCHAR name,
int  mode,
int  perm = 0
 

Opening the temp file. File is automagically unlinked when it is closed. This is useful for have temp files.

int ACE::out_of_handles int  error  ) 
 

Check if error indicates the process being out of handles (file descriptors).

int ACE::process_active pid_t  pid  ) 
 

Checks if process with {pid} is still alive. Returns 1 if it is still alive, 0 if it isn't alive, and -1 if something weird happened.

ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE ssize_t ACE::read_n ACE_HANDLE  handle,
void *  buf,
size_t  len,
size_t *  bytes_transferred = 0
 

ssize_t ACE::readv_n ACE_HANDLE  handle,
iovec iov,
int  iovcnt,
size_t *  bytes_transferred = 0
 

void ACE::record_and_set_non_blocking_mode ACE_HANDLE  handle,
int &  val
 

This makes sure that handle is set into non-blocking mode. val keeps track of whether were in non-blocking mode or not.

ssize_t ACE::recv ACE_HANDLE  handle,
size_t  n,
  ...
 

Receive into a variable number of pieces.

Accepts a variable, caller-specified, number of pointer/length pairs. Arguments following n are char *, size_t pairs.

Parameters:
handle The I/O handle to receive on
n The total number of char *, size_t pairs following n.
Returns:
-1 on error, else total number of bytes received.

ssize_t ACE::recv ACE_HANDLE  handle,
void *  buf,
size_t  len,
const ACE_Time_Value timeout = 0
 

ssize_t ACE::recv ACE_HANDLE  handle,
void *  buf,
size_t  len,
int  flags,
const ACE_Time_Value timeout = 0
 

ACE_INLINE ssize_t ACE::recv_i ACE_HANDLE  handle,
void *  buf,
size_t  len
 

ssize_t ACE::recv_n ACE_HANDLE  handle,
ACE_Message_Block message_block,
const ACE_Time_Value timeout = 0,
size_t *  bytes_transferred = 0
 

ACE_INLINE ssize_t ACE::recv_n ACE_HANDLE  handle,
void *  buf,
size_t  len,
const ACE_Time_Value timeout = 0,
size_t *  bytes_transferred = 0
 

ACE_INLINE 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
 

ssize_t ACE::recv_n_i ACE_HANDLE  handle,
void *  buf,
size_t  len,
const ACE_Time_Value timeout,
size_t *  bytes_transferred
 

ssize_t ACE::recv_n_i ACE_HANDLE  handle,
void *  buf,
size_t  len,
size_t *  bytes_transferred
 

ssize_t ACE::recv_n_i ACE_HANDLE  handle,
void *  buf,
size_t  len,
int  flags,
const ACE_Time_Value timeout,
size_t *  bytes_transferred
 

ssize_t ACE::recv_n_i ACE_HANDLE  handle,
void *  buf,
size_t  len,
int  flags,
size_t *  bytes_transferred
 

ssize_t ACE::recvfrom ACE_HANDLE  handle,
char *  buf,
int  len,
int  flags,
struct sockaddr *  addr,
int *  addrlen,
const ACE_Time_Value timeout = 0
 

ssize_t ACE::recvmsg ACE_HANDLE  handle,
struct msghdr msg,
int  flags,
const ACE_Time_Value timeout = 0
 

ssize_t ACE::recvv ACE_HANDLE  handle,
iovec iov,
int  iovcnt,
const ACE_Time_Value timeout = 0
 

ACE_INLINE 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::recvv_n_i ACE_HANDLE  handle,
iovec iov,
int  iovcnt,
const ACE_Time_Value timeout,
size_t *  bytes_transferred
 

ssize_t ACE::recvv_n_i ACE_HANDLE  handle,
iovec iov,
int  iovcnt,
size_t *  bytes_transferred
 

void ACE::restore_non_blocking_mode ACE_HANDLE  handle,
int  val
 

Cleanup after a timed operation, restore the appropriate non-blocking status of handle.

size_t ACE::round_to_allocation_granularity off_t  len  ) 
 

Rounds the request to a multiple of the allocation granularity.

size_t ACE::round_to_pagesize off_t  length  ) 
 

Rounds the request to a multiple of the page size.

int ACE::select int  width,
ACE_Handle_Set readfds,
const ACE_Time_Value timeout = 0
 

Wrapper facade for the most common use of select that uses ACE_Handle_Sets.

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.

ssize_t ACE::send ACE_HANDLE  handle,
size_t  n,
  ...
 

Varargs variant.

ssize_t ACE::send ACE_HANDLE  handle,
const void *  buf,
size_t  len,
const ACE_Time_Value timeout = 0
 

ssize_t ACE::send ACE_HANDLE  handle,
const void *  buf,
size_t  len,
int  flags,
const ACE_Time_Value timeout = 0
 

ACE_INLINE ssize_t ACE::send_i ACE_HANDLE  handle,
const void *  buf,
size_t  len
 

ssize_t ACE::send_n ACE_HANDLE  handle,
const ACE_Message_Block message_block,
const ACE_Time_Value timeout = 0,
size_t *  bytes_transferred = 0
 

Send all the message_blocks chained through their next and cont pointers. This call uses the underlying OS gather-write operation to reduce the domain-crossing penalty.

ACE_INLINE 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
 

ACE_INLINE 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
 

ssize_t ACE::send_n_i ACE_HANDLE  handle,
const void *  buf,
size_t  len,
const ACE_Time_Value timeout,
size_t *  bytes_transferred
 

ssize_t ACE::send_n_i ACE_HANDLE  handle,
const void *  buf,
size_t  len,
size_t *  bytes_transferred
 

ssize_t ACE::send_n_i ACE_HANDLE  handle,
const void *  buf,
size_t  len,
int  flags,
const ACE_Time_Value timeout,
size_t *  bytes_transferred
 

ssize_t ACE::send_n_i ACE_HANDLE  handle,
const void *  buf,
size_t  len,
int  flags,
size_t *  bytes_transferred
 

ssize_t ACE::sendmsg ACE_HANDLE  handle,
const struct msghdr msg,
int  flags,
const ACE_Time_Value timeout = 0
 

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 = 0
 

ssize_t ACE::sendv ACE_HANDLE  handle,
const iovec iov,
int  iovcnt,
const ACE_Time_Value timeout = 0
 

ACE_INLINE 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::sendv_n_i ACE_HANDLE  handle,
const iovec iov,
int  iovcnt,
const ACE_Time_Value timeout,
size_t *  bytes_transferred
 

ssize_t ACE::sendv_n_i ACE_HANDLE  handle,
const iovec iov,
int  iovcnt,
size_t *  bytes_transferred
 

ACE_BEGIN_VERSIONED_NAMESPACE_DECL int ACE::set_flags ACE_HANDLE  handle,
int  flags
 

Set flags associated with handle.

int ACE::set_handle_limit int  new_limit = -1,
int  increase_limit_only = 0
 

Reset the limit on the number of open handles. If new_limit == -1 set the limit to the maximum allowable. Otherwise, set the limit value to new_limit. If increase_limit_only is non-0 then only allow increases to the limit.

const ACE_TCHAR * ACE::sock_error int  error  ) 
 

Returns a string containing the error message corresponding to a WinSock error. This works around an omission in the Win32 API.

For internal use only.

ACE_INLINE void ACE::strdelete wchar_t *  s  ) 
 

ACE_INLINE void ACE::strdelete char *  s  ) 
 

Delete the memory allocated by strnew.

const wchar_t * ACE::strend const wchar_t *  s  ) 
 

const char * ACE::strend const char *  s  ) 
 

Returns a pointer to the "end" of the string, i.e., the character past the ''.

ACE_TCHAR * ACE::strenvdup const ACE_TCHAR str  ) 
 

Return a dynamically allocated duplicate of str, substituting the environment variable if str[0] == '$'. Note that the pointer is allocated with ACE_OS::malloc and must be freed by ACE_OS::free.

wchar_t * ACE::strndup const wchar_t *  str,
size_t  n
 

char * ACE::strndup const char *  str,
size_t  n
 

Create a fresh new copy of str, up to n chars long. Uses ACE_OS::malloc to allocate the new string.

wchar_t * ACE::strnew const wchar_t *  s  ) 
 

char * ACE::strnew const char *  s  ) 
 

This method is just like strdup, except that it uses operator new rather than malloc. If s is NULL returns NULL rather than segfaulting.

wchar_t * ACE::strnnew const wchar_t *  str,
size_t  n
 

char * ACE::strnnew const char *  str,
size_t  n
 

Create a fresh new copy of str, up to n chars long. Uses ACE_OS::malloc to allocate the new string.

size_t ACE::strrepl wchar_t *  s,
wchar_t  search,
wchar_t  replace
 

As strrepl, but for wide characters.

size_t ACE::strrepl char *  s,
char  search,
char  replace
 

Replace all instances of search in s with replace. Returns the number of replacements made.

wchar_t * ACE::strsplit_r wchar_t *  s,
const wchar_t *  token,
wchar_t *&  next_start
 

As strsplit_r, but for wide characters.

char * ACE::strsplit_r char *  s,
const char *  token,
char *&  next_start
 

Splits string <s> into pieces separated by the string <token>. <next_start> is an opaque cookie handed back by the call to store its state for the next invocation, thus making it re-entrant. This operates very similar to Perl's <split> function except that it returns pieces one at a time instead of into an array.

ssize_t ACE::t_rcv ACE_HANDLE  handle,
void *  buf,
size_t  len,
int *  flags,
const ACE_Time_Value timeout = 0
 

ACE_INLINE 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
 

ssize_t ACE::t_rcv_n_i ACE_HANDLE  handle,
void *  buf,
size_t  len,
int *  flags,
const ACE_Time_Value timeout,
size_t *  bytes_transferred
 

ssize_t ACE::t_rcv_n_i ACE_HANDLE  handle,
void *  buf,
size_t  len,
int *  flags,
size_t *  bytes_transferred
 

ssize_t ACE::t_snd ACE_HANDLE  handle,
const void *  buf,
size_t  len,
int  flags,
const ACE_Time_Value timeout = 0
 

ACE_INLINE 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
 

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 *  bytes_transferred
 

ssize_t ACE::t_snd_n_i ACE_HANDLE  handle,
const void *  buf,
size_t  len,
int  flags,
size_t *  bytes_transferred
 

int ACE::terminate_process pid_t  pid  ) 
 

Terminate the process abruptly with id pid. On Win32 platforms this uses {TerminateProcess} and on POSIX platforms is uses {kill} with the -9 (SIGKILL) signal, which cannot be caught or ignored. Note that this call is potentially dangerous to use since the process being terminated may not have a chance to cleanup before it shuts down.

ACE_TCHAR * ACE::timestamp ACE_TCHAR  date_and_time[],
int  time_len,
int  return_pointer_to_first_digit = 0
 

Returns the current timestamp in the form "hour:minute:second:microsecond." The month, day, and year are also stored in the beginning of the date_and_time array, which is a user-supplied array of size time_len> ACE_TCHARs. Returns 0 if unsuccessful, else returns pointer to beginning of the "time" portion of date_and_time. If return_pointer_to_first_digit is 0 then return a pointer to the space before the time, else return a pointer to the beginning of the time portion.

ACE_INLINE void ACE::unique_name const void *  object,
ACE_TCHAR name,
size_t  length
 

This method uses process id and object pointer to come up with a machine wide unique name. The process ID will provide uniqueness between processes on the same machine. The "this" pointer of the {object} will provide uniqueness between other "live" objects in the same process. The uniqueness of this name is therefore only valid for the life of {object}.

bool ACE::wild_match const char *  s,
const char *  pattern,
bool  case_sensitive = true
 

Simple wildcard matching function supporting '*' and '?' return true if string s matches pattern.

ssize_t ACE::write_n ACE_HANDLE  handle,
const ACE_Message_Block message_block,
size_t *  bytes_transferred = 0
 

Write all the message_blocks chained through their next and cont pointers. This call uses the underlying OS gather-write operation to reduce the domain-crossing penalty.

ACE_INLINE ssize_t ACE::write_n ACE_HANDLE  handle,
const void *  buf,
size_t  len,
size_t *  bytes_transferred = 0
 

ssize_t ACE::writev_n ACE_HANDLE  handle,
const iovec iov,
int  iovcnt,
size_t *  bytes_transferred = 0
 


Variable Documentation

size_t ACE::allocation_granularity_ = 0
 

char ACE::debug_
 

ACE_BEGIN_VERSIONED_NAMESPACE_DECL unsigned int ACE::init_fini_count_ = 0
 

Counter to match <init()>/<fini()> calls. <init()> must increment it; <fini()> must decrement it. <fini()> then does nothing until it reaches 0.

size_t ACE::pagesize_ = 0
 


Generated on Thu Feb 16 03:40:33 2006 for ACE by  doxygen 1.3.9.1