Name
bonobo-stream-client -- Simplified client wrapper functions for the Stream interface
Synopsis
guint8* bonobo_stream_client_read (const Bonobo_Stream stream,
const size_t size,
CORBA_long *length_read,
CORBA_Environment *ev);
void bonobo_stream_client_write (const Bonobo_Stream stream,
const void *buffer,
const size_t size,
CORBA_Environment *ev);
void bonobo_stream_client_write_string
(const Bonobo_Stream stream,
const char *str,
const gboolean terminate,
CORBA_Environment *ev);
void bonobo_stream_client_printf (const Bonobo_Stream stream,
const gboolean terminate,
CORBA_Environment *ev,
const char *fmt,
...);
CORBA_long bonobo_stream_client_read_string
(const Bonobo_Stream stream,
char **str,
CORBA_Environment *ev);
CORBA_long bonobo_stream_client_get_length (const Bonobo_Stream stream,
CORBA_Environment *ev);
|
Description
These interfaces are designed to make the stream interface
slightly easier to use from client code. This is done 2 ways,
first by make the exception environments optiional, and secondly
by providing slightly nicer semantics.
It is well worth using the bonobo_stream_client_write function
for any potentialy large writes, since this blocks the data into
sensible chunks. This is important, otherwise a single transfer is
attempted that will cause hassles in the CORBA stubs. [ NB. ORBit
tries to alloca a huge chunk of memory and SEGVs ].
Details
bonobo_stream_client_read ()
guint8* bonobo_stream_client_read (const Bonobo_Stream stream,
const size_t size,
CORBA_long *length_read,
CORBA_Environment *ev); |
This is a helper routine to read size bytes from the stream into
a freshly g_ allocated buffer which is returned. Whilst this
routine may seem pointless; it reads the stream in small chunks
avoiding possibly massive alloca's inside ORBit's stub/skel code.
bonobo_stream_client_write ()
void bonobo_stream_client_write (const Bonobo_Stream stream,
const void *buffer,
const size_t size,
CORBA_Environment *ev); |
This is a helper routine to write size bytes from buffer to the
stream. It will continue to write bytes until a fatal error
occurs. It works around serious problems in ORBit's handling of
sequences, and makes for nicer, saner protocol usage for
transfering huge chunks of data.
bonobo_stream_client_write_string ()
void bonobo_stream_client_write_string
(const Bonobo_Stream stream,
const char *str,
const gboolean terminate,
CORBA_Environment *ev); |
This is a helper routine to write the string in str to stream.
If terminate is TRUE, a NULL character will be written out at the
end of the string. This function will not return until the entire
string has been written out, unless an exception is raised. See
also bonobo_stream_client_write(). Continues writing until finished
or a fatal exception occurs.
bonobo_stream_client_printf ()
void bonobo_stream_client_printf (const Bonobo_Stream stream,
const gboolean terminate,
CORBA_Environment *ev,
const char *fmt,
...); |
Processes fmt and the arguments which follow it to produce a
string. Writes this string out to stream. This function will not
return until the entire string is written out, unless an exception
is raised. See also bonobo_stream_client_write_string() and
bonobo_stream_client_write().
bonobo_stream_client_read_string ()
CORBA_long bonobo_stream_client_read_string
(const Bonobo_Stream stream,
char **str,
CORBA_Environment *ev); |
Reads a NULL-terminated string from stream and stores it in a
newly-allocated string in str.
bonobo_stream_client_get_length ()
CORBA_long bonobo_stream_client_get_length (const Bonobo_Stream stream,
CORBA_Environment *ev); |
Does the grunt work to get the length of a stream,
returns -1 if the length is not available. Returns -1
on exception.