void OnQueryResponse(IRubyMessage message) { try { ResponseMessage response = ResponseMessage.ParseFrom(message.Message); KeyValuePair endpoint; if (KeyValuePairs.Find(RubyStrings.kQueryResponseEndpointKey, response.ReponsesList, out endpoint)) { // create a new reporter using the informations of the found service. reporter_ = new ServiceReporter(registry_, context_, endpoint.Value); if (predicate_ != null) { reporter_.Start(period_, period_unit_); } else { reporter_.Start(period_, period_unit_, predicate_); } } } catch (Exception e) { logger_.Error( string.Format(R.Log_MethodThrowsException, "OnQueryResponse", kClassName), e); } }
/// <inheritdoc/> void IRubyMessageListener.OnMessageReceived(IRubyMessage message) { switch (message.Type) { case (int) NodeMessageType.kNodeResponse: OnQueryResponse(message); break; } }
public override void Stop(IRubyMessage message) { start_stop_service_event_.Set(); if (start_thread_ != null) { start_thread_.Join(30 * 1000); } }
/// <inheritdoc/> void IRubyMessageListener.OnMessageReceived(IRubyMessage message) { switch (message.Type) { case (int)NodeMessageType.kNodeResponse: OnQueryResponse(message); break; } }
public override void OnMessage(IRubyMessage request) { try { switch (request.Type) { case (int) MessageType.kStoreMetricsMessage: var metrics = StoreMetricsMessage.ParseFrom(request.Message); StoreMetrics(metrics); break; } } catch (Exception e) { logger_.Error(string.Format(S.Log_MethodThrowsException, kClassName, "Store"), e); } }
public override void OnMessage(IRubyMessage request) { try { switch (request.Type) { case (int)MessageType.kStoreMetricsMessage: var metrics = StoreMetricsMessage.ParseFrom(request.Message); StoreMetrics(metrics); break; } } catch (Exception e) { logger_.Error(string.Format(S.Log_MethodThrowsException, kClassName, "Store"), e); } }
public override void OnMessage(IRubyMessage request) { try { switch (request.Type) { case (int) MessageType.kQueryRequestMessage: QueryRequestMessage query = QueryRequestMessage.ParseFrom(request.Message); requests_timer_.Time(() => ProcessQuery(request, query)); break; } } catch (Exception e) { logger_.Error( string.Format(R.Log_MethodThrowsException, "OnMessage", kClassName), e); service_host_ .SendError(request.Id, (int) StatusCode.kServerError, request.Sender, e); } }
void ProcessQuery(IRubyMessage request, QueryRequestMessage query) { if (query.HasName) { logger_.Info("Processing query: \"" + query.Name + "\""); string result; IDictionary <string, string> parameters = query.OptionsList .ToDictionary(proto => proto.Name, proto => proto.Value); bool processed = server_ .QueryProcessor .Process(query.Name, parameters, out result); if (processed) { QueryResponseMessage response = new QueryResponseMessage.Builder() .SetName(query.Name) .SetResponse(result) .Build(); service_host_.Send(request.Id, (int)MessageType.kQueryResponseMessage, response.ToByteArray(), request.Sender); } else { string message = string.Format( Resources.Service_CannotProcessQuery_Name_Reason, query.Name, result); service_host_.SendError(request.Id, (int)StatusCode.kBadRequest, message, request.Sender); if (logger_.IsWarnEnabled) { logger_.Warn(message); } } } else { string message = string.Format( Resources.Service_Arg_RequiredIsMissing_Name, "name"); service_host_.SendError(request.Id, (int)StatusCode.kBadRequest, message, request.Sender); if (logger_.IsWarnEnabled) { logger_.Warn(message); } } }
public override void OnMessage(IRubyMessage request) { try { switch (request.Type) { case (int)MessageType.kQueryRequestMessage: QueryRequestMessage query = QueryRequestMessage.ParseFrom(request.Message); requests_timer_.Time(() => ProcessQuery(request, query)); break; } } catch (Exception e) { logger_.Error( string.Format(R.Log_MethodThrowsException, "OnMessage", kClassName), e); service_host_ .SendError(request.Id, (int)StatusCode.kServerError, request.Sender, e); } }
void ProcessQuery(IRubyMessage request, QueryRequestMessage query) { if (query.HasName) { logger_.Info("Processing query: \"" + query.Name + "\""); string result; IDictionary<string, string> parameters = query.OptionsList .ToDictionary(proto => proto.Name, proto => proto.Value); bool processed = server_ .QueryProcessor .Process(query.Name, parameters, out result); if (processed) { QueryResponseMessage response = new QueryResponseMessage.Builder() .SetName(query.Name) .SetResponse(result) .Build(); service_host_.Send(request.Id, (int) MessageType.kQueryResponseMessage, response.ToByteArray(), request.Sender); } else { string message = string.Format( Resources.Service_CannotProcessQuery_Name_Reason, query.Name, result); service_host_.SendError(request.Id, (int) StatusCode.kBadRequest, message, request.Sender); if (logger_.IsWarnEnabled) { logger_.Warn(message); } } } else { string message = string.Format( Resources.Service_Arg_RequiredIsMissing_Name, "name"); service_host_.SendError(request.Id, (int) StatusCode.kBadRequest, message, request.Sender); if (logger_.IsWarnEnabled) { logger_.Warn(message); } } }
public override void Stop(IRubyMessage message) { start_stop_service_event_.Set(); if (start_thread_ != null) { start_thread_.Join(30*1000); } }