#include <sys/uio.h>
#include <stdio.h>
#include <netinet/in.h>
#include <arpa/inet.h>
Go to the source code of this file.
Data Structures | |
| struct | frame |
| Frame structure holding fragments, their indicators, and other info. More... | |
| struct | frame_link |
| Frame link in a frames linked list. More... | |
| struct | frame_list |
| Frames linked list such as recvd frames, or send frames. More... | |
| struct | frame_stats |
| Frame stats structure used by the context_t structure for functional reliability. More... | |
| struct | interval |
| Interval structure to track which intervals have not received any data yet (missing data intervals). More... | |
| struct | intervals |
| Interval structure to track which intervals have not received any data yet (missing data intervals). More... | |
Defines | |
| #define | MAX_VECS 3 |
Typedefs | |
| typedef interval | interval_t |
| Interval structure to track which intervals have not received any data yet (missing data intervals). | |
| typedef intervals | intervals_t |
| Interval structure to track which intervals have not received any data yet (missing data intervals). | |
Functions | |
| int | Datagram_Dequeue (frame_list *frames, void *buffer, int len) |
| int | Datagram_Enqueue (frame_list *frames, const void *buffer, int len, int frame_num) |
| void | Datagram_Insert (frame_list *list, frame_link *prev, frame_link *insert) |
| frame_link * | Datagram_Insert_Phantom (frame_list *list, frame_link *prev, int frame_num) |
| void | Datagram_Remove (frame_list *list, frame_link *prev, frame_link *remove) |
| void | Datagrams_Clear (frame_list *list) |
| void | Datagrams_Print (frame_list *list) |
Definition in file vfer_datagram.h.
| #define MAX_VECS 3 |
Definition at line 35 of file vfer_datagram.h.
| typedef struct interval interval_t |
Interval structure to track which intervals have not received any data yet (missing data intervals).
| typedef struct intervals intervals_t |
Interval structure to track which intervals have not received any data yet (missing data intervals).
| int Datagram_Dequeue | ( | frame_list * | frames, | |
| void * | buffer, | |||
| int | len | |||
| ) | [inline] |
Dequeues a frame from the frames list and fills in the buffer with it's data. Returns -1 if the buffer is not large enough to hold the frame's data.
For now we assume that there are frames in the list (has to be checked before the call)
| frames | datagram list pointer | |
| buffer | buffer to fill with the datagram contents | |
| len | max length of buffer to fill |
size of the datagram written to buffer on success
Definition at line 95 of file vfer_datagram.c.
| int Datagram_Enqueue | ( | frame_list * | frames, | |
| const void * | buffer, | |||
| int | len, | |||
| int | frame_num | |||
| ) | [inline] |
Creates a new datagram entry, copies the buffer data into the entry and enqueues the datagram into the datagram list.
| frames | datagram list pointer | |
| buffer | buffer to include into this datagram (unchanged by this function) | |
| len | length of buffer | |
| frame_num | frame number to assign to this frame (used in control.c) |
0 on succes
Definition at line 31 of file vfer_datagram.c.
| void Datagram_Insert | ( | frame_list * | list, | |
| frame_link * | prev, | |||
| frame_link * | insert | |||
| ) | [inline] |
Inserts a frame into a frame list
Maintains the last_frame_num, first_frame_num, count, and the data byte length of frames in the frame list.
| list | frame list pointer to insert the new frame link into | |
| prev | frame link before the one to insert | |
| insert | frame link to insert |
Definition at line 162 of file vfer_datagram.c.
| frame_link* Datagram_Insert_Phantom | ( | frame_list * | list, | |
| frame_link * | prev, | |||
| int | frame_num | |||
| ) | [inline] |
Definition at line 197 of file vfer_datagram.c.
| void Datagram_Remove | ( | frame_list * | list, | |
| frame_link * | prev, | |||
| frame_link * | remove | |||
| ) | [inline] |
Remove a frame from a frame list
Maintains the last_frame_num, first_frame_num, count, and data byte length of frames in the frame list.
| list | frame list pointer to remove the frame from | |
| prev | previous frame pointer | |
| remove | the frame pointer to remove from the list |
Definition at line 129 of file vfer_datagram.c.
| void Datagrams_Clear | ( | frame_list * | list | ) | [inline] |
Clears out the datagrams from the frame list
| list | frame list |
Definition at line 240 of file vfer_datagram.c.
| void Datagrams_Print | ( | frame_list * | list | ) |
Useful internal function to print a frame_list to stdout
| list | frame list |
Definition at line 216 of file vfer_datagram.c.
1.4.7