ACE  6.3.4
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
ACE_Ping_Socket Class Reference

This class is useful to perform ICMP echo checks (pinging) on the party of your interest. It may be used as well to check LAN-adapters against 3rd parties. More...

#include <Ping_Socket.h>

Inheritance diagram for ACE_Ping_Socket:
Inheritance graph
[legend]
Collaboration diagram for ACE_Ping_Socket:
Collaboration graph
[legend]

Public Types

enum  { PING_BUFFER_SIZE = (1024 * 2) }
 

Public Member Functions

 ACE_Ping_Socket (void)
 Default constructor. More...
 
 ACE_Ping_Socket (ACE_Addr const &local, int protocol=IPPROTO_ICMP, int reuse_addr=0)
 
 ~ACE_Ping_Socket (void)
 Destructor. More...
 
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). More...
 
int send_echo_check (ACE_INET_Addr &remote_addr, bool to_connect=false)
 to_connect = true - makes connect to remote address More...
 
int process_incoming_dgram (char *ptr, ssize_t len)
 
int make_echo_check (ACE_INET_Addr &remote_addr, bool to_connect=false, ACE_Time_Value const *timeout=&time_default_)
 to_connect = true - makes connect to remote address More...
 
char * icmp_recv_buff (void)
 
void dump (void) const
 Dump the state of an object. More...
 
- Public Member Functions inherited from ACE_ICMP_Socket
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). More...
 
void dump (void) const
 Dump the state of object. More...
 
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. More...
 
- Public Member Functions inherited from ACE_SOCK
int set_option (int level, int option, void *optval, int optlen) const
 Wrapper around the setsockopt system call. More...
 
int get_option (int level, int option, void *optval, int *optlen) const
 Wrapper around the getsockopt system call. More...
 
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. More...
 
int open (int type, int protocol_family, int protocol, int reuse_addr)
 Wrapper around the BSD-style socket system call (no QoS). More...
 
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. More...
 
- Public Member Functions inherited from ACE_IPC_SAP
int control (int cmd, void *) const
 Interface for <ioctl>. More...
 
int enable (int value) const
 
int disable (int value) const
 
ACE_HANDLE get_handle (void) const
 Get the underlying handle. More...
 
void set_handle (ACE_HANDLE handle)
 Set the underlying handle. More...
 
void dump (void) const
 Dump the state of an object. More...
 

Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks. More...
 
- Public Attributes inherited from ACE_ICMP_Socket
 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks. More...
 
- Public Attributes inherited from ACE_SOCK
 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks. More...
 
- Public Attributes inherited from ACE_IPC_SAP
 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks. More...
 

Static Public Attributes

static ACE_Time_Value const time_default_
 

Private Types

typedef ACE_ICMP_Socket inherited
 

Private Member Functions

int receive_echo_reply (ACE_Time_Value const *timeout)
 
int get_remote_addr (ACE_INET_Addr &addr) const
 Do not allow this function to percolate up to this interface. More...
 

Private Attributes

char icmp_send_buff_ [PING_BUFFER_SIZE]
 
char icmp_recv_buff_ [PING_BUFFER_SIZE]
 
ACE_UINT16 sequence_number_
 
bool connected_socket_
 

Additional Inherited Members

- Protected Member Functions inherited from ACE_ICMP_Socket
 ACE_ICMP_Socket (void)
 Default constructor. More...
 
 ACE_ICMP_Socket (ACE_Addr const &local, int protocol=IPPROTO_ICMP, int reuse_addr=0)
 Constructor that takes a local listening address. More...
 
int shared_open (ACE_Addr const &local)
 Wrapper around BSD-style bind system call. More...
 
unsigned short calculate_checksum (unsigned short *paddress, int len)
 Calculates check-sum. More...
 
- Protected Member Functions inherited from ACE_SOCK
 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. More...
 
- Protected Member Functions inherited from ACE_IPC_SAP
 ACE_IPC_SAP (void)
 Default constructor. More...
 
 ~ACE_IPC_SAP (void)
 Protected destructor. More...
 

Detailed Description

This class is useful to perform ICMP echo checks (pinging) on the party of your interest. It may be used as well to check LAN-adapters against 3rd parties.

Member Typedef Documentation

Member Enumeration Documentation

anonymous enum
Enumerator
PING_BUFFER_SIZE 

Constructor & Destructor Documentation

ACE_Ping_Socket::ACE_Ping_Socket ( void  )

Default constructor.

ACE_Ping_Socket::ACE_Ping_Socket ( ACE_Addr const &  local,
int  protocol = IPPROTO_ICMP,
int  reuse_addr = 0 
)
ACE_Ping_Socket::~ACE_Ping_Socket ( void  )

Destructor.

Member Function Documentation

void ACE_Ping_Socket::dump ( void  ) const

Dump the state of an object.

int ACE_Ping_Socket::get_remote_addr ( ACE_INET_Addr addr) const
private

Do not allow this function to percolate up to this interface.

char * ACE_Ping_Socket::icmp_recv_buff ( void  )
inline
int ACE_Ping_Socket::make_echo_check ( ACE_INET_Addr remote_addr,
bool  to_connect = false,
ACE_Time_Value const *  timeout = &time_default_ 
)

to_connect = true - makes connect to remote address

int ACE_Ping_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).

int ACE_Ping_Socket::process_incoming_dgram ( char *  ptr,
ssize_t  len 
)

To receive ICMP_ECHOREPLY. To be called after successfully sending ICMP_ECHO.

int ACE_Ping_Socket::receive_echo_reply ( ACE_Time_Value const *  timeout)
private
int ACE_Ping_Socket::send_echo_check ( ACE_INET_Addr remote_addr,
bool  to_connect = false 
)

to_connect = true - makes connect to remote address

Member Data Documentation

ACE_Ping_Socket::ACE_ALLOC_HOOK_DECLARE

Declare the dynamic allocation hooks.

bool ACE_Ping_Socket::connected_socket_
private
char ACE_Ping_Socket::icmp_recv_buff_[PING_BUFFER_SIZE]
private
char ACE_Ping_Socket::icmp_send_buff_[PING_BUFFER_SIZE]
private
ACE_UINT16 ACE_Ping_Socket::sequence_number_
private
ACE_Time_Value const ACE_Ping_Socket::time_default_
static

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