in lib/cpp/src/thrift/processor/StatsProcessor.h [93:230]
void printAndPassToBuffer(apache::thrift::protocol::TType ftype) {
switch (ftype) {
case apache::thrift::protocol::T_BOOL: {
bool boolv;
piprot_->readBool(boolv);
if (print_) {
printf("%d", boolv);
}
} break;
case apache::thrift::protocol::T_BYTE: {
int8_t bytev;
piprot_->readByte(bytev);
if (print_) {
printf("%d", bytev);
}
} break;
case apache::thrift::protocol::T_I16: {
int16_t i16;
piprot_->readI16(i16);
if (print_) {
printf("%d", i16);
}
} break;
case apache::thrift::protocol::T_I32: {
int32_t i32;
piprot_->readI32(i32);
if (print_) {
printf("%d", i32);
}
} break;
case apache::thrift::protocol::T_I64: {
int64_t i64;
piprot_->readI64(i64);
if (print_) {
printf("%ld", i64);
}
} break;
case apache::thrift::protocol::T_DOUBLE: {
double dub;
piprot_->readDouble(dub);
if (print_) {
printf("%f", dub);
}
} break;
case apache::thrift::protocol::T_STRING: {
std::string str;
piprot_->readString(str);
if (print_) {
printf("%s", str.c_str());
}
} break;
case apache::thrift::protocol::T_STRUCT: {
std::string name;
int16_t fid;
apache::thrift::protocol::TType ftype;
piprot_->readStructBegin(name);
if (print_) {
printf("<");
}
while (true) {
piprot_->readFieldBegin(name, ftype, fid);
if (ftype == apache::thrift::protocol::T_STOP) {
break;
}
printAndPassToBuffer(ftype);
if (print_) {
printf(",");
}
piprot_->readFieldEnd();
}
piprot_->readStructEnd();
if (print_) {
printf("\b>");
}
} break;
case apache::thrift::protocol::T_MAP: {
apache::thrift::protocol::TType keyType;
apache::thrift::protocol::TType valType;
uint32_t i, size;
piprot_->readMapBegin(keyType, valType, size);
if (print_) {
printf("{");
}
for (i = 0; i < size; i++) {
printAndPassToBuffer(keyType);
if (print_) {
printf("=>");
}
printAndPassToBuffer(valType);
if (print_) {
printf(",");
}
}
piprot_->readMapEnd();
if (print_) {
printf("\b}");
}
} break;
case apache::thrift::protocol::T_SET: {
apache::thrift::protocol::TType elemType;
uint32_t i, size;
piprot_->readSetBegin(elemType, size);
if (print_) {
printf("{");
}
for (i = 0; i < size; i++) {
printAndPassToBuffer(elemType);
if (print_) {
printf(",");
}
}
piprot_->readSetEnd();
if (print_) {
printf("\b}");
}
} break;
case apache::thrift::protocol::T_LIST: {
apache::thrift::protocol::TType elemType;
uint32_t i, size;
piprot_->readListBegin(elemType, size);
if (print_) {
printf("[");
}
for (i = 0; i < size; i++) {
printAndPassToBuffer(elemType);
if (print_) {
printf(",");
}
}
piprot_->readListEnd();
if (print_) {
printf("\b]");
}
} break;
default:
break;
}
}