Module: check_mk
Branch: master
Commit: 67f5979803ed404a70bc50adc85a23c8ca20048a
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=67f5979803ed40…
Author: Sergey Kipnis <sk(a)mathias-kettner.de>
Date: Tue Mar 26 13:27:20 2019 +0100
[CMK-1791] - refactoring and small fixes
- asio.h is ANSI
- support for string_view
- debug logs
Change-Id: I115b9292cb0067b509ccef2c2a96120da0761a4b
---
agents/wnx/include/tools/_misc.h | 12 ++++++++++++
agents/wnx/src/common/cfg_info.h | 1 +
agents/wnx/src/common/cmdline_info.h | 2 +-
agents/wnx/src/engine/asio.h | 2 +-
agents/wnx/src/engine/carrier.h | 7 +++++--
agents/wnx/src/engine/provider_api.h | 7 +++++--
agents/wnx/wnxtest/wnxtest.vcxproj | 20 ++++++++++++++++++++
7 files changed, 45 insertions(+), 6 deletions(-)
diff --git a/agents/wnx/include/tools/_misc.h b/agents/wnx/include/tools/_misc.h
index 551ab9a..fa7c762 100644
--- a/agents/wnx/include/tools/_misc.h
+++ b/agents/wnx/include/tools/_misc.h
@@ -179,6 +179,18 @@ auto ParseKeyValue(const std::basic_string<T> Arg, T Splitter)
{
}
template <typename T>
+auto ParseKeyValue(const std::basic_string_view<T> Arg, T Splitter) {
+ auto end = Arg.find_first_of(Splitter);
+ if (end == std::basic_string<T>::npos) {
+ return std::make_tuple(std::basic_string<T>(),
std::basic_string<T>());
+ }
+ auto key = Arg.substr(0, end);
+ auto value = Arg.substr(end + 1);
+ return std::make_tuple(std::basic_string<T>(key),
+ std::basic_string<T>(value));
+}
+
+template <typename T>
auto ParseKeyValue(const T* Arg, T Splitter) {
return ParseKeyValue(std::basic_string<T>(Arg), Splitter);
}
diff --git a/agents/wnx/src/common/cfg_info.h b/agents/wnx/src/common/cfg_info.h
index cdcd7d1..de0828b 100644
--- a/agents/wnx/src/common/cfg_info.h
+++ b/agents/wnx/src/common/cfg_info.h
@@ -65,6 +65,7 @@ constexpr int kDefaultAgentMaxWait = 15; // max time agent waits for a
sections
constexpr int kDefaultAgentMinWait = 1; // max time agent waits for a sections
const char* const kDefaultLogFileName = "check_mk.log";
+const char* const kDefaultAppFileName = "check_mk_agent.exe";
constexpr wchar_t kAppDataCompanyName[] = L"CheckMK";
constexpr char kDefaultEventLogName[] =
"CheckMK"; // name for windows event log
diff --git a/agents/wnx/src/common/cmdline_info.h b/agents/wnx/src/common/cmdline_info.h
index 6213d39..209dea0 100644
--- a/agents/wnx/src/common/cmdline_info.h
+++ b/agents/wnx/src/common/cmdline_info.h
@@ -25,7 +25,7 @@ constexpr const wchar_t* kTimeout = L"timeout";
constexpr wchar_t kSplitter = L':';
-auto ParseExeCommandLine(int argc, wchar_t const* argv[]) {
+inline auto ParseExeCommandLine(int argc, wchar_t const* argv[]) {
using namespace std;
auto make_error_answer = [](int ErrorCode) -> auto {
return make_tuple(ErrorCode, std::wstring(), std::wstring(),
diff --git a/agents/wnx/src/engine/asio.h b/agents/wnx/src/engine/asio.h
index ed4b499..e74f9f1 100644
--- a/agents/wnx/src/engine/asio.h
+++ b/agents/wnx/src/engine/asio.h
@@ -1,4 +1,4 @@
-
+
// Wrapping asio.hpp to hook socket creation with
// internal control of the options and mode
//
diff --git a/agents/wnx/src/engine/carrier.h b/agents/wnx/src/engine/carrier.h
index 7a79d07..a7e8921 100644
--- a/agents/wnx/src/engine/carrier.h
+++ b/agents/wnx/src/engine/carrier.h
@@ -1,5 +1,5 @@
-// provides basic api to start and stop service
+// API "Internal transport"
#pragma once
#include <chrono> // timestamps
@@ -11,6 +11,8 @@
#include "tools/_misc.h"
#include "tools/_xlog.h"
+#include "logger.h"
+
namespace cma::carrier {
enum DataType {
kLog = 0,
@@ -180,7 +182,8 @@ public:
cc.shutdownCommunication();
return ret;
} else {
- xlog::l("Failed convert %ls", Id.c_str()).print();
+ XLOG::l("Failed to convert id value '{}'",
+ wtools::ConvertToUTF8(Id));
return false;
}
}
diff --git a/agents/wnx/src/engine/provider_api.h b/agents/wnx/src/engine/provider_api.h
index 1f1e8ad..d7bb59e 100644
--- a/agents/wnx/src/engine/provider_api.h
+++ b/agents/wnx/src/engine/provider_api.h
@@ -12,8 +12,9 @@
namespace cma::provider {
constexpr const wchar_t* kProviderName =
- L"Provider"; // unique name of the plugin player
+ L"Provider"; // unique name of the provider
+// FUNCTIONS BELOW ARE IMPLEMENTED IN THE PROVIDER
void ProgramUsage(const std::wstring& Comment);
// test [parameters]
@@ -22,12 +23,14 @@ int MainTest(int argc, wchar_t const* argv[]);
// run [parameters]
int MainRun(int argc, wchar_t const* argv[]);
-// runonce [parameters]
+// run something [parameters]
int MainRunOnce(int argc, wchar_t const* argv[]);
// main
int MainFunction(int argc, wchar_t const* argv[]);
+// ********************************************************
+
// sub form main
inline int MainFunctionCore(int argc, wchar_t const* argv[]) {
using namespace cma::exe::cmdline;
diff --git a/agents/wnx/wnxtest/wnxtest.vcxproj b/agents/wnx/wnxtest/wnxtest.vcxproj
index 3cb5f78..41024af 100644
--- a/agents/wnx/wnxtest/wnxtest.vcxproj
+++ b/agents/wnx/wnxtest/wnxtest.vcxproj
@@ -32,6 +32,26 @@
<ImportGroup Label="Shared" />
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
+ <PropertyGroup
Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>../build/$(ProjectName)\$(Platform)\$(Configuration)\</OutDir>
+
<IntDir>../build/$(ProjectName)\$(Platform)\$(Configuration)\obj\</IntDir>
+ <TargetName>$(ProjectName)$(PlatformArchitecture)</TargetName>
+ </PropertyGroup>
+ <PropertyGroup
Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>../build/$(ProjectName)\$(Platform)\$(Configuration)\</OutDir>
+
<IntDir>../build/$(ProjectName)\$(Platform)\$(Configuration)\obj\</IntDir>
+ <TargetName>$(ProjectName)$(PlatformArchitecture)</TargetName>
+ </PropertyGroup>
+ <PropertyGroup
Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <OutDir>../build/$(ProjectName)\$(Platform)\$(Configuration)\</OutDir>
+
<IntDir>../build/$(ProjectName)\$(Platform)\$(Configuration)\obj\</IntDir>
+ <TargetName>$(ProjectName)$(PlatformArchitecture)</TargetName>
+ </PropertyGroup>
+ <PropertyGroup
Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <OutDir>../build/$(ProjectName)\$(Platform)\$(Configuration)\</OutDir>
+
<IntDir>../build/$(ProjectName)\$(Platform)\$(Configuration)\obj\</IntDir>
+ <TargetName>$(ProjectName)$(PlatformArchitecture)</TargetName>
+ </PropertyGroup>
<ItemGroup>
<ClInclude Include="pch.h" />
</ItemGroup>