FreeRDP
stream.h File Reference
#include <winpr/winpr.h>
#include <winpr/wtypes.h>
#include <winpr/endian.h>
#include <winpr/synch.h>

Data Structures

struct  wStream
 
struct  wStreamPool
 

Macros

#define _stream_read_n8(_t, _s, _v, _p)
 
#define _stream_read_n16_le(_t, _s, _v, _p)
 
#define _stream_read_n16_be(_t, _s, _v, _p)
 
#define _stream_read_n32_le(_t, _s, _v, _p)
 
#define _stream_read_n32_be(_t, _s, _v, _p)
 
#define _stream_read_n64_le(_t, _s, _v, _p)
 
#define _stream_read_n64_be(_t, _s, _v, _p)
 
#define Stream_Read_UINT8(_s, _v)   _stream_read_n8(UINT8, _s, _v, TRUE)
 
#define Stream_Read_INT8(_s, _v)   _stream_read_n8(INT8, _s, _v, TRUE)
 
#define Stream_Read_UINT16(_s, _v)   _stream_read_n16_le(UINT16, _s, _v, TRUE)
 
#define Stream_Read_INT16(_s, _v)   _stream_read_n16_le(INT16, _s, _v, TRUE)
 
#define Stream_Read_UINT16_BE(_s, _v)   _stream_read_n16_be(UINT16, _s, _v, TRUE)
 
#define Stream_Read_INT16_BE(_s, _v)   _stream_read_n16_be(INT16, _s, _v, TRUE)
 
#define Stream_Read_UINT32(_s, _v)   _stream_read_n32_le(UINT32, _s, _v, TRUE)
 
#define Stream_Read_INT32(_s, _v)   _stream_read_n32_le(INT32, _s, _v, TRUE)
 
#define Stream_Read_UINT32_BE(_s, _v)   _stream_read_n32_be(UINT32, _s, _v, TRUE)
 
#define Stream_Read_INT32_BE(_s, _v)   _stream_read_n32_be(INT32, _s, _v, TRUE)
 
#define Stream_Read_UINT64(_s, _v)   _stream_read_n64_le(UINT64, _s, _v, TRUE)
 
#define Stream_Read_INT64(_s, _v)   _stream_read_n64_le(INT64, _s, _v, TRUE)
 
#define Stream_Read_UINT64_BE(_s, _v)   _stream_read_n64_be(UINT64, _s, _v, TRUE)
 
#define Stream_Read_INT64_BE(_s, _v)   _stream_read_n64_be(INT64, _s, _v, TRUE)
 
#define Stream_Peek_UINT8(_s, _v)   _stream_read_n8(UINT8, _s, _v, FALSE)
 
#define Stream_Peek_INT8(_s, _v)   _stream_read_n8(INT8, _s, _v, FALSE)
 
#define Stream_Peek_UINT16(_s, _v)   _stream_read_n16_le(UINT16, _s, _v, FALSE)
 
#define Stream_Peek_INT16(_s, _v)   _stream_read_n16_le(INT16, _s, _v, FALSE)
 
#define Stream_Peek_UINT16_BE(_s, _v)   _stream_read_n16_be(UINT16, _s, _v, FALSE)
 
#define Stream_Peek_INT16_BE(_s, _v)   _stream_read_n16_be(INT16, _s, _v, FALSE)
 
#define Stream_Peek_UINT32(_s, _v)   _stream_read_n32_le(UINT32, _s, _v, FALSE)
 
#define Stream_Peek_INT32(_s, _v)   _stream_read_n32_le(INT32, _s, _v, FALSE)
 
#define Stream_Peek_UINT32_BE(_s, _v)   _stream_read_n32_be(UINT32, _s, _v, FALSE)
 
#define Stream_Peek_INT32_BE(_s, _v)   _stream_read_n32_be(INT32, _s, _v, FALSE)
 
#define Stream_Peek_UINT64(_s, _v)   _stream_read_n64_le(UINT64, _s, _v, FALSE)
 
#define Stream_Peek_INT64(_s, _v)   _stream_read_n64_le(INT64, _s, _v, FALSE)
 
#define Stream_Peek_UINT64_BE(_s, _v)   _stream_read_n64_be(UINT64, _s, _v, FALSE)
 
#define Stream_Peek_INT64_BE(_s, _v)   _stream_read_n64_be(INT64, _s, _v, FALSE)
 
#define Stream_Seek_UINT8(_s)   Stream_Seek(_s, 1)
 
#define Stream_Seek_UINT16(_s)   Stream_Seek(_s, 2)
 
#define Stream_Seek_UINT32(_s)   Stream_Seek(_s, 4)
 
#define Stream_Seek_UINT64(_s)   Stream_Seek(_s, 8)
 
#define Stream_Rewind_UINT8(_s)   Stream_Rewind(_s, 1)
 
#define Stream_Rewind_UINT16(_s)   Stream_Rewind(_s, 2)
 
#define Stream_Rewind_UINT32(_s)   Stream_Rewind(_s, 4)
 
#define Stream_Rewind_UINT64(_s)   Stream_Rewind(_s, 8)
 
#define Stream_GetBuffer(_s, _b)   _b = Stream_Buffer(_s)
 
#define Stream_GetPointer(_s, _p)   _p = Stream_Pointer(_s)
 
#define Stream_GetLength(_s, _l)   _l = Stream_Length(_s)
 
#define Stream_GetCapacity(_s, _c)   _c = Stream_Capacity(_s);
 

Functions

WINPR_API BOOL Stream_EnsureCapacity (wStream *s, size_t size)
 
WINPR_API BOOL Stream_EnsureRemainingCapacity (wStream *s, size_t size)
 
WINPR_API wStream * Stream_New (BYTE *buffer, size_t size)
 
WINPR_API void Stream_StaticInit (wStream *s, BYTE *buffer, size_t size)
 
WINPR_API void Stream_Free (wStream *s, BOOL bFreeBuffer)
 
static INLINE void Stream_Seek (wStream *s, size_t _offset)
 
static INLINE void Stream_Rewind (wStream *s, size_t _offset)
 
static INLINE void Stream_Read (wStream *_s, void *_b, size_t _n)
 
static INLINE void Stream_Peek (wStream *_s, void *_b, size_t _n)
 
static INLINE void Stream_Write_UINT8 (wStream *_s, UINT8 _v)
 
static INLINE void Stream_Write_UINT16 (wStream *_s, UINT16 _v)
 
static INLINE void Stream_Write_UINT16_BE (wStream *_s, UINT16 _v)
 
static INLINE void Stream_Write_UINT32 (wStream *_s, UINT32 _v)
 
static INLINE void Stream_Write_UINT32_BE (wStream *_s, UINT32 _v)
 
static INLINE void Stream_Write_UINT64 (wStream *_s, UINT64 _v)
 
static INLINE void Stream_Write (wStream *_s, const void *_b, size_t _n)
 
static INLINE void Stream_Zero (wStream *_s, size_t _n)
 
static INLINE void Stream_Fill (wStream *_s, int _v, size_t _n)
 
static INLINE void Stream_Copy (wStream *_src, wStream *_dst, size_t _n)
 
static INLINE BYTEStream_Buffer (wStream *_s)
 
static INLINE void Stream_SetBuffer (wStream *_s, BYTE *_b)
 
static INLINE BYTEStream_Pointer (wStream *_s)
 
static INLINE void Stream_SetPointer (wStream *_s, BYTE *_p)
 
static INLINE size_t Stream_Length (wStream *_s)
 
static INLINE void Stream_SetLength (wStream *_s, size_t _l)
 
static INLINE size_t Stream_Capacity (wStream *_s)
 
static INLINE void Stream_SetCapacity (wStream *_s, size_t _c)
 
static INLINE size_t Stream_GetPosition (wStream *_s)
 
static INLINE void Stream_SetPosition (wStream *_s, size_t _p)
 
static INLINE void Stream_SealLength (wStream *_s)
 
static INLINE size_t Stream_GetRemainingCapacity (wStream *_s)
 
static INLINE size_t Stream_GetRemainingLength (wStream *_s)
 
static INLINE void Stream_Clear (wStream *_s)
 
static INLINE BOOL Stream_SafeSeek (wStream *s, size_t size)
 
static INLINE BOOL Stream_Read_UTF16_String (wStream *s, WCHAR *dst, size_t length)
 
static INLINE BOOL Stream_Write_UTF16_String (wStream *s, const WCHAR *src, size_t length)
 
WINPR_API wStream * StreamPool_Take (wStreamPool *pool, size_t size)
 
WINPR_API void StreamPool_Return (wStreamPool *pool, wStream *s)
 
WINPR_API void Stream_AddRef (wStream *s)
 
WINPR_API void Stream_Release (wStream *s)
 
WINPR_API wStream * StreamPool_Find (wStreamPool *pool, BYTE *ptr)
 
WINPR_API void StreamPool_AddRef (wStreamPool *pool, BYTE *ptr)
 
WINPR_API void StreamPool_Release (wStreamPool *pool, BYTE *ptr)
 
WINPR_API void StreamPool_Clear (wStreamPool *pool)
 
WINPR_API wStreamPool * StreamPool_New (BOOL synchronized, size_t defaultSize)
 
WINPR_API void StreamPool_Free (wStreamPool *pool)
 

Macro Definition Documentation

#define _stream_read_n16_be (   _t,
  _s,
  _v,
  _p 
)
Value:
do { \
_v = \
(_t)(((_t)(*_s->pointer)) << 8) + \
(_t)(*(_s->pointer + 1)); \
if (_p) Stream_Seek(_s, sizeof(_t)); } while (0)
static INLINE void Stream_Seek(wStream *s, size_t _offset)
Definition: stream.h:58
winpr freerdp if(WITH_DEBUG_SYMBOLS AND MSVC AND NOT BUILTIN_CHANNELS AND BUILD_SHARED_LIBS) install(FILES $
Definition: channels/drive/client/CMakeLists.txt:32
#define _stream_read_n16_le (   _t,
  _s,
  _v,
  _p 
)
Value:
do { \
_v = \
(_t)(*_s->pointer) + \
(_t)(((_t)(*(_s->pointer + 1))) << 8); \
if (_p) Stream_Seek(_s, sizeof(_t)); } while (0)
static INLINE void Stream_Seek(wStream *s, size_t _offset)
Definition: stream.h:58
winpr freerdp if(WITH_DEBUG_SYMBOLS AND MSVC AND NOT BUILTIN_CHANNELS AND BUILD_SHARED_LIBS) install(FILES $
Definition: channels/drive/client/CMakeLists.txt:32
#define _stream_read_n32_be (   _t,
  _s,
  _v,
  _p 
)
Value:
do { \
_v = \
(((_t)(*(_s->pointer))) << 24) + \
(((_t)(*(_s->pointer + 1))) << 16) + \
(((_t)(*(_s->pointer + 2))) << 8) + \
(((_t)(*(_s->pointer + 3)))); \
if (_p) Stream_Seek(_s, sizeof(_t)); } while (0)
static INLINE void Stream_Seek(wStream *s, size_t _offset)
Definition: stream.h:58
winpr freerdp if(WITH_DEBUG_SYMBOLS AND MSVC AND NOT BUILTIN_CHANNELS AND BUILD_SHARED_LIBS) install(FILES $
Definition: channels/drive/client/CMakeLists.txt:32
#define _stream_read_n32_le (   _t,
  _s,
  _v,
  _p 
)
Value:
do { \
_v = \
(_t)(*_s->pointer) + \
(((_t)(*(_s->pointer + 1))) << 8) + \
(((_t)(*(_s->pointer + 2))) << 16) + \
(((_t)(*(_s->pointer + 3))) << 24); \
if (_p) Stream_Seek(_s, sizeof(_t)); } while (0)
static INLINE void Stream_Seek(wStream *s, size_t _offset)
Definition: stream.h:58
winpr freerdp if(WITH_DEBUG_SYMBOLS AND MSVC AND NOT BUILTIN_CHANNELS AND BUILD_SHARED_LIBS) install(FILES $
Definition: channels/drive/client/CMakeLists.txt:32
#define _stream_read_n64_be (   _t,
  _s,
  _v,
  _p 
)
Value:
do { \
_v = \
(((_t)(*(_s->pointer))) << 56) + \
(((_t)(*(_s->pointer + 1))) << 48) + \
(((_t)(*(_s->pointer + 2))) << 40) + \
(((_t)(*(_s->pointer + 3))) << 32) + \
(((_t)(*(_s->pointer + 4))) << 24) + \
(((_t)(*(_s->pointer + 5))) << 16) + \
(((_t)(*(_s->pointer + 6))) << 8) + \
(((_t)(*(_s->pointer + 7)))); \
if (_p) Stream_Seek(_s, sizeof(_t)); } while (0)
static INLINE void Stream_Seek(wStream *s, size_t _offset)
Definition: stream.h:58
winpr freerdp if(WITH_DEBUG_SYMBOLS AND MSVC AND NOT BUILTIN_CHANNELS AND BUILD_SHARED_LIBS) install(FILES $
Definition: channels/drive/client/CMakeLists.txt:32
#define _stream_read_n64_le (   _t,
  _s,
  _v,
  _p 
)
Value:
do { \
_v = \
(_t)(*_s->pointer) + \
(((_t)(*(_s->pointer + 1))) << 8) + \
(((_t)(*(_s->pointer + 2))) << 16) + \
(((_t)(*(_s->pointer + 3))) << 24) + \
(((_t)(*(_s->pointer + 4))) << 32) + \
(((_t)(*(_s->pointer + 5))) << 40) + \
(((_t)(*(_s->pointer + 6))) << 48) + \
(((_t)(*(_s->pointer + 7))) << 56); \
if (_p) Stream_Seek(_s, sizeof(_t)); } while (0)
static INLINE void Stream_Seek(wStream *s, size_t _offset)
Definition: stream.h:58
winpr freerdp if(WITH_DEBUG_SYMBOLS AND MSVC AND NOT BUILTIN_CHANNELS AND BUILD_SHARED_LIBS) install(FILES $
Definition: channels/drive/client/CMakeLists.txt:32
#define _stream_read_n8 (   _t,
  _s,
  _v,
  _p 
)
Value:
do { \
_v = \
(_t)(*_s->pointer); \
if (_p) Stream_Seek(_s, sizeof(_t)); } while (0)
static INLINE void Stream_Seek(wStream *s, size_t _offset)
Definition: stream.h:58
winpr freerdp if(WITH_DEBUG_SYMBOLS AND MSVC AND NOT BUILTIN_CHANNELS AND BUILD_SHARED_LIBS) install(FILES $
Definition: channels/drive/client/CMakeLists.txt:32
#define Stream_GetBuffer (   _s,
  _b 
)    _b = Stream_Buffer(_s)
#define Stream_GetCapacity (   _s,
  _c 
)    _c = Stream_Capacity(_s);
#define Stream_GetLength (   _s,
  _l 
)    _l = Stream_Length(_s)
#define Stream_GetPointer (   _s,
  _p 
)    _p = Stream_Pointer(_s)
#define Stream_Peek_INT16 (   _s,
  _v 
)    _stream_read_n16_le(INT16, _s, _v, FALSE)
#define Stream_Peek_INT16_BE (   _s,
  _v 
)    _stream_read_n16_be(INT16, _s, _v, FALSE)
#define Stream_Peek_INT32 (   _s,
  _v 
)    _stream_read_n32_le(INT32, _s, _v, FALSE)
#define Stream_Peek_INT32_BE (   _s,
  _v 
)    _stream_read_n32_be(INT32, _s, _v, FALSE)
#define Stream_Peek_INT64 (   _s,
  _v 
)    _stream_read_n64_le(INT64, _s, _v, FALSE)
#define Stream_Peek_INT64_BE (   _s,
  _v 
)    _stream_read_n64_be(INT64, _s, _v, FALSE)
#define Stream_Peek_INT8 (   _s,
  _v 
)    _stream_read_n8(INT8, _s, _v, FALSE)
#define Stream_Peek_UINT16 (   _s,
  _v 
)    _stream_read_n16_le(UINT16, _s, _v, FALSE)
#define Stream_Peek_UINT16_BE (   _s,
  _v 
)    _stream_read_n16_be(UINT16, _s, _v, FALSE)
#define Stream_Peek_UINT32 (   _s,
  _v 
)    _stream_read_n32_le(UINT32, _s, _v, FALSE)
#define Stream_Peek_UINT32_BE (   _s,
  _v 
)    _stream_read_n32_be(UINT32, _s, _v, FALSE)
#define Stream_Peek_UINT64 (   _s,
  _v 
)    _stream_read_n64_le(UINT64, _s, _v, FALSE)
#define Stream_Peek_UINT64_BE (   _s,
  _v 
)    _stream_read_n64_be(UINT64, _s, _v, FALSE)
#define Stream_Peek_UINT8 (   _s,
  _v 
)    _stream_read_n8(UINT8, _s, _v, FALSE)
#define Stream_Read_INT16 (   _s,
  _v 
)    _stream_read_n16_le(INT16, _s, _v, TRUE)
#define Stream_Read_INT16_BE (   _s,
  _v 
)    _stream_read_n16_be(INT16, _s, _v, TRUE)
#define Stream_Read_INT32 (   _s,
  _v 
)    _stream_read_n32_le(INT32, _s, _v, TRUE)
#define Stream_Read_INT32_BE (   _s,
  _v 
)    _stream_read_n32_be(INT32, _s, _v, TRUE)
#define Stream_Read_INT64 (   _s,
  _v 
)    _stream_read_n64_le(INT64, _s, _v, TRUE)
#define Stream_Read_INT64_BE (   _s,
  _v 
)    _stream_read_n64_be(INT64, _s, _v, TRUE)
#define Stream_Read_INT8 (   _s,
  _v 
)    _stream_read_n8(INT8, _s, _v, TRUE)
#define Stream_Read_UINT16 (   _s,
  _v 
)    _stream_read_n16_le(UINT16, _s, _v, TRUE)
#define Stream_Read_UINT16_BE (   _s,
  _v 
)    _stream_read_n16_be(UINT16, _s, _v, TRUE)
#define Stream_Read_UINT32 (   _s,
  _v 
)    _stream_read_n32_le(UINT32, _s, _v, TRUE)
#define Stream_Read_UINT32_BE (   _s,
  _v 
)    _stream_read_n32_be(UINT32, _s, _v, TRUE)
#define Stream_Read_UINT64 (   _s,
  _v 
)    _stream_read_n64_le(UINT64, _s, _v, TRUE)
#define Stream_Read_UINT64_BE (   _s,
  _v 
)    _stream_read_n64_be(UINT64, _s, _v, TRUE)
#define Stream_Read_UINT8 (   _s,
  _v 
)    _stream_read_n8(UINT8, _s, _v, TRUE)
#define Stream_Rewind_UINT16 (   _s)    Stream_Rewind(_s, 2)
#define Stream_Rewind_UINT32 (   _s)    Stream_Rewind(_s, 4)
#define Stream_Rewind_UINT64 (   _s)    Stream_Rewind(_s, 8)
#define Stream_Rewind_UINT8 (   _s)    Stream_Rewind(_s, 1)
#define Stream_Seek_UINT16 (   _s)    Stream_Seek(_s, 2)
#define Stream_Seek_UINT32 (   _s)    Stream_Seek(_s, 4)
#define Stream_Seek_UINT64 (   _s)    Stream_Seek(_s, 8)
#define Stream_Seek_UINT8 (   _s)    Stream_Seek(_s, 1)

Function Documentation

WINPR_API void Stream_AddRef ( wStream *  s)

Increment stream reference count

Here is the call graph for this function:

Here is the caller graph for this function:

static INLINE BYTE* Stream_Buffer ( wStream *  _s)
static
static INLINE size_t Stream_Capacity ( wStream *  _s)
static

Here is the caller graph for this function:

static INLINE void Stream_Clear ( wStream *  _s)
static

Here is the caller graph for this function:

static INLINE void Stream_Copy ( wStream *  _src,
wStream *  _dst,
size_t  _n 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

WINPR_API BOOL Stream_EnsureCapacity ( wStream *  s,
size_t  size 
)

Here is the call graph for this function:

Here is the caller graph for this function:

WINPR_API BOOL Stream_EnsureRemainingCapacity ( wStream *  s,
size_t  size 
)

Here is the call graph for this function:

static INLINE void Stream_Fill ( wStream *  _s,
int  _v,
size_t  _n 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

WINPR_API void Stream_Free ( wStream *  s,
BOOL  bFreeBuffer 
)
static INLINE size_t Stream_GetPosition ( wStream *  _s)
static
static INLINE size_t Stream_GetRemainingCapacity ( wStream *  _s)
static

Here is the caller graph for this function:

static INLINE size_t Stream_GetRemainingLength ( wStream *  _s)
static
static INLINE size_t Stream_Length ( wStream *  _s)
static
WINPR_API wStream* Stream_New ( BYTE buffer,
size_t  size 
)
static INLINE void Stream_Peek ( wStream *  _s,
void _b,
size_t  _n 
)
static

Here is the call graph for this function:

static INLINE BYTE* Stream_Pointer ( wStream *  _s)
static
static INLINE void Stream_Read ( wStream *  _s,
void _b,
size_t  _n 
)
static

Here is the call graph for this function:

static INLINE BOOL Stream_Read_UTF16_String ( wStream *  s,
WCHAR *  dst,
size_t  length 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

WINPR_API void Stream_Release ( wStream *  s)

Decrement stream reference count

Here is the call graph for this function:

Here is the caller graph for this function:

static INLINE void Stream_Rewind ( wStream *  s,
size_t  _offset 
)
static

Here is the caller graph for this function:

static INLINE BOOL Stream_SafeSeek ( wStream *  s,
size_t  size 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static INLINE void Stream_SealLength ( wStream *  _s)
static
static INLINE void Stream_Seek ( wStream *  s,
size_t  _offset 
)
static
static INLINE void Stream_SetBuffer ( wStream *  _s,
BYTE _b 
)
static
static INLINE void Stream_SetCapacity ( wStream *  _s,
size_t  _c 
)
static
static INLINE void Stream_SetLength ( wStream *  _s,
size_t  _l 
)
static

Here is the caller graph for this function:

static INLINE void Stream_SetPointer ( wStream *  _s,
BYTE _p 
)
static

Here is the caller graph for this function:

static INLINE void Stream_SetPosition ( wStream *  _s,
size_t  _p 
)
static
WINPR_API void Stream_StaticInit ( wStream *  s,
BYTE buffer,
size_t  size 
)

Here is the call graph for this function:

Here is the caller graph for this function:

static INLINE void Stream_Write ( wStream *  _s,
const void _b,
size_t  _n 
)
static

Here is the call graph for this function:

static INLINE void Stream_Write_UINT16 ( wStream *  _s,
UINT16  _v 
)
static
static INLINE void Stream_Write_UINT16_BE ( wStream *  _s,
UINT16  _v 
)
static

Here is the caller graph for this function:

static INLINE void Stream_Write_UINT32 ( wStream *  _s,
UINT32  _v 
)
static
static INLINE void Stream_Write_UINT32_BE ( wStream *  _s,
UINT32  _v 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static INLINE void Stream_Write_UINT64 ( wStream *  _s,
UINT64  _v 
)
static

Here is the caller graph for this function:

static INLINE void Stream_Write_UINT8 ( wStream *  _s,
UINT8  _v 
)
static
static INLINE BOOL Stream_Write_UTF16_String ( wStream *  s,
const WCHAR *  src,
size_t  length 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static INLINE void Stream_Zero ( wStream *  _s,
size_t  _n 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

WINPR_API void StreamPool_AddRef ( wStreamPool *  pool,
BYTE ptr 
)

Find stream in pool and increment reference count

Here is the call graph for this function:

Here is the caller graph for this function:

WINPR_API void StreamPool_Clear ( wStreamPool *  pool)

Releases the streams currently cached in the pool.

Here is the call graph for this function:

Here is the caller graph for this function:

WINPR_API wStream* StreamPool_Find ( wStreamPool *  pool,
BYTE ptr 
)

Find stream in pool using pointer inside buffer

Here is the call graph for this function:

Here is the caller graph for this function:

WINPR_API void StreamPool_Free ( wStreamPool *  pool)

Here is the call graph for this function:

Here is the caller graph for this function:

WINPR_API wStreamPool* StreamPool_New ( BOOL  synchronized,
size_t  defaultSize 
)

Construction, Destruction

Here is the call graph for this function:

Here is the caller graph for this function:

WINPR_API void StreamPool_Release ( wStreamPool *  pool,
BYTE ptr 
)

Find stream in pool and decrement reference count

Here is the call graph for this function:

Here is the caller graph for this function:

WINPR_API void StreamPool_Return ( wStreamPool *  pool,
wStream *  s 
)

Returns an object to the pool.

Here is the call graph for this function:

Here is the caller graph for this function:

WINPR_API wStream* StreamPool_Take ( wStreamPool *  pool,
size_t  size 
)

Gets a stream from the pool.

Here is the call graph for this function:

Here is the caller graph for this function: