示例#1
0
my_bool memc_stats_init(UDF_INIT *initid, UDF_ARGS *args, char *message)
{
  memcached_return rc;
  memc_function_st *container;

  /* this is how to fail */
  if (args->arg_count != 1)
  {
    strncpy(message,
            "1 argument required: servers, comma-separated: memc_stats(<servers>)",
            MYSQL_ERRMSG_SIZE);
    return 1;
  }

  args->arg_type[0]= STRING_RESULT;

  initid->max_length= MEMC_UDF_MAX_SIZE;
  container= calloc(1, sizeof(memc_function_st));
  if (container == NULL) 
  {
    strncpy(message, "Unable to allocate memory!", MYSQL_ERRMSG_SIZE);
    return 1;
  }


  /* Init the memcached_st we will use for this pass */
  rc= memc_get_servers(&container->memc);

  /* Now setup the string */
  container->stats_string= memcached_string_create(&container->memc, NULL, 1024);

  initid->ptr= (char *)container;

  return 0;
}
示例#2
0
memcached_result_st *memcached_result_create(const memcached_st *memc,
                                             memcached_result_st *ptr)
{
  WATCHPOINT_ASSERT(memc);

  /* Saving malloc calls :) */
  if (ptr)
  {
    ptr->options.is_allocated= false;
  }
  else
  {
    ptr= libmemcached_malloc(memc, sizeof(memcached_result_st));

    if (ptr == NULL)
      return NULL;

    ptr->options.is_allocated= true;
  }

  ptr->options.is_initialized= true;

  _result_init(ptr, memc);

  ptr->root= memc;
  WATCHPOINT_SET(ptr->value.options.is_initialized= false);
  memcached_string_create(memc, &ptr->value, 0);
  WATCHPOINT_ASSERT_INITIALIZED(&ptr->value);
  WATCHPOINT_ASSERT(ptr->value.string == NULL);

  return ptr;
}
示例#3
0
memcached_result_st *memcached_result_create(memcached_st *memc, 
                                             memcached_result_st *ptr)
{
  /* Saving malloc calls :) */
  if (ptr)
  {
    memset(ptr, 0, sizeof(memcached_result_st));
    ptr->is_allocated= MEMCACHED_NOT_ALLOCATED;
  }
  else
  {
    if (memc->call_malloc)
      ptr= (memcached_result_st *)memc->call_malloc(memc, sizeof(memcached_result_st));
    else
      ptr= (memcached_result_st *)malloc(sizeof(memcached_result_st));

    if (ptr == NULL)
      return NULL;
    memset(ptr, 0, sizeof(memcached_result_st));
    ptr->is_allocated= MEMCACHED_ALLOCATED;
  }

  ptr->root= memc;
  memcached_string_create(memc, &ptr->value, 0);
  WATCHPOINT_ASSERT(ptr->value.string == NULL);
  WATCHPOINT_ASSERT(ptr->value.is_allocated == MEMCACHED_NOT_ALLOCATED);

  return ptr;
}
示例#4
0
memcached_result_st *memcached_result_create(memcached_st *memc,
                                             memcached_result_st *ptr)
{
  /* Saving malloc calls :) */
  if (ptr)
    memset(ptr, 0, sizeof(memcached_result_st));
  else
  {
    if (memc->call_malloc)
      ptr= (memcached_result_st *)memc->call_malloc(memc, sizeof(memcached_result_st));
    else
      ptr= (memcached_result_st *)calloc(1, sizeof(memcached_result_st));

    if (ptr == NULL)
      return NULL;
    ptr->is_allocated= true;
  }

  ptr->root= memc;
  memcached_string_create(memc, &ptr->value, 0);
  WATCHPOINT_ASSERT(ptr->value.string == NULL);

  return ptr;
}