예제 #1
0
    bool encode (tbnet::DataBuffer * output)
    {
      CREATE_HEADER;

      PUT_INT16_TO_BUFFER(output, version);
      PUT_INT32_TO_BUFFER(output, expire);
      PUT_DATAENTRY_TO_BUFFER(output, key);
      PUT_DATAVECTOR_TO_BUFFER(output, field_values);

      return true;
    }
    bool encode(tbnet::DataBuffer *output)
    {
      if (values.size() > RESPONSE_VALUES_MAXSIZE)
      {
        log_warn("zrange values_size = %zu, larger than RESPONSE_VALUES_MAXSZIE", values.size());
        return false;
      }

      PUT_INT32_TO_BUFFER(output, config_version);
      PUT_INT16_TO_BUFFER(output, version);
      PUT_INT32_TO_BUFFER(output, code);
      PUT_DATAVECTOR_TO_BUFFER(output, values);

      return true;
    }
예제 #3
0
    bool encode(tbnet::DataBuffer * output)
    {
      CREATE_HEADER;

      PUT_INT32_TO_BUFFER(output, expire);

      int keys_values_map_size = (int)(keys_values_map.size());
      PUT_INT32_TO_BUFFER(output, keys_values_map_size);
      map<data_entry*, vector<data_entry *>*>::iterator iter;
      for(iter = keys_values_map.begin();
              iter != keys_values_map.end(); iter++) {
        data_entry* key = iter->first;
        vector<data_entry*>* values = iter->second;
        PUT_DATAENTRY_TO_BUFFER(output, *key);
        PUT_DATAVECTOR_TO_BUFFER(output, *values);
      }

      return true;
    }