NAME

ACE - Contains value added ACE methods that extend the behavior of the UNIX and Win32 OS calls.

SYNOPSIS


#include <ace/ACE.h>


class ACE
{
  public:
    static ssize_t recv (
        ACE_HANDLE handle,
        void *buf,
        size_t len,
        int flags
        );
    static ssize_t recv (ACE_HANDLE handle, void *buf, size_t len);
    static ssize_t send (
        ACE_HANDLE handle,
        const void *buf,
        size_t len,
        int flags
        );
    static ssize_t send (
        ACE_HANDLE handle,
        const void *buf,
        size_t len
        );
    static ssize_t recv_n (
        ACE_HANDLE handle,
        void *buf,
        size_t len,
        int flags
        );
    static ssize_t recv_n (ACE_HANDLE handle, void *buf, size_t len);
    static ssize_t send_n (
        ACE_HANDLE handle,
        const void *buf,
        size_t len,
        int flags
        );
    static ssize_t send_n (
        ACE_HANDLE handle,
        const void *buf,
        size_t len
        );
    static ssize_t read_n (ACE_HANDLE handle, void *buf, size_t len);
    static ssize_t write_n (
        ACE_HANDLE handle,
        const void *buf,
        size_t len
        );
    static int bind_port (ACE_HANDLE handle);
    static int handle_timed_accept (
        ACE_HANDLE listener,
        ACE_Time_Value *timeout,
        int restart
        );
    static ACE_HANDLE handle_timed_complete (
        ACE_HANDLE listener,
        ACE_Time_Value *timeout
        );
    static ACE_HANDLE handle_timed_open (
        ACE_Time_Value *timeout,
        LPCTSTR name,
        int flags,
        int perms
        );
    static int set_flags (ACE_HANDLE handle, int flags);
    static int clr_flags (ACE_HANDLE handle, int flags);
    static int set_handle_limit (int new_limit = -1);
    static size_t round_to_pagesize (off_t length);
    static int format_hexdump (
        char *buffer,
        int size,
        char *obuf,
        int obuf_sz
        );
    static char *strenvdup (const char *str);
    static char *strecpy (char *s, const char *t);
    static const char *execname (const char *pathname);
    static const char *basename (const char *pathname, char delim);
    static char *timestamp (char date_and_time[], int time_len);
    static int daemonize (void);
    static int ldfind (
        const char *filename,
        char *pathname,
        size_t maxlen
        );
    static FILE *ldopen (const char *filename, const char *type);
    static u_long hash_pjw (const char *str);
    static int map_errno (int error);
    static void *read_adapter (void *event_handler);
    static int register_stdin_handler (
        ACE_Event_Handler *eh,
        ACE_Reactor *reactor,
        ACE_Thread_Manager *thr_mgr,
        int flags = THR_DETACHED
        );
  private:
    ACE (void);
};

DESCRIPTION

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.

Network I/O functions that factor out differences between Win32

and UNIX.
static ssize_t recv (
    ACE_HANDLE handle,
    void *buf,
    size_t len,
    int flags
    );
static ssize_t recv (ACE_HANDLE handle, void *buf, size_t len);
static ssize_t send (
    ACE_HANDLE handle,
    const void *buf,
    size_t len,
    int flags
    );
static ssize_t send (ACE_HANDLE handle, const void *buf, size_t len);

Network I/O functions that recv and send exactly n bytes.

static ssize_t recv_n (
    ACE_HANDLE handle,
    void *buf,
    size_t len,
    int flags
    );
static ssize_t recv_n (ACE_HANDLE handle, void *buf, size_t len);
static ssize_t send_n (
    ACE_HANDLE handle,
    const void *buf,
    size_t len,
    int flags
    );
static ssize_t send_n (
    ACE_HANDLE handle,
    const void *buf,
    size_t len
    );

File system I/O functions that encapsulate differences between

UNIX and Win32 and also send and recv exactly n bytes.
static ssize_t read_n (ACE_HANDLE handle, void *buf, size_t len);
static ssize_t write_n (
    ACE_HANDLE handle,
    const void *buf,
    size_t len
    );

Functions that perform useful behavior related to establishing

socket connections active and passively.
static int bind_port (ACE_HANDLE handle);
static int handle_timed_accept (
    ACE_HANDLE listener,
    ACE_Time_Value *timeout,
    int restart
    );
static ACE_HANDLE handle_timed_complete (
    ACE_HANDLE listener,
    ACE_Time_Value *timeout
    );

Operations on HANDLEs.

static ACE_HANDLE handle_timed_open (
    ACE_Time_Value *timeout,
    LPCTSTR name,
    int flags,
    int perms
    );
static int set_flags (ACE_HANDLE handle, int flags);
static int clr_flags (ACE_HANDLE handle, int flags);
static int set_handle_limit (int new_limit = -1);

Miscelleous functions.

static size_t round_to_pagesize (off_t length);
static int format_hexdump (
    char *buffer,
    int size,
    char *obuf,
    int obuf_sz
    );
static char *strenvdup (const char *str);
static char *strecpy (char *s, const char *t);
static const char *execname (const char *pathname);
static const char *basename (const char *pathname, char delim);
static char *timestamp (char date_and_time[], int time_len);
static int daemonize (void);

Methods for searching and opening shared libraries using

relative naming.
static int ldfind (
    const char *filename,
    char *pathname,
    size_t maxlen
    );
static FILE *ldopen (const char *filename, const char *type);
static u_long hash_pjw (const char *str);
static int map_errno (int error);
static void *read_adapter (void *event_handler);
static int register_stdin_handler (
    ACE_Event_Handler *eh,
    ACE_Reactor *reactor,
    ACE_Thread_Manager *thr_mgr,
    int flags = THR_DETACHED
    );

AUTHOR

Doug Schmidt

LIBRARY

ace