RemoteRegistry::RemoteRegistry( const std::string & name ) { _registry = load( "BroadcastRegistry", "bootstrap", _options, "" ); _registry->registerMessageType( "SERVER_COMMAND", ROTOR_DEFINITION_STRING( RemoteCommand ) ); _registry->registerMessageType( "OPTION_STRING", ROTOR_DEFINITION_STRING( OptionString ) ); Structure request( "RemoteCommand", 0, *_registry ); request["command"] = "GET_OPTIONS"; request["arguments"] = "rotor_server"; Structure reply = _registry->queryStructure( "SERVER_COMMAND", request, 3 ); Logger::info( "Main server found", "RemoteRegistry" ); OptionString sReply; sReply << reply; _options.fromString( sReply.value ); Logger::info( "Loading definitive registry", "RemoteRegistry" ); _registry = load( _options.getString( "rotor_server", "registry" ), name, _options, "" ); _registry->registerMessageType( "SERVER_COMMAND", ROTOR_DEFINITION_STRING( RemoteCommand ) ); _registry->registerMessageType( "OPTION_STRING", ROTOR_DEFINITION_STRING( OptionString ) ); Logger::debug( "Retrieving options" ); request["command"] = "GET_OPTIONS"; request["arguments"] = "*"; reply.referTo( _registry->queryStructure( "SERVER_COMMAND", request, 3 ) ); Logger::debug( reply.toString() ); sReply << reply; _options.fromString( sReply.value ); Logger::info( string( "Connected to server with transport: " ) + _options.getString( "rotor_server", "registry" ), "RemoteRegistry" ); }