Static Public Methods |
u_int | major_version (void) |
| e.g., the "5" in ACE 5.1.12.
|
u_int | minor_version (void) |
| e.g., the "1" in ACE 5.1.12.
|
u_int | beta_version (void) |
| e.g., the "12" in ACE 5.1.12. Returns 0 for "stable" (non-beta) releases.
|
const ACE_TCHAR* | compiler_name (void) |
| E.g., the "SunPro C++" in SunPro C++ 4.32.0.
|
u_int | compiler_major_version (void) |
| E.g., the "4" in SunPro C++ 4.32.0.
|
u_int | compiler_minor_version (void) |
| E.g., the "32" in SunPro C++ 4.32.0.
|
u_int | compiler_beta_version (void) |
| E.g., the "0" in SunPro C++ 4.32.0.
|
int | out_of_handles (int error) |
| Check if error indicates the process being out of handles (file descriptors).
|
int | handle_timed_accept (ACE_HANDLE listener, ACE_Time_Value *timeout, int restart) |
ACE_HANDLE | handle_timed_complete (ACE_HANDLE listener, const ACE_Time_Value *timeout, int is_tli = 0) |
int | set_handle_limit (int new_limit = -1) |
int | max_handles (void) |
ACE_TCHAR* | strenvdup (const ACE_TCHAR *str) |
const char* | strend (const char *s) |
| Returns a pointer to the "end" of the string, i.e., the character past the '\0'.
|
char* | strnew (const char *s) |
| This method is just like <strdup>, except that it uses <operator new> rather than <malloc>.
|
char* | strndup (const char *str, size_t n) |
| Create a fresh new copy of <str>, up to <n> chars long. Uses to allocate the new string.
|
char* | strnnew (const char *str, size_t n) |
| Create a fresh new copy of <str>, up to <n> chars long. Uses to allocate the new string.
|
const wchar_t* | strend (const wchar_t *s) |
wchar_t* | strnew (const 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) |
const ACE_TCHAR* | basename (const ACE_TCHAR *pathname, ACE_TCHAR delim = ACE_DIRECTORY_SEPARATOR_CHAR) |
const ACE_TCHAR* | dirname (const ACE_TCHAR *pathname, ACE_TCHAR delim = ACE_DIRECTORY_SEPARATOR_CHAR) |
ACE_TCHAR* | timestamp (ACE_TCHAR date_and_time[], int time_len, int return_pointer_to_first_digit = 0) |
pid_t | fork (const ACE_TCHAR *program_name = ACE_LIB_TEXT ("<unknown>"), int avoid_zombies = 0) |
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>")) |
size_t | round_to_pagesize (off_t length) |
| Rounds the request to a multiple of the page size.
|
size_t | round_to_allocation_granularity (off_t len) |
| Rounds the request to a multiple of the allocation granularity.
|
int | format_hexdump (const char *buffer, int size, ACE_TCHAR *obuf, int obuf_sz) |
| Format buffer into printable format. This is useful for debugging.
|
u_long | hash_pjw (const char *str) |
| Computes the hash value of <str> using the "Hash PJW" routine.
|
u_long | hash_pjw (const char *str, size_t len) |
| Computes the hash value of <str> using the "Hash PJW" routine.
|
u_long | hash_pjw (const wchar_t *str) |
| Computes the hash value of <str> using the "Hash PJW" routine.
|
u_long | hash_pjw (const wchar_t *str, size_t len) |
| Computes the hash value of <str> using the "Hash PJW" routine.
|
u_long | crc32 (const char *str) |
| Computes the ISO 8802-3 standard 32 bits CRC for the string (not for a file).
|
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).
|
u_long | gcd (u_long x, u_long y) |
| Euclid's greatest common divisor algorithm.
|
u_long | minimum_frame_size (u_long period1, u_long period2) |
| Calculates the minimum enclosing frame size for the given values.
|
u_long | is_prime (const u_long n, const u_long min_factor, const u_long max_factor) |
int | map_errno (int error) |
| Map troublesome win32 errno values to values that standard C strerr function understands. Thank you Microsoft.
|
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...
|
int | process_active (pid_t pid) |
int | terminate_process (pid_t pid) |
void | unique_name (const void *object, ACE_TCHAR *name, size_t length) |
u_long | log2 (u_long num) |
| Computes the base 2 logarithm of <num>.
|
ACE_TCHAR | nibble2hex (u_int n) |
| Hex conversion utility.
|
u_char | hex2byte (ACE_TCHAR c) |
| Convert a hex character to its byte representation.
|
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 s.
|
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 s.
|
int | handle_read_ready (ACE_HANDLE handle, const ACE_Time_Value *timeout) |
| Timed wait for handle to get read ready.
|
int | handle_write_ready (ACE_HANDLE handle, const ACE_Time_Value *timeout) |
| Timed wait for handle to get write ready.
|
int | handle_exception_ready (ACE_HANDLE handle, const ACE_Time_Value *timeout) |
| Timed wait for handle to get exception ready.
|
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.
|
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.
|
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.
|
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.
|
void | restore_non_blocking_mode (ACE_HANDLE handle, int val) |
| Cleanup after a timed operation, restore the appropriate non-blocking status of <handle>.
|
|
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, ...) |
| Varargs variant.
|
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.
|
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.
|
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.
|
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.
|
size_t | allocation_granularity_ = 0 |
| Size of allocation granularity.
|
u_long | crc_table_ [] |
| CRC table.
|
const ACE_TCHAR | hex_chars_ [] = ACE_LIB_TEXT ("0123456789abcdef") |
| Hex characters.
|
char | debug_ = 0 |
| Are we debugging ACE?
|
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.