/** * Autogenerated by Thrift Compiler (0.14.0) * * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING * @generated */ #include "Collector.h" namespace jaegertracing { namespace thrift { Collector_submitBatches_args::~Collector_submitBatches_args() noexcept { } uint32_t Collector_submitBatches_args::read(::apache::thrift::protocol::TProtocol* iprot) { ::apache::thrift::protocol::TInputRecursionTracker tracker(*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_LIST) { { this->batches.clear(); uint32_t _size52; ::apache::thrift::protocol::TType _etype55; xfer += iprot->readListBegin(_etype55, _size52); this->batches.resize(_size52); uint32_t _i56; for (_i56 = 0; _i56 < _size52; ++_i56) { xfer += this->batches[_i56].read(iprot); } xfer += iprot->readListEnd(); } this->__isset.batches = true; } else { xfer += iprot->skip(ftype); } break; default: xfer += iprot->skip(ftype); break; } xfer += iprot->readFieldEnd(); } xfer += iprot->readStructEnd(); return xfer; } uint32_t Collector_submitBatches_args::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("Collector_submitBatches_args"); xfer += oprot->writeFieldBegin("batches", ::apache::thrift::protocol::T_LIST, 1); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast(this->batches.size())); std::vector ::const_iterator _iter57; for (_iter57 = this->batches.begin(); _iter57 != this->batches.end(); ++_iter57) { xfer += (*_iter57).write(oprot); } xfer += oprot->writeListEnd(); } xfer += oprot->writeFieldEnd(); xfer += oprot->writeFieldStop(); xfer += oprot->writeStructEnd(); return xfer; } Collector_submitBatches_pargs::~Collector_submitBatches_pargs() noexcept { } uint32_t Collector_submitBatches_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("Collector_submitBatches_pargs"); xfer += oprot->writeFieldBegin("batches", ::apache::thrift::protocol::T_LIST, 1); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast((*(this->batches)).size())); std::vector ::const_iterator _iter58; for (_iter58 = (*(this->batches)).begin(); _iter58 != (*(this->batches)).end(); ++_iter58) { xfer += (*_iter58).write(oprot); } xfer += oprot->writeListEnd(); } xfer += oprot->writeFieldEnd(); xfer += oprot->writeFieldStop(); xfer += oprot->writeStructEnd(); return xfer; } Collector_submitBatches_result::~Collector_submitBatches_result() noexcept { } uint32_t Collector_submitBatches_result::read(::apache::thrift::protocol::TProtocol* iprot) { ::apache::thrift::protocol::TInputRecursionTracker tracker(*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 _size59; ::apache::thrift::protocol::TType _etype62; xfer += iprot->readListBegin(_etype62, _size59); this->success.resize(_size59); uint32_t _i63; for (_i63 = 0; _i63 < _size59; ++_i63) { xfer += this->success[_i63].read(iprot); } xfer += iprot->readListEnd(); } this->__isset.success = true; } else { xfer += iprot->skip(ftype); } break; default: xfer += iprot->skip(ftype); break; } xfer += iprot->readFieldEnd(); } xfer += iprot->readStructEnd(); return xfer; } uint32_t Collector_submitBatches_result::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; xfer += oprot->writeStructBegin("Collector_submitBatches_result"); if (this->__isset.success) { xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast(this->success.size())); std::vector ::const_iterator _iter64; for (_iter64 = this->success.begin(); _iter64 != this->success.end(); ++_iter64) { xfer += (*_iter64).write(oprot); } xfer += oprot->writeListEnd(); } xfer += oprot->writeFieldEnd(); } xfer += oprot->writeFieldStop(); xfer += oprot->writeStructEnd(); return xfer; } Collector_submitBatches_presult::~Collector_submitBatches_presult() noexcept { } uint32_t Collector_submitBatches_presult::read(::apache::thrift::protocol::TProtocol* iprot) { ::apache::thrift::protocol::TInputRecursionTracker tracker(*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 _size65; ::apache::thrift::protocol::TType _etype68; xfer += iprot->readListBegin(_etype68, _size65); (*(this->success)).resize(_size65); uint32_t _i69; for (_i69 = 0; _i69 < _size65; ++_i69) { xfer += (*(this->success))[_i69].read(iprot); } xfer += iprot->readListEnd(); } this->__isset.success = true; } else { xfer += iprot->skip(ftype); } break; default: xfer += iprot->skip(ftype); break; } xfer += iprot->readFieldEnd(); } xfer += iprot->readStructEnd(); return xfer; } void CollectorClient::submitBatches(std::vector & _return, const std::vector & batches) { send_submitBatches(batches); recv_submitBatches(_return); } void CollectorClient::send_submitBatches(const std::vector & batches) { int32_t cseqid = 0; oprot_->writeMessageBegin("submitBatches", ::apache::thrift::protocol::T_CALL, cseqid); Collector_submitBatches_pargs args; args.batches = &batches; args.write(oprot_); oprot_->writeMessageEnd(); oprot_->getTransport()->writeEnd(); oprot_->getTransport()->flush(); } void CollectorClient::recv_submitBatches(std::vector & _return) { int32_t rseqid = 0; std::string fname; ::apache::thrift::protocol::TMessageType mtype; iprot_->readMessageBegin(fname, mtype, rseqid); 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(); } if (fname.compare("submitBatches") != 0) { iprot_->skip(::apache::thrift::protocol::T_STRUCT); iprot_->readMessageEnd(); iprot_->getTransport()->readEnd(); } Collector_submitBatches_presult result; result.success = &_return; result.read(iprot_); iprot_->readMessageEnd(); iprot_->getTransport()->readEnd(); if (result.__isset.success) { // _return pointer has now been filled return; } throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "submitBatches failed: unknown result"); } bool CollectorProcessor::dispatchCall(::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, const std::string& fname, int32_t seqid, void* callContext) { 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; } (this->*(pfn->second))(seqid, iprot, oprot, callContext); return true; } void CollectorProcessor::process_submitBatches(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext) { void* ctx = nullptr; if (this->eventHandler_.get() != nullptr) { ctx = this->eventHandler_->getContext("Collector.submitBatches", callContext); } ::apache::thrift::TProcessorContextFreer freer(this->eventHandler_.get(), ctx, "Collector.submitBatches"); if (this->eventHandler_.get() != nullptr) { this->eventHandler_->preRead(ctx, "Collector.submitBatches"); } Collector_submitBatches_args args; args.read(iprot); iprot->readMessageEnd(); uint32_t bytes = iprot->getTransport()->readEnd(); if (this->eventHandler_.get() != nullptr) { this->eventHandler_->postRead(ctx, "Collector.submitBatches", bytes); } Collector_submitBatches_result result; try { iface_->submitBatches(result.success, args.batches); result.__isset.success = true; } catch (const std::exception& e) { if (this->eventHandler_.get() != nullptr) { this->eventHandler_->handlerError(ctx, "Collector.submitBatches"); } ::apache::thrift::TApplicationException x(e.what()); oprot->writeMessageBegin("submitBatches", ::apache::thrift::protocol::T_EXCEPTION, seqid); x.write(oprot); oprot->writeMessageEnd(); oprot->getTransport()->writeEnd(); oprot->getTransport()->flush(); return; } if (this->eventHandler_.get() != nullptr) { this->eventHandler_->preWrite(ctx, "Collector.submitBatches"); } oprot->writeMessageBegin("submitBatches", ::apache::thrift::protocol::T_REPLY, seqid); result.write(oprot); oprot->writeMessageEnd(); bytes = oprot->getTransport()->writeEnd(); oprot->getTransport()->flush(); if (this->eventHandler_.get() != nullptr) { this->eventHandler_->postWrite(ctx, "Collector.submitBatches", bytes); } } ::std::shared_ptr< ::apache::thrift::TProcessor > CollectorProcessorFactory::getProcessor(const ::apache::thrift::TConnectionInfo& connInfo) { ::apache::thrift::ReleaseHandler< CollectorIfFactory > cleanup(handlerFactory_); ::std::shared_ptr< CollectorIf > handler(handlerFactory_->getHandler(connInfo), cleanup); ::std::shared_ptr< ::apache::thrift::TProcessor > processor(new CollectorProcessor(handler)); return processor; } void CollectorConcurrentClient::submitBatches(std::vector & _return, const std::vector & batches) { int32_t seqid = send_submitBatches(batches); recv_submitBatches(_return, seqid); } int32_t CollectorConcurrentClient::send_submitBatches(const std::vector & batches) { int32_t cseqid = this->sync_->generateSeqId(); ::apache::thrift::async::TConcurrentSendSentry sentry(this->sync_.get()); oprot_->writeMessageBegin("submitBatches", ::apache::thrift::protocol::T_CALL, cseqid); Collector_submitBatches_pargs args; args.batches = &batches; args.write(oprot_); oprot_->writeMessageEnd(); oprot_->getTransport()->writeEnd(); oprot_->getTransport()->flush(); sentry.commit(); return cseqid; } void CollectorConcurrentClient::recv_submitBatches(std::vector & _return, const int32_t seqid) { int32_t rseqid = 0; std::string fname; ::apache::thrift::protocol::TMessageType mtype; // the read mutex gets dropped and reacquired as part of waitForWork() // The destructor of this sentry wakes up other clients ::apache::thrift::async::TConcurrentRecvSentry sentry(this->sync_.get(), seqid); while(true) { if(!this->sync_->getPending(fname, mtype, rseqid)) { iprot_->readMessageBegin(fname, mtype, rseqid); } if(seqid == rseqid) { if (mtype == ::apache::thrift::protocol::T_EXCEPTION) { ::apache::thrift::TApplicationException x; x.read(iprot_); iprot_->readMessageEnd(); iprot_->getTransport()->readEnd(); sentry.commit(); throw x; } if (mtype != ::apache::thrift::protocol::T_REPLY) { iprot_->skip(::apache::thrift::protocol::T_STRUCT); iprot_->readMessageEnd(); iprot_->getTransport()->readEnd(); } if (fname.compare("submitBatches") != 0) { iprot_->skip(::apache::thrift::protocol::T_STRUCT); iprot_->readMessageEnd(); iprot_->getTransport()->readEnd(); // in a bad state, don't commit using ::apache::thrift::protocol::TProtocolException; throw TProtocolException(TProtocolException::INVALID_DATA); } Collector_submitBatches_presult result; result.success = &_return; result.read(iprot_); iprot_->readMessageEnd(); iprot_->getTransport()->readEnd(); if (result.__isset.success) { // _return pointer has now been filled sentry.commit(); return; } // in a bad state, don't commit throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "submitBatches failed: unknown result"); } // seqid != rseqid this->sync_->updatePending(fname, mtype, rseqid); // this will temporarily unlock the readMutex, and let other clients get work done this->sync_->waitForWork(seqid); } // end while(true) } }} // namespace