The "dsxfr" Package

These routines are meant to provide high level transfer of the recursive, heirarchical data structure supported in Karma from and to files and connections.

Library: karma
Link With: -lkarma

Functions

dsxfr_register_connection_limitsRegister connection limits for "multi_array" protocol.
dsxfr_put_multiWrite a multi_array data structure.
dsxfr_send_multiSend a multi_array data structure over a connection.
dsxfr_get_multiRead a multi_array data structure.
dsxfr_register_read_funcRegister callback for new "multi_array" data.
dsxfr_register_close_funcRegister callback for closed "multi_array" connection.
dsxfr_test_splitTest if a file is part of a split Karma file.
dsxfr_read_splitRead a multi_array data structure.

Prototype Functions

dsxfr_PROTO_read_funcNew "multi_array" data callback.
dsxfr_PROTO_close_funcCallback for "multi_array" connection closures.


Functions


void dsxfr_register_connection_limits (int max_incoming, int max_outgoing)

This routine will register the maximum number of incoming (server) and outgoing (client) connections for the transfer of the general data structure. The protocol used is: "multi_array".

Parameters:

Returns: Nothing.
Multithreading Level: Unsafe
Note:


flag dsxfr_put_multi (CONST char *object, multi_array *multi_desc)

This routine will put (write to disc, transmit over connection) a multi_desc general data structure to a named object.

Parameters:

Returns: TRUE on success, else FALSE.
Multithreading Level: Unsafe


EXPERIMENTAL FUNCTION: subject to change without notice

flag dsxfr_send_multi (Connection connection, CONST multi_array *multi_desc, CONST char *name)

Send a multi_array data structure over a connection.

Parameters:

Returns: TRUE on success, else FALSE.
Multithreading Level: Unsafe


multi_array * dsxfr_get_multi (CONST char *object, flag cache, unsigned int mmap_option, flag writable)

This routine will get (read from disc, read from connection) a multi_desc general data structure from a named object.

Parameters:

Returns: A pointer to the data structure on success, else NULL.
Multithreading Level: Unsafe
Note:


void dsxfr_register_read_func (void (*read_func) ())

This routine will register a function which is to be called when new data arrives on a "multi_array" connection.

Parameters:

Returns: Nothing.
Multithreading Level: Unsafe


void dsxfr_register_close_func ( void (*close_func) () )

This routine will register a function which is to be called when a "multi_array" connection closes.

Parameters:

Returns: Nothing.
Multithreading Level: Unsafe


EXPERIMENTAL FUNCTION: subject to change without notice

flag dsxfr_test_split (CONST char *filename)

Test if a file is part of a split Karma file.

Parameters:

Returns: TRUE if the file is part of a Karma file set, else FALSE.
Multithreading Level: Unsafe


EXPERIMENTAL FUNCTION: subject to change without notice

multi_array * dsxfr_read_split (char *filename, flag ascii, flag guess)

Read a multi_array data structure.

Parameters:

Returns: A pointer to the data structure on success, else NULL.
Multithreading Level: Unsafe


Prototype Functions


void dsxfr_PROTO_read_func (flag first_time_data, unsigned int connection_num)

This routine is called when new data arrives on any "multi_array" connection.

Parameters:

Returns: Nothing.
Multithreading Level: Unsafe


void dsxfr_PROTO_close_func (flag data_deallocated)

This routine is called when any "multi_array" connection closes.

Parameters:

Returns: Nothing.
Multithreading Level: Unsafe


Back to Karma Home Page
Contact: Richard Gooch
Web Development: Ariel Internet Services