Socket buffering related functions. More...
#include "SocketBuffer.h"
#include "LinkedList.h"
#include "Log.h"
#include "Messages.h"
#include "StackTrace.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "Heap.h"
Go to the source code of this file.
Functions | |
int | pending_socketcompare (void *a, void *b) |
void | SocketBuffer_cleanup (int socket) |
char * | SocketBuffer_complete (int socket) |
void | SocketBuffer_freeDefQ (void) |
int | SocketBuffer_getQueuedChar (int socket, char *c) |
char * | SocketBuffer_getQueuedData (int socket, size_t bytes, size_t *actual_len) |
pending_writes * | SocketBuffer_getWrite (int socket) |
int | SocketBuffer_initialize (void) |
void | SocketBuffer_interrupted (int socket, size_t actual_len) |
int | SocketBuffer_newDefQ (void) |
int | SocketBuffer_pendingWrite (int socket, int count, iobuf *iovecs, int *frees, size_t total, size_t bytes) |
void | SocketBuffer_queueChar (int socket, char c) |
void | SocketBuffer_terminate (void) |
pending_writes * | SocketBuffer_updateWrite (int socket, char *topic, char *payload) |
int | SocketBuffer_writeComplete (int socket) |
int | socketcompare (void *a, void *b) |
Variables | |
static socket_queue * | def_queue |
static List * | queues |
static List | writes |
Socket buffering related functions.
Some other related functions are in the Socket module
Definition in file SocketBuffer.c.
int pending_socketcompare | ( | void * | a, |
void * | b | ||
) |
List callback function for comparing pending_writes by socket
a | first integer value |
b | second integer value |
Definition at line 388 of file SocketBuffer.c.
void SocketBuffer_cleanup | ( | int | socket | ) |
Cleanup any buffers for a specific socket
socket | the socket to clean up |
Definition at line 151 of file SocketBuffer.c.
char* SocketBuffer_complete | ( | int | socket | ) |
A socket read has now completed so we can get rid of the queue
socket | the socket for which the operation is now complete |
Definition at line 281 of file SocketBuffer.c.
void SocketBuffer_freeDefQ | ( | void | ) |
Free the default queue memory
Definition at line 122 of file SocketBuffer.c.
int SocketBuffer_getQueuedChar | ( | int | socket, |
char * | c | ||
) |
Get any queued character for a specific socket
socket | the socket to get queued data for |
c | the character returned if any |
Definition at line 219 of file SocketBuffer.c.
char* SocketBuffer_getQueuedData | ( | int | socket, |
size_t | bytes, | ||
size_t * | actual_len | ||
) |
Get any queued data for a specific socket
socket | the socket to get queued data for |
bytes | the number of bytes of data to retrieve |
actual_len | the actual length returned |
Definition at line 176 of file SocketBuffer.c.
pending_writes* SocketBuffer_getWrite | ( | int | socket | ) |
Get any queued write data for a specific socket
socket | the socket to get queued data for |
Definition at line 399 of file SocketBuffer.c.
int SocketBuffer_initialize | ( | void | ) |
Initialize the socketBuffer module
Definition at line 102 of file SocketBuffer.c.
void SocketBuffer_interrupted | ( | int | socket, |
size_t | actual_len | ||
) |
A socket read was interrupted so we need to queue data
socket | the socket to get queued data for |
actual_len | the actual length of data that was read |
Definition at line 252 of file SocketBuffer.c.
int SocketBuffer_newDefQ | ( | void | ) |
Create a new default queue when one has just been used.
Definition at line 79 of file SocketBuffer.c.
int SocketBuffer_pendingWrite | ( | int | socket, |
int | count, | ||
iobuf * | iovecs, | ||
int * | frees, | ||
size_t | total, | ||
size_t | bytes | ||
) |
A socket write was interrupted so store the remaining data
socket | the socket for which the write was interrupted |
count | the number of iovec buffers |
iovecs | buffer array |
frees | a set of flags indicating which of the iovecs array should be freed |
total | total data length to be written |
bytes | actual data length that was written |
Definition at line 349 of file SocketBuffer.c.
void SocketBuffer_queueChar | ( | int | socket, |
char | c | ||
) |
Queued a Charactor to a specific socket
socket | the socket for which to queue char for |
c | the character to queue |
Definition at line 303 of file SocketBuffer.c.
void SocketBuffer_terminate | ( | void | ) |
Terminate the socketBuffer module
Definition at line 133 of file SocketBuffer.c.
pending_writes* SocketBuffer_updateWrite | ( | int | socket, |
char * | topic, | ||
char * | payload | ||
) |
Update the queued write data for a socket in the case of QoS 0 messages.
socket | the socket for which the operation is now complete |
topic | the topic of the QoS 0 write |
payload | the payload of the QoS 0 write |
Definition at line 424 of file SocketBuffer.c.
int SocketBuffer_writeComplete | ( | int | socket | ) |
A socket write has now completed so we can get rid of the queue
socket | the socket for which the operation is now complete |
Definition at line 411 of file SocketBuffer.c.
int socketcompare | ( | void * | a, |
void * | b | ||
) |
List callback function for comparing socket_queues by socket
a | first integer value |
b | second integer value |
Definition at line 70 of file SocketBuffer.c.
|
static |
Default input queue buffer
Definition at line 45 of file SocketBuffer.c.
|
static |
List of queued input buffers
Definition at line 50 of file SocketBuffer.c.
|
static |
List of queued write buffers
Definition at line 55 of file SocketBuffer.c.