#include "ucw/fastbuf.h"
-struct fbsock_params {
+struct fbsock_params { /** Configuration of socket fastbuf. **/
int fd;
uns bufsize;
uns timeout_ms;
void *data; // Passed to the err callback
};
-enum fbsock_err_flags {
+enum fbsock_err_flags { /** Description of a socket error **/
FBSOCK_READ = 1, // Happened during read
FBSOCK_WRITE = 2, // Happened during write
FBSOCK_TIMEOUT = 4, // The error is a timeout
};
+/**
+ * Create a new socket fastbuf.
+ * All information is passed by @par.
+ **/
struct fastbuf *fbsock_create(struct fbsock_params *par);
#endif
#include "ucw/fastbuf.h"
#include "ucw/unicode.h"
-/*** UTF-8 ***/
+/* ** UTF-8 ** */
int bget_utf8_slow(struct fastbuf *b, uns repl);
int bget_utf8_32_slow(struct fastbuf *b, uns repl);
return bget_utf8_32_slow(b, repl);
}
-static inline int
-bget_utf8(struct fastbuf *b)
+static inline int bget_utf8(struct fastbuf *b) /** Read a single utf8 character from range [0, 0xffff]. **/
{
return bget_utf8_repl(b, UNI_REPLACEMENT);
}
-static inline int
-bget_utf8_32(struct fastbuf *b)
+static inline int bget_utf8_32(struct fastbuf *b) /** Read a single utf8 character (from the whole unicode range). **/
{
return bget_utf8_32_repl(b, UNI_REPLACEMENT);
}
-static inline void
-bput_utf8(struct fastbuf *b, uns u)
+static inline void bput_utf8(struct fastbuf *b, uns u) /** Write a single utf8 character from range [0, 0xffff]. **/
{
if (bavailw(b) >= 3)
b->bptr = utf8_put(b->bptr, u);
bput_utf8_slow(b, u);
}
-static inline void
-bput_utf8_32(struct fastbuf *b, uns u)
+static inline void bput_utf8_32(struct fastbuf *b, uns u) /** Write a single utf8 character (from the whole unicode range). **/
{
if (bavailw(b) >= 6)
b->bptr = utf8_32_put(b->bptr, u);
bput_utf8_32_slow(b, u);
}
-/*** UTF-16 ***/
+/* ** UTF-16 ** */
int bget_utf16_be_slow(struct fastbuf *b, uns repl);
int bget_utf16_le_slow(struct fastbuf *b, uns repl);
return bget_utf16_le_slow(b, repl);
}
-static inline int
-bget_utf16_be(struct fastbuf *b)
+/**
+ * Read an utf16 character from fastbuf.
+ * Big endian version.
+ **/
+static inline int bget_utf16_be(struct fastbuf *b)
{
return bget_utf16_be_repl(b, UNI_REPLACEMENT);
}
-static inline int
-bget_utf16_le(struct fastbuf *b)
+/**
+ * Read an utf16 character from fastbuf.
+ * Little endian version.
+ **/
+static inline int bget_utf16_le(struct fastbuf *b)
{
return bget_utf16_le_repl(b, UNI_REPLACEMENT);
}
-static inline void
-bput_utf16_be(struct fastbuf *b, uns u)
+/**
+ * Write an utf16 character to fastbuf.
+ * Big endian version.
+ **/
+static inline void bput_utf16_be(struct fastbuf *b, uns u)
{
if (bavailw(b) >= 4)
b->bptr = utf16_be_put(b->bptr, u);
bput_utf16_be_slow(b, u);
}
-static inline void
-bput_utf16_lbe(struct fastbuf *b, uns u)
+/**
+ * Write an utf16 character to fastbuf.
+ * Little endian version.
+ **/
+static inline void bput_utf16_lbe(struct fastbuf *b, uns u)
{
if (bavailw(b) >= 4)
b->bptr = utf16_le_put(b->bptr, u);