rocksdb/thrift/lib/cpp/async/TEventTask.h

50 lines
1.4 KiB
C++

#ifndef _THRIFT_TEVENTTASK_H_
#define _THRIFT_TEVENTTASK_H_ 1
#include "thrift/lib/cpp/Thrift.h"
#include "thrift/lib/cpp/server/TServer.h"
#include "thrift/lib/cpp/transport/TBufferTransports.h"
#include "thrift/lib/cpp/concurrency/ThreadManager.h"
#include "thrift/lib/cpp/async/TEventConnection.h"
#include <tr1/functional>
#include <boost/shared_ptr.hpp>
#include "thrift/lib/cpp/TProcessor.h"
#include "thrift/lib/cpp/protocol/TProtocol.h"
namespace apache { namespace thrift { namespace async {
class TEventTask : public apache::thrift::concurrency::Runnable {
public:
explicit TEventTask(TEventConnection* connection);
void run();
TEventConnection* getConnection() const {
return connection_;
}
private:
boost::shared_ptr<apache::thrift::server::TProcessor> processor_;
boost::shared_ptr<apache::thrift::protocol::TProtocol> input_;
boost::shared_ptr<apache::thrift::protocol::TProtocol> output_;
TEventConnection* connection_;
TConnectionContext* connectionContext_;
};
class TaskCompletionMessage {
public:
explicit TaskCompletionMessage(TEventConnection *inConnection)
: connection(inConnection) {}
TaskCompletionMessage(TaskCompletionMessage &&msg)
: connection(msg.connection) {
msg.connection = NULL;
}
TEventConnection *connection;
};
} } } // namespace apache::thrift::async
#endif // !_THRIFT_TEVENTTASK_H_