Transport::TPbuffer Struct Reference
Extensible buffer, used to prepare outgoing TPDUs. More...
#include <TPlayer.h>
Public Member Functions | |
| void | Free () |
Static Public Member Functions | |
| static TPbuffer * | GetNew (unsigned offset) |
| static TPbuffer * | Add (TPbuffer *bufp, const u_char *bytes, unsigned len) |
| Add bytes to buffer. | |
Data Fields | |
| unsigned | dsize |
| Total size of buffer. | |
| unsigned | doff |
| Offset at which Layer starts writing. | |
| unsigned | dlen |
| Current length of data from doff. | |
| int | dfd |
| FD of backing file, or -1 if none. | |
| void * | mdata |
| Start address of mmapped data (if any) | |
| unsigned | mlen |
| Length of mmapped data (if any) | |
| u_char | data [1] |
| Data, actually extensible. | |
Static Public Attributes | |
| static const unsigned | TPBINC = 128 |
Detailed Description
Member Function Documentation
◆ GetNew()
|
inlinestatic |
Definition at line 51 of file TPlayer.h.
51 {
52 TPbuffer *newbp = static_cast<TPbuffer *>
53 (malloc (TPBINC + sizeof (*newbp)));
54
55 if ( newbp == 0 )
56 return 0;
57
58 newbp->dsize = TPBINC;
59 newbp->doff = offset;
60 newbp->dlen = 0;
61 newbp->dfd = -1;
62 newbp->mdata = NULL;
63 newbp->mlen = 0;
64
65 return newbp;
66 }
◆ Free()
|
inline |
◆ Add()
|
inlinestatic |
Add bytes to buffer.
Definition at line 77 of file TPlayer.h.
79 {
80 unsigned newlen = bufp->doff + bufp->dlen + len;
81
82 if ( bufp->dsize < newlen ) {
83 unsigned newsize = bufp->dsize + TPBINC;
84 if ( newsize < newlen )
85 newsize = newlen + TPBINC;
86
87 TPbuffer *newbp = static_cast<TPbuffer *>
88 (realloc (bufp, sizeof (*bufp) + newsize));
89
90 if ( newbp == 0 ) {
91 MSG_Base_Nomem_LOG (sizeof (*bufp) + newsize);
92 free (bufp);
93 return 0;
94 }
95
96 bufp = newbp;
97 bufp->dsize = newsize;
98 }
99
100 memcpy (bufp->data + bufp->doff + bufp->dlen, bytes, len);
101
102 bufp->dlen += len;
103
104 return bufp;
105 }
Field Documentation
◆ TPBINC
◆ dsize
| unsigned Transport::TPbuffer::dsize |
◆ doff
| unsigned Transport::TPbuffer::doff |
◆ dlen
| unsigned Transport::TPbuffer::dlen |
◆ dfd
| int Transport::TPbuffer::dfd |
◆ mdata
| void* Transport::TPbuffer::mdata |
◆ mlen
| unsigned Transport::TPbuffer::mlen |
◆ data
| u_char Transport::TPbuffer::data[1] |
The documentation for this struct was generated from the following file: