/* * Copyright (c) 2014-2014 by Michael Berlin, Zuse Institute Berlin * * Licensed under the BSD License, see LICENSE file for details. * */ #ifndef CPP_TEST_COMMON_TEST_RPC_SERVER_DIR_CPP_ #define CPP_TEST_COMMON_TEST_RPC_SERVER_DIR_CPP_ #include "common/test_rpc_server.h" #include #include #include namespace google { namespace protobuf { class Message; } // namespace protobuf } // namespace google namespace xtreemfs { namespace rpc { class TestRPCServerDIR : public TestRPCServer { public: TestRPCServerDIR(); void RegisterVolume(const std::string& volume_name, const std::string& mrc_uuid); protected: /** Mock-up version returns the given UUID (hostname:port) as address. */ virtual google::protobuf::Message* GetAddressMappingOperation( const pbrpc::Auth& auth, const pbrpc::UserCredentials& user_credentials, const google::protobuf::Message& request, const char* data, uint32_t data_len, boost::scoped_array* response_data, uint32_t* response_data_len); private: google::protobuf::Message* GetServiceByNameOperation( const pbrpc::Auth& auth, const pbrpc::UserCredentials& user_credentials, const google::protobuf::Message& request, const char* data, uint32_t data_len, boost::scoped_array* response_data, uint32_t* response_data_len); google::protobuf::Message* GetServiceByUUIDOperation( const pbrpc::Auth& auth, const pbrpc::UserCredentials& user_credentials, const google::protobuf::Message& request, const char* data, uint32_t data_len, boost::scoped_array* response_data, uint32_t* response_data_len); /** Guards access to known_volumes_. */ boost::mutex mutex_; std::map known_volumes_; }; } // namespace rpc } // namespace xtreemfs #endif // CPP_TEST_COMMON_TEST_RPC_SERVER_DIR_CPP_