collect_and_publish.h
Go to the documentation of this file.
1 /*
2  * Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License").
5  * You may not use this file except in compliance with the License.
6  * A copy of the License is located at
7  *
8  * http://aws.amazon.com/apache2.0
9  *
10  * or in the "license" file accompanying this file. This file is distributed
11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12  * express or implied. See the License for the specific language governing
13  * permissions and limitations under the License.
14  */
15 
18 
19 #include <vector>
20 
25 {
26 public:
34  const std::vector<MetricCollectorInterface *> & c)
35  : mg_(mg), collectors_(c) {}
36 
42  void operator()(const ros::TimerEvent & event)
43  {
44  for (auto c : collectors_) {
45  c->Collect();
46  }
47  mg_.Publish();
48  }
49 
50 private:
52  const std::vector<MetricCollectorInterface *> & collectors_;
53 };
void operator()(const ros::TimerEvent &event)
activates all collectors and then publishes the metrics.
virtual void Publish()=0
publishes all metrics and then discards them.
const std::vector< MetricCollectorInterface * > & collectors_
ros_monitoring_msgs::MetricManagerInterface & mg_
CollectAndPublish(ros_monitoring_msgs::MetricManagerInterface &mg, const std::vector< MetricCollectorInterface * > &c)
Constructor.
activates collectors and then publishes metrics.


health_metric_collector
Author(s): AWS RoboMaker
autogenerated on Fri Mar 5 2021 03:32:41