Adaptive Framework  0.9.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Files | Data Structures | Macros | Enumerations | Functions

Files

file  afw_stream.h
 Adaptive Framework Stream Implementation Header.
 

Data Structures

struct  afw_stream_anchor_s
 struct for common xctx streams More...
 

Macros

#define afw_stream_standard(enum_suffix, xctx)
 Get xctx stream instance. More...
 
#define afw_stream_standard_is_set(enum_suffix, xctx)   ((xctx)->stream_anchor->streams[afw_stream_number_ ## enum_suffix] != NULL )
 Determine if an xctx's standard stream is set. More...
 
#define afw_stream_standard_set(enum_suffix, stream, xctx)
 Set xctx's enum_suffix stream. More...
 
#define afw_stream_standard_release(enum_suffix, xctx)
 Release an xctx's stream. More...
 
#define afw_stream_write_z(writer, s_z, xctx)   afw_stream_write(writer, s_z, strlen(s_z), xctx)
 Call afw_stream_write() with zero terminated string. More...
 
#define afw_stream_write_eol(writer, xctx)   afw_stream_write(writer, "\n", strlen("\n"), xctx)
 Write eol char to stream. More...
 
#define afw_stream_write_utf8(writer, S, xctx)   afw_stream_write(writer, (S)->s, (S)->len, xctx)
 Call afw_stream_write() with a afw_utf8_t string. More...
 

Enumerations

enum  afw_stream_number_t {
  afw_stream_number_raw_response_body , afw_stream_number_response_body , afw_stream_number_console , afw_stream_number_stderr ,
  afw_stream_number_stdout , afw_stream_number_count
}
 enum for common xctx streams
 

Functions

void afw_stream_get_by_streamId (const afw_utf8_t *streamId, const afw_stream_t **stream, afw_size_t *streamNumber, afw_xctx_t *xctx)
 Get stream by streamId and streamNumber. More...
 
const afw_stream_tafw_stream_get_by_streamNumber (const afw_integer_t streamNumber, afw_xctx_t *xctx)
 Get stream by streamNumber. More...
 
afw_size_t afw_stream_get_streamNumber_for_streamId (const afw_utf8_t *streamId, afw_xctx_t *xctx)
 Get streamNumber for streamId. More...
 
afw_size_t afw_stream_set (const afw_stream_t *stream, afw_xctx_t *xctx)
 Set an opening stream and get its streamNumber. More...
 
const afw_stream_tafw_stream_standard_impl (afw_stream_number_t n, afw_xctx_t *xctx)
 Implementation for get xctx standard stream instance. More...
 
void afw_stream_write_integer (const afw_stream_t *writer, afw_integer_t integer, afw_xctx_t *xctx)
 Call afw_stream_write() with an integer. More...
 
void afw_stream_write_size (const afw_stream_t *writer, afw_size_t size, afw_xctx_t *xctx)
 Call afw_stream_write() with an size. More...
 
const afw_stream_tafw_stream_fd_create (FILE *fd, const afw_utf8_t *streamId, afw_boolean_t allow_read, afw_boolean_t allow_write, afw_boolean_t auto_flush, afw_boolean_t close_on_release, const afw_pool_t *p, afw_xctx_t *xctx)
 Create a stream to a file descriptor. More...
 
const afw_stream_tafw_stream_fd_open_and_create (const afw_utf8_t *streamId, const afw_utf8_t *path, const afw_utf8_t *mode, afw_boolean_t auto_flush, const afw_pool_t *p, afw_xctx_t *xctx)
 Open a file and create a stream for it. More...
 
 afw_stream_internal_stream_anchor_create (afw_xctx_t *xctx)
 
 afw_stream_internal_release_all_streams (afw_xctx_t *xctx)
 

Detailed Description

Adaptive Framework Stream.

Macro Definition Documentation

◆ afw_stream_standard

#define afw_stream_standard (   enum_suffix,
  xctx 
)
Value:
(((xctx)->stream_anchor->streams[afw_stream_number_ ## enum_suffix]) \
? (xctx)->stream_anchor->streams[afw_stream_number_ ## enum_suffix] \
: afw_stream_standard_impl(afw_stream_number_ ## enum_suffix, xctx) )
const afw_stream_t * afw_stream_standard_impl(afw_stream_number_t n, afw_xctx_t *xctx)
Implementation for get xctx standard stream instance.
Definition: afw_stream.c:150

Get xctx stream instance.

Parameters
enum_suffixis appended to afw_stream_number_
xctxof caller.

Definition at line 122 of file afw_stream.h.

◆ afw_stream_standard_is_set

#define afw_stream_standard_is_set (   enum_suffix,
  xctx 
)    ((xctx)->stream_anchor->streams[afw_stream_number_ ## enum_suffix] != NULL )

Determine if an xctx's standard stream is set.

Parameters
enum_suffixis appended to afw_stream_number_
xctxof caller.

Definition at line 134 of file afw_stream.h.

◆ afw_stream_standard_release

#define afw_stream_standard_release (   enum_suffix,
  xctx 
)
Value:
if ((xctx)->stream_anchor->streams[afw_stream_number_ ## enum_suffix]) { \
afw_stream_release( \
(xctx)->stream_anchor->streams[afw_stream_number_ ## enum_suffix], \
xctx); \
*(afw_stream_t **)&(xctx)->stream_anchor-> \
streams[afw_stream_number_ ## enum_suffix] = NULL; \
}
Interface afw_stream public struct.

Release an xctx's stream.

Parameters
enum_suffixis appended to afw_stream_number_
xctxof caller.

Note: afw_stream_console_stream() will get a new one if called.

Definition at line 161 of file afw_stream.h.

◆ afw_stream_standard_set

#define afw_stream_standard_set (   enum_suffix,
  stream,
  xctx 
)
Value:
if ((xctx)->stream_anchor->streams[afw_stream_number_ ## enum_suffix]) { \
AFW_THROW_ERROR(general, "Stream already set", xctx); \
} \
(xctx)->stream_anchor->streams[afw_stream_number_ ## enum_suffix] = stream

Set xctx's enum_suffix stream.

Parameters
enum_suffixis appended to afw_stream_number_
stream
xctxof caller.
Returns
stream instance.

Definition at line 146 of file afw_stream.h.

◆ afw_stream_write_eol

#define afw_stream_write_eol (   writer,
  xctx 
)    afw_stream_write(writer, "\n", strlen("\n"), xctx)

Write eol char to stream.

Parameters
writerinstance.
xctxof caller.

Definition at line 188 of file afw_stream.h.

◆ afw_stream_write_utf8

#define afw_stream_write_utf8 (   writer,
  S,
  xctx 
)    afw_stream_write(writer, (S)->s, (S)->len, xctx)

Call afw_stream_write() with a afw_utf8_t string.

Parameters
writerinstance.
sutf8 string.
xctxof caller.

Definition at line 199 of file afw_stream.h.

◆ afw_stream_write_z

#define afw_stream_write_z (   writer,
  s_z,
  xctx 
)    afw_stream_write(writer, s_z, strlen(s_z), xctx)

Call afw_stream_write() with zero terminated string.

Parameters
writerinstance.
s_zzero terminated string to write.
xctxof caller.

Definition at line 178 of file afw_stream.h.

Function Documentation

◆ afw_stream_fd_create()

const afw_stream_t* afw_stream_fd_create ( FILE *  fd,
const afw_utf8_t streamId,
afw_boolean_t  allow_read,
afw_boolean_t  allow_write,
afw_boolean_t  auto_flush,
afw_boolean_t  close_on_release,
const afw_pool_t p,
afw_xctx_t xctx 
)

Create a stream to a file descriptor.

Parameters
fdopened file descriptor.
streamId
allow_read
allow_write
auto_flushafter each write.
close_on_releasetrue closes fd on release call.
pto use.
xctxof caller.

Definition at line 138 of file afw_stream_fd.c.

◆ afw_stream_fd_open_and_create()

const afw_stream_t* afw_stream_fd_open_and_create ( const afw_utf8_t streamId,
const afw_utf8_t path,
const afw_utf8_t mode,
afw_boolean_t  auto_flush,
const afw_pool_t p,
afw_xctx_t xctx 
)

Open a file and create a stream for it.

Parameters
streamId
path
mode
auto_flush
pto use.
xctxof caller.
Returns
stream
Todo:
FIXME: use application rootPaths

Definition at line 171 of file afw_stream_fd.c.

◆ afw_stream_get_by_streamId()

void afw_stream_get_by_streamId ( const afw_utf8_t streamId,
const afw_stream_t **  stream,
afw_size_t streamNumber,
afw_xctx_t xctx 
)

Get stream by streamId and streamNumber.

Parameters
streamId.
streamreturn pointer.
streamNumberreturn pointer.
xctxof caller.

Definition at line 19 of file afw_stream.c.

◆ afw_stream_get_by_streamNumber()

const afw_stream_t* afw_stream_get_by_streamNumber ( const afw_integer_t  streamNumber,
afw_xctx_t xctx 
)

Get stream by streamNumber.

Parameters
streamNumber.
xctxof caller.
Returns
Stream or NULL if not found.

Definition at line 68 of file afw_stream.c.

◆ afw_stream_get_streamNumber_for_streamId()

afw_size_t afw_stream_get_streamNumber_for_streamId ( const afw_utf8_t streamId,
afw_xctx_t xctx 
)

Get streamNumber for streamId.

Parameters
streamId.
xctxof caller.
Returns
streamNumber or -1 if not found.

Definition at line 97 of file afw_stream.c.

◆ afw_stream_set()

afw_size_t afw_stream_set ( const afw_stream_t stream,
afw_xctx_t xctx 
)

Set an opening stream and get its streamNumber.

Parameters
stream.
xctxof caller.
Returns
streamNumber or -1 if failed.

Definition at line 114 of file afw_stream.c.

◆ afw_stream_standard_impl()

const afw_stream_t* afw_stream_standard_impl ( afw_stream_number_t  n,
afw_xctx_t xctx 
)

Implementation for get xctx standard stream instance.

Parameters
nof streams indexed by afw_stream_number_t.
xctxof caller.
See also
afw_stream_standard()

Definition at line 150 of file afw_stream.c.

◆ afw_stream_write_integer()

void afw_stream_write_integer ( const afw_stream_t writer,
afw_integer_t  integer,
afw_xctx_t xctx 
)

Call afw_stream_write() with an integer.

Parameters
writerinstance.
integerto write as as string.
xctxof caller.

Definition at line 341 of file afw_stream.c.

◆ afw_stream_write_size()

void afw_stream_write_size ( const afw_stream_t writer,
afw_size_t  size,
afw_xctx_t xctx 
)

Call afw_stream_write() with an size.

Parameters
writerinstance.
sizeto write as string.
xctxof caller.

Definition at line 357 of file afw_stream.c.