Sha256: 15f0713f5339b10f5fd88dc3a1b0e1649d64e7036119b5e417900e3102a13bc0
Contents?: true
Size: 1.92 KB
Versions: 2
Compression:
Stored size: 1.92 KB
Contents
/* LibMemcached * Copyright (C) 2006-2009 Brian Aker * All rights reserved. * * Use and distribution licensed under the BSD license. See * the COPYING file in the parent directory for full text. * * Summary: * */ #include "config.h" #include <stdio.h> #include <stdlib.h> #include <stdint.h> #include <string.h> #include "generator.h" /* Use this for string generation */ static const char ALPHANUMERICS[]= "0123456789ABCDEFGHIJKLMNOPQRSTWXYZabcdefghijklmnopqrstuvwxyz"; #define ALPHANUMERICS_SIZE (sizeof(ALPHANUMERICS)-1) static size_t get_alpha_num(void) { return (size_t)random() % ALPHANUMERICS_SIZE; } static void get_random_string(char *buffer, size_t size) { char *buffer_ptr= buffer; while (--size) *buffer_ptr++= ALPHANUMERICS[get_alpha_num()]; *buffer_ptr++= ALPHANUMERICS[get_alpha_num()]; } void pairs_free(pairs_st *pairs) { uint32_t x; if (! pairs) return; /* We free until we hit the null pair we stores during creation */ for (x= 0; pairs[x].key; x++) { free(pairs[x].key); if (pairs[x].value) free(pairs[x].value); } free(pairs); } pairs_st *pairs_generate(uint64_t number_of, size_t value_length) { unsigned int x; pairs_st *pairs; pairs= (pairs_st*)calloc((size_t)number_of + 1, sizeof(pairs_st)); if (!pairs) goto error; for (x= 0; x < number_of; x++) { pairs[x].key= (char *)calloc(100, sizeof(char)); if (!pairs[x].key) goto error; get_random_string(pairs[x].key, 100); pairs[x].key_length= 100; if (value_length) { pairs[x].value= (char *)calloc(value_length, sizeof(char)); if (!pairs[x].value) goto error; get_random_string(pairs[x].value, value_length); pairs[x].value_length= value_length; } else { pairs[x].value= NULL; pairs[x].value_length= 0; } } return pairs; error: fprintf(stderr, "Memory Allocation failure in pairs_generate.\n"); exit(0); }
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
couchbase-memcached-1.2.9 | ext/libmemcached-0.50/clients/generator.cc |
couchbase-memcached-1.2.8 | ext/libmemcached-0.50/clients/generator.cc |