/**
 * Autogenerated by Thrift
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 *  @generated
 */
#include "AssocService.h"
#include "folly/ScopeGuard.h"

namespace Tleveldb {

uint32_t AssocService_taoAssocPut_args::read(apache::thrift::protocol::TProtocol* iprot) {

  uint32_t xfer = 0;
  std::string fname;
  apache::thrift::protocol::TType ftype;
  int16_t fid;

  xfer += iprot->readStructBegin(fname);

  using apache::thrift::protocol::TProtocolException;


  while (true)
  {
    xfer += iprot->readFieldBegin(fname, ftype, fid);
    if (ftype == apache::thrift::protocol::T_STOP) {
      break;
    }
    switch (fid)
    {
      case 1:
        if (ftype == apache::thrift::protocol::T_STRING) {
          xfer += iprot->readBinary(this->tableName);
          this->__isset.tableName = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 2:
        if (ftype == apache::thrift::protocol::T_I64) {
          xfer += iprot->readI64(this->assocType);
          this->__isset.assocType = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 3:
        if (ftype == apache::thrift::protocol::T_I64) {
          xfer += iprot->readI64(this->id1);
          this->__isset.id1 = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 4:
        if (ftype == apache::thrift::protocol::T_I64) {
          xfer += iprot->readI64(this->id2);
          this->__isset.id2 = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 5:
        if (ftype == apache::thrift::protocol::T_I64) {
          xfer += iprot->readI64(this->id1Type);
          this->__isset.id1Type = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 6:
        if (ftype == apache::thrift::protocol::T_I64) {
          xfer += iprot->readI64(this->id2Type);
          this->__isset.id2Type = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 7:
        if (ftype == apache::thrift::protocol::T_I64) {
          xfer += iprot->readI64(this->timestamp);
          this->__isset.timestamp = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 8:
        if (ftype == apache::thrift::protocol::T_I32) {
          int32_t ecast41;
          xfer += iprot->readI32(ecast41);
          this->visibility = (AssocVisibility)ecast41;
          this->__isset.visibility = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 9:
        if (ftype == apache::thrift::protocol::T_BOOL) {
          xfer += iprot->readBool(this->update_count);
          this->__isset.update_count = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 10:
        if (ftype == apache::thrift::protocol::T_I64) {
          xfer += iprot->readI64(this->dataVersion);
          this->__isset.dataVersion = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 11:
        if (ftype == apache::thrift::protocol::T_STRING) {
          xfer += iprot->readBinary(this->data);
          this->__isset.data = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 12:
        if (ftype == apache::thrift::protocol::T_STRING) {
          xfer += iprot->readBinary(this->wormhole_comment);
          this->__isset.wormhole_comment = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      default:
        xfer += iprot->skip(ftype);
        break;
    }
    xfer += iprot->readFieldEnd();
  }

  xfer += iprot->readStructEnd();

  return xfer;
}

uint32_t AssocService_taoAssocPut_args::write(apache::thrift::protocol::TProtocol* oprot) const {
  uint32_t xfer = 0;
  xfer += oprot->writeStructBegin("AssocService_taoAssocPut_args");
  xfer += oprot->writeFieldBegin("tableName", apache::thrift::protocol::T_STRING, 1);
  xfer += oprot->writeBinary(this->tableName);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("assocType", apache::thrift::protocol::T_I64, 2);
  xfer += oprot->writeI64(this->assocType);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("id1", apache::thrift::protocol::T_I64, 3);
  xfer += oprot->writeI64(this->id1);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("id2", apache::thrift::protocol::T_I64, 4);
  xfer += oprot->writeI64(this->id2);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("id1Type", apache::thrift::protocol::T_I64, 5);
  xfer += oprot->writeI64(this->id1Type);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("id2Type", apache::thrift::protocol::T_I64, 6);
  xfer += oprot->writeI64(this->id2Type);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("timestamp", apache::thrift::protocol::T_I64, 7);
  xfer += oprot->writeI64(this->timestamp);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("visibility", apache::thrift::protocol::T_I32, 8);
  xfer += oprot->writeI32((int32_t)this->visibility);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("update_count", apache::thrift::protocol::T_BOOL, 9);
  xfer += oprot->writeBool(this->update_count);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("dataVersion", apache::thrift::protocol::T_I64, 10);
  xfer += oprot->writeI64(this->dataVersion);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("data", apache::thrift::protocol::T_STRING, 11);
  xfer += oprot->writeBinary(this->data);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("wormhole_comment", apache::thrift::protocol::T_STRING, 12);
  xfer += oprot->writeBinary(this->wormhole_comment);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldStop();
  xfer += oprot->writeStructEnd();
  return xfer;
}

uint32_t AssocService_taoAssocPut_pargs::write(apache::thrift::protocol::TProtocol* oprot) const {
  uint32_t xfer = 0;
  xfer += oprot->writeStructBegin("AssocService_taoAssocPut_pargs");
  xfer += oprot->writeFieldBegin("tableName", apache::thrift::protocol::T_STRING, 1);
  xfer += oprot->writeBinary((*(this->tableName)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("assocType", apache::thrift::protocol::T_I64, 2);
  xfer += oprot->writeI64((*(this->assocType)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("id1", apache::thrift::protocol::T_I64, 3);
  xfer += oprot->writeI64((*(this->id1)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("id2", apache::thrift::protocol::T_I64, 4);
  xfer += oprot->writeI64((*(this->id2)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("id1Type", apache::thrift::protocol::T_I64, 5);
  xfer += oprot->writeI64((*(this->id1Type)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("id2Type", apache::thrift::protocol::T_I64, 6);
  xfer += oprot->writeI64((*(this->id2Type)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("timestamp", apache::thrift::protocol::T_I64, 7);
  xfer += oprot->writeI64((*(this->timestamp)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("visibility", apache::thrift::protocol::T_I32, 8);
  xfer += oprot->writeI32((int32_t)(*(this->visibility)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("update_count", apache::thrift::protocol::T_BOOL, 9);
  xfer += oprot->writeBool((*(this->update_count)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("dataVersion", apache::thrift::protocol::T_I64, 10);
  xfer += oprot->writeI64((*(this->dataVersion)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("data", apache::thrift::protocol::T_STRING, 11);
  xfer += oprot->writeBinary((*(this->data)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("wormhole_comment", apache::thrift::protocol::T_STRING, 12);
  xfer += oprot->writeBinary((*(this->wormhole_comment)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldStop();
  xfer += oprot->writeStructEnd();
  return xfer;
}

uint32_t AssocService_taoAssocPut_result::read(apache::thrift::protocol::TProtocol* iprot) {

  uint32_t xfer = 0;
  std::string fname;
  apache::thrift::protocol::TType ftype;
  int16_t fid;

  xfer += iprot->readStructBegin(fname);

  using apache::thrift::protocol::TProtocolException;


  while (true)
  {
    xfer += iprot->readFieldBegin(fname, ftype, fid);
    if (ftype == apache::thrift::protocol::T_STOP) {
      break;
    }
    switch (fid)
    {
      case 0:
        if (ftype == apache::thrift::protocol::T_I64) {
          xfer += iprot->readI64(this->success);
          this->__isset.success = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 1:
        if (ftype == apache::thrift::protocol::T_STRUCT) {
          xfer += this->io.read(iprot);
          this->__isset.io = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      default:
        xfer += iprot->skip(ftype);
        break;
    }
    xfer += iprot->readFieldEnd();
  }

  xfer += iprot->readStructEnd();

  return xfer;
}

uint32_t AssocService_taoAssocPut_result::write(apache::thrift::protocol::TProtocol* oprot) const {

  uint32_t xfer = 0;

  xfer += oprot->writeStructBegin("AssocService_taoAssocPut_result");

  if (this->__isset.success) {
    xfer += oprot->writeFieldBegin("success", apache::thrift::protocol::T_I64, 0);
    xfer += oprot->writeI64(this->success);
    xfer += oprot->writeFieldEnd();
  } else if (this->__isset.io) {
    xfer += oprot->writeFieldBegin("io", apache::thrift::protocol::T_STRUCT, 1);
    xfer += this->io.write(oprot);
    xfer += oprot->writeFieldEnd();
  }
  xfer += oprot->writeFieldStop();
  xfer += oprot->writeStructEnd();
  return xfer;
}

uint32_t AssocService_taoAssocPut_presult::read(apache::thrift::protocol::TProtocol* iprot) {

  uint32_t xfer = 0;
  std::string fname;
  apache::thrift::protocol::TType ftype;
  int16_t fid;

  xfer += iprot->readStructBegin(fname);

  using apache::thrift::protocol::TProtocolException;


  while (true)
  {
    xfer += iprot->readFieldBegin(fname, ftype, fid);
    if (ftype == apache::thrift::protocol::T_STOP) {
      break;
    }
    switch (fid)
    {
      case 0:
        if (ftype == apache::thrift::protocol::T_I64) {
          xfer += iprot->readI64((*(this->success)));
          this->__isset.success = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 1:
        if (ftype == apache::thrift::protocol::T_STRUCT) {
          xfer += this->io.read(iprot);
          this->__isset.io = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      default:
        xfer += iprot->skip(ftype);
        break;
    }
    xfer += iprot->readFieldEnd();
  }

  xfer += iprot->readStructEnd();

  return xfer;
}

uint32_t AssocService_taoAssocDelete_args::read(apache::thrift::protocol::TProtocol* iprot) {

  uint32_t xfer = 0;
  std::string fname;
  apache::thrift::protocol::TType ftype;
  int16_t fid;

  xfer += iprot->readStructBegin(fname);

  using apache::thrift::protocol::TProtocolException;


  while (true)
  {
    xfer += iprot->readFieldBegin(fname, ftype, fid);
    if (ftype == apache::thrift::protocol::T_STOP) {
      break;
    }
    switch (fid)
    {
      case 1:
        if (ftype == apache::thrift::protocol::T_STRING) {
          xfer += iprot->readBinary(this->tableName);
          this->__isset.tableName = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 2:
        if (ftype == apache::thrift::protocol::T_I64) {
          xfer += iprot->readI64(this->assocType);
          this->__isset.assocType = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 3:
        if (ftype == apache::thrift::protocol::T_I64) {
          xfer += iprot->readI64(this->id1);
          this->__isset.id1 = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 4:
        if (ftype == apache::thrift::protocol::T_I64) {
          xfer += iprot->readI64(this->id2);
          this->__isset.id2 = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 5:
        if (ftype == apache::thrift::protocol::T_I32) {
          int32_t ecast42;
          xfer += iprot->readI32(ecast42);
          this->visibility = (AssocVisibility)ecast42;
          this->__isset.visibility = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 6:
        if (ftype == apache::thrift::protocol::T_BOOL) {
          xfer += iprot->readBool(this->update_count);
          this->__isset.update_count = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 7:
        if (ftype == apache::thrift::protocol::T_STRING) {
          xfer += iprot->readBinary(this->wormhole_comment);
          this->__isset.wormhole_comment = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      default:
        xfer += iprot->skip(ftype);
        break;
    }
    xfer += iprot->readFieldEnd();
  }

  xfer += iprot->readStructEnd();

  return xfer;
}

uint32_t AssocService_taoAssocDelete_args::write(apache::thrift::protocol::TProtocol* oprot) const {
  uint32_t xfer = 0;
  xfer += oprot->writeStructBegin("AssocService_taoAssocDelete_args");
  xfer += oprot->writeFieldBegin("tableName", apache::thrift::protocol::T_STRING, 1);
  xfer += oprot->writeBinary(this->tableName);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("assocType", apache::thrift::protocol::T_I64, 2);
  xfer += oprot->writeI64(this->assocType);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("id1", apache::thrift::protocol::T_I64, 3);
  xfer += oprot->writeI64(this->id1);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("id2", apache::thrift::protocol::T_I64, 4);
  xfer += oprot->writeI64(this->id2);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("visibility", apache::thrift::protocol::T_I32, 5);
  xfer += oprot->writeI32((int32_t)this->visibility);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("update_count", apache::thrift::protocol::T_BOOL, 6);
  xfer += oprot->writeBool(this->update_count);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("wormhole_comment", apache::thrift::protocol::T_STRING, 7);
  xfer += oprot->writeBinary(this->wormhole_comment);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldStop();
  xfer += oprot->writeStructEnd();
  return xfer;
}

uint32_t AssocService_taoAssocDelete_pargs::write(apache::thrift::protocol::TProtocol* oprot) const {
  uint32_t xfer = 0;
  xfer += oprot->writeStructBegin("AssocService_taoAssocDelete_pargs");
  xfer += oprot->writeFieldBegin("tableName", apache::thrift::protocol::T_STRING, 1);
  xfer += oprot->writeBinary((*(this->tableName)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("assocType", apache::thrift::protocol::T_I64, 2);
  xfer += oprot->writeI64((*(this->assocType)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("id1", apache::thrift::protocol::T_I64, 3);
  xfer += oprot->writeI64((*(this->id1)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("id2", apache::thrift::protocol::T_I64, 4);
  xfer += oprot->writeI64((*(this->id2)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("visibility", apache::thrift::protocol::T_I32, 5);
  xfer += oprot->writeI32((int32_t)(*(this->visibility)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("update_count", apache::thrift::protocol::T_BOOL, 6);
  xfer += oprot->writeBool((*(this->update_count)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("wormhole_comment", apache::thrift::protocol::T_STRING, 7);
  xfer += oprot->writeBinary((*(this->wormhole_comment)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldStop();
  xfer += oprot->writeStructEnd();
  return xfer;
}

uint32_t AssocService_taoAssocDelete_result::read(apache::thrift::protocol::TProtocol* iprot) {

  uint32_t xfer = 0;
  std::string fname;
  apache::thrift::protocol::TType ftype;
  int16_t fid;

  xfer += iprot->readStructBegin(fname);

  using apache::thrift::protocol::TProtocolException;


  while (true)
  {
    xfer += iprot->readFieldBegin(fname, ftype, fid);
    if (ftype == apache::thrift::protocol::T_STOP) {
      break;
    }
    switch (fid)
    {
      case 0:
        if (ftype == apache::thrift::protocol::T_I64) {
          xfer += iprot->readI64(this->success);
          this->__isset.success = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 1:
        if (ftype == apache::thrift::protocol::T_STRUCT) {
          xfer += this->io.read(iprot);
          this->__isset.io = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      default:
        xfer += iprot->skip(ftype);
        break;
    }
    xfer += iprot->readFieldEnd();
  }

  xfer += iprot->readStructEnd();

  return xfer;
}

uint32_t AssocService_taoAssocDelete_result::write(apache::thrift::protocol::TProtocol* oprot) const {

  uint32_t xfer = 0;

  xfer += oprot->writeStructBegin("AssocService_taoAssocDelete_result");

  if (this->__isset.success) {
    xfer += oprot->writeFieldBegin("success", apache::thrift::protocol::T_I64, 0);
    xfer += oprot->writeI64(this->success);
    xfer += oprot->writeFieldEnd();
  } else if (this->__isset.io) {
    xfer += oprot->writeFieldBegin("io", apache::thrift::protocol::T_STRUCT, 1);
    xfer += this->io.write(oprot);
    xfer += oprot->writeFieldEnd();
  }
  xfer += oprot->writeFieldStop();
  xfer += oprot->writeStructEnd();
  return xfer;
}

uint32_t AssocService_taoAssocDelete_presult::read(apache::thrift::protocol::TProtocol* iprot) {

  uint32_t xfer = 0;
  std::string fname;
  apache::thrift::protocol::TType ftype;
  int16_t fid;

  xfer += iprot->readStructBegin(fname);

  using apache::thrift::protocol::TProtocolException;


  while (true)
  {
    xfer += iprot->readFieldBegin(fname, ftype, fid);
    if (ftype == apache::thrift::protocol::T_STOP) {
      break;
    }
    switch (fid)
    {
      case 0:
        if (ftype == apache::thrift::protocol::T_I64) {
          xfer += iprot->readI64((*(this->success)));
          this->__isset.success = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 1:
        if (ftype == apache::thrift::protocol::T_STRUCT) {
          xfer += this->io.read(iprot);
          this->__isset.io = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      default:
        xfer += iprot->skip(ftype);
        break;
    }
    xfer += iprot->readFieldEnd();
  }

  xfer += iprot->readStructEnd();

  return xfer;
}

uint32_t AssocService_taoAssocRangeGet_args::read(apache::thrift::protocol::TProtocol* iprot) {

  uint32_t xfer = 0;
  std::string fname;
  apache::thrift::protocol::TType ftype;
  int16_t fid;

  xfer += iprot->readStructBegin(fname);

  using apache::thrift::protocol::TProtocolException;


  while (true)
  {
    xfer += iprot->readFieldBegin(fname, ftype, fid);
    if (ftype == apache::thrift::protocol::T_STOP) {
      break;
    }
    switch (fid)
    {
      case 1:
        if (ftype == apache::thrift::protocol::T_STRING) {
          xfer += iprot->readBinary(this->tableName);
          this->__isset.tableName = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 2:
        if (ftype == apache::thrift::protocol::T_I64) {
          xfer += iprot->readI64(this->assocType);
          this->__isset.assocType = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 3:
        if (ftype == apache::thrift::protocol::T_I64) {
          xfer += iprot->readI64(this->id1);
          this->__isset.id1 = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 4:
        if (ftype == apache::thrift::protocol::T_I64) {
          xfer += iprot->readI64(this->start_time);
          this->__isset.start_time = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 5:
        if (ftype == apache::thrift::protocol::T_I64) {
          xfer += iprot->readI64(this->end_time);
          this->__isset.end_time = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 6:
        if (ftype == apache::thrift::protocol::T_I64) {
          xfer += iprot->readI64(this->offset);
          this->__isset.offset = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 7:
        if (ftype == apache::thrift::protocol::T_I64) {
          xfer += iprot->readI64(this->limit);
          this->__isset.limit = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      default:
        xfer += iprot->skip(ftype);
        break;
    }
    xfer += iprot->readFieldEnd();
  }

  xfer += iprot->readStructEnd();

  return xfer;
}

uint32_t AssocService_taoAssocRangeGet_args::write(apache::thrift::protocol::TProtocol* oprot) const {
  uint32_t xfer = 0;
  xfer += oprot->writeStructBegin("AssocService_taoAssocRangeGet_args");
  xfer += oprot->writeFieldBegin("tableName", apache::thrift::protocol::T_STRING, 1);
  xfer += oprot->writeBinary(this->tableName);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("assocType", apache::thrift::protocol::T_I64, 2);
  xfer += oprot->writeI64(this->assocType);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("id1", apache::thrift::protocol::T_I64, 3);
  xfer += oprot->writeI64(this->id1);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("start_time", apache::thrift::protocol::T_I64, 4);
  xfer += oprot->writeI64(this->start_time);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("end_time", apache::thrift::protocol::T_I64, 5);
  xfer += oprot->writeI64(this->end_time);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("offset", apache::thrift::protocol::T_I64, 6);
  xfer += oprot->writeI64(this->offset);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("limit", apache::thrift::protocol::T_I64, 7);
  xfer += oprot->writeI64(this->limit);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldStop();
  xfer += oprot->writeStructEnd();
  return xfer;
}

uint32_t AssocService_taoAssocRangeGet_pargs::write(apache::thrift::protocol::TProtocol* oprot) const {
  uint32_t xfer = 0;
  xfer += oprot->writeStructBegin("AssocService_taoAssocRangeGet_pargs");
  xfer += oprot->writeFieldBegin("tableName", apache::thrift::protocol::T_STRING, 1);
  xfer += oprot->writeBinary((*(this->tableName)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("assocType", apache::thrift::protocol::T_I64, 2);
  xfer += oprot->writeI64((*(this->assocType)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("id1", apache::thrift::protocol::T_I64, 3);
  xfer += oprot->writeI64((*(this->id1)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("start_time", apache::thrift::protocol::T_I64, 4);
  xfer += oprot->writeI64((*(this->start_time)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("end_time", apache::thrift::protocol::T_I64, 5);
  xfer += oprot->writeI64((*(this->end_time)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("offset", apache::thrift::protocol::T_I64, 6);
  xfer += oprot->writeI64((*(this->offset)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("limit", apache::thrift::protocol::T_I64, 7);
  xfer += oprot->writeI64((*(this->limit)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldStop();
  xfer += oprot->writeStructEnd();
  return xfer;
}

uint32_t AssocService_taoAssocRangeGet_result::read(apache::thrift::protocol::TProtocol* iprot) {

  uint32_t xfer = 0;
  std::string fname;
  apache::thrift::protocol::TType ftype;
  int16_t fid;

  xfer += iprot->readStructBegin(fname);

  using apache::thrift::protocol::TProtocolException;


  while (true)
  {
    xfer += iprot->readFieldBegin(fname, ftype, fid);
    if (ftype == apache::thrift::protocol::T_STOP) {
      break;
    }
    switch (fid)
    {
      case 0:
        if (ftype == apache::thrift::protocol::T_LIST) {
          {
            this->success.clear();
            uint32_t _size43;
            apache::thrift::protocol::TType _etype46;
            xfer += iprot->readListBegin(_etype46, _size43);
            this->success.resize(_size43);
            uint32_t _i47;
            for (_i47 = 0; _i47 < _size43; ++_i47)
            {
              xfer += this->success[_i47].read(iprot);
            }
            xfer += iprot->readListEnd();
          }
          this->__isset.success = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 1:
        if (ftype == apache::thrift::protocol::T_STRUCT) {
          xfer += this->io.read(iprot);
          this->__isset.io = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      default:
        xfer += iprot->skip(ftype);
        break;
    }
    xfer += iprot->readFieldEnd();
  }

  xfer += iprot->readStructEnd();

  return xfer;
}

uint32_t AssocService_taoAssocRangeGet_result::write(apache::thrift::protocol::TProtocol* oprot) const {

  uint32_t xfer = 0;

  xfer += oprot->writeStructBegin("AssocService_taoAssocRangeGet_result");

  if (this->__isset.success) {
    xfer += oprot->writeFieldBegin("success", apache::thrift::protocol::T_LIST, 0);
    {
      xfer += oprot->writeListBegin(apache::thrift::protocol::T_STRUCT, this->success.size());
      std::vector<TaoAssocGetResult> ::const_iterator _iter48;
      for (_iter48 = this->success.begin(); _iter48 != this->success.end(); ++_iter48)
      {
        xfer += (*_iter48).write(oprot);
      }
      xfer += oprot->writeListEnd();
    }
    xfer += oprot->writeFieldEnd();
  } else if (this->__isset.io) {
    xfer += oprot->writeFieldBegin("io", apache::thrift::protocol::T_STRUCT, 1);
    xfer += this->io.write(oprot);
    xfer += oprot->writeFieldEnd();
  }
  xfer += oprot->writeFieldStop();
  xfer += oprot->writeStructEnd();
  return xfer;
}

uint32_t AssocService_taoAssocRangeGet_presult::read(apache::thrift::protocol::TProtocol* iprot) {

  uint32_t xfer = 0;
  std::string fname;
  apache::thrift::protocol::TType ftype;
  int16_t fid;

  xfer += iprot->readStructBegin(fname);

  using apache::thrift::protocol::TProtocolException;


  while (true)
  {
    xfer += iprot->readFieldBegin(fname, ftype, fid);
    if (ftype == apache::thrift::protocol::T_STOP) {
      break;
    }
    switch (fid)
    {
      case 0:
        if (ftype == apache::thrift::protocol::T_LIST) {
          {
            (*(this->success)).clear();
            uint32_t _size49;
            apache::thrift::protocol::TType _etype52;
            xfer += iprot->readListBegin(_etype52, _size49);
            (*(this->success)).resize(_size49);
            uint32_t _i53;
            for (_i53 = 0; _i53 < _size49; ++_i53)
            {
              xfer += (*(this->success))[_i53].read(iprot);
            }
            xfer += iprot->readListEnd();
          }
          this->__isset.success = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 1:
        if (ftype == apache::thrift::protocol::T_STRUCT) {
          xfer += this->io.read(iprot);
          this->__isset.io = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      default:
        xfer += iprot->skip(ftype);
        break;
    }
    xfer += iprot->readFieldEnd();
  }

  xfer += iprot->readStructEnd();

  return xfer;
}

uint32_t AssocService_taoAssocGet_args::read(apache::thrift::protocol::TProtocol* iprot) {

  uint32_t xfer = 0;
  std::string fname;
  apache::thrift::protocol::TType ftype;
  int16_t fid;

  xfer += iprot->readStructBegin(fname);

  using apache::thrift::protocol::TProtocolException;


  while (true)
  {
    xfer += iprot->readFieldBegin(fname, ftype, fid);
    if (ftype == apache::thrift::protocol::T_STOP) {
      break;
    }
    switch (fid)
    {
      case 1:
        if (ftype == apache::thrift::protocol::T_STRING) {
          xfer += iprot->readBinary(this->tableName);
          this->__isset.tableName = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 2:
        if (ftype == apache::thrift::protocol::T_I64) {
          xfer += iprot->readI64(this->assocType);
          this->__isset.assocType = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 3:
        if (ftype == apache::thrift::protocol::T_I64) {
          xfer += iprot->readI64(this->id1);
          this->__isset.id1 = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 4:
        if (ftype == apache::thrift::protocol::T_LIST) {
          {
            this->id2s.clear();
            uint32_t _size54;
            apache::thrift::protocol::TType _etype57;
            xfer += iprot->readListBegin(_etype57, _size54);
            this->id2s.resize(_size54);
            uint32_t _i58;
            for (_i58 = 0; _i58 < _size54; ++_i58)
            {
              xfer += iprot->readI64(this->id2s[_i58]);
            }
            xfer += iprot->readListEnd();
          }
          this->__isset.id2s = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      default:
        xfer += iprot->skip(ftype);
        break;
    }
    xfer += iprot->readFieldEnd();
  }

  xfer += iprot->readStructEnd();

  return xfer;
}

uint32_t AssocService_taoAssocGet_args::write(apache::thrift::protocol::TProtocol* oprot) const {
  uint32_t xfer = 0;
  xfer += oprot->writeStructBegin("AssocService_taoAssocGet_args");
  xfer += oprot->writeFieldBegin("tableName", apache::thrift::protocol::T_STRING, 1);
  xfer += oprot->writeBinary(this->tableName);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("assocType", apache::thrift::protocol::T_I64, 2);
  xfer += oprot->writeI64(this->assocType);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("id1", apache::thrift::protocol::T_I64, 3);
  xfer += oprot->writeI64(this->id1);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("id2s", apache::thrift::protocol::T_LIST, 4);
  {
    xfer += oprot->writeListBegin(apache::thrift::protocol::T_I64, this->id2s.size());
    std::vector<int64_t> ::const_iterator _iter59;
    for (_iter59 = this->id2s.begin(); _iter59 != this->id2s.end(); ++_iter59)
    {
      xfer += oprot->writeI64((*_iter59));
    }
    xfer += oprot->writeListEnd();
  }
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldStop();
  xfer += oprot->writeStructEnd();
  return xfer;
}

uint32_t AssocService_taoAssocGet_pargs::write(apache::thrift::protocol::TProtocol* oprot) const {
  uint32_t xfer = 0;
  xfer += oprot->writeStructBegin("AssocService_taoAssocGet_pargs");
  xfer += oprot->writeFieldBegin("tableName", apache::thrift::protocol::T_STRING, 1);
  xfer += oprot->writeBinary((*(this->tableName)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("assocType", apache::thrift::protocol::T_I64, 2);
  xfer += oprot->writeI64((*(this->assocType)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("id1", apache::thrift::protocol::T_I64, 3);
  xfer += oprot->writeI64((*(this->id1)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("id2s", apache::thrift::protocol::T_LIST, 4);
  {
    xfer += oprot->writeListBegin(apache::thrift::protocol::T_I64, (*(this->id2s)).size());
    std::vector<int64_t> ::const_iterator _iter60;
    for (_iter60 = (*(this->id2s)).begin(); _iter60 != (*(this->id2s)).end(); ++_iter60)
    {
      xfer += oprot->writeI64((*_iter60));
    }
    xfer += oprot->writeListEnd();
  }
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldStop();
  xfer += oprot->writeStructEnd();
  return xfer;
}

uint32_t AssocService_taoAssocGet_result::read(apache::thrift::protocol::TProtocol* iprot) {

  uint32_t xfer = 0;
  std::string fname;
  apache::thrift::protocol::TType ftype;
  int16_t fid;

  xfer += iprot->readStructBegin(fname);

  using apache::thrift::protocol::TProtocolException;


  while (true)
  {
    xfer += iprot->readFieldBegin(fname, ftype, fid);
    if (ftype == apache::thrift::protocol::T_STOP) {
      break;
    }
    switch (fid)
    {
      case 0:
        if (ftype == apache::thrift::protocol::T_LIST) {
          {
            this->success.clear();
            uint32_t _size61;
            apache::thrift::protocol::TType _etype64;
            xfer += iprot->readListBegin(_etype64, _size61);
            this->success.resize(_size61);
            uint32_t _i65;
            for (_i65 = 0; _i65 < _size61; ++_i65)
            {
              xfer += this->success[_i65].read(iprot);
            }
            xfer += iprot->readListEnd();
          }
          this->__isset.success = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 1:
        if (ftype == apache::thrift::protocol::T_STRUCT) {
          xfer += this->io.read(iprot);
          this->__isset.io = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      default:
        xfer += iprot->skip(ftype);
        break;
    }
    xfer += iprot->readFieldEnd();
  }

  xfer += iprot->readStructEnd();

  return xfer;
}

uint32_t AssocService_taoAssocGet_result::write(apache::thrift::protocol::TProtocol* oprot) const {

  uint32_t xfer = 0;

  xfer += oprot->writeStructBegin("AssocService_taoAssocGet_result");

  if (this->__isset.success) {
    xfer += oprot->writeFieldBegin("success", apache::thrift::protocol::T_LIST, 0);
    {
      xfer += oprot->writeListBegin(apache::thrift::protocol::T_STRUCT, this->success.size());
      std::vector<TaoAssocGetResult> ::const_iterator _iter66;
      for (_iter66 = this->success.begin(); _iter66 != this->success.end(); ++_iter66)
      {
        xfer += (*_iter66).write(oprot);
      }
      xfer += oprot->writeListEnd();
    }
    xfer += oprot->writeFieldEnd();
  } else if (this->__isset.io) {
    xfer += oprot->writeFieldBegin("io", apache::thrift::protocol::T_STRUCT, 1);
    xfer += this->io.write(oprot);
    xfer += oprot->writeFieldEnd();
  }
  xfer += oprot->writeFieldStop();
  xfer += oprot->writeStructEnd();
  return xfer;
}

uint32_t AssocService_taoAssocGet_presult::read(apache::thrift::protocol::TProtocol* iprot) {

  uint32_t xfer = 0;
  std::string fname;
  apache::thrift::protocol::TType ftype;
  int16_t fid;

  xfer += iprot->readStructBegin(fname);

  using apache::thrift::protocol::TProtocolException;


  while (true)
  {
    xfer += iprot->readFieldBegin(fname, ftype, fid);
    if (ftype == apache::thrift::protocol::T_STOP) {
      break;
    }
    switch (fid)
    {
      case 0:
        if (ftype == apache::thrift::protocol::T_LIST) {
          {
            (*(this->success)).clear();
            uint32_t _size67;
            apache::thrift::protocol::TType _etype70;
            xfer += iprot->readListBegin(_etype70, _size67);
            (*(this->success)).resize(_size67);
            uint32_t _i71;
            for (_i71 = 0; _i71 < _size67; ++_i71)
            {
              xfer += (*(this->success))[_i71].read(iprot);
            }
            xfer += iprot->readListEnd();
          }
          this->__isset.success = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 1:
        if (ftype == apache::thrift::protocol::T_STRUCT) {
          xfer += this->io.read(iprot);
          this->__isset.io = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      default:
        xfer += iprot->skip(ftype);
        break;
    }
    xfer += iprot->readFieldEnd();
  }

  xfer += iprot->readStructEnd();

  return xfer;
}

uint32_t AssocService_taoAssocCount_args::read(apache::thrift::protocol::TProtocol* iprot) {

  uint32_t xfer = 0;
  std::string fname;
  apache::thrift::protocol::TType ftype;
  int16_t fid;

  xfer += iprot->readStructBegin(fname);

  using apache::thrift::protocol::TProtocolException;


  while (true)
  {
    xfer += iprot->readFieldBegin(fname, ftype, fid);
    if (ftype == apache::thrift::protocol::T_STOP) {
      break;
    }
    switch (fid)
    {
      case 1:
        if (ftype == apache::thrift::protocol::T_STRING) {
          xfer += iprot->readBinary(this->tableName);
          this->__isset.tableName = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 2:
        if (ftype == apache::thrift::protocol::T_I64) {
          xfer += iprot->readI64(this->assocType);
          this->__isset.assocType = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 3:
        if (ftype == apache::thrift::protocol::T_I64) {
          xfer += iprot->readI64(this->id1);
          this->__isset.id1 = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      default:
        xfer += iprot->skip(ftype);
        break;
    }
    xfer += iprot->readFieldEnd();
  }

  xfer += iprot->readStructEnd();

  return xfer;
}

uint32_t AssocService_taoAssocCount_args::write(apache::thrift::protocol::TProtocol* oprot) const {
  uint32_t xfer = 0;
  xfer += oprot->writeStructBegin("AssocService_taoAssocCount_args");
  xfer += oprot->writeFieldBegin("tableName", apache::thrift::protocol::T_STRING, 1);
  xfer += oprot->writeBinary(this->tableName);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("assocType", apache::thrift::protocol::T_I64, 2);
  xfer += oprot->writeI64(this->assocType);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("id1", apache::thrift::protocol::T_I64, 3);
  xfer += oprot->writeI64(this->id1);
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldStop();
  xfer += oprot->writeStructEnd();
  return xfer;
}

uint32_t AssocService_taoAssocCount_pargs::write(apache::thrift::protocol::TProtocol* oprot) const {
  uint32_t xfer = 0;
  xfer += oprot->writeStructBegin("AssocService_taoAssocCount_pargs");
  xfer += oprot->writeFieldBegin("tableName", apache::thrift::protocol::T_STRING, 1);
  xfer += oprot->writeBinary((*(this->tableName)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("assocType", apache::thrift::protocol::T_I64, 2);
  xfer += oprot->writeI64((*(this->assocType)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldBegin("id1", apache::thrift::protocol::T_I64, 3);
  xfer += oprot->writeI64((*(this->id1)));
  xfer += oprot->writeFieldEnd();
  xfer += oprot->writeFieldStop();
  xfer += oprot->writeStructEnd();
  return xfer;
}

uint32_t AssocService_taoAssocCount_result::read(apache::thrift::protocol::TProtocol* iprot) {

  uint32_t xfer = 0;
  std::string fname;
  apache::thrift::protocol::TType ftype;
  int16_t fid;

  xfer += iprot->readStructBegin(fname);

  using apache::thrift::protocol::TProtocolException;


  while (true)
  {
    xfer += iprot->readFieldBegin(fname, ftype, fid);
    if (ftype == apache::thrift::protocol::T_STOP) {
      break;
    }
    switch (fid)
    {
      case 0:
        if (ftype == apache::thrift::protocol::T_I64) {
          xfer += iprot->readI64(this->success);
          this->__isset.success = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 1:
        if (ftype == apache::thrift::protocol::T_STRUCT) {
          xfer += this->io.read(iprot);
          this->__isset.io = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      default:
        xfer += iprot->skip(ftype);
        break;
    }
    xfer += iprot->readFieldEnd();
  }

  xfer += iprot->readStructEnd();

  return xfer;
}

uint32_t AssocService_taoAssocCount_result::write(apache::thrift::protocol::TProtocol* oprot) const {

  uint32_t xfer = 0;

  xfer += oprot->writeStructBegin("AssocService_taoAssocCount_result");

  if (this->__isset.success) {
    xfer += oprot->writeFieldBegin("success", apache::thrift::protocol::T_I64, 0);
    xfer += oprot->writeI64(this->success);
    xfer += oprot->writeFieldEnd();
  } else if (this->__isset.io) {
    xfer += oprot->writeFieldBegin("io", apache::thrift::protocol::T_STRUCT, 1);
    xfer += this->io.write(oprot);
    xfer += oprot->writeFieldEnd();
  }
  xfer += oprot->writeFieldStop();
  xfer += oprot->writeStructEnd();
  return xfer;
}

uint32_t AssocService_taoAssocCount_presult::read(apache::thrift::protocol::TProtocol* iprot) {

  uint32_t xfer = 0;
  std::string fname;
  apache::thrift::protocol::TType ftype;
  int16_t fid;

  xfer += iprot->readStructBegin(fname);

  using apache::thrift::protocol::TProtocolException;


  while (true)
  {
    xfer += iprot->readFieldBegin(fname, ftype, fid);
    if (ftype == apache::thrift::protocol::T_STOP) {
      break;
    }
    switch (fid)
    {
      case 0:
        if (ftype == apache::thrift::protocol::T_I64) {
          xfer += iprot->readI64((*(this->success)));
          this->__isset.success = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 1:
        if (ftype == apache::thrift::protocol::T_STRUCT) {
          xfer += this->io.read(iprot);
          this->__isset.io = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      default:
        xfer += iprot->skip(ftype);
        break;
    }
    xfer += iprot->readFieldEnd();
  }

  xfer += iprot->readStructEnd();

  return xfer;
}

int32_t AssocServiceClient::getNextSendSequenceId()
{
  return nextSendSequenceId_++;
}

int32_t AssocServiceClient::getNextRecvSequenceId()
{
  return nextRecvSequenceId_++;
}

int64_t AssocServiceClient::taoAssocPut(const Text& tableName, int64_t assocType, int64_t id1, int64_t id2, int64_t id1Type, int64_t id2Type, int64_t timestamp, AssocVisibility visibility, bool update_count, int64_t dataVersion, const Text& data, const Text& wormhole_comment)
{
  folly::ScopeGuard g = folly::makeGuard([&] { this->clearClientContextStack(); });
  this->generateClientContextStack("AssocService.taoAssocPut", NULL);

  try {
    send_taoAssocPut(tableName, assocType, id1, id2, id1Type, id2Type, timestamp, visibility, update_count, dataVersion, data, wormhole_comment);
    return recv_taoAssocPut();
  } catch(apache::thrift::transport::TTransportException& ex) {
    this->handlerError(this->getClientContextStack(), "AssocService.taoAssocPut");
    iprot_->getTransport()->close();
    oprot_->getTransport()->close();
    throw;
  } catch(apache::thrift::TApplicationException& ex) {
    if (ex.getType() == apache::thrift::TApplicationException::BAD_SEQUENCE_ID) {
      this->handlerError(this->getClientContextStack(), "AssocService.taoAssocPut");
      iprot_->getTransport()->close();
      oprot_->getTransport()->close();
    }
    throw;
  }
}

void AssocServiceClient::send_taoAssocPut(const Text& tableName, int64_t assocType, int64_t id1, int64_t id2, int64_t id1Type, int64_t id2Type, int64_t timestamp, AssocVisibility visibility, bool update_count, int64_t dataVersion, const Text& data, const Text& wormhole_comment)
{
  apache::thrift::ContextStack* ctx = this->getClientContextStack();
  this->preWrite(ctx, "AssocService.taoAssocPut");
  oprot_->writeMessageBegin("taoAssocPut", apache::thrift::protocol::T_CALL, getNextSendSequenceId());

  AssocService_taoAssocPut_pargs args;
  args.tableName = &tableName;
  args.assocType = &assocType;
  args.id1 = &id1;
  args.id2 = &id2;
  args.id1Type = &id1Type;
  args.id2Type = &id2Type;
  args.timestamp = &timestamp;
  args.visibility = &visibility;
  args.update_count = &update_count;
  args.dataVersion = &dataVersion;
  args.data = &data;
  args.wormhole_comment = &wormhole_comment;
  args.write(oprot_);

  oprot_->writeMessageEnd();
  uint32_t _bytes72 = oprot_->getTransport()->writeEnd();
  oprot_->getTransport()->flush();
  this->postWrite(ctx, "AssocService.taoAssocPut", _bytes72);
  return;
}

int64_t AssocServiceClient::recv_taoAssocPut()
{
  apache::thrift::ContextStack* ctx = this->getClientContextStack();
  uint32_t bytes;
  int32_t rseqid = 0;
  int32_t eseqid = getNextRecvSequenceId();
  std::string fname;
  apache::thrift::protocol::TMessageType mtype;
  this->preRead(ctx, "AssocService.taoAssocPut");

  iprot_->readMessageBegin(fname, mtype, rseqid);
  if (this->checkSeqid_ && rseqid != eseqid) {
    iprot_->skip(apache::thrift::protocol::T_STRUCT);
    iprot_->readMessageEnd();
    iprot_->getTransport()->readEnd();
    throw apache::thrift::TApplicationException(apache::thrift::TApplicationException::BAD_SEQUENCE_ID);
  }
  if (mtype == apache::thrift::protocol::T_EXCEPTION) {
    apache::thrift::TApplicationException x;
    x.read(iprot_);
    iprot_->readMessageEnd();
    iprot_->getTransport()->readEnd();
    throw x;
  }
  if (mtype != apache::thrift::protocol::T_REPLY) {
    iprot_->skip(apache::thrift::protocol::T_STRUCT);
    iprot_->readMessageEnd();
    iprot_->getTransport()->readEnd();
    throw apache::thrift::TApplicationException(apache::thrift::TApplicationException::INVALID_MESSAGE_TYPE);
  }
  if (fname.compare("taoAssocPut") != 0) {
    iprot_->skip(apache::thrift::protocol::T_STRUCT);
    iprot_->readMessageEnd();
    iprot_->getTransport()->readEnd();
    throw apache::thrift::TApplicationException(apache::thrift::TApplicationException::WRONG_METHOD_NAME);
  }
  int64_t _return;
  AssocService_taoAssocPut_presult result;
  result.success = &_return;
  result.read(iprot_);
  iprot_->readMessageEnd();
  bytes = iprot_->getTransport()->readEnd();
  this->postRead(ctx, "AssocService.taoAssocPut", bytes);

  if (result.__isset.success) {
    return _return;
  }
  if (result.__isset.io) {
    throw result.io;
  }
  throw apache::thrift::TApplicationException(apache::thrift::TApplicationException::MISSING_RESULT, "taoAssocPut failed: unknown result");
}

int64_t AssocServiceClient::taoAssocDelete(const Text& tableName, int64_t assocType, int64_t id1, int64_t id2, AssocVisibility visibility, bool update_count, const Text& wormhole_comment)
{
  folly::ScopeGuard g = folly::makeGuard([&] { this->clearClientContextStack(); });
  this->generateClientContextStack("AssocService.taoAssocDelete", NULL);

  try {
    send_taoAssocDelete(tableName, assocType, id1, id2, visibility, update_count, wormhole_comment);
    return recv_taoAssocDelete();
  } catch(apache::thrift::transport::TTransportException& ex) {
    this->handlerError(this->getClientContextStack(), "AssocService.taoAssocDelete");
    iprot_->getTransport()->close();
    oprot_->getTransport()->close();
    throw;
  } catch(apache::thrift::TApplicationException& ex) {
    if (ex.getType() == apache::thrift::TApplicationException::BAD_SEQUENCE_ID) {
      this->handlerError(this->getClientContextStack(), "AssocService.taoAssocDelete");
      iprot_->getTransport()->close();
      oprot_->getTransport()->close();
    }
    throw;
  }
}

void AssocServiceClient::send_taoAssocDelete(const Text& tableName, int64_t assocType, int64_t id1, int64_t id2, AssocVisibility visibility, bool update_count, const Text& wormhole_comment)
{
  apache::thrift::ContextStack* ctx = this->getClientContextStack();
  this->preWrite(ctx, "AssocService.taoAssocDelete");
  oprot_->writeMessageBegin("taoAssocDelete", apache::thrift::protocol::T_CALL, getNextSendSequenceId());

  AssocService_taoAssocDelete_pargs args;
  args.tableName = &tableName;
  args.assocType = &assocType;
  args.id1 = &id1;
  args.id2 = &id2;
  args.visibility = &visibility;
  args.update_count = &update_count;
  args.wormhole_comment = &wormhole_comment;
  args.write(oprot_);

  oprot_->writeMessageEnd();
  uint32_t _bytes73 = oprot_->getTransport()->writeEnd();
  oprot_->getTransport()->flush();
  this->postWrite(ctx, "AssocService.taoAssocDelete", _bytes73);
  return;
}

int64_t AssocServiceClient::recv_taoAssocDelete()
{
  apache::thrift::ContextStack* ctx = this->getClientContextStack();
  uint32_t bytes;
  int32_t rseqid = 0;
  int32_t eseqid = getNextRecvSequenceId();
  std::string fname;
  apache::thrift::protocol::TMessageType mtype;
  this->preRead(ctx, "AssocService.taoAssocDelete");

  iprot_->readMessageBegin(fname, mtype, rseqid);
  if (this->checkSeqid_ && rseqid != eseqid) {
    iprot_->skip(apache::thrift::protocol::T_STRUCT);
    iprot_->readMessageEnd();
    iprot_->getTransport()->readEnd();
    throw apache::thrift::TApplicationException(apache::thrift::TApplicationException::BAD_SEQUENCE_ID);
  }
  if (mtype == apache::thrift::protocol::T_EXCEPTION) {
    apache::thrift::TApplicationException x;
    x.read(iprot_);
    iprot_->readMessageEnd();
    iprot_->getTransport()->readEnd();
    throw x;
  }
  if (mtype != apache::thrift::protocol::T_REPLY) {
    iprot_->skip(apache::thrift::protocol::T_STRUCT);
    iprot_->readMessageEnd();
    iprot_->getTransport()->readEnd();
    throw apache::thrift::TApplicationException(apache::thrift::TApplicationException::INVALID_MESSAGE_TYPE);
  }
  if (fname.compare("taoAssocDelete") != 0) {
    iprot_->skip(apache::thrift::protocol::T_STRUCT);
    iprot_->readMessageEnd();
    iprot_->getTransport()->readEnd();
    throw apache::thrift::TApplicationException(apache::thrift::TApplicationException::WRONG_METHOD_NAME);
  }
  int64_t _return;
  AssocService_taoAssocDelete_presult result;
  result.success = &_return;
  result.read(iprot_);
  iprot_->readMessageEnd();
  bytes = iprot_->getTransport()->readEnd();
  this->postRead(ctx, "AssocService.taoAssocDelete", bytes);

  if (result.__isset.success) {
    return _return;
  }
  if (result.__isset.io) {
    throw result.io;
  }
  throw apache::thrift::TApplicationException(apache::thrift::TApplicationException::MISSING_RESULT, "taoAssocDelete failed: unknown result");
}

void AssocServiceClient::taoAssocRangeGet(std::vector<TaoAssocGetResult> & _return, const Text& tableName, int64_t assocType, int64_t id1, int64_t start_time, int64_t end_time, int64_t offset, int64_t limit)
{
  folly::ScopeGuard g = folly::makeGuard([&] { this->clearClientContextStack(); });
  this->generateClientContextStack("AssocService.taoAssocRangeGet", NULL);

  try {
    send_taoAssocRangeGet(tableName, assocType, id1, start_time, end_time, offset, limit);
    recv_taoAssocRangeGet(_return);
  } catch(apache::thrift::transport::TTransportException& ex) {
    this->handlerError(this->getClientContextStack(), "AssocService.taoAssocRangeGet");
    iprot_->getTransport()->close();
    oprot_->getTransport()->close();
    throw;
  } catch(apache::thrift::TApplicationException& ex) {
    if (ex.getType() == apache::thrift::TApplicationException::BAD_SEQUENCE_ID) {
      this->handlerError(this->getClientContextStack(), "AssocService.taoAssocRangeGet");
      iprot_->getTransport()->close();
      oprot_->getTransport()->close();
    }
    throw;
  }
}

void AssocServiceClient::send_taoAssocRangeGet(const Text& tableName, int64_t assocType, int64_t id1, int64_t start_time, int64_t end_time, int64_t offset, int64_t limit)
{
  apache::thrift::ContextStack* ctx = this->getClientContextStack();
  this->preWrite(ctx, "AssocService.taoAssocRangeGet");
  oprot_->writeMessageBegin("taoAssocRangeGet", apache::thrift::protocol::T_CALL, getNextSendSequenceId());

  AssocService_taoAssocRangeGet_pargs args;
  args.tableName = &tableName;
  args.assocType = &assocType;
  args.id1 = &id1;
  args.start_time = &start_time;
  args.end_time = &end_time;
  args.offset = &offset;
  args.limit = &limit;
  args.write(oprot_);

  oprot_->writeMessageEnd();
  uint32_t _bytes74 = oprot_->getTransport()->writeEnd();
  oprot_->getTransport()->flush();
  this->postWrite(ctx, "AssocService.taoAssocRangeGet", _bytes74);
  return;
}

void AssocServiceClient::recv_taoAssocRangeGet(std::vector<TaoAssocGetResult> & _return)
{
  apache::thrift::ContextStack* ctx = this->getClientContextStack();
  uint32_t bytes;
  int32_t rseqid = 0;
  int32_t eseqid = getNextRecvSequenceId();
  std::string fname;
  apache::thrift::protocol::TMessageType mtype;
  this->preRead(ctx, "AssocService.taoAssocRangeGet");

  iprot_->readMessageBegin(fname, mtype, rseqid);
  if (this->checkSeqid_ && rseqid != eseqid) {
    iprot_->skip(apache::thrift::protocol::T_STRUCT);
    iprot_->readMessageEnd();
    iprot_->getTransport()->readEnd();
    throw apache::thrift::TApplicationException(apache::thrift::TApplicationException::BAD_SEQUENCE_ID);
  }
  if (mtype == apache::thrift::protocol::T_EXCEPTION) {
    apache::thrift::TApplicationException x;
    x.read(iprot_);
    iprot_->readMessageEnd();
    iprot_->getTransport()->readEnd();
    throw x;
  }
  if (mtype != apache::thrift::protocol::T_REPLY) {
    iprot_->skip(apache::thrift::protocol::T_STRUCT);
    iprot_->readMessageEnd();
    iprot_->getTransport()->readEnd();
    throw apache::thrift::TApplicationException(apache::thrift::TApplicationException::INVALID_MESSAGE_TYPE);
  }
  if (fname.compare("taoAssocRangeGet") != 0) {
    iprot_->skip(apache::thrift::protocol::T_STRUCT);
    iprot_->readMessageEnd();
    iprot_->getTransport()->readEnd();
    throw apache::thrift::TApplicationException(apache::thrift::TApplicationException::WRONG_METHOD_NAME);
  }
  AssocService_taoAssocRangeGet_presult result;
  result.success = &_return;
  result.read(iprot_);
  iprot_->readMessageEnd();
  bytes = iprot_->getTransport()->readEnd();
  this->postRead(ctx, "AssocService.taoAssocRangeGet", bytes);

  if (result.__isset.success) {
    // _return pointer has now been filled
    return;
  }
  if (result.__isset.io) {
    throw result.io;
  }
  throw apache::thrift::TApplicationException(apache::thrift::TApplicationException::MISSING_RESULT, "taoAssocRangeGet failed: unknown result");
}

void AssocServiceClient::taoAssocGet(std::vector<TaoAssocGetResult> & _return, const Text& tableName, int64_t assocType, int64_t id1, const std::vector<int64_t> & id2s)
{
  folly::ScopeGuard g = folly::makeGuard([&] { this->clearClientContextStack(); });
  this->generateClientContextStack("AssocService.taoAssocGet", NULL);

  try {
    send_taoAssocGet(tableName, assocType, id1, id2s);
    recv_taoAssocGet(_return);
  } catch(apache::thrift::transport::TTransportException& ex) {
    this->handlerError(this->getClientContextStack(), "AssocService.taoAssocGet");
    iprot_->getTransport()->close();
    oprot_->getTransport()->close();
    throw;
  } catch(apache::thrift::TApplicationException& ex) {
    if (ex.getType() == apache::thrift::TApplicationException::BAD_SEQUENCE_ID) {
      this->handlerError(this->getClientContextStack(), "AssocService.taoAssocGet");
      iprot_->getTransport()->close();
      oprot_->getTransport()->close();
    }
    throw;
  }
}

void AssocServiceClient::send_taoAssocGet(const Text& tableName, int64_t assocType, int64_t id1, const std::vector<int64_t> & id2s)
{
  apache::thrift::ContextStack* ctx = this->getClientContextStack();
  this->preWrite(ctx, "AssocService.taoAssocGet");
  oprot_->writeMessageBegin("taoAssocGet", apache::thrift::protocol::T_CALL, getNextSendSequenceId());

  AssocService_taoAssocGet_pargs args;
  args.tableName = &tableName;
  args.assocType = &assocType;
  args.id1 = &id1;
  args.id2s = &id2s;
  args.write(oprot_);

  oprot_->writeMessageEnd();
  uint32_t _bytes75 = oprot_->getTransport()->writeEnd();
  oprot_->getTransport()->flush();
  this->postWrite(ctx, "AssocService.taoAssocGet", _bytes75);
  return;
}

void AssocServiceClient::recv_taoAssocGet(std::vector<TaoAssocGetResult> & _return)
{
  apache::thrift::ContextStack* ctx = this->getClientContextStack();
  uint32_t bytes;
  int32_t rseqid = 0;
  int32_t eseqid = getNextRecvSequenceId();
  std::string fname;
  apache::thrift::protocol::TMessageType mtype;
  this->preRead(ctx, "AssocService.taoAssocGet");

  iprot_->readMessageBegin(fname, mtype, rseqid);
  if (this->checkSeqid_ && rseqid != eseqid) {
    iprot_->skip(apache::thrift::protocol::T_STRUCT);
    iprot_->readMessageEnd();
    iprot_->getTransport()->readEnd();
    throw apache::thrift::TApplicationException(apache::thrift::TApplicationException::BAD_SEQUENCE_ID);
  }
  if (mtype == apache::thrift::protocol::T_EXCEPTION) {
    apache::thrift::TApplicationException x;
    x.read(iprot_);
    iprot_->readMessageEnd();
    iprot_->getTransport()->readEnd();
    throw x;
  }
  if (mtype != apache::thrift::protocol::T_REPLY) {
    iprot_->skip(apache::thrift::protocol::T_STRUCT);
    iprot_->readMessageEnd();
    iprot_->getTransport()->readEnd();
    throw apache::thrift::TApplicationException(apache::thrift::TApplicationException::INVALID_MESSAGE_TYPE);
  }
  if (fname.compare("taoAssocGet") != 0) {
    iprot_->skip(apache::thrift::protocol::T_STRUCT);
    iprot_->readMessageEnd();
    iprot_->getTransport()->readEnd();
    throw apache::thrift::TApplicationException(apache::thrift::TApplicationException::WRONG_METHOD_NAME);
  }
  AssocService_taoAssocGet_presult result;
  result.success = &_return;
  result.read(iprot_);
  iprot_->readMessageEnd();
  bytes = iprot_->getTransport()->readEnd();
  this->postRead(ctx, "AssocService.taoAssocGet", bytes);

  if (result.__isset.success) {
    // _return pointer has now been filled
    return;
  }
  if (result.__isset.io) {
    throw result.io;
  }
  throw apache::thrift::TApplicationException(apache::thrift::TApplicationException::MISSING_RESULT, "taoAssocGet failed: unknown result");
}

int64_t AssocServiceClient::taoAssocCount(const Text& tableName, int64_t assocType, int64_t id1)
{
  folly::ScopeGuard g = folly::makeGuard([&] { this->clearClientContextStack(); });
  this->generateClientContextStack("AssocService.taoAssocCount", NULL);

  try {
    send_taoAssocCount(tableName, assocType, id1);
    return recv_taoAssocCount();
  } catch(apache::thrift::transport::TTransportException& ex) {
    this->handlerError(this->getClientContextStack(), "AssocService.taoAssocCount");
    iprot_->getTransport()->close();
    oprot_->getTransport()->close();
    throw;
  } catch(apache::thrift::TApplicationException& ex) {
    if (ex.getType() == apache::thrift::TApplicationException::BAD_SEQUENCE_ID) {
      this->handlerError(this->getClientContextStack(), "AssocService.taoAssocCount");
      iprot_->getTransport()->close();
      oprot_->getTransport()->close();
    }
    throw;
  }
}

void AssocServiceClient::send_taoAssocCount(const Text& tableName, int64_t assocType, int64_t id1)
{
  apache::thrift::ContextStack* ctx = this->getClientContextStack();
  this->preWrite(ctx, "AssocService.taoAssocCount");
  oprot_->writeMessageBegin("taoAssocCount", apache::thrift::protocol::T_CALL, getNextSendSequenceId());

  AssocService_taoAssocCount_pargs args;
  args.tableName = &tableName;
  args.assocType = &assocType;
  args.id1 = &id1;
  args.write(oprot_);

  oprot_->writeMessageEnd();
  uint32_t _bytes76 = oprot_->getTransport()->writeEnd();
  oprot_->getTransport()->flush();
  this->postWrite(ctx, "AssocService.taoAssocCount", _bytes76);
  return;
}

int64_t AssocServiceClient::recv_taoAssocCount()
{
  apache::thrift::ContextStack* ctx = this->getClientContextStack();
  uint32_t bytes;
  int32_t rseqid = 0;
  int32_t eseqid = getNextRecvSequenceId();
  std::string fname;
  apache::thrift::protocol::TMessageType mtype;
  this->preRead(ctx, "AssocService.taoAssocCount");

  iprot_->readMessageBegin(fname, mtype, rseqid);
  if (this->checkSeqid_ && rseqid != eseqid) {
    iprot_->skip(apache::thrift::protocol::T_STRUCT);
    iprot_->readMessageEnd();
    iprot_->getTransport()->readEnd();
    throw apache::thrift::TApplicationException(apache::thrift::TApplicationException::BAD_SEQUENCE_ID);
  }
  if (mtype == apache::thrift::protocol::T_EXCEPTION) {
    apache::thrift::TApplicationException x;
    x.read(iprot_);
    iprot_->readMessageEnd();
    iprot_->getTransport()->readEnd();
    throw x;
  }
  if (mtype != apache::thrift::protocol::T_REPLY) {
    iprot_->skip(apache::thrift::protocol::T_STRUCT);
    iprot_->readMessageEnd();
    iprot_->getTransport()->readEnd();
    throw apache::thrift::TApplicationException(apache::thrift::TApplicationException::INVALID_MESSAGE_TYPE);
  }
  if (fname.compare("taoAssocCount") != 0) {
    iprot_->skip(apache::thrift::protocol::T_STRUCT);
    iprot_->readMessageEnd();
    iprot_->getTransport()->readEnd();
    throw apache::thrift::TApplicationException(apache::thrift::TApplicationException::WRONG_METHOD_NAME);
  }
  int64_t _return;
  AssocService_taoAssocCount_presult result;
  result.success = &_return;
  result.read(iprot_);
  iprot_->readMessageEnd();
  bytes = iprot_->getTransport()->readEnd();
  this->postRead(ctx, "AssocService.taoAssocCount", bytes);

  if (result.__isset.success) {
    return _return;
  }
  if (result.__isset.io) {
    throw result.io;
  }
  throw apache::thrift::TApplicationException(apache::thrift::TApplicationException::MISSING_RESULT, "taoAssocCount failed: unknown result");
}

bool AssocServiceProcessor::dispatchCall(::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, const std::string& fname, int32_t seqid, apache::thrift::server::TConnectionContext* connectionContext) {
  ProcessMap::iterator pfn;
  pfn = processMap_.find(fname);
  if (pfn == processMap_.end()) {
    iprot->skip(apache::thrift::protocol::T_STRUCT);
    iprot->readMessageEnd();
    iprot->getTransport()->readEnd();
    apache::thrift::TApplicationException x(apache::thrift::TApplicationException::UNKNOWN_METHOD, "Invalid method name: '"+fname+"'");
    oprot->writeMessageBegin(fname, apache::thrift::protocol::T_EXCEPTION, seqid);
    x.write(oprot);
    oprot->writeMessageEnd();
    oprot->getTransport()->writeEnd();
    oprot->getTransport()->flush();
    return true;
  }
  const ProcessFunction& pf = pfn->second;
  (this->*pf)(seqid, iprot, oprot, connectionContext);
  return true;
}

void AssocServiceProcessor::process_taoAssocPut(int32_t seqid, apache::thrift::protocol::TProtocol* iprot, apache::thrift::protocol::TProtocol* oprot, apache::thrift::server::TConnectionContext* connectionContext)
{
  std::unique_ptr<apache::thrift::ContextStack> ctx(this->getContextStack("AssocService.taoAssocPut", connectionContext));

  this->preRead(ctx.get(), "AssocService.taoAssocPut");
  AssocService_taoAssocPut_args args;
  args.read(iprot);
  iprot->readMessageEnd();
  uint32_t bytes = iprot->getTransport()->readEnd();

  this->postRead(ctx.get(), "AssocService.taoAssocPut", bytes);

  AssocService_taoAssocPut_result result;
  try {
    result.success = iface_->taoAssocPut(args.tableName, args.assocType, args.id1, args.id2, args.id1Type, args.id2Type, args.timestamp, args.visibility, args.update_count, args.dataVersion, args.data, args.wormhole_comment);
    result.__isset.success = true;
  } catch (IOError &io) {
    result.io = io;
    result.__isset.io = true;
  } catch (const std::exception& e) {
    this->handlerError(ctx.get(), "AssocService.taoAssocPut");


    apache::thrift::TApplicationException x(e.what());
    oprot->writeMessageBegin("taoAssocPut", apache::thrift::protocol::T_EXCEPTION, seqid);
    x.write(oprot);
    oprot->writeMessageEnd();
    oprot->getTransport()->writeEnd();
    oprot->getTransport()->flush();
    return;
  }

  this->preWrite(ctx.get(), "AssocService.taoAssocPut");
  oprot->writeMessageBegin("taoAssocPut", apache::thrift::protocol::T_REPLY, seqid);
  result.write(oprot);
  oprot->writeMessageEnd();
  bytes = oprot->getTransport()->writeEnd();
  oprot->getTransport()->flush();

  this->postWrite(ctx.get(), "AssocService.taoAssocPut", bytes);

}

void AssocServiceProcessor::process_taoAssocDelete(int32_t seqid, apache::thrift::protocol::TProtocol* iprot, apache::thrift::protocol::TProtocol* oprot, apache::thrift::server::TConnectionContext* connectionContext)
{
  std::unique_ptr<apache::thrift::ContextStack> ctx(this->getContextStack("AssocService.taoAssocDelete", connectionContext));

  this->preRead(ctx.get(), "AssocService.taoAssocDelete");
  AssocService_taoAssocDelete_args args;
  args.read(iprot);
  iprot->readMessageEnd();
  uint32_t bytes = iprot->getTransport()->readEnd();

  this->postRead(ctx.get(), "AssocService.taoAssocDelete", bytes);

  AssocService_taoAssocDelete_result result;
  try {
    result.success = iface_->taoAssocDelete(args.tableName, args.assocType, args.id1, args.id2, args.visibility, args.update_count, args.wormhole_comment);
    result.__isset.success = true;
  } catch (IOError &io) {
    result.io = io;
    result.__isset.io = true;
  } catch (const std::exception& e) {
    this->handlerError(ctx.get(), "AssocService.taoAssocDelete");


    apache::thrift::TApplicationException x(e.what());
    oprot->writeMessageBegin("taoAssocDelete", apache::thrift::protocol::T_EXCEPTION, seqid);
    x.write(oprot);
    oprot->writeMessageEnd();
    oprot->getTransport()->writeEnd();
    oprot->getTransport()->flush();
    return;
  }

  this->preWrite(ctx.get(), "AssocService.taoAssocDelete");
  oprot->writeMessageBegin("taoAssocDelete", apache::thrift::protocol::T_REPLY, seqid);
  result.write(oprot);
  oprot->writeMessageEnd();
  bytes = oprot->getTransport()->writeEnd();
  oprot->getTransport()->flush();

  this->postWrite(ctx.get(), "AssocService.taoAssocDelete", bytes);

}

void AssocServiceProcessor::process_taoAssocRangeGet(int32_t seqid, apache::thrift::protocol::TProtocol* iprot, apache::thrift::protocol::TProtocol* oprot, apache::thrift::server::TConnectionContext* connectionContext)
{
  std::unique_ptr<apache::thrift::ContextStack> ctx(this->getContextStack("AssocService.taoAssocRangeGet", connectionContext));

  this->preRead(ctx.get(), "AssocService.taoAssocRangeGet");
  AssocService_taoAssocRangeGet_args args;
  args.read(iprot);
  iprot->readMessageEnd();
  uint32_t bytes = iprot->getTransport()->readEnd();

  this->postRead(ctx.get(), "AssocService.taoAssocRangeGet", bytes);

  AssocService_taoAssocRangeGet_result result;
  try {
    iface_->taoAssocRangeGet(result.success, args.tableName, args.assocType, args.id1, args.start_time, args.end_time, args.offset, args.limit);
    result.__isset.success = true;
  } catch (IOError &io) {
    result.io = io;
    result.__isset.io = true;
  } catch (const std::exception& e) {
    this->handlerError(ctx.get(), "AssocService.taoAssocRangeGet");


    apache::thrift::TApplicationException x(e.what());
    oprot->writeMessageBegin("taoAssocRangeGet", apache::thrift::protocol::T_EXCEPTION, seqid);
    x.write(oprot);
    oprot->writeMessageEnd();
    oprot->getTransport()->writeEnd();
    oprot->getTransport()->flush();
    return;
  }

  this->preWrite(ctx.get(), "AssocService.taoAssocRangeGet");
  oprot->writeMessageBegin("taoAssocRangeGet", apache::thrift::protocol::T_REPLY, seqid);
  result.write(oprot);
  oprot->writeMessageEnd();
  bytes = oprot->getTransport()->writeEnd();
  oprot->getTransport()->flush();

  this->postWrite(ctx.get(), "AssocService.taoAssocRangeGet", bytes);

}

void AssocServiceProcessor::process_taoAssocGet(int32_t seqid, apache::thrift::protocol::TProtocol* iprot, apache::thrift::protocol::TProtocol* oprot, apache::thrift::server::TConnectionContext* connectionContext)
{
  std::unique_ptr<apache::thrift::ContextStack> ctx(this->getContextStack("AssocService.taoAssocGet", connectionContext));

  this->preRead(ctx.get(), "AssocService.taoAssocGet");
  AssocService_taoAssocGet_args args;
  args.read(iprot);
  iprot->readMessageEnd();
  uint32_t bytes = iprot->getTransport()->readEnd();

  this->postRead(ctx.get(), "AssocService.taoAssocGet", bytes);

  AssocService_taoAssocGet_result result;
  try {
    iface_->taoAssocGet(result.success, args.tableName, args.assocType, args.id1, args.id2s);
    result.__isset.success = true;
  } catch (IOError &io) {
    result.io = io;
    result.__isset.io = true;
  } catch (const std::exception& e) {
    this->handlerError(ctx.get(), "AssocService.taoAssocGet");


    apache::thrift::TApplicationException x(e.what());
    oprot->writeMessageBegin("taoAssocGet", apache::thrift::protocol::T_EXCEPTION, seqid);
    x.write(oprot);
    oprot->writeMessageEnd();
    oprot->getTransport()->writeEnd();
    oprot->getTransport()->flush();
    return;
  }

  this->preWrite(ctx.get(), "AssocService.taoAssocGet");
  oprot->writeMessageBegin("taoAssocGet", apache::thrift::protocol::T_REPLY, seqid);
  result.write(oprot);
  oprot->writeMessageEnd();
  bytes = oprot->getTransport()->writeEnd();
  oprot->getTransport()->flush();

  this->postWrite(ctx.get(), "AssocService.taoAssocGet", bytes);

}

void AssocServiceProcessor::process_taoAssocCount(int32_t seqid, apache::thrift::protocol::TProtocol* iprot, apache::thrift::protocol::TProtocol* oprot, apache::thrift::server::TConnectionContext* connectionContext)
{
  std::unique_ptr<apache::thrift::ContextStack> ctx(this->getContextStack("AssocService.taoAssocCount", connectionContext));

  this->preRead(ctx.get(), "AssocService.taoAssocCount");
  AssocService_taoAssocCount_args args;
  args.read(iprot);
  iprot->readMessageEnd();
  uint32_t bytes = iprot->getTransport()->readEnd();

  this->postRead(ctx.get(), "AssocService.taoAssocCount", bytes);

  AssocService_taoAssocCount_result result;
  try {
    result.success = iface_->taoAssocCount(args.tableName, args.assocType, args.id1);
    result.__isset.success = true;
  } catch (IOError &io) {
    result.io = io;
    result.__isset.io = true;
  } catch (const std::exception& e) {
    this->handlerError(ctx.get(), "AssocService.taoAssocCount");


    apache::thrift::TApplicationException x(e.what());
    oprot->writeMessageBegin("taoAssocCount", apache::thrift::protocol::T_EXCEPTION, seqid);
    x.write(oprot);
    oprot->writeMessageEnd();
    oprot->getTransport()->writeEnd();
    oprot->getTransport()->flush();
    return;
  }

  this->preWrite(ctx.get(), "AssocService.taoAssocCount");
  oprot->writeMessageBegin("taoAssocCount", apache::thrift::protocol::T_REPLY, seqid);
  result.write(oprot);
  oprot->writeMessageEnd();
  bytes = oprot->getTransport()->writeEnd();
  oprot->getTransport()->flush();

  this->postWrite(ctx.get(), "AssocService.taoAssocCount", bytes);

}

::boost::shared_ptr< ::apache::thrift::TProcessor > AssocServiceProcessorFactory::getProcessor(::apache::thrift::server::TConnectionContext* ctx) {
  ::apache::thrift::ReleaseHandler< AssocServiceIfFactory > cleanup(handlerFactory_);
  ::boost::shared_ptr< AssocServiceIf > handler(handlerFactory_->getHandler(ctx), cleanup);
  ::boost::shared_ptr< ::apache::thrift::TProcessor > processor(new AssocServiceProcessor(handler));
  return processor;
}
} // namespace