feisty meow concerns codebase  2.140
sockets Namespace Reference

Provides access to the operating system's socket methods. More...

Classes

class  base_address
 
class  internet_address
 this type of address describes a destination out on the internet. More...
 
class  machine_uid
 
class  internet_machine_uid
 
class  machine_uid_array
 
class  range_limiter
 provides a mechanism for restricting access to a resource by the client's IP address. More...
 
class  raw_socket
 
class  sequence_tracker
 this will keep track of sequencing for a communication process on a per host basis. More...
 
class  socket_data
 
class  socket_minder
 
class  span_manager
 Manages lists of numbers representing the completion of some activity. More...
 
class  spocket
 Abstraction for a higher-level BSD socket that is platform independent. More...
 
class  subnet_calculator
 Provides an easy way to determine the range of a subnet given the subnet mask and a sample IP address. More...
 
class  tcpip_stack
 Helpful functions for interacting with TCP/IP stacks. More...
 
class  communication_commons
 Defines our communication related outcome values. More...
 
class  throughput_counter
 Reports on average bandwidth of the transfers being measured. More...
 

Enumerations

enum  socket_interests {
  SI_READABLE = 0x1 , SI_WRITABLE = 0x2 , SI_CONNECTED = 0x4 , SI_DISCONNECTED = 0x8 ,
  SI_ERRONEOUS = 0x10 , SI_BASELINE = 0x20 , SI_ALL_SOCK_INT = 0xFF
}
 

Functions

 SAFE_STATIC_CONST (byte_array, internet_address::localhost,(ADDRESS_SIZE, localhosts_bytes)) bool internet_address
 
 SAFE_STATIC_CONST (byte_array, internet_address::nil_address,(ADDRESS_SIZE, nil_address_bytes)) bool internet_address
 
void combine (astring &existing, const astring &addition)
 

Variables

const abyte localhosts_bytes [] = { 127, 0, 0, 1 }
 
const abyte nil_address_bytes [] = { 0, 0, 0, 0 }
 
const int MULTIPLE_DISCONNECT_CHECKS = 28
 
const basis::un_int NON_BLOCKING = FIONBIO
 
const basis::un_int IOCTL_READ = FIONREAD
 
const int MAX_BITS_FOR_SEQ_HASH = 10
 
const int CLEANING_SPAN = 20000
 
const int MAX_ITEMS = 200
 
const int SOCKET_CHECK_INTERVAL = 50
 
const int SOCKMIND_MAXIMUM_RECEIVES = 10
 
const int MAXIMUM_TRANSFER_CHUNK = 512 * KILOBYTE
 
const int CONN_ALERT_INTERVAL = 100
 
const int MULTI_SELECT_TIMEOUT = 250
 
const int PENDING_CONNECTIONS_ALLOWED = 14
 
const int RESOLVE_INTERVAL = 300
 

Detailed Description

Provides access to the operating system's socket methods.

NOTE: This class does not provide any sort of synchronization of the sockets involved. If you have multiple threads arbitrarily calling select and read, then some selects will claim the socket was disconnected (since the other thread might have grabbed the data that seemed to be ready but then wasn't–a sign of a disconnect). Ensure that your accesses of the socket are serialized.

Enumeration Type Documentation

◆ socket_interests

Enumerator
SI_READABLE 
SI_WRITABLE 
SI_CONNECTED 
SI_DISCONNECTED 
SI_ERRONEOUS 
SI_BASELINE 
SI_ALL_SOCK_INT 

Definition at line 42 of file raw_socket.h.

Function Documentation

◆ combine()

void sockets::combine ( astring existing,
const astring addition 
)

Definition at line 103 of file raw_socket.cpp.

References basis::astring::t().

Referenced by sockets::raw_socket::interest_name().

◆ SAFE_STATIC_CONST() [1/2]

sockets::SAFE_STATIC_CONST ( byte_array  ,
internet_address::localhost  ,
(ADDRESS_SIZE, localhosts_bytes  
)

Definition at line 173 of file internet_address.cpp.

References basis::astring::equal_to(), and basis::astring::to_lower().

◆ SAFE_STATIC_CONST() [2/2]

sockets::SAFE_STATIC_CONST ( byte_array  ,
internet_address::nil_address  ,
(ADDRESS_SIZE, nil_address_bytes  
)

Definition at line 278 of file internet_address.cpp.

Variable Documentation

◆ CLEANING_SPAN

const int sockets::CLEANING_SPAN = 20000

Definition at line 39 of file sequence_tracker.cpp.

◆ CONN_ALERT_INTERVAL

const int sockets::CONN_ALERT_INTERVAL = 100

Definition at line 64 of file socket_minder.cpp.

Referenced by sockets::socket_minder::handle_pending_connecters().

◆ IOCTL_READ

const basis::un_int sockets::IOCTL_READ = FIONREAD

Definition at line 62 of file raw_socket.cpp.

◆ localhosts_bytes

const abyte sockets::localhosts_bytes[] = { 127, 0, 0, 1 }

Definition at line 172 of file internet_address.cpp.

◆ MAX_BITS_FOR_SEQ_HASH

const int sockets::MAX_BITS_FOR_SEQ_HASH = 10

Definition at line 36 of file sequence_tracker.cpp.

◆ MAX_ITEMS

const int sockets::MAX_ITEMS = 200

Definition at line 43 of file sequence_tracker.cpp.

◆ MAXIMUM_TRANSFER_CHUNK

const int sockets::MAXIMUM_TRANSFER_CHUNK = 512 * KILOBYTE

Definition at line 61 of file socket_minder.cpp.

Referenced by sockets::socket_minder::push_receives().

◆ MULTI_SELECT_TIMEOUT

const int sockets::MULTI_SELECT_TIMEOUT = 250

Definition at line 68 of file socket_minder.cpp.

Referenced by sockets::socket_minder::snoozy_select().

◆ MULTIPLE_DISCONNECT_CHECKS

const int sockets::MULTIPLE_DISCONNECT_CHECKS = 28

Definition at line 52 of file raw_socket.cpp.

Referenced by sockets::raw_socket::analyze_select_result().

◆ nil_address_bytes

const abyte sockets::nil_address_bytes[] = { 0, 0, 0, 0 }

Definition at line 277 of file internet_address.cpp.

◆ NON_BLOCKING

const basis::un_int sockets::NON_BLOCKING = FIONBIO

Definition at line 61 of file raw_socket.cpp.

Referenced by sockets::raw_socket::set_non_blocking().

◆ PENDING_CONNECTIONS_ALLOWED

const int sockets::PENDING_CONNECTIONS_ALLOWED = 14

Definition at line 57 of file spocket.cpp.

Referenced by sockets::spocket::accept().

◆ RESOLVE_INTERVAL

const int sockets::RESOLVE_INTERVAL = 300

Definition at line 62 of file spocket.cpp.

◆ SOCKET_CHECK_INTERVAL

const int sockets::SOCKET_CHECK_INTERVAL = 50

Definition at line 55 of file socket_minder.cpp.

◆ SOCKMIND_MAXIMUM_RECEIVES

const int sockets::SOCKMIND_MAXIMUM_RECEIVES = 10

Definition at line 58 of file socket_minder.cpp.

Referenced by sockets::socket_minder::push_receives().