From ee65342545e9624df6c693e1997320e0e2eab2ca Mon Sep 17 00:00:00 2001 From: Sergey Lyubka Date: Wed, 8 Jun 2022 11:30:54 +0100 Subject: [PATCH] docs --- docs/README.md | 14 ++- docs/images/mg_commalist.svg | 97 ++++++++++++++++++ docs/images/mg_iobuf_add.png | Bin 50991 -> 0 bytes docs/images/mg_iobuf_add1.svg | 98 ++++++++++++++++++ docs/images/mg_iobuf_add2.svg | 181 ++++++++++++++++++++++++++++++++++ 5 files changed, 386 insertions(+), 4 deletions(-) create mode 100644 docs/images/mg_commalist.svg delete mode 100644 docs/images/mg_iobuf_add.png create mode 100644 docs/images/mg_iobuf_add1.svg create mode 100644 docs/images/mg_iobuf_add2.svg diff --git a/docs/README.md b/docs/README.md index 935490ce..781aa861 100644 --- a/docs/README.md +++ b/docs/README.md @@ -3192,12 +3192,18 @@ Return value: new `io` length Usage example: ```c -struct mg_iobuf io; -mg_iobuf_init(&io, 0); // Empty buffer -mg_iobuf_add(&io, 0, "hi", 2, 512); // io->len is 2, io->size is 512 +struct mg_iobuf io; // Declare buffer +mg_iobuf_init(&io, 0); // Initialise buffer to have 0 allocated bytes ``` -Function mg_iobuf_add() +Function mg_iobuf_init() + +```c +mg_iobuf_add(&io, 0, "hello", 5, 512); // Add "hello" at offset 0 +``` + +Function mg_iobuf_add() + ### mg\_iobuf\_del() diff --git a/docs/images/mg_commalist.svg b/docs/images/mg_commalist.svg new file mode 100644 index 00000000..3b2a50c1 --- /dev/null +++ b/docs/images/mg_commalist.svg @@ -0,0 +1,97 @@ + + + + + + + + + struct mg_str k,v,s = mg_str(”a=333, b=777”); + + + + + mg_commalist(&s, &k, &v); + + + + + mg_commalist(&s, &k, &v); + + + + + // 1st call + // 2nd call + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/images/mg_iobuf_add.png b/docs/images/mg_iobuf_add.png deleted file mode 100644 index d1fd940aa34b59a90aa962e3f95d43b66d40752c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50991 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

qB9bLtu^CC!ev{b{3VG+g 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 + + + + + + + + + + + + + + + + + buf=NULL + + + non-allocated space + + + len=0 + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + size=0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/images/mg_iobuf_add2.svg b/docs/images/mg_iobuf_add2.svg new file mode 100644 index 00000000..1179a4be --- /dev/null +++ b/docs/images/mg_iobuf_add2.svg @@ -0,0 +1,181 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + buf + + + + + + + + + + + len=5 + + + + + + + + + + + size=512 + + + + + + + + + + + + + + + + + + + + + + + + data + + + free space + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + non-allocated space + + + + + + + + + + + + + + + + + + + + + h + + + + + e + + + + + l + + + + + l + + + + + o + + + + +