cobble/include/cobble/protocol.h

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