X-Git-Url: http://git.silcnet.org/gitweb/?p=website.git;a=blobdiff_plain;f=docs%2Ftoolkit%2Fmanual%2Fsilcbuffer-SilcBuffer.html;fp=docs%2Ftoolkit%2Fmanual%2Fsilcbuffer-SilcBuffer.html;h=d2233c66652ba3e064e8bacdf7ec883b70701a16;hp=0000000000000000000000000000000000000000;hb=80b80cef93d9dff6acc4bc8e3a522c55fcdc3fca;hpb=43e53f529ca5c7d2ddb7cee8e76e273631e6f1e2 diff --git a/docs/toolkit/manual/silcbuffer-SilcBuffer.html b/docs/toolkit/manual/silcbuffer-SilcBuffer.html new file mode 100644 index 0000000..d2233c6 --- /dev/null +++ b/docs/toolkit/manual/silcbuffer-SilcBuffer.html @@ -0,0 +1,323 @@ + + + + + + + + + + + + + + + + + + + +
Copyright © 2001 - 2007 SILC Project
+ SILC Project Website
+ SILC Toolkit Reference Manual
+ Index
+ + +
+ + + + + + + + + + + + + + +
+ + + +
+
+ + + +SILC Toolkit Reference Manual
+ + +SILC Crypto Library
+    Introduction to SILC RNG
+    SILC RNG Interface
+    SILC Cipher API
+    SILC PKCS API
+    SILC Public Key API
+    SILC PKCS #1 API
+    SILC Hash Interface
+    SILC HMAC Interface
+SILC Core Library
+    SILC Authentication Interface
+    SILC Message Interface
+    SILC Channel Interface
+    SILC Command Interface
+    SILC Notify Interface
+    SILC Status Types
+    SILC Modes
+    SILC ID Interface
+    SILC Argument Interface
+    SILC Attributes Interface
+    Packet Engine Interface
+    SILC Public Key Payload Interface
+SILC Key Exchange Library
+    SILC SKE Interface
+    SILC Connection Authentication Interface
+SILC VCard Library
+    SILC VCard Interface
+SILC Math Library
+    SILC MP Interface
+    SILC Math Interface
+SILC Client Library
+    Using SILC Client Library Tutorial
+    Arguments for command_reply Client Operation
+    SilcStatus Error Arguments in command_reply Client Operation
+    Arguments for notify Client Operation
+    Unicode and UTF-8 Strings in Client Library
+    Client Library Interface Reference
+    Client Entry Interface Reference
+SILC ASN.1 Library
+    SILC ASN.1 Interface
+    SILC BER interface
+SILC HTTP Library
+    SILC HTTP Server Interface
+    SILC HTTP PHP Translator
+SILC Utility Library
+    Basic Types and Definitions
+    Data Buffer Interface
+    Data Buffer Format Interface
+    Hash Table Interface
+    Memory Allocation Interface
+    Data Stack (memory pool) Interface
+    Finite State Machine Interface
+    Thread Interface
+    Mutual Exclusion Lock Interface
+    Condition Variable Interface
+    Atomic Operations Interface
+    Network (TCP and UDP) Interface
+    Scheduler Interface
+    Asynchronous Operation Interface
+    Abstract Stream Interface
+    Socket Stream Interface
+    File Descriptor Stream Interface
+    File Utility Functions
+    String Utility Interface
+    Snprintf Interface
+    UTF-8 String Interface
+    Stringprep Interface
+    Utility Functions
+    List Interface
+    Dynamic List Interface
+    MIME Interface
+    Time Utility Functions
+    Logging Interface
+    Config File Interface
+SILC Key Repository Library
+    SILC SKR Interface
+SILC Application Utility Library
+    SILC Application Utilities
+    SILC ID Cache Interface
+SILC SFTP Library
+    SILC SFTP Interface
+    SFTP Filesystems Interface
+ +
+Resource Links +
+SILC Project Website
+SILC Protocol Documentation
+SILC White Paper
+SILC FAQs
+ +
+



+
+
+ + + + +
+
+ +Structure SilcBuffer

+ + +NAME + +

+    typedef struct { ... } *SilcBuffer, SilcBufferStruct;
+
+
+DESCRIPTION + +

+    SILC Buffer object. Following short description of the fields
+    of the buffer.
+
+
+EXAMPLE + +

+    unsiged char *head;
+
+        Head of the allocated buffer. This is the start of the allocated
+        data area and remains as same throughout the lifetime of the buffer.
+        However, the end of the head area or the start of the currently valid
+        data area is variable.
+
+        --------------------------------
+        | head  | data         | tail  |
+        --------------------------------
+        ^       ^
+
+        Current head section in the buffer is sb->data - sb->head.
+
+    unsigned char *data;
+
+        Currently valid data area. This is the start of the currently valid
+        main data area. The data area is variable in all directions.
+
+        --------------------------------
+        | head  | data         | tail  |
+        --------------------------------
+                ^              ^
+
+        Current valid data area in the buffer is sb->tail - sb->data.
+
+     unsigned char *tail;
+
+        Tail of the buffer. This is the end of the currently valid data area
+        or start of the tail area. The start of the tail area is variable.
+
+        --------------------------------
+        | head  | data         | tail  |
+        --------------------------------
+                               ^       ^
+
+        Current tail section in the buffer is sb->end - sb->tail.
+
+    unsigned char *end;
+
+        End of the allocated buffer. This is the end of the allocated data
+        area and remains as same throughout the lifetime of the buffer.
+        Usually this field is not needed except when checking the size
+        of the buffer.
+
+        --------------------------------
+        | head  | data         | tail  |
+        --------------------------------
+                                       ^
+
+        Length of the entire buffer is (ie. truelen) sb->end - sb->head.
+
+     Currently valid data area is considered to be the main data area in
+     the buffer. However, the entire buffer is of course valid data and can
+     be used as such. Usually head section of the buffer includes different
+     kind of headers or similar. Data section includes the main data of
+     the buffer. Tail section can be seen as a reserve space of the data
+     section. Tail section can be pulled towards end, and thus the data
+     section becomes larger.
+
+ SILC Buffer is not thread-safe.  If the same SilcBuffer context must be
+ used in multithreaded environment concurrency control must be employed.
+
+
+SOURCE + +
    typedef struct SilcBufferObject {
+      unsigned char *head;
+      unsigned char *data;
+      unsigned char *tail;
+      unsigned char *end;
+    } *SilcBuffer, SilcBufferStruct;
+



+
+
+ + + + +
+
+ +SILC Buffer Interface
+SilcBuffer
+silc_buffer_data
+silc_buffer_datalen
+silc_buffer_truelen
+silc_buffer_len
+silc_buffer_headlen
+silc_buffer_taillen
+silc_buffer_alloc
+silc_buffer_free
+silc_buffer_steal
+silc_buffer_purge
+silc_buffer_set
+silc_buffer_pull
+silc_buffer_push
+silc_buffer_pull_tail
+silc_buffer_push_tail
+silc_buffer_put_head
+silc_buffer_put
+silc_buffer_put_tail
+silc_buffer_alloc_size
+silc_buffer_reset
+silc_buffer_clear
+silc_buffer_start
+silc_buffer_end
+silc_buffer_copy
+silc_buffer_clone
+silc_buffer_realloc
+silc_buffer_realloc_size
+silc_buffer_enlarge
+silc_buffer_salloc
+silc_buffer_salloc_size
+silc_buffer_srealloc
+silc_buffer_srealloc_size
+silc_buffer_senlarge
+silc_buffer_scopy
+silc_buffer_sclone
+
+ +



+
+
+ + + +
+ + + + + + +
Copyright © 2001 - 2007 SILC Project
+ SILC Project Website
+ SILC Toolkit Reference Manual
+ Index
+ + +