PxSocket
Defined in include/foundation/PxSocket.h
Inheritance Relationships
Base Type
public PxUserAllocated
(PxUserAllocated)
-
class PxSocket : public PxUserAllocated
Socket abstraction API.
Public Functions
-
PxSocket(bool inEnableBuffering = true, bool blocking = true)
-
virtual ~PxSocket()
-
bool connect(const char *host, uint16_t port, uint32_t timeout = 1000)
Opens a network socket for input and/or output
- Parameters
host – Name of the host to connect to. This can be an IP, URL, etc
port – The port to connect to on the remote host
timeout – Timeout in ms until the connection must be established.
- Returns
True if the connection was successful, false otherwise
-
bool listen(uint16_t port)
Opens a network socket for input and/or output as a server. Put the connection in listening mode
- Parameters
port – The port on which the socket listens
-
bool accept(bool block)
Accept a connection on a socket that is in listening mode
Note
This method only supports a single connection client. Additional clients that connect to the listening port will overwrite the existing socket handle.
- Parameters
block – whether or not the call should block
- Returns
whether a connection was established
-
void disconnect()
Disconnects an open socket
-
bool isConnected() const
Returns whether the socket is currently open (connected) or not.
- Returns
True if the socket is connected, false otherwise
-
const char *getHost() const
Returns the name of the connected host. This is the same as the string that was supplied to the connect call.
- Returns
The name of the connected host
-
uint16_t getPort() const
Returns the port of the connected host. This is the same as the port that was supplied to the connect call.
- Returns
The port of the connected host
-
bool flush()
Flushes the output stream. Until the stream is flushed, there is no guarantee that the written data has actually reached the destination storage. Flush forces all buffered data to be sent to the output.
Note
flush always blocks. If the socket is in non-blocking mode, this will result the thread spinning.
- Returns
True if the flush was successful, false otherwise
-
uint32_t write(const uint8_t *data, uint32_t length)
Writes data to the output stream.
- Parameters
data – Pointer to a block of data to write to the stream
length – Amount of data to write, in bytes
- Returns
Number of bytes actually written. This could be lower than length if the socket is non-blocking.
-
uint32_t read(uint8_t *data, uint32_t length)
Reads data from the output stream.
- Parameters
data – Pointer to a buffer where the read data will be stored.
length – Amount of data to read, in bytes.
- Returns
Number of bytes actually read. This could be lower than length if the stream end is encountered or the socket is non-blocking.
-
void setBlocking(bool blocking)
Sets blocking mode of the socket. Socket must be connected, otherwise calling this method won’t take any effect.
-
bool isBlocking() const
Returns whether read/write/flush calls to the socket are blocking.
- Returns
True if the socket is blocking.
-
inline void *operator new(size_t, void *address)
-
template<typename Alloc>
inline void *operator new(size_t size, Alloc alloc, const char *fileName, int line)
-
template<typename Alloc>
inline void *operator new(size_t size, size_t, Alloc alloc, const char *fileName, int line)
-
inline void operator delete(void*, void*)
-
template<typename Alloc>
inline void operator delete(void *ptr, Alloc alloc, const char *fileName, int line)
-
inline void operator delete(void *ptr)
-
template<typename Alloc>
inline void *operator new[](size_t size, Alloc alloc, const char *fileName, int line)
-
template<typename Alloc>
inline void *operator new[](size_t size, size_t, Alloc alloc, const char *fileName, int line)
-
template<typename Alloc>
inline void operator delete[](void *ptr, Alloc alloc, const char *fileName, int line)
-
inline void operator delete[](void *ptr)
Public Static Attributes
-
static const uint32_t DEFAULT_BUFFER_SIZE
-
PxSocket(bool inEnableBuffering = true, bool blocking = true)