Types
HTTP server stream data types. More...
Macros |
|
#define | GOS_HS_STREAM_WRITE_ALL (( gos_hs_stream_ws_client_t )UINT32_MAX) |
Typedefs |
|
typedef void * | gos_hs_stream_ws_client_t |
typedef bool(* | gos_hs_stream_ws_accept_callback_t ) (void) |
Callback for a websocket stream wants to connect.
More...
|
|
typedef void(* | gos_hs_stream_handler_t ) (const char *stream_name, const gos_msgpack_object_t *in_data, gos_msgpack_context_t *out_context, void *arg) |
Handler to be invoked when a REST or Websocket clients reads/writes a stream.
More...
|
|
Enumerations |
|
enum |
gos_hs_stream_permissions_t
{
GOS_HS_STREAM_PERMISSION_NONE = 0, GOS_HS_STREAM_PERMISSION_READ = (1 << 0), GOS_HS_STREAM_PERMISSION_WRITE = (1 << 1), GOS_HS_STREAM_PERMISSION_ALL = 0xFF } |
Detailed Description
HTTP server stream data types.
Macro Definition Documentation
◆ GOS_HS_STREAM_WRITE_ALL
#define GOS_HS_STREAM_WRITE_ALL (( gos_hs_stream_ws_client_t )UINT32_MAX) |
Write all connected websocket clients
This should only be used with gos_hs_stream_ws_write()
- Examples:
- demo/3d_demo/main.c , demo/accelerometer_stream/main.c , and hurricane/arducam/camera.c .
Typedef Documentation
◆ gos_hs_stream_handler_t
typedef void(* gos_hs_stream_handler_t) (const char *stream_name, const gos_msgpack_object_t *in_data, gos_msgpack_context_t *out_context, void *arg) |
Handler to be invoked when a REST or Websocket clients reads/writes a stream.
This handler is registered for a specific stream. It is invoked when either a REST or Websocket client wants to read or write the stream.
If the client is writing the stream then the
in_data
will be non-null. In this case, the app should use the msgpack APIs to read the
in_data
being written by the remote client.
If the client is reading the stream then the
out_context
will be non-null. In this case, the app should use the msgpack APIs to write to the provided
gos_msgpack_context_t
. After all the data is written, the app must call
gos_hs_stream_flush()
to send the data to the client.
- Note
- This handler executes in the application thread context.
- Parameters
-
stream_name[in]
The name of the stream that is being read/written in_data[in]
If NOT NULL, this is the data being written from the client to the device. out_context[in]
If NOT NULL, this is a gos_msgpack_context_t context the app should use to write data to the client arg[in]
Argument that was given when the stream handler was registered
◆ gos_hs_stream_ws_accept_callback_t
typedef bool(* gos_hs_stream_ws_accept_callback_t) (void) |
Callback for a websocket stream wants to connect.
This is used to disallowed a websocket client from connecting.
- Note
- Executes in HTTP server thread context
- Returns
- true if the websocket client is ALLOWED connect, false to stop the websocket client from connecting
◆ gos_hs_stream_ws_client_t
typedef void* gos_hs_stream_ws_client_t |
Handle to connected websocket client
This is used to read or write a specific websocket client.
Enumeration Type Documentation
◆ gos_hs_stream_permissions_t
Stream permissions
This specifies the permissions a remote client has for a given stream This is used when registering a stream with gos_hs_stream_register()