Functions | Variables
SocketBuffer.c File Reference

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"
Include dependency graph for SocketBuffer.c:

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_writesSocketBuffer_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_writesSocketBuffer_updateWrite (int socket, char *topic, char *payload)
 
int SocketBuffer_writeComplete (int socket)
 
int socketcompare (void *a, void *b)
 

Variables

static socket_queuedef_queue
 
static Listqueues
 
static List writes
 

Detailed Description

Socket buffering related functions.

Some other related functions are in the Socket module

Definition in file SocketBuffer.c.

Function Documentation

int pending_socketcompare ( void *  a,
void *  b 
)

List callback function for comparing pending_writes by socket

Parameters
afirst integer value
bsecond integer value
Returns
boolean indicating whether a and b are equal

Definition at line 388 of file SocketBuffer.c.

void SocketBuffer_cleanup ( int  socket)

Cleanup any buffers for a specific socket

Parameters
socketthe 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

Parameters
socketthe socket for which the operation is now complete
Returns
pointer to the default queue data

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

Parameters
socketthe socket to get queued data for
cthe character returned if any
Returns
completion code

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

Parameters
socketthe socket to get queued data for
bytesthe number of bytes of data to retrieve
actual_lenthe actual length returned
Returns
the actual data

Definition at line 176 of file SocketBuffer.c.

pending_writes* SocketBuffer_getWrite ( int  socket)

Get any queued write data for a specific socket

Parameters
socketthe socket to get queued data for
Returns
pointer to the queued data or NULL

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

Parameters
socketthe socket to get queued data for
actual_lenthe 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

Parameters
socketthe socket for which the write was interrupted
countthe number of iovec buffers
iovecsbuffer array
freesa set of flags indicating which of the iovecs array should be freed
totaltotal data length to be written
bytesactual 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

Parameters
socketthe socket for which to queue char for
cthe 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.

Parameters
socketthe socket for which the operation is now complete
topicthe topic of the QoS 0 write
payloadthe payload of the QoS 0 write
Returns
pointer to the updated queued data structure, or NULL

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

Parameters
socketthe socket for which the operation is now complete
Returns
completion code, boolean - was the queue removed?

Definition at line 411 of file SocketBuffer.c.

int socketcompare ( void *  a,
void *  b 
)

List callback function for comparing socket_queues by socket

Parameters
afirst integer value
bsecond integer value
Returns
boolean indicating whether a and b are equal

Definition at line 70 of file SocketBuffer.c.

Variable Documentation

socket_queue* def_queue
static

Default input queue buffer

Definition at line 45 of file SocketBuffer.c.

List* queues
static

List of queued input buffers

Definition at line 50 of file SocketBuffer.c.

List writes
static

List of queued write buffers

Definition at line 55 of file SocketBuffer.c.



plotjuggler
Author(s): Davide Faconti
autogenerated on Sun Dec 6 2020 04:02:49