| /** |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| /** |
| * Autogenerated by Thrift Compiler (0.10.0) |
| * |
| * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING |
| * @generated |
| */ |
| #include "BaseAPI.h" |
| |
| namespace apache { namespace airavata { namespace base { namespace api { |
| |
| |
| BaseAPI_getAPIVersion_args::~BaseAPI_getAPIVersion_args() throw() { |
| } |
| |
| |
| uint32_t BaseAPI_getAPIVersion_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; |
| } |
| xfer += iprot->skip(ftype); |
| xfer += iprot->readFieldEnd(); |
| } |
| |
| xfer += iprot->readStructEnd(); |
| |
| return xfer; |
| } |
| |
| uint32_t BaseAPI_getAPIVersion_args::write(::apache::thrift::protocol::TProtocol* oprot) const { |
| uint32_t xfer = 0; |
| apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); |
| xfer += oprot->writeStructBegin("BaseAPI_getAPIVersion_args"); |
| |
| xfer += oprot->writeFieldStop(); |
| xfer += oprot->writeStructEnd(); |
| return xfer; |
| } |
| |
| |
| BaseAPI_getAPIVersion_pargs::~BaseAPI_getAPIVersion_pargs() throw() { |
| } |
| |
| |
| uint32_t BaseAPI_getAPIVersion_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const { |
| uint32_t xfer = 0; |
| apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); |
| xfer += oprot->writeStructBegin("BaseAPI_getAPIVersion_pargs"); |
| |
| xfer += oprot->writeFieldStop(); |
| xfer += oprot->writeStructEnd(); |
| return xfer; |
| } |
| |
| |
| BaseAPI_getAPIVersion_result::~BaseAPI_getAPIVersion_result() throw() { |
| } |
| |
| |
| uint32_t BaseAPI_getAPIVersion_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_STRING) { |
| xfer += iprot->readString(this->success); |
| 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 BaseAPI_getAPIVersion_result::write(::apache::thrift::protocol::TProtocol* oprot) const { |
| |
| uint32_t xfer = 0; |
| |
| xfer += oprot->writeStructBegin("BaseAPI_getAPIVersion_result"); |
| |
| if (this->__isset.success) { |
| xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRING, 0); |
| xfer += oprot->writeString(this->success); |
| xfer += oprot->writeFieldEnd(); |
| } |
| xfer += oprot->writeFieldStop(); |
| xfer += oprot->writeStructEnd(); |
| return xfer; |
| } |
| |
| |
| BaseAPI_getAPIVersion_presult::~BaseAPI_getAPIVersion_presult() throw() { |
| } |
| |
| |
| uint32_t BaseAPI_getAPIVersion_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_STRING) { |
| xfer += iprot->readString((*(this->success))); |
| 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 BaseAPIClient::getAPIVersion(std::string& _return) |
| { |
| send_getAPIVersion(); |
| recv_getAPIVersion(_return); |
| } |
| |
| void BaseAPIClient::send_getAPIVersion() |
| { |
| int32_t cseqid = 0; |
| oprot_->writeMessageBegin("getAPIVersion", ::apache::thrift::protocol::T_CALL, cseqid); |
| |
| BaseAPI_getAPIVersion_pargs args; |
| args.write(oprot_); |
| |
| oprot_->writeMessageEnd(); |
| oprot_->getTransport()->writeEnd(); |
| oprot_->getTransport()->flush(); |
| } |
| |
| void BaseAPIClient::recv_getAPIVersion(std::string& _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("getAPIVersion") != 0) { |
| iprot_->skip(::apache::thrift::protocol::T_STRUCT); |
| iprot_->readMessageEnd(); |
| iprot_->getTransport()->readEnd(); |
| } |
| BaseAPI_getAPIVersion_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, "getAPIVersion failed: unknown result"); |
| } |
| |
| bool BaseAPIProcessor::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 BaseAPIProcessor::process_getAPIVersion(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext) |
| { |
| void* ctx = NULL; |
| if (this->eventHandler_.get() != NULL) { |
| ctx = this->eventHandler_->getContext("BaseAPI.getAPIVersion", callContext); |
| } |
| ::apache::thrift::TProcessorContextFreer freer(this->eventHandler_.get(), ctx, "BaseAPI.getAPIVersion"); |
| |
| if (this->eventHandler_.get() != NULL) { |
| this->eventHandler_->preRead(ctx, "BaseAPI.getAPIVersion"); |
| } |
| |
| BaseAPI_getAPIVersion_args args; |
| args.read(iprot); |
| iprot->readMessageEnd(); |
| uint32_t bytes = iprot->getTransport()->readEnd(); |
| |
| if (this->eventHandler_.get() != NULL) { |
| this->eventHandler_->postRead(ctx, "BaseAPI.getAPIVersion", bytes); |
| } |
| |
| BaseAPI_getAPIVersion_result result; |
| try { |
| iface_->getAPIVersion(result.success); |
| result.__isset.success = true; |
| } catch (const std::exception& e) { |
| if (this->eventHandler_.get() != NULL) { |
| this->eventHandler_->handlerError(ctx, "BaseAPI.getAPIVersion"); |
| } |
| |
| ::apache::thrift::TApplicationException x(e.what()); |
| oprot->writeMessageBegin("getAPIVersion", ::apache::thrift::protocol::T_EXCEPTION, seqid); |
| x.write(oprot); |
| oprot->writeMessageEnd(); |
| oprot->getTransport()->writeEnd(); |
| oprot->getTransport()->flush(); |
| return; |
| } |
| |
| if (this->eventHandler_.get() != NULL) { |
| this->eventHandler_->preWrite(ctx, "BaseAPI.getAPIVersion"); |
| } |
| |
| oprot->writeMessageBegin("getAPIVersion", ::apache::thrift::protocol::T_REPLY, seqid); |
| result.write(oprot); |
| oprot->writeMessageEnd(); |
| bytes = oprot->getTransport()->writeEnd(); |
| oprot->getTransport()->flush(); |
| |
| if (this->eventHandler_.get() != NULL) { |
| this->eventHandler_->postWrite(ctx, "BaseAPI.getAPIVersion", bytes); |
| } |
| } |
| |
| ::boost::shared_ptr< ::apache::thrift::TProcessor > BaseAPIProcessorFactory::getProcessor(const ::apache::thrift::TConnectionInfo& connInfo) { |
| ::apache::thrift::ReleaseHandler< BaseAPIIfFactory > cleanup(handlerFactory_); |
| ::boost::shared_ptr< BaseAPIIf > handler(handlerFactory_->getHandler(connInfo), cleanup); |
| ::boost::shared_ptr< ::apache::thrift::TProcessor > processor(new BaseAPIProcessor(handler)); |
| return processor; |
| } |
| |
| void BaseAPIConcurrentClient::getAPIVersion(std::string& _return) |
| { |
| int32_t seqid = send_getAPIVersion(); |
| recv_getAPIVersion(_return, seqid); |
| } |
| |
| int32_t BaseAPIConcurrentClient::send_getAPIVersion() |
| { |
| int32_t cseqid = this->sync_.generateSeqId(); |
| ::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_); |
| oprot_->writeMessageBegin("getAPIVersion", ::apache::thrift::protocol::T_CALL, cseqid); |
| |
| BaseAPI_getAPIVersion_pargs args; |
| args.write(oprot_); |
| |
| oprot_->writeMessageEnd(); |
| oprot_->getTransport()->writeEnd(); |
| oprot_->getTransport()->flush(); |
| |
| sentry.commit(); |
| return cseqid; |
| } |
| |
| void BaseAPIConcurrentClient::recv_getAPIVersion(std::string& _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_, 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("getAPIVersion") != 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); |
| } |
| BaseAPI_getAPIVersion_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, "getAPIVersion 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 |
| |