poser
A C framework for POsix SERvices
Loading...
Searching...
No Matches
connection.h
Go to the documentation of this file.
1#ifndef POSER_CORE_CONNECTION_H
2#define POSER_CORE_CONNECTION_H
3
8#include <poser/decl.h>
9
10#include <stddef.h>
11#include <stdint.h>
12
26C_CLASS_DECL(PSC_Connection);
27
31C_CLASS_DECL(PSC_EADataReceived);
32
33C_CLASS_DECL(PSC_Event);
34C_CLASS_DECL(PSC_IpAddr);
35
45typedef const char *(*PSC_MessageEndLocator)(const char *str);
46
55DECLEXPORT PSC_Event *
57 CMETHOD ATTR_RETNONNULL ATTR_PURE;
58
71DECLEXPORT PSC_Event *
73 CMETHOD ATTR_RETNONNULL ATTR_PURE;
74
87DECLEXPORT PSC_Event *
89 CMETHOD ATTR_RETNONNULL ATTR_PURE;
90
99DECLEXPORT PSC_Event *
101 CMETHOD ATTR_RETNONNULL ATTR_PURE;
102
111DECLEXPORT PSC_Event *
112OBSOLETE(Resolving remote hosts is disabled; use PSC_Resolver instead)
114 CMETHOD ATTR_RETNONNULL ATTR_PURE;
115
122DECLEXPORT const PSC_IpAddr *
124 CMETHOD ATTR_PURE;
125
133DECLEXPORT const char *
135 CMETHOD ATTR_RETNONNULL ATTR_PURE;
136
144DECLEXPORT const char *
146 CMETHOD ATTR_PURE;
147
154DECLEXPORT int
156 CMETHOD ATTR_PURE;
157
174DECLEXPORT int
176 CMETHOD;
177
189DECLEXPORT void
191 CMETHOD ATTR_NONNULL((2));
192
204DECLEXPORT void
206 CMETHOD;
207
232DECLEXPORT int
234 const uint8_t *buf, size_t sz, void *id)
235 CMETHOD ATTR_NONNULL((2));
236
249DECLEXPORT int
250PSC_Connection_sendTextAsync(PSC_Connection *self, const char *text, void *id)
251 CMETHOD ATTR_NONNULL((2));
252
260DECLEXPORT void
262 CMETHOD;
263
272DECLEXPORT int
274 CMETHOD;
275
290DECLEXPORT int
292 CMETHOD;
293
307DECLEXPORT void
309 CMETHOD;
310
319DECLEXPORT void
321 void *data, void (*deleter)(void *))
322 CMETHOD;
323
330DECLEXPORT void *
332 CMETHOD ATTR_PURE;
333
341DECLEXPORT const uint8_t *
343 CMETHOD;
344
352DECLEXPORT size_t
354 CMETHOD;
355
363DECLEXPORT const char *
365 CMETHOD;
366
375DECLEXPORT void
377 CMETHOD;
378
379#endif
A socket connection.
void * PSC_Connection_data(const PSC_Connection *self)
Retreive attached data object.
void PSC_Connection_pause(PSC_Connection *self)
Pause receiving data.
void PSC_Connection_receiveLine(PSC_Connection *self)
Configure for receiving lines.
void PSC_Connection_close(PSC_Connection *self, int blacklist)
Close connection.
const char * PSC_Connection_remoteAddr(const PSC_Connection *self)
The remote address.
const PSC_IpAddr * PSC_Connection_remoteIpAddr(const PSC_Connection *self)
The remote IP address.
void PSC_Connection_receiveText(PSC_Connection *self, PSC_MessageEndLocator locator)
Configure for receiving text.
PSC_Event * PSC_Connection_closed(PSC_Connection *self)
Connection closed.
int PSC_Connection_remotePort(const PSC_Connection *self)
The remote port.
PSC_Event * PSC_Connection_dataReceived(PSC_Connection *self)
Data received.
void PSC_Connection_setData(PSC_Connection *self, void *data, void(*deleter)(void *))
Attach a data object.
int PSC_Connection_resume(PSC_Connection *self)
Resume receiving data.
int PSC_Connection_confirmDataReceived(PSC_Connection *self)
Confirm receiving data is completed.
PSC_Event * PSC_Connection_connected(PSC_Connection *self)
Connection successfully connected.
PSC_Event * PSC_Connection_nameResolved(PSC_Connection *self)
Remote name resolved.
int PSC_Connection_receiveBinary(PSC_Connection *self, size_t expected)
Configure for receiving binary data.
int PSC_Connection_sendAsync(PSC_Connection *self, const uint8_t *buf, size_t sz, void *id)
Send data to the peer.
int PSC_Connection_sendTextAsync(PSC_Connection *self, const char *text, void *id)
Send text to the peer.
const char * PSC_Connection_remoteHost(const PSC_Connection *self)
The remote hostname.
PSC_Event * PSC_Connection_dataSent(PSC_Connection *self)
Data sent.
Event arguments for data received on a connection.
size_t PSC_EADataReceived_size(const PSC_EADataReceived *self)
The size of the data received.
const uint8_t * PSC_EADataReceived_buf(const PSC_EADataReceived *self)
The data received.
const char * PSC_EADataReceived_text(const PSC_EADataReceived *self)
The text received.
void PSC_EADataReceived_markHandling(PSC_EADataReceived *self)
Mark received data as being handled.
A simple event class.
An IPv4 or IPv6 address or network.
A resolver to do a batch of reverse DNS lookups.
const char *(* PSC_MessageEndLocator)(const char *str)
Callback to find the end of a text message.
Definition: connection.h:45