protected virtual void OnSuccess(TopicDetailsEventArgs e) { var handler = Success; if (null == handler) { return; } handler(this, e); }
private void topicDetailsHandler_Success(object sender, Handlers.TopicDetailsEventArgs e) { Log.Spew("Queried Topic: \"" + e.TopicPath + "\""); if (!rootTopicPath.Equals(e.TopicPath)) { throw new InvalidOperationException("Topic details received for unexpected topic path."); } if (null == e.TopicDetails) { // The root topic path does not yet exist so we need to create it implicitly // by creating the child nodes. Log.Spew("Creating topic tree..."); var addTopicHandler = new Handlers.AddTopicHandler(); addTopicHandler.Success += addTopicHandler_Success; AddTopic(addTopicHandler, steeringTopicPath); AddTopic(addTopicHandler, brakingTopicPath); AddTopic(addTopicHandler, accelerationTopicPath); AddTopic(addTopicHandler, gearTopicPath); AddTopic(addTopicHandler, refreshIntervalTopicPath, TopicType.RECORD); AddTopic(addTopicHandler, buttonStatesTopicPath, TopicType.RECORD); AddTopic(addTopicHandler, buttonNamesTopicPath, TopicType.RECORD); AddTopic(addTopicHandler, countOfUpdatesMetricTopicPath); AddTopic(addTopicHandler, upTimeInSecondsMetricTopicPath); AddTopic(addTopicHandler, countOfSuccessfulTopicSourceUpdatesMetricTopicPath); AddTopic(addTopicHandler, countOfFailedTopicSourceUpdatesMetricTopicPath); AddTopic(addTopicHandler, rateOfUpdatesPerSecondMetricTopicPath); AddTopic(addTopicHandler, rateOfSuccessfulTopicSourceUpdatesPerSecond); } else { // The root topic path exists so we need to start updating it. // (I am making the assumption that all of the topics I need to have added // below this root will be there... this could break if I add a new topic to the // tree in this codebase without restarting the Diffusion server or removing the // root topic first.) AddTopicSources(); } }