+
+
+Function silc_packet_stream_wrap
+
+
+SYNOPSIS
+
+
+ SilcStream silc_packet_stream_wrap(SilcPacketStream stream,
+ SilcPacketType type,
+ SilcPacketFlags flags,
+ SilcBool blocking_mode,
+ SilcIdType src_id_type, void *src_id,
+ SilcIdType dst_id_type, void *dst_id,
+ SilcPacketWrapCoder coder,
+ void *context);
+
+
+DESCRIPTION
+
+
+ Wraps the packet stream indicated by `stream' into a SilcStream for
+ the packet type indicated by `type' with packet flags indicated by
+ `flags'. The returned SilcStream can be used to read and write the
+ specified SILC packets with the specified packet flags, by calling
+ silc_stream_read and silc_stream_write, respectively. The returned
+ stream can be destroyed by calling silc_stream_destroy. It does not
+ destroy the wrapped packet stream.
+
+ If the `blocking_mode' mode is TRUE then the silc_stream_read and
+ silc_stream_write may block the calling process or thread until SILC
+ packet is read or written. If it is FALSE the stream is in non-blocking
+ mode and the calls never block. The returned stream is thread-safe and
+ packets may be read and written in multi-threaded environment.
+
+ In non-blocking mode the silc_stream_set_notifier must be called before
+ the returned stream can be used to read packets. The stream status
+ SILC_STREAM_CAN_READ will be returned to the notifier callback to
+ indicate that a packet is ready for reading. Calling silc_stream_read
+ once returns one complete SILC packet data payload (which is of type of
+ `type').
+
+ If src_id and/or dst_id are set they will be used as the ids in the
+ sent SILC packets. If the dst_id is set then the stream will receive
+ packets only originating from that id.
+
+ The `coder' is optional encoder/decoder callback which the packet engine
+ will call if it is non-NULL. It can be used to encode additional data
+ into each packet when silc_stream_write is called or decode data before
+ it is passed to reader when silc_stream_read is called. The `context'
+ is passed to `coder'.
+
+ The returned SilcStream can be used as any normal stream and all
+ SilcStream API functions may be used with the stream. This returns
+ NULL on error.
+
+
+
+ |
+