Пример #1
0
static void _mapcache_cache_riak_delete(mapcache_context *ctx, mapcache_cache *pcache, mapcache_tile *tile) {
    int error;
    RIACK_STRING key;
    struct RIACK_CLIENT *client;
    struct RIACK_DEL_PROPERTIES properties;
    mapcache_pooled_connection *pc;
    mapcache_cache_riak *cache = (mapcache_cache_riak*)pcache;

    memset(&properties, 0, sizeof(struct RIACK_DEL_PROPERTIES));


    key.value = mapcache_util_get_tile_key(ctx, tile, NULL, " \r\n\t\f\e\a\b", "#");
    GC_CHECK_ERROR(ctx);
    key.len = strlen(key.value);

    pc = _riak_get_connection(ctx, cache, tile);
    GC_CHECK_ERROR(ctx);
    client = pc->connection;

    properties.rw_use = 1;
    properties.rw = (4294967295 - 3);	// Special value meaning "ALL"
    error = riack_delete(client, cache->bucket, key, &properties);

    mapcache_connection_pool_release_connection(ctx,pc);

    if (error != RIACK_SUCCESS) {
        ctx->set_error(ctx, 500, "riak: failed to delete key %s: %d", key, error);
    }
}
Пример #2
0
int main(int argc, char * argv[])
{
  int opt;
  unsigned int bucket;
  char * host = "10.100.2.1";
  int port = 8087;
  int i;
  riack_client * riack_client;

  riack_string key, bucket_str;

  struct keys * keys;

  while(1)
  {
    opt = getopt_long(argc, argv, "b:", longopts, 0);

    if(opt == EOF)
      break;

    switch(opt)
    {
      case 'b':
        bucket = (unsigned int)strtol(optarg, NULL, 10);
        break;

    }
  }

  riack_init();
  riack_client = riack_new_client(0);
  if(riack_connect(riack_client, host, port, 0) != RIACK_SUCCESS)
  {
    // give up
    exit(0);
  }

  keys = db_list_keys(riack_client, bucket, false);


  for(i = 0; i < keys->num_keys; i++)
  {
    key.value = calloc(ID_SIZE, sizeof(char));
    bucket_str.value = calloc(ID_SIZE, sizeof(char));

    sprintf(bucket_str.value, "%d", bucket);
    bucket_str.len = strlen(bucket_str.value);

    sprintf(key.value, "%s", keys->key_str_ptrs[i]);
    key.len = strlen(key.value);

    // delete the object from riack database
    if(riack_delete(riack_client, &bucket_str, &key, 0) == RIACK_SUCCESS)
    {
       
    }

    free(key.value);
    free(bucket_str.value);
  }
}