34 lines
1.2 KiB
C
34 lines
1.2 KiB
C
/* see LICENSE file for copyright and license details. */
|
|
#ifndef COBBLE_PROTOCOL_H
|
|
#define COBBLE_PROTOCOL_H
|
|
|
|
struct __attribute__((__packed__)) uuid {
|
|
uint64_t part1;
|
|
uint64_t part2;
|
|
};
|
|
|
|
/* read */
|
|
size_t read_long(int64_t *output, uint8_t *buf, size_t buf_len);
|
|
size_t read_ushort(uint16_t *output, uint8_t *buf, size_t buf_len);
|
|
size_t read_int(int32_t *output, uint8_t *buf, size_t buf_len);
|
|
size_t read_varint(int32_t *output, uint8_t *buf, size_t buf_len);
|
|
size_t read_varlong(int64_t *output, uint8_t *buf, size_t buf_len);
|
|
size_t read_string(char **output, uint8_t *buf, size_t buf_len);
|
|
size_t read_bool(bool *output, uint8_t *buf, size_t buf_len);
|
|
/* write */
|
|
size_t write_long(int64_t input, uint8_t *buf);
|
|
size_t write_ushort(uint16_t input, uint8_t *buf);
|
|
size_t write_int(int32_t input, uint8_t *buf);
|
|
size_t write_varint(int32_t input, uint8_t *buf);
|
|
size_t write_varlong(int64_t input, uint8_t *buf);
|
|
size_t write_string(char *input, uint8_t *buf);
|
|
size_t write_bool(bool input, uint8_t *buf);
|
|
/* get length */
|
|
size_t get_varint_len(int32_t input);
|
|
size_t get_varlong_len(int64_t input);
|
|
size_t get_string_len(char* input);
|
|
/* other */
|
|
bool generate_uuid(char *username, struct uuid*);
|
|
|
|
#endif
|