# ACE_ICMP_Socket Class Reference

An abstract class that forms the basis for usage of the ICMP protocol (that is, support for things such as ping). More...

`#include <ICMP_Socket.h>`

Inheritance diagram for ACE_ICMP_Socket:

[legend]
Collaboration diagram for ACE_ICMP_Socket:

[legend]
List of all members.

## Public Member Functions

int | open (ACE_Addr const &local=ACE_Addr::sap_any, int protocol=IPPROTO_ICMP, int reuse_addr=0)
| Wrapper around the BSD-style `socket` system call (no QoS).
void | dump (void) const
| Dump the state of object.
Data transfer routines.
Data transfer routines.
ssize_t | send (void const *buf, size_t n, ACE_Addr const &addr, int flags=0) const
ssize_t | recv (void *buf, size_t n, ACE_Addr &addr, int flags=0) const
ssize_t | recv (void *buf, size_t n, int flags, ACE_Time_Value const *timeout) const
| TODO: comment.

## Public Attributes

| ACE_ALLOC_HOOK_DECLARE
| Declare the dynamic allocation hooks.

## Protected Member Functions

| ACE_ICMP_Socket (void)
| Default constructor.
| ACE_ICMP_Socket (ACE_Addr const &local, int protocol=IPPROTO_ICMP, int reuse_addr=0)
| Constructor that takes a local listening address.
int | shared_open (ACE_Addr const &local)
| Wrapper around BSD-style `bind` system call.
unsigned short | calculate_checksum (unsigned short *paddress, int len)
| Calculates check-sum.

## Detailed Description

An abstract class that forms the basis for usage of the ICMP protocol (that is, support for things such as ping).

## Constructor & Destructor Documentation

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

| Default constructor.

ACE_ICMP_Socket::ACE_ICMP_Socket | ( | ACE_Addr const & | local,
|  | int | protocol = `IPPROTO_ICMP`,
|  | int | reuse_addr = `0`
| ) | `[protected]`

| Constructor that takes a local listening address.

## Member Function Documentation

unsigned short ACE_ICMP_Socket::calculate_checksum | ( | unsigned short * | paddress,
|  | int | len
| ) | `[protected]`

| Calculates check-sum.

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

| Dump the state of object. Reimplemented from ACE_SOCK. Reimplemented in ACE_Ping_Socket.

int ACE_ICMP_Socket::open | ( | ACE_Addr const & | local = `ACE_Addr::sap_any`,
|  | int | protocol = `IPPROTO_ICMP`,
|  | int | reuse_addr = `0`
| ) |

| Wrapper around the BSD-style `socket` system call (no QoS). Reimplemented in ACE_Ping_Socket.

ssize_t ACE_ICMP_Socket::recv | ( | void * | buf,
|  | size_t | n,
|  | int | flags,
|  | ACE_Time_Value const * | timeout
| ) | const

| TODO: comment.

ssize_t ACE_ICMP_Socket::recv | ( | void * | buf,
|  | size_t | n,
|  | ACE_Addr & | addr,
|  | int | flags = `0`
| ) | const

| Receive an n byte buf from the datagram socket (uses `recvfrom(3)` ).

ssize_t ACE_ICMP_Socket::send | ( | void const * | buf,
|  | size_t | n,
|  | ACE_Addr const & | addr,
|  | int | flags = `0`
| ) | const

| Send an n byte buf to the datagram socket (uses `sendto(3)` ).

int ACE_ICMP_Socket::shared_open | ( | ACE_Addr const & | local | ) | `[protected]`

| Wrapper around BSD-style `bind` system call.

## Member Data Documentation

ACE_ICMP_Socket::ACE_ALLOC_HOOK_DECLARE

| Declare the dynamic allocation hooks. Reimplemented from ACE_SOCK. Reimplemented in ACE_Ping_Socket.

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

- ICMP_Socket.h
- ICMP_Socket.cpp