Skip to content

Latest commit

 

History

History
36 lines (29 loc) · 853 Bytes

README.md

File metadata and controls

36 lines (29 loc) · 853 Bytes

pkmsg

  1. 无内存申请
  2. 简单轻量, 只有 2 个接口
  3. 支持变长数组

example

int main() {
  uint8_t serialized_buf[40960];
  struct stUseItemReq use_item_req = {.itemID = 1001};

  // 编码
  const size_t wpos =
      pk_encode(stUseItemReqObject, &use_item_req, sizeof(use_item_req), serialized_buf, sizeof(serialized_buf));

  // 写入到文件或者网络
  write(socket, serialized_buf, wpos);

  // 解码
  const size_t rpos =
      pk_decode(stUseItemReqObject, &use_item_req, sizeof(use_item_req), serialized_buf, wpos);

  ...
}

api

// 编码
size_t pk_encode(const struct clColumn *column, const void *addr, size_t size,
              uint8_t *buf, size_t len);

// 解码
size_t pk_decode(const struct clColumn *column, void *addr, size_t size,
                const uint8_t *buf, size_t len);