Commit d35348f7 authored by Alessio Netti's avatar Alessio Netti

Code refactoring (make clean required)

- Added a 'common' directory where all shared code has been placed
- Analytics package has been moved out of dcdbpusher, now has its own makefile
- Some renaming here and there for uniformity
parent 516920a0
......@@ -2,7 +2,7 @@ include config.mk
MAKEFILENAME := $(lastword $(MAKEFILE_LIST))
SUB_DIRS = lib CollectAgent dcdbpusher tools scripts
SUB_DIRS = lib collectagent dcdbpusher analytics tools scripts
CASSANDRA_VERSION = 2.2.10
MOSQUITTO_VERSION = 1.5.5
......@@ -106,7 +106,7 @@ mrproper: distclean
all: check-cross-compile deps $(foreach s,$(SUB_DIRS),$(s)-build)
install: depsinstall $(SUB_DIRS)
@cd include && install $(PUBHEADERS) $(DCDBDEPLOYPATH)/include/dcdb && cd ..
@cd common/include && install $(PUBHEADERS) $(DCDBDEPLOYPATH)/include/dcdb && cd ..
@echo DONE
deps: $(foreach f,$(DISTFILESPATHS),$(DCDBDEPSPATH)/$(f)/.built)
......
......@@ -15,8 +15,8 @@
#include <dlfcn.h>
#include "includes/UnitInterface.h"
#include "includes/AnalyzerConfiguratorInterface.h"
#include "../includes/Logging.h"
#include "../includes/PluginDefinitions.h"
#include "logging.h"
#include "../dcdbpusher/includes/PluginDefinitions.h"
using namespace std;
......
include ../config.mk
include ../common.mk
CXXFLAGS = -std=c++11 -DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG -DBOOST_NETWORK_ENABLE_HTTPS -O2 -g -Wall -Wno-unused-function -Wno-unused-local-typedefs -Wno-deprecated-declarations -Wno-unused-variable -DBOOST_LOG_DYN_LINK -I$(DCDBBASEPATH)/dcdb/common/include -I$(DCDBDEPLOYPATH)/include -DVERSION=\"$(VERSION)\"
LIBS = -L$(DCDBDEPLOYPATH)/lib/ -ldl -lboost_system -lboost_thread -lboost_log_setup -lboost_log -lboost_regex -lpthread -rdynamic
ANALYZERS = average
ifeq ($(OS),Darwin)
BACNET_PORT = bsd
LIBEXT = dylib
LIBFLAGS = -dynamiclib -install_name
else
BACNET_PORT = linux
LIBEXT = so
LIBFLAGS = -shared -Wl,-soname,
PLUGINFLAGS = -fPIC
endif
ANALYZER_LIBS = $(foreach p,$(ANALYZERS),libdcdbanalyzer_$(p).$(LIBEXT))
all: $(ANALYZER_LIBS)
debug: CXXFLAGS += -DDEBUG
debug: all
clean:
rm -f $(ANALYZER_LIBS) $(shell find . -name "*.o")
$(OBJS) : %.o : %.cpp
install_analyzer: $(ANALYZER_LIBS)
install $^ $(DCDBDEPLOYPATH)/lib/
install_conf: $(foreach p,global $(ANALYZERS),config/$(p).conf)
install -m 644 $^ $(DCDBDEPLOYPATH)/etc/
install: install_analyzer
@echo "Done with installation."
@echo "====================================="
@echo "To copy the configuration files type:"
@echo " > make install_conf"
analyzers/%.o: CXXFLAGS+= $(PLUGINFLAGS)
SensorNavigator.o: CXXFLAGS+= $(PLUGINFLAGS)
libdcdbanalyzer_average.$(LIBEXT): analyzers/average/AverageAnalyzer.o analyzers/average/AverageConfigurator.o ../common/src/sensornavigator.o
$(CXX) $(LIBFLAGS)$@ -o $@ $^ -L$(DCDBDEPLOYPATH)/lib/ -lboost_log -lboost_system -lboost_regex
......@@ -10,7 +10,7 @@
#include "QueryEngine.h"
#include "AnalyzerInterface.h"
#include "../../includes/ConfiguratorInterface.h"
#include "../../dcdbpusher/includes/ConfiguratorInterface.h"
/**
* Interface to configurators for data analyzer plugins
......
......@@ -14,7 +14,7 @@
#include <boost/property_tree/info_parser.hpp>
#include "AnalyzerTemplate.h"
#include "AnalyzerConfiguratorInterface.h"
#include "../../includes/SensorBase.h"
#include "sensorbase.h"
#include <iostream>
#include <sstream>
......
......@@ -11,7 +11,7 @@
#include <map>
#include <boost/asio.hpp>
#include "../../includes/Logging.h"
#include "logging.h"
#include "UnitInterface.h"
using namespace std;
......
......@@ -5,8 +5,8 @@
#ifndef PROJECT_QUERYENGINE_H
#define PROJECT_QUERYENGINE_H
#include "../SensorNavigator.h"
#include "../../includes/SensorBase.h"
#include "sensornavigator.h"
#include "sensorbase.h"
#include <atomic>
using namespace std;
......
......@@ -8,7 +8,7 @@
#include <set>
#include <boost/regex.hpp>
#include <boost/algorithm/string.hpp>
#include "../SensorNavigator.h"
#include "sensornavigator.h"
#include "UnitTemplate.h"
using namespace std;
......
......@@ -6,7 +6,7 @@
#define PROJECT_UNITINTERFACE_H
#include <vector>
#include "../../includes/SensorBase.h"
#include "sensorbase.h"
// Defines how inputs must be constructed for the specified unit
typedef enum inputMode_t { SELECTIVE = 1, ALL = 2, ALL_RECURSIVE = 3 } inputMode_t;
......
include ../config.mk
CXXFLAGS = -O2 -g --std=c++11 -Wall -Wno-unused-local-typedefs -Wno-deprecated-declarations -Wno-unknown-warning-option -fmessage-length=0 -I../include/ -I../lib/include -I$(DCDBDEPLOYPATH)/include -DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG -DBOOST_LOG_DYN_LINK -I$(DCDBDEPSPATH)/cpp-netlib-0.12.0-final/deps/asio/asio/include -DVERSION=\"$(VERSION)\"
OBJS = collectagent.o \
configuration.o \
logging.o \
sensorcache.o \
simplemqttserver.o \
simplemqttserverthread.o \
simplemqttservermessage.o
CXXFLAGS = -O2 -g --std=c++11 -Wall -Wno-unused-local-typedefs -Wno-deprecated-declarations -Wno-unknown-warning-option -fmessage-length=0 -I../common/include/ -I../lib/include -I$(DCDBDEPLOYPATH)/include -DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG -DBOOST_LOG_DYN_LINK -I$(DCDBDEPSPATH)/cpp-netlib-0.12.0-final/deps/asio/asio/include -DVERSION=\"$(VERSION)\"
OBJS = ../common/src/logging.o \
../common/src/sensorcache.o \
collectagent.o \
configuration.o \
simplemqttserver.o \
simplemqttserverthread.o \
simplemqttservermessage.o
LIBS = -L$(DCDBDEPLOYPATH)/lib/ -L../lib -ldcdb -pthread -lcassandra -luv -lboost_system -lboost_random -lboost_thread -lboost_date_time -lboost_log_setup -lboost_log -lboost_regex -lcppnetlib-server-parsers -lcppnetlib-uri
TARGET = collectagent
......
......@@ -64,7 +64,7 @@ DCDB::SensorDataStore *mySensorDataStore;
DCDB::SensorConfig *mySensorConfig;
DCDB::SensorCache mySensorCache;
DCDB::SCError err;
DCDBLog::logger_t lg;
logger_t lg;
/* Normal termination (SIGINT, CTRL+C) */
void sigHandler(int sig)
......@@ -296,8 +296,8 @@ int main(int argc, char* const argv[]) {
}
}
DCDBLog::initLogging();
auto cmdSink = DCDBLog::setupCmdLogger();
initLogging();
auto cmdSink = setupCmdLogger();
Configuration config(argv[argc - 1]);
if( !config.readGlobal() ) {
......@@ -343,7 +343,7 @@ int main(int argc, char* const argv[]) {
settings.cassandraSettings.ttl = stoul(optarg);
break;
case 'v':
settings.logLevelCmd = DCDBLog::translateLogLevel(stoi(optarg));
settings.logLevelCmd = translateLogLevel(stoi(optarg));
break;
case 'd':
case 'D':
......@@ -359,7 +359,7 @@ int main(int argc, char* const argv[]) {
}
}
auto fileSink = DCDBLog::setupFileLogger(settings.tempDir, std::string("collectagent"));
auto fileSink = setupFileLogger(settings.tempDir, std::string("collectagent"));
//severity level may be overwritten (per option or config-file) --> set it according to globalSettings
fileSink->set_filter(boost::log::trivial::severity >= settings.logLevelFile);
cmdSink->set_filter(boost::log::trivial::severity >= settings.logLevelCmd);
......
......@@ -66,7 +66,7 @@ bool Configuration::readGlobal() {
} else if (boost::iequals(global.first, "cacheInterval")) {
_global.cacheInterval = stoul(global.second.data());
} else if (boost::iequals(global.first, "verbosity")) {
_global.logLevelFile = DCDBLog::translateLogLevel(stoi(global.second.data()));
_global.logLevelFile = translateLogLevel(stoi(global.second.data()));
} else if (boost::iequals(global.first, "tempDir")) {
_global.tempDir = global.second.data();
if (_global.tempDir[_global.tempDir.length()-1] != '/') {
......
......@@ -83,7 +83,7 @@ private:
std::string _cfgFilePath;
globalCA_t _global;
DCDBLog::logger_t lg;
logger_t lg;
};
#endif /* CONFIGURATION_H_ */
......
......@@ -109,7 +109,7 @@ protected:
boost::ptr_list<SimpleMQTTServerAcceptThread> acceptThreads;
SimpleMQTTMessageCallback messageCallback;
DCDBLog::logger_t lg;
logger_t lg;
void init(std::string addr, std::string port);
void initSockets(void);
......
......@@ -38,7 +38,7 @@ protected:
boost::mutex cleanupMtx;
DCDBLog::logger_t lg;
logger_t lg;
static void* launch(void* thisPtr);
static void yield();
......
......@@ -25,11 +25,15 @@
#include <boost/log/utility/setup/common_attributes.hpp>
#include <boost/log/support/date_time.hpp>
#define LOG_LEVEL boost::log::trivial::severity_level
#define LOGGER boost::log::sources::severity_logger<LOG_LEVEL>
//further abbreviate the boost shortcut-macro
//to use it, only a boost severity-logger named lg is required
#define LOG(sev) BOOST_LOG_SEV(lg, boost::log::trivial::sev)
namespace DCDBLog {
//another shortcut which can take the severity level as variable
#define LOG_VAR(var) BOOST_LOG_SEV(lg, var)
// Handy typedef to instantiate loggers
typedef boost::log::sources::severity_logger<boost::log::trivial::severity_level> logger_t;
......@@ -70,6 +74,4 @@ auto setupFileLogger(std::string logPath, std::string logName) -> decltype(boost
**/
boost::log::trivial::severity_level translateLogLevel(int logLevel);
}
#endif /* LOGGING_H_ */
......@@ -13,7 +13,7 @@
#include <string>
#include <limits.h>
#include <boost/lockfree/spsc_queue.hpp>
#include "Logging.h"
#include "logging.h"
typedef struct {
int64_t value;
......
......@@ -14,7 +14,6 @@
using namespace std;
//TODO: move in some utilities directory
/**
* Provides a simple tree-like in-memory representation of a sensor hierarchy
*
......
......@@ -4,14 +4,14 @@
#include "logging.h"
void DCDBLog::initLogging() {
void initLogging() {
//Init logging environment
boost::log::add_common_attributes();
}
//Setup a command line logger
//only print timestamp (without date), severity and message to terminal
auto DCDBLog::setupCmdLogger() -> decltype(boost::log::add_console_log()) {
auto setupCmdLogger() -> decltype(boost::log::add_console_log()) {
auto logger = boost::log::add_console_log(std::cout,
boost::log::keywords::format = (boost::log::expressions::stream
<< "[" << boost::log::expressions::format_date_time<boost::posix_time::ptime>("TimeStamp", "%H:%M:%S") << "]"
......@@ -24,7 +24,7 @@ auto DCDBLog::setupCmdLogger() -> decltype(boost::log::add_console_log()) {
//Setup logger to file; we now should know where the writable tempdir is
//number logfiles ascending; rotate logfile every 10 MiB
//format: LineID [Timestamp] ThreadID <severity>: Message
auto DCDBLog::setupFileLogger(std::string logPath, std::string logName) -> decltype(boost::log::add_file_log("")) {
auto setupFileLogger(std::string logPath, std::string logName) -> decltype(boost::log::add_file_log("")) {
auto logger = boost::log::add_file_log(
boost::log::keywords::file_name = logPath + logName + "_%N.log",
boost::log::keywords::rotation_size = 10 * 1024 * 1024,
......@@ -39,7 +39,7 @@ auto DCDBLog::setupFileLogger(std::string logPath, std::string logName) -> declt
return logger;
}
boost::log::trivial::severity_level DCDBLog::translateLogLevel(int logLevel) {
boost::log::trivial::severity_level translateLogLevel(int logLevel) {
switch (logLevel) {
case 0:
return boost::log::trivial::fatal;
......
......@@ -2,7 +2,7 @@
// Created by Netti, Alessio on 11.12.18.
//
#include "SensorNavigator.h"
#include "sensornavigator.h"
const string SensorNavigator::rootKey = "__root__";
const string SensorNavigator::templateKey = "__template__";
......
......@@ -22,10 +22,10 @@
#include <boost/asio.hpp>
#include "includes/Logging.h"
#include "logging.h"
#include "includes/PluginDefinitions.h"
#include "MQTTPusher.h"
#include "analytics/AnalyticsManager.h"
#include "../analytics/AnalyticsManager.h"
typedef struct {
std::string restHost;
......
......@@ -12,10 +12,10 @@
#define PUSHER_IDLETIME 1000000000
#include <mosquitto.h>
#include "includes/PluginDefinitions.h"
#include "includes/SensorBase.h"
#include "analytics/AnalyticsManager.h"
#include <map>
#include "includes/PluginDefinitions.h"
#include "sensorbase.h"
#include "../analytics/AnalyticsManager.h"
enum msgCap_t {DISABLED = 1, ENABLED = 2, MINIMUM = 3};
......
include ../config.mk
include ../common.mk
CXXFLAGS = -std=c++11 -DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG -DBOOST_NETWORK_ENABLE_HTTPS -O2 -g -Wall -Wno-unused-function -Wno-unused-local-typedefs -Wno-deprecated-declarations -Wno-unused-variable -DBOOST_LOG_DYN_LINK -I$(DCDBBASEPATH)/dcdb/include -I$(DCDBDEPLOYPATH)/include -I$(DCDBDEPSPATH)/cpp-netlib-0.12.0-final/deps/asio/asio/include -DVERSION=\"$(VERSION)\"
CXXFLAGS = -std=c++11 -DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG -DBOOST_NETWORK_ENABLE_HTTPS -O2 -g -Wall -Wno-unused-function -Wno-unused-local-typedefs -Wno-deprecated-declarations -Wno-unused-variable -DBOOST_LOG_DYN_LINK -I$(DCDBBASEPATH)/dcdb/common/include -I$(DCDBDEPLOYPATH)/include -I$(DCDBDEPSPATH)/cpp-netlib-0.12.0-final/deps/asio/asio/include -DVERSION=\"$(VERSION)\"
LIBS = -L../deps/mosquitto_build/lib -L$(DCDBDEPLOYPATH)/lib/ -ldl -lmosquitto -lboost_system -lboost_thread -lboost_log_setup -lboost_log -lboost_regex -lpthread -lcrypto -lssl -lcppnetlib-server-parsers -lcppnetlib-uri -rdynamic
OBJS = dcdbpusher.o Configuration.o MQTTPusher.o HttpsServer.o analytics/AnalyticsManager.o analytics/SensorNavigator.o
OBJS = dcdbpusher.o Configuration.o MQTTPusher.o HttpsServer.o ../analytics/AnalyticsManager.o ../common/src/sensornavigator.o
TARGET = dcdbpusher
PLUGINS = procfs pdu sysfs ipmi bacnet snmp gpfsmon tester
ANALYZERS = average
ifeq ($(OS),Darwin)
BACNET_PORT = bsd
......@@ -21,30 +20,26 @@ else
PLUGINFLAGS = -fPIC
endif
PLUGIN_LIBS = $(foreach p,$(PLUGINS),libdcdbplugin_$(p).$(LIBEXT))
ANALYZER_LIBS = $(foreach p,$(ANALYZERS),libdcdbanalyzer_$(p).$(LIBEXT))
$(TARGET): $(foreach f,$(DISTFILESPATHS),$(DCDBDEPSPATH)/$(f)/.installed) $(OBJS)
$(CXX) -o $(TARGET) $(OBJS) $(LIBS)
all: $(TARGET) $(PLUGIN_LIBS) $(ANALYZER_LIBS)
all: $(TARGET) $(PLUGIN_LIBS)
debug: CXXFLAGS += -DDEBUG
debug: all
clean:
rm -f $(PLUGIN_LIBS) $(ANALYZER_LIBS) $(TARGET) $(shell find -name "*.o")
rm -f $(PLUGIN_LIBS) $(TARGET) $(shell find . -name "*.o")
$(OBJS) : %.o : %.cpp
install_lib: $(PLUGIN_LIBS)
install $^ $(DCDBDEPLOYPATH)/lib/
install_analyzer: $(ANALYZER_LIBS)
install $^ $(DCDBDEPLOYPATH)/lib/
install_conf: $(foreach p,global $(PLUGINS) $(ANALYZERS),config/$(p).conf)
install_conf: $(foreach p,global $(PLUGINS),config/$(p).conf)
install -m 644 $^ $(DCDBDEPLOYPATH)/etc/
install: $(TARGET) install_lib install_analyzer
install: $(TARGET) install_lib
install $(TARGET) $(DCDBDEPLOYPATH)/bin/
@echo "Done with installation."
@echo "====================================="
......@@ -54,8 +49,7 @@ install: $(TARGET) install_lib install_analyzer
BACNET_SRC:= $(shell find $(DCDBDEPSPATH) -name "bacnet-stack-*" -type d)
sensors/%.o: CXXFLAGS+= $(PLUGINFLAGS)
sensors/bacnet/%.o: CXXFLAGS+= -I$(BACNET_SRC)/include -I$(BACNET_SRC)/ports/$(BACNET_PORT)
analytics/analyzers/%.o: CXXFLAGS+= $(PLUGINFLAGS)
analytics/SensorNavigator.o: CXXFLAGS+= $(PLUGINFLAGS)
../analytics/SensorNavigator.o: CXXFLAGS+= $(PLUGINFLAGS)
libdcdbplugin_sysfs.$(LIBEXT): sensors/sysfs/SysfsSensorGroup.o sensors/sysfs/SysfsConfigurator.o
$(CXX) $(LIBFLAGS)$@ -o $@ $^ -L$(DCDBDEPLOYPATH)/lib/ -lboost_log -lboost_system -lboost_regex
......@@ -86,6 +80,3 @@ libdcdbplugin_gpfsmon.$(LIBEXT): sensors/gpfsmon/GpfsmonSensorGroup.o sensors/gp
#libdcdbplugin_opa.$(LIBEXT): sensors/opa/OpaSensorGroup.o sensors/opa/OpaConfigurator.o
# $(CXX) $(LIBFLAGS)$@ -o $@ $^ -L$(DCDBDEPLOYPATH)/lib/ -lboost_log -lboost_system -lboost_regex -lopamgt -libverbs -libumad -lssl
libdcdbanalyzer_average.$(LIBEXT): analytics/analyzers/average/AverageAnalyzer.o analytics/analyzers/average/AverageConfigurator.o analytics/SensorNavigator.o
$(CXX) $(LIBFLAGS)$@ -o $@ $^ -L$(DCDBDEPLOYPATH)/lib/ -lboost_log -lboost_system -lboost_regex
......@@ -17,7 +17,7 @@
#include <boost/property_tree/info_parser.hpp>
#include <boost/regex.hpp>
#include "ConfiguratorInterface.h"
#include "SensorBase.h"
#include "sensorbase.h"
#include "SensorGroupTemplate.h"
#include "version.h"
......
/*
* Logging.h
*
* Created on: 05.05.2018
* Author: Micha Mueller
*/
#ifndef LOGGING_H_
#define LOGGING_H_
/*
* Simple header file to bundle all includes required for logging with boost::log.
* Simplifies logging: one has to include only this single header file which additionally
* offers shortcut macros for convenient logging.
* However, most of the classes already include Sensor.h which in turn includes Logging.h
*/
#include <boost/log/trivial.hpp>
#include <boost/log/sources/severity_logger.hpp>
#define LOG_LEVEL boost::log::trivial::severity_level
#define LOGGER boost::log::sources::severity_logger<LOG_LEVEL>
//further abbreviate the boost shortcut-macro
//to use it, only a boost severity-logger named lg is required
#define LOG(sev) BOOST_LOG_SEV(lg, boost::log::trivial::sev)
//another shortcut which can take the severity level as variable
#define LOG_VAR(var) BOOST_LOG_SEV(lg, var)
#endif /* LOGGING_H_ */
......@@ -12,8 +12,8 @@
#include <memory>
#include <boost/asio.hpp>
#include "Logging.h"
#include "SensorBase.h"
#include "logging.h"
#include "sensorbase.h"
class SensorGroupInterface {
public:
......
......@@ -11,7 +11,7 @@ cat << EOF > ${PLUGIN_NAME}SensorBase.h
#ifndef ${PLUGIN_NAME_UPC}_${PLUGIN_NAME_UPC}SENSORBASE_H_
#define ${PLUGIN_NAME_UPC}_${PLUGIN_NAME_UPC}SENSORBASE_H_
#include "../../includes/SensorBase.h"
#include "sensorbase.h"
EOF
if [ "$enableEntities" = true ]
......
......@@ -12,7 +12,7 @@
#include "bacenum.h"
#include "datalink.h"
#include <boost/asio.hpp>
#include "../../includes/Logging.h"
#include "logging.h"
/*
* NOTE
......
......@@ -8,7 +8,7 @@
#ifndef SRC_SENSORS_BACNET_BACNETSENSORBASE_H_
#define SRC_SENSORS_BACNET_BACNETSENSORBASE_H_
#include "../../includes/SensorBase.h"
#include "sensorbase.h"
#include "BACnetClient.h"
......
......@@ -8,7 +8,7 @@
#ifndef GPFSMON_GPFSMONSENSORBASE_H_
#define GPFSMON_GPFSMONSENSORBASE_H_
#include "../../includes/SensorBase.h"
#include "sensorbase.h"
#include <regex>
......
......@@ -12,7 +12,7 @@
#include <list>
#include <freeipmi/freeipmi.h>
#include <boost/asio.hpp>
#include "../../includes/Logging.h"
#include "logging.h"
class IPMIHost {
public:
......
......@@ -8,7 +8,7 @@
#ifndef SRC_SENSORS_IPMI_IPMISENSORBASE_H_
#define SRC_SENSORS_IPMI_IPMISENSORBASE_H_
#include "../../includes/SensorBase.h"
#include "sensorbase.h"
#include "IPMIHost.h"
......
......@@ -8,7 +8,7 @@
#ifndef MSR_MSRSENSORBASE_H_
#define MSR_MSRSENSORBASE_H_
#include "../../includes/SensorBase.h"
#include "sensorbase.h"
class MSRSensorBase : public SensorBase {
public:
......
......@@ -20,7 +20,7 @@
#include <exception>
#include <utility>
#include "../../includes/Logging.h"
#include "logging.h"
#include "../../includes/SensorBase.h"
#include "timestamp.h"
#include "Types.h"
......
......@@ -8,7 +8,7 @@
#ifndef OPA_OPASENSORBASE_H_
#define OPA_OPASENSORBASE_H_
#include "../../includes/SensorBase.h"
#include "sensorbase.h"
enum PORT_COUNTER_DATA {
portXmitData = 0,
......
......@@ -8,7 +8,7 @@
#ifndef PDU_PDUSENSORBASE_H_
#define PDU_PDUSENSORBASE_H_
#include "../../includes/SensorBase.h"
#include "sensorbase.h"
#include "PDUUnit.h"
#include <sstream>
......
......@@ -15,7 +15,7 @@
#include <boost/asio.hpp>
#include <boost/property_tree/ptree.hpp>
#include "../../includes/Logging.h"
#include "logging.h"
typedef std::vector<std::pair<std::string, std::string>> attributesVector_t;
......
......@@ -8,7 +8,7 @@
#ifndef PERFEVENT_PERFSENSORBASE_H_
#define PERFEVENT_PERFSENSORBASE_H_
#include "../../includes/SensorBase.h"
#include "sensorbase.h"
#include <limits.h>
class PerfSensorBase : public SensorBase {
......
......@@ -8,7 +8,7 @@
#ifndef PROCFSSENSOR_H_
#define PROCFSSENSOR_H_