44#ifndef CCXX_SOCKETPORT_H_
45#define CCXX_SOCKETPORT_H_
47#ifndef CCXX_ADDRESS_H_
87 struct timeval porttimer;
96 bool detect_disconnect;
169 {
return detect_pending; }
181 {
return detect_output; }
231 inline ssize_t
send(
const void *buf,
size_t len)
232 {
return _IORET64 ::send(
so, (
const char *)buf,
_IOLEN64 len, 0);};
243 {
return _IORET64 ::recv(
so, (
char *)buf,
_IOLEN64 len, 0);};
253 inline ssize_t
peek(
void *buf,
size_t len)
254 {
return _IORET64 ::recv(
so, (
char *)buf,
_IOLEN64 len, MSG_PEEK);};
386#ifdef CCXX_NAMESPACES
Network addresses and sockets related classes.
The network name and address objects are all derived from a common IPV4Address base class.
Definition address.h:351
This object is used to hold the actual and valid internet address of a specific host machine that wil...
Definition address.h:562
The network name and address objects are all derived from a common IPV6Address base class.
Definition address.h:754
This object is used to hold the actual and valid internet address of a specific host machine that wil...
Definition address.h:949
Mutex(const char *name=NULL)
The mutex is always initialized as a recursive entity.
Socket(int domain, int type, int protocol=0)
An unconnected socket may be created directly on the local machine.
Error
Definition socket.h:131
SOCKET volatile so
the actual socket descriptor, in Windows, unlike posix it cannot be used as an file descriptor that w...
Definition socket.h:221
The socket port is an internal class which is attached to and then serviced by a specific SocketServi...
Definition socketport.h:82
SocketPort(SocketService *svc, const IPV6Host &ih, tpport_t port)
Error connect(const IPV6Address &ia, tpport_t port)
void incTimer(timeout_t timeout)
Derived incTimer to notify the service thread pool of a change in expected timeout.
void setDetectOutput(bool)
Used to indicate if output ready monitoring should be performed by the service thread.
Error connect(const IPV4Address &ia, tpport_t port)
Connect a Socket Port to a known peer host.
SocketPort(SocketService *svc, TCPSocket &tcp)
Construct an accepted TCP socket connection from a specific bound TCP server.
friend class SocketService
Definition socketport.h:98
virtual void expired(void)
Called by the service thread pool when the objects timer has expired.
bool getDetectPending(void) const
Get the current state of the DetectPending flag.
Definition socketport.h:168
virtual void pending(void)
Called by the service thread pool when input data is pending for this socket.
bool getDetectOutput(void) const
Get the current state of the DetectOutput flag.
Definition socketport.h:180
virtual void disconnect(void)
Called by the service thread pool when a disconnect has occured.
ssize_t receive(void *buf, size_t len)
Receive a message from any host.
Definition socketport.h:242
virtual ~SocketPort()
Disconnect the socket from the service thread pool and the remote connection.
void setDetectPending(bool)
Used to indicate if the service thread should monitor pending data for us.
ssize_t send(const void *buf, size_t len)
Transmit "send" data to a connected peer host.
Definition socketport.h:231
SocketPort(SocketService *svc, const IPV4Host &ih, tpport_t port)
A non-blocking constructor for outbound tcp connections.
void setTimer(timeout_t timeout=0)
Derived setTimer to notify the service thread pool of change in expected timeout.
SocketPort(SocketService *svc, const IPV6Address &ia, tpport_t port)
SocketPort(SocketService *svc, const IPV4Address &ia, tpport_t port)
Construct a bound UDP socket for use in deriving realtime UDP streaming protocols handled by thread p...
void attach(SocketService *svc)
Attach yourself to the service pool thread object.
SocketPort(SocketService *svc, TCPV6Socket &tcp)
virtual void output(void)
Called by the service thread pool when output data is pending for this socket.
ssize_t peek(void *buf, size_t len)
Examine the content of the next packet.
Definition socketport.h:253
The SocketService is a thread pool object that is meant to service attached socket ports.
Definition socketport.h:289
virtual void onEvent(void)
Called once each time the service thread is rescheduled.
SocketService(int pri=0, size_t stack=0, const char *id=NULL)
Create a service thread for attaching socket ports.
virtual void onCallback(SocketPort *port)
Called for each port that is being processed in response to an event.
virtual void onUpdate(unsigned char buf)
Handles all requests other than "termination".
friend class SocketPort
Definition socketport.h:321
virtual ~SocketService()
Terminate the thread pool and eliminate any attached socket ports.
void update(unsigned char flag=0xff)
Notify service thread that a port has been added or removed, or a timer changed, so that a new schedu...
int getCount(void) const
Get current reference count.
Definition socketport.h:382
TCP sockets are used for stream based connected sessions between two sockets.
Definition socket.h:1396
TCPV6 sockets are used for stream based connected sessions between two ipv6 sockets.
Definition socket.h:1515
void sync(void)
Used to wait for a join or cancel, in place of explicit exit.
Thread(bool isMain)
This is actually a special constructor that is used to create a thread "object" for the current execu...
TimerPort()
Create a timer, mark it as inactive, and set the initial "start" time to the creation time of the tim...
#define __EXPORT
Definition config.h:1049
unsigned short tpport_t
Transport Protocol Ports.
Definition address.h:86
int HANDLE
Definition serial.h:60
Network addresses and sockets related classes.
#define _IOLEN64
Definition socket.h:64
unsigned long timeout_t
Definition thread.h:74