Static Public Methods |
u_int | major_version (void) |
| e.g., the "5" in ACE 5.1.12. More...
|
u_int | minor_version (void) |
| e.g., the "1" in ACE 5.1.12. More...
|
u_int | beta_version (void) |
| e.g., the "12" in ACE 5.1.12. Returns 0 for "stable" (non-beta) releases. More...
|
const ACE_TCHAR * | compiler_name (void) |
| E.g., the "SunPro C++" in SunPro C++ 4.32.0. More...
|
u_int | compiler_major_version (void) |
| E.g., the "4" in SunPro C++ 4.32.0. More...
|
u_int | compiler_minor_version (void) |
| E.g., the "32" in SunPro C++ 4.32.0. More...
|
u_int | compiler_beta_version (void) |
| E.g., the "0" in SunPro C++ 4.32.0. More...
|
int | out_of_handles (int error) |
| Check if error indicates the process being out of handles (file descriptors). More...
|
int | handle_timed_accept (ACE_HANDLE listener, ACE_Time_Value *timeout, int restart) |
| Wait up to <timeout> amount of time to passively establish a connection. More...
|
ACE_HANDLE | 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. More...
|
int | set_handle_limit (int new_limit=-1) |
| Reset the limit on the number of open handles. More...
|
int | max_handles (void) |
| Returns the maximum number of open handles currently permitted in this process. More...
|
ACE_TCHAR * | strenvdup (const ACE_TCHAR *str) |
| Return a dynamically allocated duplicate of <str>, substituting the environment variable if <str[0] == '$'>. More...
|
const char * | strend (const char *s) |
| Returns a pointer to the "end" of the string, i.e., the character past the '\0'. More...
|
char * | 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... More...
|
void | strdelete (char *s) |
| Delete the memory allocated by <strnew>. More...
|
char * | 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. More...
|
char * | 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. More...
|
const wchar_t * | strend (const wchar_t *s) |
wchar_t * | strnew (const wchar_t *s) |
void | strdelete (wchar_t *s) |
wchar_t * | strndup (const wchar_t *str, size_t n) |
wchar_t * | strnnew (const wchar_t *str, size_t n) |
const ACE_TCHAR * | execname (const ACE_TCHAR *pathname) |
| On Win32 returns <pathname> if it already ends in ".exe," otherwise returns a dynamically allocated buffer containing "<pathname>.exe". More...
|
const ACE_TCHAR * | basename (const ACE_TCHAR *pathname, ACE_TCHAR delim=ACE_DIRECTORY_SEPARATOR_CHAR) |
| Returns the "basename" of a <pathname> separated by <delim>. More...
|
const ACE_TCHAR * | dirname (const ACE_TCHAR *pathname, ACE_TCHAR delim=ACE_DIRECTORY_SEPARATOR_CHAR) |
| Returns the "dirname" of a <pathname>. More...
|
ACE_TCHAR * | 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_TCHAR>s. More...
|
pid_t | 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. More...
|
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 >")) |
| 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. More...
|
size_t | round_to_pagesize (off_t length) |
| Rounds the request to a multiple of the page size. More...
|
size_t | round_to_allocation_granularity (off_t len) |
| Rounds the request to a multiple of the allocation granularity. More...
|
size_t | 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. More...
|
u_long | hash_pjw (const char *str) |
| Computes the hash value of <str> using the "Hash PJW" routine. More...
|
u_long | hash_pjw (const char *str, size_t len) |
| Computes the hash value of <str> using the "Hash PJW" routine. More...
|
u_long | hash_pjw (const wchar_t *str) |
| Computes the hash value of <str> using the "Hash PJW" routine. More...
|
u_long | hash_pjw (const wchar_t *str, size_t len) |
| Computes the hash value of <str> using the "Hash PJW" routine. More...
|
u_long | crc32 (const char *str) |
| Computes the ISO 8802-3 standard 32 bits CRC for the string (not for a file). More...
|
u_long | crc32 (const char *buf, ACE_UINT32 len) |
| Computes the ISO 8802-3 standard 32 bits CRC for the given buffer (the length is included in the CRC). More...
|
u_long | gcd (u_long x, u_long y) |
| Euclid's greatest common divisor algorithm. More...
|
u_long | minimum_frame_size (u_long period1, u_long period2) |
| Calculates the minimum enclosing frame size for the given values. More...
|
u_long | 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. More...
|
int | map_errno (int error) |
| Map troublesome win32 errno values to values that standard C strerr function understands. Thank you Microsoft. More...
|
const ACE_TCHAR * | 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... More...
|
int | process_active (pid_t pid) |
| Checks if process with <pid> is still alive. More...
|
int | terminate_process (pid_t pid) |
| Terminate the process abruptly with id <pid>. More...
|
void | 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. More...
|
u_long | log2 (u_long num) |
| Computes the base 2 logarithm of <num>. More...
|
ACE_TCHAR | nibble2hex (u_int n) |
| Hex conversion utility. More...
|
u_char | hex2byte (ACE_TCHAR c) |
| Convert a hex character to its byte representation. More...
|
char | debug (void) |
void | debug (char d) |
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_Set>s. More...
|
int | 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_Set>s. More...
|
int | handle_read_ready (ACE_HANDLE handle, const ACE_Time_Value *timeout) |
| Timed wait for handle to get read ready. More...
|
int | handle_write_ready (ACE_HANDLE handle, const ACE_Time_Value *timeout) |
| Timed wait for handle to get write ready. More...
|
int | handle_exception_ready (ACE_HANDLE handle, const ACE_Time_Value *timeout) |
| Timed wait for handle to get exception ready. More...
|
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. More...
|
int | 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. More...
|
int | 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. More...
|
void | 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. More...
|
void | restore_non_blocking_mode (ACE_HANDLE handle, int val) |
| Cleanup after a timed operation, restore the appropriate non-blocking status of <handle>. More...
|
|
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 | recv (ACE_HANDLE handle, void *buf, size_t len, int flags, const ACE_Time_Value *timeout=0) |
ssize_t | t_rcv (ACE_HANDLE handle, void *buf, size_t len, int *flags, const ACE_Time_Value *timeout=0) |
ssize_t | recv (ACE_HANDLE handle, void *buf, size_t len, const ACE_Time_Value *timeout=0) |
ssize_t | recvmsg (ACE_HANDLE handle, struct msghdr *msg, int flags, const ACE_Time_Value *timeout=0) |
ssize_t | recvfrom (ACE_HANDLE handle, char *buf, int len, int flags, struct sockaddr *addr, int *addrlen, const ACE_Time_Value *timeout=0) |
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) |
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) |
ssize_t | recv_n (ACE_HANDLE handle, void *buf, size_t len, const ACE_Time_Value *timeout=0, size_t *bytes_transferred=0) |
ssize_t | recv (ACE_HANDLE handle, size_t n,...) |
| Accepts a variable, caller-specified, number of pointer/length pairs. More...
|
ssize_t | recvv (ACE_HANDLE handle, iovec *iov, int iovcnt, const ACE_Time_Value *timeout=0) |
ssize_t | recvv_n (ACE_HANDLE handle, iovec *iov, int iovcnt, const ACE_Time_Value *timeout=0, size_t *bytes_transferred=0) |
ssize_t | recv_n (ACE_HANDLE handle, ACE_Message_Block *message_block, const ACE_Time_Value *timeout=0, size_t *bytes_transferred=0) |
ssize_t | send (ACE_HANDLE handle, const void *buf, size_t len, int flags, const ACE_Time_Value *timeout=0) |
ssize_t | t_snd (ACE_HANDLE handle, const void *buf, size_t len, int flags, const ACE_Time_Value *timeout=0) |
ssize_t | send (ACE_HANDLE handle, const void *buf, size_t len, const ACE_Time_Value *timeout=0) |
ssize_t | sendmsg (ACE_HANDLE handle, const struct msghdr *msg, int flags, const ACE_Time_Value *timeout=0) |
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) |
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) |
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) |
ssize_t | send_n (ACE_HANDLE handle, const void *buf, size_t len, const ACE_Time_Value *timeout=0, size_t *bytes_transferred=0) |
ssize_t | send (ACE_HANDLE handle, size_t n,...) |
| Varargs variant. More...
|
ssize_t | sendv (ACE_HANDLE handle, const iovec *iov, int iovcnt, const ACE_Time_Value *timeout=0) |
ssize_t | sendv_n (ACE_HANDLE handle, const iovec *iov, int iovcnt, const ACE_Time_Value *timeout=0, size_t *bytes_transferred=0) |
ssize_t | 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_block>s chained through their <next> and <cont> pointers. This call uses the underlying OS gather-write operation to reduce the domain-crossing penalty. More...
|
ssize_t | read_n (ACE_HANDLE handle, void *buf, size_t len, size_t *bytes_transferred=0) |
ssize_t | write_n (ACE_HANDLE handle, const void *buf, size_t len, size_t *bytes_transferred=0) |
ssize_t | write_n (ACE_HANDLE handle, const ACE_Message_Block *message_block, size_t *bytes_transferred=0) |
| Write all the <message_block>s chained through their <next> and <cont> pointers. This call uses the underlying OS gather-write operation to reduce the domain-crossing penalty. More...
|
ssize_t | readv_n (ACE_HANDLE handle, iovec *iov, int iovcnt, size_t *bytes_transferred=0) |
ssize_t | writev_n (ACE_HANDLE handle, const iovec *iov, int iovcnt, size_t *bytes_transferred=0) |
Private Methods |
| ACE_CLASS_IS_NAMESPACE (ACE) |
Static Private Methods |
ssize_t | recv_i (ACE_HANDLE handle, void *buf, size_t len) |
ssize_t | recv_n_i (ACE_HANDLE handle, void *buf, size_t len, int flags, size_t *bytes_transferred) |
ssize_t | recv_n_i (ACE_HANDLE handle, void *buf, size_t len, int flags, const ACE_Time_Value *timeout, size_t *bytes_transferred) |
ssize_t | t_rcv_n_i (ACE_HANDLE handle, void *buf, size_t len, int *flags, size_t *bytes_transferred) |
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) |
ssize_t | recv_n_i (ACE_HANDLE handle, void *buf, size_t len, size_t *bytes_transferred) |
ssize_t | recv_n_i (ACE_HANDLE handle, void *buf, size_t len, const ACE_Time_Value *timeout, size_t *bytes_transferred) |
ssize_t | recvv_n_i (ACE_HANDLE handle, iovec *iov, int iovcnt, size_t *bytes_transferred) |
ssize_t | recvv_n_i (ACE_HANDLE handle, iovec *iov, int iovcnt, const ACE_Time_Value *timeout, size_t *bytes_transferred) |
ssize_t | send_i (ACE_HANDLE handle, const void *buf, size_t len) |
ssize_t | send_n_i (ACE_HANDLE handle, const void *buf, size_t len, int flags, size_t *bytes_transferred) |
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) |
ssize_t | t_snd_n_i (ACE_HANDLE handle, const void *buf, size_t len, int flags, size_t *bytes_transferred) |
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) |
ssize_t | send_n_i (ACE_HANDLE handle, const void *buf, size_t len, size_t *bytes_transferred) |
ssize_t | send_n_i (ACE_HANDLE handle, const void *buf, size_t len, const ACE_Time_Value *timeout, size_t *bytes_transferred) |
ssize_t | sendv_n_i (ACE_HANDLE handle, const iovec *iov, int iovcnt, size_t *bytes_transferred) |
ssize_t | sendv_n_i (ACE_HANDLE handle, const iovec *iov, int iovcnt, const ACE_Time_Value *timeout, size_t *bytes_transferred) |
Static Private Attributes |
size_t | pagesize_ = 0 |
| Size of a VM page. More...
|
size_t | allocation_granularity_ = 0 |
| Size of allocation granularity. More...
|
u_long | crc_table_ [] |
| CRC table. More...
|
const ACE_TCHAR | hex_chars_ [] = ACE_LIB_TEXT ("0123456789abcdef") |
| Hex characters. More...
|
char | debug_ = 0 |
| Are we debugging ACE? More...
|
This class consolidates all these ACE static methods in a single place in order to manage the namespace better. These methods are put here rather than in ACE_OS in order to separate concerns.