예제 #1
0
memcached_server_list_st
memcached_server_list_append(memcached_server_list_st ptr,
                             const char *hostname, in_port_t port,
                             memcached_return_t *error)
{
  return memcached_server_list_append_with_weight(ptr, hostname, port, 0, error);
}
예제 #2
0
memcached_server_st *memcached_server_list_append(memcached_server_st *ptr, 
                                                  const char *hostname, unsigned int port,
                                                  memcached_return *error)
{
  return memcached_server_list_append_with_weight(ptr, hostname, port, 0, error);
}
예제 #3
0
memcached_server_st *memcached_servers_parse(const char *server_strings)
{
  char *string;
  uint32_t port;
  uint32_t weight;
  const char *begin_ptr;
  const char *end_ptr;
  memcached_server_st *servers= NULL;
  memcached_return rc;

  WATCHPOINT_ASSERT(server_strings);

  end_ptr= server_strings + strlen(server_strings);

  for (begin_ptr= server_strings, string= index(server_strings, ','); 
       begin_ptr != end_ptr; 
       string= index(begin_ptr, ','))
  {
    char buffer[HUGE_STRING_LEN];
    char *ptr, *ptr2;
    port= 0;
    weight= 0;

    if (string)
    {
      memcpy(buffer, begin_ptr, (size_t) (string - begin_ptr));
      buffer[(unsigned int)(string - begin_ptr)]= 0;
      begin_ptr= string+1;
    }
    else
    {
      size_t length= strlen(begin_ptr);
      memcpy(buffer, begin_ptr, length);
      buffer[length]= 0;
      begin_ptr= end_ptr;
    }

    ptr= index(buffer, ':');

    if (ptr)
    {
      ptr[0]= 0;

      ptr++;

      port= (uint32_t) strtoul(ptr, (char **)NULL, 10);

      ptr2= index(ptr, ' ');
      if (! ptr2)
        ptr2= index(ptr, ':');
      if (ptr2)
      {
        ptr2++;
        weight = (uint32_t) strtoul(ptr2, (char **)NULL, 10);
      }
    }

    servers= memcached_server_list_append_with_weight(servers, buffer, port, weight, &rc);

    if (isspace(*begin_ptr))
      begin_ptr++;
  }

  return servers;
}
예제 #4
0
int main(int argc, char *argv[])
{

	int i;
	int nr;
	int ret=0;
	char op;
	char seed='0';
	char *server_addr;
	char buf[BUF_SIZE];
	uint32_t key_len,value_len;

    memcached_st *memc;
    memcached_server_st *servers;
    memcached_return_t rc;

    if(argc<8) {
        print_usage();
        return -1;
    }

    for(i=1; i<argc-1; i+=2) {

        if(argv[i][0]!='-'||i+1>=argc-1) {
            print_usage();
            return -1;
        }

		switch(argv[i][1]) {
		case 'k':
			key_len=atoi(argv[i+1]);
			break;
		case 'v':
			value_len=atoi(argv[i+1]);
			break;
		case 'n':
			nr=atoi(argv[i+1]);
			break;
		case 'o':
			op=argv[i+1][0];
		}
    }

	if(nr<=0)
		nr=102400;
    server_addr=argv[argc-1];

    memc=memcached_create(NULL);
    servers=memcached_server_list_append_with_weight(NULL,server_addr,0,0,&rc);
    memcached_server_push(memc,servers);
    memcached_server_list_free(servers);

	switch(op) {
	case 's':
		rush_set(nr,buf,seed,key_len,value_len,memc);
		break;
	case 'a':
		rush_add(nr,buf,seed,key_len,value_len,memc);
		break;
	case 'r':
		rush_replace(nr,buf,seed,key_len,value_len,memc);
		break;
	case 'd':
		rush_delete(nr,buf,seed,key_len,memc);
		break;
	case 'g':
		rush_get(nr,buf,seed,key_len,memc);
		break;
	default:
		print_usage();
		ret= -1;
	}

    memcached_free(memc);
    return ret;
}