Apollo  6.0
Open source self driving car software
fuel_monitor.h
Go to the documentation of this file.
1 /******************************************************************************
2  * Copyright 2020 The Apollo Authors. 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  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *****************************************************************************/
16 
21 #pragma once
22 
23 #include <memory>
24 #include <string>
25 
26 #include "nlohmann/json.hpp"
27 
32 namespace apollo {
33 namespace dreamview {
34 
39 class FuelMonitor {
40  public:
44  explicit FuelMonitor(const std::string& name) : class_name_(name) {}
45  virtual ~FuelMonitor() = default;
46 
47  bool IsEnabled() const { return enabled_; }
48 
52  virtual void Start() = 0;
53 
57  virtual void Stop() = 0;
58 
63  std::string GetClassName() const { return class_name_; }
64 
68  void Restart() {
69  Stop();
70  Start();
71  }
72 
76  virtual nlohmann::json GetProgressAsJson() = 0;
77 
78  protected:
79  // Whether the fuel monitor is enabled.
80  bool enabled_ = false;
81  std::string class_name_;
82 };
83 
84 } // namespace dreamview
85 } // namespace apollo
void Restart()
restart monitoring
Definition: fuel_monitor.h:68
bool enabled_
Definition: fuel_monitor.h:80
FuelMonitor(const std::string &name)
Constructor of FuelMonitor.
Definition: fuel_monitor.h:44
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
virtual void Start()=0
start monitoring
A base class that monitor progress for Fuel client.
Definition: fuel_monitor.h:39
virtual void Stop()=0
stop monitoring
std::string GetClassName() const
get class name
Definition: fuel_monitor.h:63
std::string class_name_
Definition: fuel_monitor.h:81
bool IsEnabled() const
Definition: fuel_monitor.h:47
virtual ~FuelMonitor()=default
virtual nlohmann::json GetProgressAsJson()=0
return current progress of as json