# ACE_SOCK Class Reference

An abstract class that forms the basis for more specific classes, such as <ace_sock_acceptor> and <ace_sock_stream>. Do not instantiate this class. More...

`#include <SOCK.h>`

Inheritance diagram for ACE_SOCK:

[legend]
Collaboration diagram for ACE_SOCK:

[legend]
List of all members.

## Public Member Functions

int | set_option (int level, int option, void *optval, int optlen) const
| Wrapper around the <setsockopt> system call.
int | get_option (int level, int option, void *optval, int *optlen) const
| Wrapper around the <getsockopt> system call.
int | close (void)
int | get_local_addr (ACE_Addr &) const
int | get_remote_addr (ACE_Addr &) const
void | dump (void) const
| Dump the state of an object.
int | open (int type, int protocol_family, int protocol, int reuse_addr)
| Wrapper around the BSD-style <socket> system call (no QoS).
int | open (int type, int protocol_family, int protocol, ACE_Protocol_Info *protocolinfo, ACE_SOCK_GROUP g, u_long flags, int reuse_addr)
| Wrapper around the QoS-enabled <wsasocket> function.

## Public Attributes

| ACE_ALLOC_HOOK_DECLARE
| Declare the dynamic allocation hooks.

## Protected Member Functions

| ACE_SOCK (int type, int protocol_family, int protocol=0, int reuse_addr=0)
| ACE_SOCK (int type, int protocol_family, int protocol, ACE_Protocol_Info *protocolinfo, ACE_SOCK_GROUP g, u_long flags, int reuse_addr)
| ACE_SOCK (void)
| ~ACE_SOCK (void)
| Protected destructor.

## Detailed Description

An abstract class that forms the basis for more specific classes, such as <ace_sock_acceptor> and <ace_sock_stream>. Do not instantiate this class.

This class provides functions that are common to all of the <ACE_SOCK_*> classes. <ace_sock> provides the ability to get and set socket options, get the local and remote addresses, and open and close a socket handle.

## Constructor & Destructor Documentation

ACE_SOCK::ACE_SOCK | ( | int | type,
|  | int | protocol_family,
|  | int | protocol = `0`,
|  | int | reuse_addr = `0`
| ) | `[protected]`

| Constructor with arguments to call the BSD-style <socket> system call (no QoS).

ACE_SOCK::ACE_SOCK | ( | int | type,
|  | int | protocol_family,
|  | int | protocol,
|  | ACE_Protocol_Info * | protocolinfo,
|  | ACE_SOCK_GROUP | g,
|  | u_long | flags,
|  | int | reuse_addr
| ) | `[protected]`

| Constructor with arguments to call the QoS-enabled <wsasocket> function.

ACE_SOCK::ACE_SOCK | ( | void |  | ) | `[protected]`

| Default constructor is protected to prevent instances of this class from being defined.

ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE ACE_SOCK::~ACE_SOCK | ( | void |  | ) | `[protected]`

| Protected destructor. Not a virtual destructor. Protected destructor to prevent operator delete() from being called through a base class ACE_SOCK pointer/reference.

## Member Function Documentation

int ACE_SOCK::close | ( | void |  | ) |

Close the socket. This method also sets the object's handle value to ACE_INVALID_HANDLE.

Returns:
  The result of closing the socket; 0 if the handle value was already ACE_INVALID_HANDLE.

Reimplemented in ACE_MEM_Stream, ACE_SOCK_Acceptor, ACE_SOCK_Dgram_Bcast, ACE_SOCK_SEQPACK_Acceptor, ACE_SOCK_SEQPACK_Association, and ACE_SOCK_Stream.

ACE_BEGIN_VERSIONED_NAMESPACE_DECL void ACE_SOCK::dump | ( | void |  | ) | const

Dump the state of an object.

Reimplemented from ACE_IPC_SAP.

Reimplemented in ACE_ICMP_Socket, ACE_LSOCK_Acceptor, ACE_LSOCK_CODgram, ACE_LSOCK_Dgram, ACE_LSOCK_Stream, ACE_MEM_Acceptor, ACE_MEM_IO, ACE_MEM_Stream, ACE_Ping_Socket, ACE_SOCK_Acceptor, ACE_SOCK_CODgram, ACE_SOCK_Dgram, ACE_SOCK_Dgram_Bcast, ACE_SOCK_Dgram_Mcast, ACE_SOCK_IO, ACE_SOCK_SEQPACK_Acceptor, ACE_SOCK_SEQPACK_Association, and ACE_SOCK_Stream.

int ACE_SOCK::get_local_addr | ( | ACE_Addr & |  | ) | const

| Return the local endpoint address in the referenced <ace_addr>. Returns 0 if successful, else -1. Reimplemented in ACE_LSOCK_Acceptor, and ACE_LSOCK_Stream.

ACE_INLINE int ACE_SOCK::get_option | ( | int | level,
|  | int | option,
|  | void * | optval,
|  | int * | optlen
| ) | const

| Wrapper around the <getsockopt> system call.

int ACE_SOCK::get_remote_addr | ( | ACE_Addr & |  | ) | const

| Return the address of the remotely connected peer (if there is one), in the referenced <ace_addr>. Returns 0 if successful, else -1. Reimplemented in ACE_LSOCK_Stream, ACE_SOCK_Acceptor, ACE_SOCK_Dgram, ACE_SOCK_Dgram_Bcast, and ACE_SOCK_SEQPACK_Acceptor.

int ACE_SOCK::open | ( | int | type,
|  | int | protocol_family,
|  | int | protocol,
|  | ACE_Protocol_Info * | protocolinfo,
|  | ACE_SOCK_GROUP | g,
|  | u_long | flags,
|  | int | reuse_addr
| ) |

| Wrapper around the QoS-enabled <wsasocket> function.

int ACE_SOCK::open | ( | int | type,
|  | int | protocol_family,
|  | int | protocol,
|  | int | reuse_addr
| ) |

| Wrapper around the BSD-style <socket> system call (no QoS).

ACE_INLINE int ACE_SOCK::set_option | ( | int | level,
|  | int | option,
|  | void * | optval,
|  | int | optlen
| ) | const

| Wrapper around the <setsockopt> system call.

## Member Data Documentation

ACE_SOCK::ACE_ALLOC_HOOK_DECLARE

Declare the dynamic allocation hooks.

Reimplemented from ACE_IPC_SAP.

Reimplemented in ACE_ICMP_Socket, ACE_LSOCK_Acceptor, ACE_LSOCK_CODgram, ACE_LSOCK_Dgram, ACE_LSOCK_Stream, ACE_MEM_Acceptor, ACE_MEM_IO, ACE_MEM_Stream, ACE_Ping_Socket, ACE_SOCK_Acceptor, ACE_SOCK_CODgram, ACE_SOCK_Dgram, ACE_SOCK_Dgram_Bcast, ACE_SOCK_Dgram_Mcast, ACE_SOCK_IO, ACE_SOCK_SEQPACK_Acceptor, ACE_SOCK_SEQPACK_Association, and ACE_SOCK_Stream.

The documentation for this class was generated from the following files:

- SOCK.h
- SOCK.cpp
- SOCK.inl