eventstore-client-c/uuid.c

48 lines
1.2 KiB
C
Raw Normal View History

2018-03-19 05:44:23 +00:00
//
// Created by nicol on 2018-03-18.
//
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
#include "uuid.h"
const esc_uuid_t* esc_uuid_create() {
esc_uuid_t* result = malloc(sizeof(esc_uuid_t));
srand(time(NULL));
for(int i=0;i<16;i++)
result->data[i] = (uint8_t)(rand() & 0xff);
return result;
}
const esc_uuid_t* esc_uuid_from(uint8_t* src, size_t size) {
if (size != 16) {
return 0;
}
esc_uuid_t* uuid = malloc(sizeof(esc_uuid_t));
for (size_t i=0; i<size; i++)
uuid->data[i] = src[i];
return uuid;
}
const char* esc_uuid_format(const esc_uuid_t* uuid, char* buffer, size_t buf_size) {
snprintf(buffer, buf_size, "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
uuid->data[0],
uuid->data[1],
uuid->data[2],
uuid->data[3],
uuid->data[4],
uuid->data[5],
uuid->data[6],
uuid->data[7],
uuid->data[8],
uuid->data[9],
uuid->data[10],
uuid->data[11],
uuid->data[12],
uuid->data[13],
uuid->data[14],
uuid->data[15]);
return buffer;
}