Faspstream Manager C/C++ API  3.6.1
A C and C++ language interface to basic streaming over the fasp protocol
fasp_stream_server.h File Reference
#include "fasp_stream_constants.h"
#include <stdlib.h>
#include <fasp_stream_channel.h>

Go to the source code of this file.

Macros

#define FASPSTREAM_C_API
 

Typedefs

typedef struct fasp_stream_server fasp_stream_server_t
 

Functions

FASPSTREAM_C_API int fasp_stream_server_new (char *app_id, fasp_stream_server_t **fss)
 
FASPSTREAM_C_API int fasp_stream_channel_server_new (char *app_id, fasp_stream_server_t **fss, fasp_stream_socket_wrapper_t *sock)
 
FASPSTREAM_C_API int fasp_stream_server_abort (fasp_stream_server_t *fss)
 
FASPSTREAM_C_API int fasp_stream_server_cleanup (fasp_stream_server_t *fss)
 
FASPSTREAM_C_API int fasp_stream_server_destroy (fasp_stream_server_t *fss)
 
FASPSTREAM_C_API int fasp_stream_server_start_server (fasp_stream_server_t *fss, int kill_child)
 
FASPSTREAM_C_API int fasp_stream_server_write (fasp_stream_server_t *fss, char *buff, size_t len)
 
FASPSTREAM_C_API int fasp_stream_server_read (fasp_stream_server_t *fss, char *buff, size_t len)
 
FASPSTREAM_C_API const char * fasp_stream_server_get_username (fasp_stream_server_t *fss)
 
FASPSTREAM_C_API int fasp_stream_server_get_max_memory (fasp_stream_server_t *fss)
 
FASPSTREAM_C_API void fasp_stream_server_set_max_memory (fasp_stream_server_t *fss, int max_mem)
 
FASPSTREAM_C_API int fasp_stream_server_get_udp_port (fasp_stream_server_t *fss)
 
FASPSTREAM_C_API void fasp_stream_server_set_udp_port (fasp_stream_server_t *fss, int port)
 
FASPSTREAM_C_API int fasp_stream_server_get_port (fasp_stream_server_t *fss)
 
FASPSTREAM_C_API void fasp_stream_server_set_port (fasp_stream_server_t *fss, int tcp_port)
 
FASPSTREAM_C_API int fasp_stream_server_get_datagram_size (fasp_stream_server_t *fss)
 
FASPSTREAM_C_API void fasp_stream_server_set_datagram_size (fasp_stream_server_t *fss, int size)
 
FASPSTREAM_C_API int fasp_stream_server_get_chunk_size (fasp_stream_server_t *fss)
 
FASPSTREAM_C_API void fasp_stream_server_set_chunk_size (fasp_stream_server_t *fss, int size)
 
FASPSTREAM_C_API const char * fasp_stream_server_get_hostname (fasp_stream_server_t *fss)
 
FASPSTREAM_C_API void fasp_stream_server_set_hostname (fasp_stream_server_t *fss, char *name)
 
FASPSTREAM_C_API int fasp_stream_server_get_rate_target (fasp_stream_server_t *fss)
 
FASPSTREAM_C_API void fasp_stream_server_set_rate_target (fasp_stream_server_t *fss, int target)
 
FASPSTREAM_C_API int fasp_stream_server_get_cipher_type (fasp_stream_server_t *fss)
 
FASPSTREAM_C_API void fasp_stream_server_set_cipher_type (fasp_stream_server_t *fss, int type)
 
FASPSTREAM_C_API int fasp_stream_server_is_lock_target (fasp_stream_server_t *fss)
 
FASPSTREAM_C_API void fasp_stream_server_set_lock_target (fasp_stream_server_t *fss, int target)
 
FASPSTREAM_C_API int fasp_stream_server_get_rate_minimum (fasp_stream_server_t *fss)
 
FASPSTREAM_C_API void fasp_stream_server_set_rate_minimum (fasp_stream_server_t *fss, int minimum)
 
FASPSTREAM_C_API int fasp_stream_server_is_lock_minimum (fasp_stream_server_t *fss)
 
FASPSTREAM_C_API void fasp_stream_server_set_lock_minimum (fasp_stream_server_t *fss, int lock_min)
 
FASPSTREAM_C_API int fasp_stream_server_get_policy (fasp_stream_server_t *fss)
 
FASPSTREAM_C_API void fasp_stream_server_set_policy (fasp_stream_server_t *fss, int new_policy)
 
FASPSTREAM_C_API int fasp_stream_server_is_lock_policy (fasp_stream_server_t *fss)
 
FASPSTREAM_C_API void fasp_stream_server_set_lock_policy (fasp_stream_server_t *fss, int lock)
 
FASPSTREAM_C_API int fasp_stream_server_get_aggressiveness (fasp_stream_server_t *fss)
 
FASPSTREAM_C_API void fasp_stream_server_set_aggressiveness (fasp_stream_server_t *fss, int aggressive)
 
FASPSTREAM_C_API const char * fasp_stream_server_get_faspstream_path (fasp_stream_server_t *fss)
 
FASPSTREAM_C_API void fasp_stream_server_set_faspstream_path (fasp_stream_server_t *fss, char *path)
 
FASPSTREAM_C_API int fasp_stream_server_get_force_send_milliseconds (fasp_stream_server_t *fss)
 
FASPSTREAM_C_API void fasp_stream_server_set_force_send_milliseconds (fasp_stream_server_t *fss, int milliseconds)
 
FASPSTREAM_C_API void fasp_stream_server_set_transfer_mode (fasp_stream_server_t *fss, int transfer_mode)
 
FASPSTREAM_C_API int fasp_stream_server_get_transfer_mode (fasp_stream_server_t *fss)
 
FASPSTREAM_C_API void fasp_stream_server_set_log_directory (fasp_stream_server_t *fss, char *log_directory)
 
FASPSTREAM_C_API const char * fasp_stream_server_get_log_directory (fasp_stream_server_t *fss)
 
FASPSTREAM_C_API void fasp_stream_server_set_command_to_execute (fasp_stream_server_t *fss, char *command_to_execute)
 
FASPSTREAM_C_API const char * fasp_stream_server_get_command_to_execute (fasp_stream_server_t *fss)
 
FASPSTREAM_C_API void fasp_stream_server_set_license (fasp_stream_server_t *fss, char *license)
 
FASPSTREAM_C_API const char * fasp_stream_server_get_license (fasp_stream_server_t *fss)
 
FASPSTREAM_C_API int fasp_stream_server_get_accept_timeout (fasp_stream_server_t *fss)
 
FASPSTREAM_C_API void fasp_stream_server_set_accept_timeout (fasp_stream_server_t *fss, int timeout)
 
FASPSTREAM_C_API void fasp_stream_server_register_log_callback (fasp_stream_server_t *fss, log_callback_f log_function)
 

Macro Definition Documentation

#define FASPSTREAM_C_API

Typedef Documentation

typedef struct fasp_stream_server fasp_stream_server_t

Function Documentation

FASPSTREAM_C_API int fasp_stream_channel_server_new ( char *  app_id,
fasp_stream_server_t **  fss,
fasp_stream_socket_wrapper_t sock 
)

Wrapper around FaspStreamServer constructor for tunneling.

Parameters
app_idstring id that is unique to this app
fssout parameter for new fasp stream server
wrapperthe socket to use for tunneling fasp control data
Returns
status, non-zero on error
FASPSTREAM_C_API int fasp_stream_server_abort ( fasp_stream_server_t fss)

Wrapper around FaspStream abort(). This will kill the faspstream process in case an error has occurred or process is "hung". This is intended to be used in error / exception handling code.

Parameters
fssthe fasp stream server to abort
Returns
non-zero on failure
FASPSTREAM_C_API int fasp_stream_server_cleanup ( fasp_stream_server_t fss)

Wrapper around FaspStream abort(). This will kill the faspstream process in case an error has occurred or process is "hung". This is intended to be used in error / exception handling code.

Parameters
fssthe fasp stream server to clean up
Returns
non-zero on failure
FASPSTREAM_C_API int fasp_stream_server_destroy ( fasp_stream_server_t fss)

Wrapper around FaspStreamServer destructor.

IMPORTANT: Call cleanup before calling destroy. If the faspstream process is still working and destroy is called, it will be killed, and may not send/recv all data.

Parameters
fssthe fasp stream server to destroy / free
Returns
non-zero on failure
FASPSTREAM_C_API int fasp_stream_server_get_accept_timeout ( fasp_stream_server_t fss)
FASPSTREAM_C_API int fasp_stream_server_get_aggressiveness ( fasp_stream_server_t fss)
FASPSTREAM_C_API int fasp_stream_server_get_chunk_size ( fasp_stream_server_t fss)
FASPSTREAM_C_API int fasp_stream_server_get_cipher_type ( fasp_stream_server_t fss)
FASPSTREAM_C_API const char* fasp_stream_server_get_command_to_execute ( fasp_stream_server_t fss)
FASPSTREAM_C_API int fasp_stream_server_get_datagram_size ( fasp_stream_server_t fss)
FASPSTREAM_C_API const char* fasp_stream_server_get_faspstream_path ( fasp_stream_server_t fss)
FASPSTREAM_C_API int fasp_stream_server_get_force_send_milliseconds ( fasp_stream_server_t fss)
FASPSTREAM_C_API const char* fasp_stream_server_get_hostname ( fasp_stream_server_t fss)
FASPSTREAM_C_API const char* fasp_stream_server_get_license ( fasp_stream_server_t fss)
FASPSTREAM_C_API const char* fasp_stream_server_get_log_directory ( fasp_stream_server_t fss)
FASPSTREAM_C_API int fasp_stream_server_get_max_memory ( fasp_stream_server_t fss)
FASPSTREAM_C_API int fasp_stream_server_get_policy ( fasp_stream_server_t fss)
FASPSTREAM_C_API int fasp_stream_server_get_port ( fasp_stream_server_t fss)
FASPSTREAM_C_API int fasp_stream_server_get_rate_minimum ( fasp_stream_server_t fss)
FASPSTREAM_C_API int fasp_stream_server_get_rate_target ( fasp_stream_server_t fss)
FASPSTREAM_C_API int fasp_stream_server_get_transfer_mode ( fasp_stream_server_t fss)
FASPSTREAM_C_API int fasp_stream_server_get_udp_port ( fasp_stream_server_t fss)
FASPSTREAM_C_API const char* fasp_stream_server_get_username ( fasp_stream_server_t fss)
FASPSTREAM_C_API int fasp_stream_server_is_lock_minimum ( fasp_stream_server_t fss)
FASPSTREAM_C_API int fasp_stream_server_is_lock_policy ( fasp_stream_server_t fss)
FASPSTREAM_C_API int fasp_stream_server_is_lock_target ( fasp_stream_server_t fss)
FASPSTREAM_C_API int fasp_stream_server_new ( char *  app_id,
fasp_stream_server_t **  fss 
)

Wrapper around FaspStreamServer constructor.

Parameters
app_idstring id that is unique to this app
fssout parameter for new fasp stream server
Returns
status, non-zero on error
FASPSTREAM_C_API int fasp_stream_server_read ( fasp_stream_server_t fss,
char *  buff,
size_t  len 
)

Wrapper around reading from FaspStreamServer's input stream. The transfer mode must be FASPSTREAM_TRANSFER_TYPE_RECEIVE (fasp_stream_enums.h) - set it with fasp_stream_server_set_transfer_mode). Otherwise, the child fasp stream process won't provide anything for you to read.

Parameters
fssfasp stream server
buffbuffer to receive incoming data
lenlength of buffer
Returns
number of bytes read, zero means EOF, negative means error
FASPSTREAM_C_API void fasp_stream_server_register_log_callback ( fasp_stream_server_t fss,
log_callback_f  log_function 
)

Function for registering a logging callback

When a new log entry is available the function specified will be called (signature: void return, const char* argument). (Will not log if NULL, as is by default)

Parameters
log_callbackpointer to log function you have implemented

The simplest implementation of the callback might look like this:

static void log_function( char const *s ) {
  fprintf( stderr, "%s\n", s );
}

FASPSTREAM_C_API void fasp_stream_server_set_accept_timeout ( fasp_stream_server_t fss,
int  timeout 
)
FASPSTREAM_C_API void fasp_stream_server_set_aggressiveness ( fasp_stream_server_t fss,
int  aggressive 
)
FASPSTREAM_C_API void fasp_stream_server_set_chunk_size ( fasp_stream_server_t fss,
int  size 
)
FASPSTREAM_C_API void fasp_stream_server_set_cipher_type ( fasp_stream_server_t fss,
int  type 
)
FASPSTREAM_C_API void fasp_stream_server_set_command_to_execute ( fasp_stream_server_t fss,
char *  command_to_execute 
)
FASPSTREAM_C_API void fasp_stream_server_set_datagram_size ( fasp_stream_server_t fss,
int  size 
)
FASPSTREAM_C_API void fasp_stream_server_set_faspstream_path ( fasp_stream_server_t fss,
char *  path 
)
FASPSTREAM_C_API void fasp_stream_server_set_force_send_milliseconds ( fasp_stream_server_t fss,
int  milliseconds 
)
FASPSTREAM_C_API void fasp_stream_server_set_hostname ( fasp_stream_server_t fss,
char *  name 
)
FASPSTREAM_C_API void fasp_stream_server_set_license ( fasp_stream_server_t fss,
char *  license 
)
FASPSTREAM_C_API void fasp_stream_server_set_lock_minimum ( fasp_stream_server_t fss,
int  lock_min 
)
FASPSTREAM_C_API void fasp_stream_server_set_lock_policy ( fasp_stream_server_t fss,
int  lock 
)
FASPSTREAM_C_API void fasp_stream_server_set_lock_target ( fasp_stream_server_t fss,
int  target 
)
FASPSTREAM_C_API void fasp_stream_server_set_log_directory ( fasp_stream_server_t fss,
char *  log_directory 
)
FASPSTREAM_C_API void fasp_stream_server_set_max_memory ( fasp_stream_server_t fss,
int  max_mem 
)
FASPSTREAM_C_API void fasp_stream_server_set_policy ( fasp_stream_server_t fss,
int  new_policy 
)
FASPSTREAM_C_API void fasp_stream_server_set_port ( fasp_stream_server_t fss,
int  tcp_port 
)
FASPSTREAM_C_API void fasp_stream_server_set_rate_minimum ( fasp_stream_server_t fss,
int  minimum 
)
FASPSTREAM_C_API void fasp_stream_server_set_rate_target ( fasp_stream_server_t fss,
int  target 
)
FASPSTREAM_C_API void fasp_stream_server_set_transfer_mode ( fasp_stream_server_t fss,
int  transfer_mode 
)
FASPSTREAM_C_API void fasp_stream_server_set_udp_port ( fasp_stream_server_t fss,
int  port 
)
FASPSTREAM_C_API int fasp_stream_server_start_server ( fasp_stream_server_t fss,
int  kill_child 
)

Wrapper around FaspStreamServer::start_server.

Parameters
fssfasp stream server
kill_child
Returns
non-zero on failure
FASPSTREAM_C_API int fasp_stream_server_write ( fasp_stream_server_t fss,
char *  buff,
size_t  len 
)

Wrapper around writing to FaspStreamServer's output stream. The transfer mode must be FASPSTREAM_TRANSFER_TYPE_SEND (fasp_stream_enums.h) - set it with fasp_stream_server_set_transfer_mode. Otherwise, the child fasp stream process will ignore what you write. Always writes entire buffer to output stream unless there's an error.

Parameters
fssfasp stream server
buffbuffer to write to output stream
lenlength of buffer
Returns
non-zero on error