C++ analytics - Qmonix (3 / 9 steg)
Steg 3: Exempelprojekt
Låt oss bygga ett exempelprojekt som implementerar vårt enkla scenario. Du kan få provet från github [4].
Provet projektstruktur är ganska enkel. Vi har par byggskript, symbolisk länk till Qmonix c ++ klient och en enskild källfil:
.
|__ CMakeLists.txt
|__ Makefile
|__ lib
| |__ qmonix ->... /.. /.. /
|__ src
|__ main.cpp
1. CMakeLists.txt:
cmake_minimum_required (VERSION 2.6)
projektet (AppExitTracking CXX)
uppsättning (CMAKE_BUILD_TYPE "Release")
Ange (CMAKE_CXX_FLAGS "-vägg - Wextra - Werror-pedantisk - ggdb -std = c ++ 98")
Ange (SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR} / src")
filen (GLOB_RECURSE SRC_FILES "${SRC_DIR} / *.cpp")
Ange (EXIT_APP "exit_app")
add_executable (${EXIT_APP} ${SRC_FILES})
target_link_libraries ("${EXIT_APP}" "curl" "qmonix")
add_subdirectory ("lib/qmonix")
include_directories ("${CMAKE_CURRENT_SOURCE_DIR} / lib/qmonix/include")
2. Makefile:
BUILD_DIR = bygga
alla: cmake
. FALSKA: alla
cmake: $(BUILD_DIR)
CD $(BUILD_DIR); cmake $(CURDIR); göra
. FALSKA: cmake
$(BUILD_DIR):
mkdir -p $@
kör:
$(BUILD_DIR) / exit_app
. FALSKA: kör
ren:
rm -rf $(BUILD_DIR)
. FALSKA: rena
3. main.cpp:
#include < iostream >
#include < qmonix/qmonix.hpp >
#include < qmonix/tracker.hpp >
#include < qmonix/event_dispatcher.hpp >
genom att använda namespace std;
med hjälp av namnområdet qmonix;
int
Main(void)
{
Tracker * qtrack = () nya tracker
nya event_dispatcher ("http://localhost:8337/event /"));
qtrack -> fire("exit_app/started");
qtrack -> dispatch();
String kommando = "";
samtidigt (kommandot! = "avsluta")
{
Cout << "Qmonix klientversionen:" <<
qmonix::version << oä;
Cout << "Skriv 'exit' om du vill avsluta." << oä;
Cin >> befäl;
}
qtrack -> fire("exit_app/exited");
qtrack -> dispatch();
ta bort qtrack;
Return 0;
}
Denna enkla applikation spår när programmet är igång och graciöst avslutas. När det startas går slingan tills du skriver "exit". Detta tillåter oss att döda programmet t.ex. med "ctrl + c". I sådana fall händelse kommer exit_app/lämnat inte att avskedas.