The C++ framework for developing highly scalable, high performance servers on Windows platforms.

JetByteTools::Socket Namespace Reference


Classes

class  CAccumulationBuffer
class  CAddress
 Essentially a smart pointer to a CAddressImpl instance. More...
class  CAddressImpl
 A reference counted wrapper around a SOCKADDR_STORAGE structure that knows how big the address that's stored is. More...
class  CAddressImplReferenceTracker
class  CAddressInfo
 A class that provides addressing information for the specified host. More...
class  CAddressIPv4
 An IPv4 address. More...
class  CAddressIPv6
 An IPv6 address. More...
class  CAddressRenderer
 An implementation of IRenderAddresses. More...
class  CAddressType
 A generic implementation of the IAddressType interface. Should be suitable for all types of addresses, just supply the appropriate values to the constructor. More...
class  CAddressTypeIPv4
 A implementation of the IAddressType interface for IPv4. More...
class  CAddressTypeIPv6
 A implementation of the IAddressType interface for IPv6. More...
class  CAddressWrapper
 A facade that allows a SOCADDR * to be accessed via the IAddress interface. More...
class  CConnectionLimiter
 An implementation of ILimitConnections. More...
class  CConnectionMaintainingStreamSocketConnectionFilter
 A connection filter that will attempt to reconnect connections that are terminated after a configurable timeout. You can indicate that you want a connection to be maintained by calling MaintainConnections() and you can allow the connection to close and stay closed by calling CancelConnectionRetries(). More...
class  CDispatchRestrictor
class  TConnectionManagerBase
class  TDatagramFilteringHelper
class  CDatagramServerSocket
 A datagram socket that allows you to SendTo() any host but restricts who you can RecvFrom(), basically you can only recv data from the port that the associated server is listening on. More...
class  CDatagramServerSocketAllocator
 A socket allocator that allocates datagram server sockets. Note that most of the work is down in CSocketAllocator. More...
class  CDatagramSocket
 A datagram socket that allows you to RecvFrom() and SendTo() any host. More...
class  CDatagramSocketAllocator
 A socket allocator that allocates datagram sockets. Note that most of the work is down in CSocketAllocator. More...
class  TDatagramSocketConnectionManager
 A connection manager for datagram sockets. More...
class  CDatagramSocketConnectionManagerBase
 A connection manager for datagram sockets. More...
class  CDatagramSocketConnectionManagerCallback
 An object that implements the CDatagramSocketConnectionManager callback interface and does nothing. You can derive from this class and override just the functions that you need to. More...
class  TDatagramSocketServer
 A socket server for datagram sockets. More...
class  CDatagramSocketServerBase
 A socket server for datagram sockets. More...
class  CDatagramSocketServerCallback
 An object that implements the CIDatagramSocketServer callback interface and does nothing. You can derive from this class and override just the functions that you need to. More...
class  CDebugLog
class  CFilterDataBase
class  CFilteringDatagramSocketConnectionManagerBase
class  CFilteringStreamSocketConnectionManagerBase
 A connection manager for stream sockets. More...
class  CFlowControlDatagramSocketConnectionFilter
class  CFlowControlDatagramSocketConnectionFilterData
class  CFlowControlListProcessor
 A connection filter that will manage the flow of data on a connection so as to prevent uncontrolled resource usage if there is more data to send than the connection can manage. The filter monitors the rate at which writes that are issues on the connection are completing. If the rate is slower than the rate at which new writes are being issued on the connection then the filter begins to buffer the data in a list and will send it when the connection has capacity. If the list exceeds a predefined maximum amount of buffered data then the filter will either begin to discard data either in a FIFO or LIFO order or it will call a callback method that you supply and give you the list to deal with. More...
class  CFlowControlStreamSocketConnectionData
class  CFlowControlStreamSocketConnectionFilter
 A connection filter that will manage the flow of data on a connection so as to prevent uncontrolled resource usage if there is more data to send than the connection can manage. The filter monitors the rate at which writes that are issues on the connection are completing. If the rate is slower than the rate at which new writes are being issued on the connection then the filter begins to buffer the data in a list and will send it when the connection has capacity. If the list exceeds a predefined maximum amount of buffered data then the filter will either begin to discard data either in a FIFO or LIFO order or it will call a callback method that you supply and give you the list to deal with. More...
class  CFullAddress
 A class that uses hard coded assumptions to fabricate "full addresses" from a SOCADDR structure and and is somewhat fragile in the face of new address family support. Essentially we guess the protocol, which isn't that hard. More...
class  CFullAddressWrapper
 A facade that allows a SOCADDR * to be accessed via the IFullAddress interface. Note that this has to use some hard coded assumptions to fill in the missing bits that aren't contained in a SOCADDR structure and so will be somewhat fragile in the face of new address family support. More...
class  IAcceptDatagramSocketConnectionFilters
 This interface works in conjunction with IFilterDatagramSocketConnections and allows datagram filters to be added to a class that can use them. More...
class  IAcceptStreamSocketConnectionFilters
 This interface works in conjunction with IFilterStreamSocketConnections and allows stream filters to be added to a class that can use them. More...
class  IAddress
 An interface that represents a Winsock address. This interface only deals with the data that's available from the underlying address; none of the 'meta-data' related to the address type is available; see IFullAddress for that stuff. More...
class  IAddressRef
 A reference counted IAddress. More...
class  IAddressType
 An interface that provides meta-data information about the type of a Winsock Address. More...
class  IAllocateDatagramServerSockets
 An interface for allocating IPoolableDatagramServerSocket. More...
class  IAllocateDatagramSockets
 An interface for allocating IPoolableDatagramSocket. More...
class  IAllocatePoolableSockets
 An interface for managing IPoolableSocket. More...
class  IAllocateSequencedStreamSockets
 An interface for allocating instances of IPoolableStreamSocket that support sequencing of reads and writes. Before you allocate the first socket you can request that the socket manage buffer sequencing counters for you by requesting a "sequnce id". This id can then be passed to IManageStreamSocketConnectionFilters::ReadCompleted() and IManageStreamSocketConnectionFilters::RequestWrite() calls to have the buffer sequenced using the specified sequnce id. Sockets allocated with this interface automatically support sequencing of the 'primary' byte stream. More...
class  IAllocateStreamSockets
 An interface for allocating instances of IPoolableStreamSocket. More...
class  IAsyncSocket
 An interface to the functionality common to all asynchronous sockets. The "Try" functions add to the functions from JetByteTools::IO::IAsyncIOStream by adding versions that return false on failure rather than by throwing an exception. More...
class  ICreateFilteredStreamSocketConnections
 An interface used to create outgoing stream socket connections. More...
class  ICreateStreamSocketConnections
 An interface used to create outgoing stream socket connections. More...
class  IDatagramSendSocket
class  IDatagramServerSocket
 This interface provides an equivalent interface to the one provided by IAsyncSocket for IDatagramSocket and IStreamSocket. It does not feature the ability to issue Read() calls as the sockets derived from this interface are purely disconnected, datagram, server sockets; i.e. they're how you send a datagram back to whoever sent you the datagram that has just arrived. IDatagramSocket supports a pseudo connected interface where you can issue Read() calls ... More...
class  IDatagramServerSocketCallback
 The socket server callback interface is composed from more specific interfaces using inheritance. This is purely to allow the framework to work in terms of the narrowest interface internally and does not affect the user of the code. This is, effectively, the first interface that the user would wish to implement. More...
class  IDatagramServerSocketConnectionManager
 An interface that is used to allow a socket to communicate with the connection manager that manages it. This interface is supplied to the socket in the call to Attach(). More...
class  IDatagramServerSocketConnectionManagerIO
class  IDatagramServerSocketEx
 A socket interface that adds functionality that is used internally by the socket server classe. More...
class  IDatagramSocket
 This interface adds datagram socket specific functionality to the IAsyncSocket interface. Note that instances of IDatagramSocket support a pseudo connected interface where you can issues Read() calls and RecvFrom() any address. IDatagramServerSocket presents a much more restricted interface intended for use from "pure" datagram servers. More...
class  IDatagramSocketCallback
 The connection manager and socket server callback interfaces are composed from more specific interfaces using inheritance. This is purely to allow the framework to work in terms of the narrowest interface internally and does not affect the user of the code. Effectively the first interface that the user would wish to implement is at the IXXXConnectionManagerCallback level and above. More...
class  IDatagramSocketConnectionManager
 An interface that is used to allow a socket to communicate with the connection manager that manages it. This interface is supplied to the socket in the call to Attach(). More...
class  IDatagramSocketConnectionManagerCallback
 The connection manager and socket server callback interfaces are composed from more specific interfaces using inheritance. This is purely to allow the framework to work in terms of the narrowest interface internally and does not affect the user of the code. Effectively the first interface that the user would wish to implement is at the IXXXConnectionManagerCallback level and above. More...
class  IDatagramSocketConnectionManagerIO
class  IDatagramSocketEx
 A socket interface that adds functionality that is used internally by the connection manager and socket server classes. More...
class  IDatagramSocketServerCallback
 The socket server callback interface is composed from more specific interfaces using inheritance. This is purely to allow the framework to work in terms of the narrowest interface internally and does not affect the user of the code. This is, effectively, the first interface that the user would wish to implement. More...
class  IFilterableDatagramSocket
 An interface which adds functionality that is useful when filtering a connection. More...
class  IFilterableStreamSocket
 An interface which adds functionality that is useful when filtering a connection. More...
class  IFilterData
class  IFilterDatagramSocketConnections
 An interface for objects that wish to filter datagrams. An instance of this interface can be added to a CDatagramSocketConnectionManager as a filter by calling AddConnectionFilter(). Filters are called in order to process calls with requests being called from "top to bottom" and completions being called from "bottom to top". For example, if we call AddConnectionFilter() with filter A and then with filter B and then make a write request the data would be processed first by filter B and then by filter A (user -> B -> A -> wire). When a read completes the data is processed first by filter A and then by filter B (wire -> A -> B -> user). Each filter can manipulate the contents of the datagram flow and may or may not pass calls onto filters below it in the chain. Thus a filter can swallow requests from layers above it by not passing them on and can also generate requests of its own. A filter is initialised once by the connection manager before it is used and during this initialisation it is given a management interface that can be used to generate new read and write events. More...
class  IFilterStreamSocketConnections
 An interface for objects that wish to filter a byte stream. An instance of this interface can be added to a CStreamSocketConnectionManager as a filter by calling AddConnectionFilter(). Filters are called in order to process calls with requests being called from "top to bottom" and completions being called from "bottom to top". For example, if we call AddConnectionFilter() with filter A and then with filter B and then make a write request the data would be processed first by filter B and then by filter A (user -> B -> A -> wire). When a read completes the data is processed first by filter A and then by filter B (wire -> A -> B -> user). Each filter can manipulate the connection and data flow and may or may not pass calls onto filters below it in the chain. Thus a filter can swallow requests from layers above it by not passing them on and can also generate requests of its own. A filter is initialised once by the connection manager before it is used and during this initialisation it is given a management interface that can be used to generate new read and write events. More...
class  IFullAddress
 An interface that represents an IAddress which knows about its address type and that can create dynamically allocated copies of itself. More...
class  IICEConnection
class  IICEConnectionCallback
class  IICEConnectionManager
class  IICEConnectionManagerCallback
class  IICEControlledDTLSConnection
class  IICEControlledDTLSConnectionCallback
class  IICEControlledDTLSConnectionFactory
class  IIPAddress
 An interface that represents an IP address which knows about its port. More...
class  ILimitConnections
 An interface to an object that manages the number of connections currently in progress and that can disallow any more connections being made. Call CanCreateConnection() when you wish to create a new connection and if it returns true then you can create your connection and call ReleaseConnection() when the connection terminates. If it returns false then you should not create your connection. More...
class  IMaintainStreamSocketConnections
 An interface used to create and maintain outgoing stream socket connections. More...
class  IManageDatagramSocketConnectionFilters
 This interface works in conjunction with IFilterDatagramSocketConnections to allow datagram filters to issue new read and write events. Any filter that either can swallow data buffers (by not passing on calls to the next filter in the chain) or that generates data buffers (passing data to the next filter in the chain when that data wasn't generated by a previous layer in the chain) should always use this interface to pass data buffers to the next layer in the chain. Failure to do so will affect any additional filter processing that may (or may not) be occurring. More...
class  IManageNamedServers
class  IManageStreamSocketConnectionFilters
 This interface works in conjunction with IFilterStreamSocketConnections to allow stream filters to issue new read and write events. Any filter that either can swallow data buffers (by not passing on calls to the next filter in the chain) or that generates data buffers (passing data to the next filter in the chain when that data wasn't generated by a previous layer in the chain) should always use this interface to pass data buffers to the next layer in the chain. Failure to do so will affect any buffer sequencing that may (or may not) be occurring. A filter can specify that its own sequence counter is used by requesting one from the socket allocator and then by passing the sequence id to the relevant calls. If a filter only ever injects new data into a stream then it can use the socket's own sequence counter and calls to the methods that don't take an explicit sequence id. More...
class  IMonitorDatagramSocketFlowControl
class  IMonitorICEControlledDTLSConnection
class  IMonitorSocketAllocation
 An interface to allow a class to monitor the operation of a class that allocates sockets. The design of the interface assumes that sockets go through the following life-cycle: created, allocated, released, destroyed. Allocators that pool sockets can allow a socket to be created once and then allocated and released several times before being deleted. Incrementing a counter when OnSocketCreated() is called and decrementing it when OnSocketDestroyed() is called will give you a count of the number of sockets that are in existence at any one time. A corresponding counter that is incremented in OnSocketAttached() and decremented in OnSocketReleased() is called will give a count of the sockets that are currently in use. More...
class  IMonitorStreamSocketFlowControl
 An interface to allow a class to monitor the operation of a class that implements flow control for stream socket connections. The design of the interface assumes that only buffers that are affected by flow control are noted by the monitor. The effects of flow control on a buffer that is being sent on a connection are as follows: delayed, sent or discarded. A buffer that is delayed is being held for a while until it can be sent. A buffer that has been sent is a buffer that was previously delayed and that has now been written to the connection. A buffer that is discarded can either be a new buffer that is being discarded rather than delayed or an existing delayed buffer that will now never be sent. Incrementing a counter when OnBufferDelayed() is called and decrementing it when OnBufferSent() is called, OR when 'wasDelayed' is true and OnBufferDiscarded() is called will give you a count of buffers that are currently delayed. Incrementing a counter when OnBufferDiscarded() is called will give you a count of all the buffers that were discarded. You can use the 'id' value as a way of maintaining these counts on a per-connection basis. The Id that you return from a call to OnConnectionEstablished() will be passed with every call to the other monitor functions. Note that if all you require is a unique id per connection then you can simply cast the address of the supplied socket to a ConnectionId in OnConnectionEstablished() and return that. More...
class  INamedServerShutdownCallback
class  CIORecursionLimiter
class  IPoolableDatagramServerSocket
 An interface that exists purely to tie together the poolable nature of a socket and the datagram server socket nature of a socket into a poolable datagram server socket. The CDatagramServerSocketAllocator object works in terms of this interface. More...
class  IPoolableDatagramSocket
 An interface that exists purely to tie together the poolable nature of a socket and the datagram socket nature of a socket into a poolable datagram socket. The CDatagramSocketAllocator object works in terms of this interface. More...
class  IPoolableSocket
 The IPoolableSocket interface provides the 'poolability' of the sockets. Poolable sockets are pooled using a CNodeList and so, for a socket to be pooled it must derive from CNodeList::Node. When a socket is used from the pool or released to the pool the allocator passes the socket's user data to the allocation monitor and so poolable sockets must support IIndexedOpaqueUserData. More...
class  IPoolableSocketManager
 A convenience interface that acts as a common base class for SocketManagers simply so that the whole of the socket allocator common code doesn't need to be templatised. Typesafety is ensured by TSocketAllocator. More...
class  IPoolableStreamSocket
 An interface that exists purely to tie together the poolable nature of a socket and the stream socket nature of a socket into a poolable stream socket. The CStreamSocketAllocator and CSequencedStreamSocketAllocator objects work in terms of this interface. More...
class  IReleaseCreatedConnections
class  IRenderAddresses
 An interface to an object that can take an instance of IAddress and produce a readable textual representation of that address. So, for example, it could takean IPv4 address and render it in standard dotted IP format xxx.xxx.xxx.xxx, etc. More...
class  IServerControl
 An interface to a 'server' that can be started, stopped and can be toggled between accepting connections or not. The life-cycle of an object that implements this interface is; start, accept connections, stop accepting connections, initiate shutdown, shutdown. The object may go from accepting to not accepting and back again any number of times after being started. The object may go from started to stopped and stopped to started any number of times. More...
class  IServerShutdownCallback
class  ISocketCallback
 The connection manager and socket server callback interfaces are composed from more specific interfaces using inheritance. This is purely to allow the framework to work in terms of the narrowest interface internally and does not affect the user of the code. Effectively the first interface that the user would wish to implement is at the IXXXConnectionManagerCallback level and above. More...
class  IStreamSocket
 This interface adds stream socket specific functionality to the IAsyncSocket interface. As you can see that isn't much. This is the interface that you will interact with to access socket functionality when you write a client or server as this is the interface to the socket connection that you are passed when callback events occur on a connection. More...
class  IStreamSocketCallback
 The connection manager and socket server callback interfaces are composed from more specific interfaces using inheritance. This is purely to allow the framework to work in terms of the narrowest interface internally and does not affect the user of the code. Effectively the first interface that the user would wish to implement is at the IXXXConnectionManagerCallback level and above. More...
class  IStreamSocketConnectionManager
 An interface that is used to allow a socket to communicate with the connection manager that manages it. This interface is supplied to the socket in the call to Attach(). More...
class  IStreamSocketConnectionManagerCallback
 The connection manager and socket server callback interfaces are composed from more specific interfaces using inheritance. This is purely to allow the framework to work in terms of the narrowest interface internally and does not affect the user of the code. Effectively the first interface that the user would wish to implement is at the IXXXConnectionManagerCallback level and above. More...
class  IStreamSocketConnectionManagerIO
class  IStreamSocketEx
 A socket interface that adds functionality that is used internally by the connection manager and socket server classes. More...
class  IStreamSocketServerCallback
 The connection manager and socket server callback interfaces are composed from more specific interfaces using inheritance. This is purely to allow the framework to work in terms of the narrowest interface internally and does not affect the user of the code. Effectively the first interface that the user would wish to implement is at the IXXXConnectionManagerCallback level and above. More...
class  IStreamSocketServerExCallback
 The connection manager and socket server callback interfaces are composed from more specific interfaces using inheritance. This is purely to allow the framework to work in terms of the narrowest interface internally and does not affect the user of the code. Effectively the first interface that the user would wish to implement is at the IXXXConnectionManagerCallback level and above. More...
class  ISupportMulticast
 The interface used to support multicasting. More...
class  IWritableAddress
 An interface which represents an address that can be written to and updated. A typical way that this interface would be used is like this: getsockname(socket, address.GetStorage(), address.GetSize()). More...
class  IWritableAddressRef
 A reference counted IWritableAddress. More...
class  CUsesMSWinSockExtensions
 This class acts as a dynamic function loader for the MS Winsock extension functions via a WSAIoctl() call with SIO_GET_EXTENSION_FUNCTION_POINTER. The assumption is made that all sockets passed to this class will be from the same underlying provider (or, at the very least, all sockets passed to a particular extension function will be from the same provider). More...
class  TMulticastDatagramHelper
 A socket server for datagram sockets. More...
class  CNamedServerCollection
 A class that implements a collection of named instances of IServerControl and that allows you to control all of the instances as one and also manipulate individual instances by name. More...
class  CNameInfo
 A class that provides name lookup and formatting for specified addresses. More...
class  CNullDatagramSocketConnectionFilter
 A connection filter that does nothing. You can use this as a base class for your own filter if you don't need to override all of the filter functionality. More...
class  CNullDatagramSocketFlowControlMonitor
class  CNullNamedServerShutdownCallback
class  CNullServerShutdownCallback
class  CNullSocketAllocationMonitor
 An object that implements IMonitorSocketAllocation and does nothing. More...
class  CNullStreamSocketConnectionFilter
 A connection filter that does nothing. You can use this as a base class for your own filter if you don't need to override all of the filter functionality. More...
class  CNullStreamSocketFlowControlMonitor
 A stream socket flow control monitor that does nothing. You can use this. More...
class  CReadOnlyFilterData
class  CReadSequencingStreamSocketConnectionFilter
 A connection filter that filters read completions and reorders the completions so that they occur in the order of the sequence numbers in their buffers. More...
class  CReadTimeoutDatagramSocketConnectionFilter
 A connection filter that filters supplied read timeout functionality. A call to SetReadTimeout() on a socket will set a timeout for every read operation or revc from operation that is issued on the socket. If the timeout expires then the TimerCallback::OnTimer() method of the callback that was passed to the call to SetReadTimeout() is called with the socket and user data. If you require different user data and/or timer callbacks for a particular timeout then you can call SetSingleReadTimeout() to specify this information. Normal usage is to call SetReadTimeout() when the connection is established and then, possibly, call SetSingleReadTimeout() when the 'default' timeout occurs on a socket to change the timeout parameters from this point on... Call CancelReadTimeout() to stop setting timeouts on all future reads (and to cancel any currently pending timeout) and CancelPendingTimeout() to just cancel any currently pending timeouts but to continue to set timeouts on all subsequent read operations. More...
class  CReadTimeoutStreamSocketConnectionFilter
 A connection filter that filters supplied read timeout functionality. A call to SetReadTimeout() on a socket will set a timeout for every read operation that is issued on the socket. If the timeout expires then the TimerCallback::OnTimer() method of the callback that was passed to the call to SetReadTimeout() is called with the socket and user data. If you require different user data and/or timer callbacks for a particular timeout then you can call SetSingleReadTimeout() to specify this information. Normal usage is to call SetReadTimeout() when the connection is established and then, possibly, call SetSingleReadTimeout() when the 'default' timeout occurs on a socket to change the timeout parameters from this point on... Call CancelReadTimeout() to stop setting timeouts on all future reads (and to cancel any currently pending timeout) and CancelPendingTimeout() to just cancel any currently pending timeouts but to continue to set timeouts on all subsequent read operations. More...
class  CSequencedStreamSocket
 A stream socket that supports read and write sequencing. More...
class  CSequencedStreamSocketAllocator
 A socket allocator that allocates instances of CSequencedStreamSocket Note that most of the work is down in CSocketAllocator. More...
class  CServerCollection
 A class that implements a collection of instances of IServerControl and that allows you to control all of the instances as one. More...
class  CSocket
 A slightly confused class that acts as both a scope based wrapper around a SOCKET and that also provides static member functions that enable you to call wrapped socket functions on a bare SOCKET. More...
class  CSocketAllocator
 A base class for socket allocation. There are several different types of socket that are used through the library. Most of the work involved in allocating sockets and managing a pool of sockets is the same for all types. The only things that change are the type of the socket that is being allocated and the way the socket is created. Derived classes provide this functionality. More...
class  CSocketClosedException
 An exception that can be thrown if you attempt an operation on a socket that is closed. More...
class  CSocketReferenceTracker
class  CStreamSocket
 A stream socket. Note that this socket does NOT support read and write sequencing. More...
class  CStreamSocketAllocator
 A socket allocator that allocates instances of CStreamSocket. Note that most of the work is down in CSocketAllocator. More...
class  CStreamSocketBroadcastableConnectionCollection
class  CStreamSocketBroadcastableNamedConnectionCollection
class  CStreamSocketConnectionCollection
class  CStreamSocketConnectionFilterBase
class  TStreamSocketConnectionManager
 A connection manager for stream sockets. More...
class  CStreamSocketConnectionManagerBase
 A connection manager for stream sockets. More...
class  CStreamSocketConnectionManagerCallback
 An object that implements the CStreamSocketConnectionManager callback interface and does nothing. You can derive from this class and override just the functions that you need to. More...
class  CStreamSocketNamedConnectionCollection
class  TStreamSocketServer
 A socket server for stream sockets. Runs a thread to handle connection establishment using accept. More...
class  CStreamSocketServerCallback
 An object that implements the CStreamSocketServer callback interface and does nothing. You can derive from this class and override just the functions that you need to. More...
class  TStreamSocketServerEx
 A socket serer for stream sockets. Uses AcceptEx to handle connection establishment, does not run a thread for connection establishment. Can not handle 'accept and read' connection establishment. More...
class  CStreamSocketServerExCallback
 An object that implements the CStreamSocketServerEx callback interface and does nothing. You can derive from this class and override just the functions that you need to. More...
class  TAsyncSocket
 A template class that provides most of the functionality that is shared between all socket types. More...
class  CTCPListeningSocketCreator
class  TSocketAllocator
 A template class that provides most of the socket allocation functionality that is shared between all socket types. More...
class  CUsesWinsock
 A simple object to support scope based Winsock initialisation and uninitialisation. Create an instance of this at the scope where you want Winsock to be available and it will be automatically uninitialised when the scope ends. More...
class  CWriteOnlyFilterData

Typedefs

typedef unsigned char ConsecutiveSocketOperations
typedef
TDatagramSocketConnectionManager
< CDatagramSocketConnectionManagerBase
CDatagramSocketConnectionManager
typedef
TDatagramSocketConnectionManager
< CFilteringDatagramSocketConnectionManagerBase
CFilteringDatagramSocketConnectionManager
typedef
TDatagramSocketServer
< CDatagramSocketServerBase
CDatagramSocketServer
typedef
TDatagramSocketServer
< CFilteringDatagramSocketServerBase
CFilteringDatagramSocketServer
typedef
TDatagramFilteringHelper
< IDatagramSocketServerCallback,
IDatagramServerSocketConnectionManagerIO,
IDatagramServerSocketEx
CFilteringDatagramSocketServerBase
typedef
JetByteTools::Core::TReferenceCountedSmartPointer
< IICEConnection
CSmartICEConnection
typedef
JetByteTools::Core::TReferenceCountedSmartPointer
< IICEConnectionCallback
CSmartICEConnectionCallback
typedef
JetByteTools::Core::TReferenceCountedSmartPointer
< IICEControlledDTLSConnection
CSmartICEControlledDTLSConnection
typedef
JetByteTools::Core::TReferenceCountedSmartPointer
< IICEControlledDTLSConnectionCallback
CSmartICEControlledDTLSConnectionCallback
typedef unsigned short ListenBacklog
typedef unsigned char PerSocketBufferPoolingLimit
typedef DWORD SequenceId
typedef
JetByteTools::Core::TReferenceCountedSmartPointer
< IAddressRef
CSmartAddress
 A smart pointer for an IAddressRef.
typedef
JetByteTools::Core::TReferenceCountedSmartPointer
< IWritableAddressRef
CSmartWritableAddress
 A smart pointer for an IWritableAddressRef.
typedef
JetByteTools::Core::TReferenceCountedSmartPointer
< IDatagramServerSocket
CSmartDatagramServerSocket
 A smart pointer for datagram sockets.
typedef
JetByteTools::Core::TReferenceCountedSmartPointer
< IDatagramServerSocketEx
CSmartDatagramServerSocketEx
 A smart pointer for datagram sockets.
typedef
JetByteTools::Core::TReferenceCountedSmartPointer
< IDatagramSocket
CSmartDatagramSocket
 A smart pointer for datagram sockets.
typedef
JetByteTools::Core::TReferenceCountedSmartPointer
< IDatagramSocketEx
CSmartDatagramSocketEx
 A smart pointer for datagram sockets.
typedef
JetByteTools::Core::TReferenceCountedSmartPointer
< IStreamSocket
CSmartStreamSocket
 A smart pointer for stream sockets.
typedef
JetByteTools::Core::TReferenceCountedSmartPointer
< IStreamSocketEx
CSmartStreamSocketEx
 A smart pointer for stream sockets.
typedef unsigned int SocketBufferSize
typedef
TStreamSocketConnectionManager
< CStreamSocketConnectionManagerBase
CStreamSocketConnectionManager
typedef
TStreamSocketConnectionManager
< CFilteringStreamSocketConnectionManagerBase
CFilteringStreamSocketConnectionManager
typedef
TStreamSocketServer
< CStreamSocketConnectionManager
CStreamSocketServer
typedef
TStreamSocketServer
< CFilteringStreamSocketConnectionManager
CFilteringStreamSocketServer
typedef
TStreamSocketServerEx
< CStreamSocketConnectionManager
CStreamSocketServerEx
typedef
TStreamSocketServerEx
< CFilteringStreamSocketConnectionManager
CFilteringStreamSocketServerEx

Enumerations

enum  ConnectionClosureReason {
  UserAbort = 0x001, AbortAll = 0x002, ShutdownAbort = 0x004, FatalErrorAbort = 0x008,
  ConnectionAbortedMask = 0x00F, ConnectionReset = 0x010, OrderlyClose = 0x100
}
 An enumeration that details how a connections was closed. More...
enum  ConnectionDirection {
  NoConnection, ListeningConnection, InboundConnection, InboundConnectionInProgress,
  OutboundConnectionBound, OutboundConnectionInProgress, OutboundConnection
}
 An enumeration to detail how a socket is connected. More...
enum  OutOfBandDataReadConfiguration { NoOutOfBandData = 0x00, InlineOutOfBandData = 0x01, AsyncOutOfBandData = 0x10, OutOfBandCloseNotifications = 0x20 }
 How we perform zero byte reads, if at all. More...
enum  ShutdownHow { ShutdownNeither = 0x0, ShutdownSend = 0x1, ShutdownReceive = 0x2, ShutdownBoth = 0x3 }
 An enumeration to detail how to shutdown a socket. More...
enum  { DefaultSocketBufferSize = 0 }
enum  ZeroByteReadConfiguration { NoZeroByteRead, ZeroByteAsyncRead, ZeroByteSyncRead }
 How we perform zero byte reads, if at all. More...

Functions

static addrinfo * GetAddressInfo (const _tstring &hostName=_T(""), const _tstring &serviceOrPort=_T(""), unsigned short family=PF_UNSPEC, int socketType=0, int protocol=0)
static const sockaddr & GetWildcard ()
bool CanEnableSkipCompletionPortOnSuccess ()
_tstring GetClosureReasonAsString (const ConnectionClosureReason reason)
string GetClosureReasonAsStringA (const ConnectionClosureReason reason)
_tstring GetConnectionDirectionAsString (const ConnectionDirection direction)
static
CFlowControlDatagramSocketConnectionFilterData::Percentage 
ValidatePercentage (CFlowControlDatagramSocketConnectionFilterData::Percentage percentage)
static const _tstring s_filterName (_T("FLOW"))
static CAddressType GetAddressType (unsigned short addressFamily)
static bool LoadExtensionFunction (SOCKET s, GUID functionID, void **ppFunc)
template<typename C, typename S>
void RethrowExceptionReportAndAbort (const JetByteTools::Core::_tstring &message, C &callback, S &socket, const bool rethrow=false)
_tstring GetShutdownHowAsString (const ShutdownHow how)
static WSABUF * GetWSABUFSpace (JetByteTools::IO::IIterateableBufferChain &buffers, JetByteTools::IO::CSmartBuffer &wsaBufBuffer)
static WSABUF * AllocateAndPopulateAlignedWSABUF (const IStreamSocketEx &socket, JetByteTools::IO::IIterateableBufferChain &buffersIn, DWORD &bufferCount, JetByteTools::IO::CBufferChain &buffersOut)

Variables

static
CAddressImplReferenceTracker
s_pInstance = nullptr
static const
CAddressTypeIPv4 
s_addressType
static const
CAddressTypeIPv6 
s_addressType
static const int s_protocols [] = { IPPROTO_TCP, IPPROTO_UDP, 0 }
static
CNullDatagramSocketFlowControlMonitor 
s_monitor
static
CNullDatagramSocketFlowControlMonitor 
s_monitor
static
CNullStreamSocketFlowControlMonitor 
s_nullMonitor
const ListenBacklog ListenBacklogMax = 0xFFFF
const ListenBacklog ListenBacklogMax
static
CNullSocketAllocationMonitor 
s_nullAllocationMonitor
CLockableObject s_lock
CSocketReferenceTrackers_pInstance = nullptr


Typedef Documentation

typedef unsigned char ConsecutiveSocketOperations

typedef unsigned short ListenBacklog

typedef unsigned char PerSocketBufferPoolingLimit

typedef DWORD SequenceId

typedef unsigned int SocketBufferSize


Enumeration Type Documentation

anonymous enum

Enumerator:
DefaultSocketBufferSize 

An enumeration that details how a connections was closed.

Enumerator:
UserAbort 
AbortAll 
ShutdownAbort 
FatalErrorAbort 
ConnectionAbortedMask 
ConnectionReset 
OrderlyClose 

An enumeration to detail how a socket is connected.

Enumerator:
NoConnection 
ListeningConnection 
InboundConnection 
InboundConnectionInProgress 
OutboundConnectionBound 
OutboundConnectionInProgress 
OutboundConnection 

How we perform zero byte reads, if at all.

Enumerator:
NoOutOfBandData 
InlineOutOfBandData 
AsyncOutOfBandData 
OutOfBandCloseNotifications 

An enumeration to detail how to shutdown a socket.

Enumerator:
ShutdownNeither 
ShutdownSend 
ShutdownReceive 
ShutdownBoth 

How we perform zero byte reads, if at all.

Enumerator:
NoZeroByteRead 
ZeroByteAsyncRead 
ZeroByteSyncRead 


Function Documentation

static WSABUF* JetByteTools::Socket::AllocateAndPopulateAlignedWSABUF ( const IStreamSocketEx &  socket,
JetByteTools::IO::IIterateableBufferChain buffersIn,
DWORD bufferCount,
JetByteTools::IO::CBufferChain buffersOut 
) [static]

bool CanEnableSkipCompletionPortOnSuccess (  ) 

static addrinfo * GetAddressInfo ( const _tstring &  hostName = _T(""),
const _tstring &  serviceOrPort = _T(""),
unsigned short  family = PF_UNSPEC,
int  socketType = 0,
int  protocol = 0 
) [static]

static CAddressType GetAddressType ( unsigned short  addressFamily  )  [static]

JetByteTools::Core::_tstring GetClosureReasonAsString ( const ConnectionClosureReason  reason  ) 

std::string GetClosureReasonAsStringA ( const ConnectionClosureReason  reason  ) 

JetByteTools::Core::_tstring GetConnectionDirectionAsString ( const ConnectionDirection  direction  ) 

JetByteTools::Core::_tstring GetShutdownHowAsString ( const ShutdownHow  how  ) 

static const sockaddr & GetWildcard (  )  [static]

static WSABUF* JetByteTools::Socket::GetWSABUFSpace ( JetByteTools::IO::IIterateableBufferChain buffers,
JetByteTools::IO::CSmartBuffer wsaBufBuffer 
) [static]

static bool LoadExtensionFunction ( SOCKET  s,
GUID  functionID,
void **  ppFunc 
) [static]

void JetByteTools::Socket::RethrowExceptionReportAndAbort ( const JetByteTools::Core::_tstring message,
C &  callback,
S &  socket,
const bool  rethrow = false 
) [inline]

static const _tstring JetByteTools::Socket::s_filterName ( _T("FLOW")   )  [static]

static CFlowControlStreamSocketConnectionFilter::Percentage ValidatePercentage ( CFlowControlDatagramSocketConnectionFilterData::Percentage  percentage  )  [static]


Variable Documentation

CLockableObject s_lock

const int s_protocols[] = { IPPROTO_TCP, IPPROTO_UDP, 0 } [static]


Generated on Thu Jan 28 19:43:59 2021 for The Server Framework - v7.1 by doxygen 1.5.3