Merged PR 817004: Mac OS X clang compiler support
What's done: * Cleaned-up all clang compiler warnings during library build * PAL Device ID GUID * PAL appId Further TODO: * BVT for Mac * Verify all header-only APIs for warnings * Guidance on custom HTTP provider - Edge team should handle this * Possibly use our own sqlite3 instead of OS, as very old OS X dyn sqlite3 might be too old Related work items: #1470816
This commit is contained in:
Родитель
4a17e7ba00
Коммит
fff773d6b1
|
@ -103,3 +103,4 @@ wrappers/go/offlinestorage.db.session64
|
||||||
/tests/ecs/node_modules
|
/tests/ecs/node_modules
|
||||||
*.ipch
|
*.ipch
|
||||||
/Solutions/Testing/Temporary
|
/Solutions/Testing/Temporary
|
||||||
|
/Default/
|
||||||
|
|
109
CMakeLists.txt
109
CMakeLists.txt
|
@ -11,11 +11,17 @@ set(INSTALL_INC_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation d
|
||||||
#set(CMAKE_CXX_FLAGS -m32)
|
#set(CMAKE_CXX_FLAGS -m32)
|
||||||
# End of i386 build
|
# End of i386 build
|
||||||
|
|
||||||
|
if (NOT TARGET_ARCH)
|
||||||
|
set(TARGET_ARCH ${CMAKE_SYSTEM_PROCESSOR})
|
||||||
|
endif()
|
||||||
|
|
||||||
message("-- CMAKE_SYSTEM_INFO_FILE: ${CMAKE_SYSTEM_INFO_FILE}")
|
message("-- CMAKE_SYSTEM_INFO_FILE: ${CMAKE_SYSTEM_INFO_FILE}")
|
||||||
message("-- CMAKE_SYSTEM_NAME: ${CMAKE_SYSTEM_NAME}")
|
message("-- CMAKE_SYSTEM_NAME: ${CMAKE_SYSTEM_NAME}")
|
||||||
message("-- CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}")
|
message("-- CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}")
|
||||||
message("-- CMAKE_SYSTEM: ${CMAKE_SYSTEM}")
|
message("-- CMAKE_SYSTEM: ${CMAKE_SYSTEM}")
|
||||||
message("-- CMAKE_SYSTEM_VERSION: ${CMAKE_SYSTEM_VERSION}")
|
message("-- CMAKE_SYSTEM_VERSION: ${CMAKE_SYSTEM_VERSION}")
|
||||||
|
message("-- CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
|
||||||
|
message("-- TARGET_ARCH: ${TARGET_ARCH}")
|
||||||
|
|
||||||
include(tools/ParseOsRelease.cmake)
|
include(tools/ParseOsRelease.cmake)
|
||||||
|
|
||||||
|
@ -26,12 +32,12 @@ set(DBG_FLAGS "-ggdb -gdwarf-2 -O0 -fno-builtin-malloc -fno-builtin-calloc -fno-
|
||||||
|
|
||||||
if (CMAKE_BUILD_TYPE STREQUAL "Release")
|
if (CMAKE_BUILD_TYPE STREQUAL "Release")
|
||||||
#TODO: -fno-rtti
|
#TODO: -fno-rtti
|
||||||
message("-- Building Release ...")
|
message("Building Release ...")
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11 ${REL_FLAGS}")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11 ${REL_FLAGS}")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 ${REL_FLAGS}")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 ${REL_FLAGS}")
|
||||||
else()
|
else()
|
||||||
set(USE_TCMALLOC 1)
|
set(USE_TCMALLOC 1)
|
||||||
message("-- Building Debug ...")
|
message("Building Debug ...")
|
||||||
include(tools/FindTcmalloc.cmake)
|
include(tools/FindTcmalloc.cmake)
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11 ${DEB_FLAGS}")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11 ${DEB_FLAGS}")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 ${DEB_FLAGS}")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 ${DEB_FLAGS}")
|
||||||
|
@ -40,23 +46,17 @@ endif()
|
||||||
include(tools/Utils.cmake)
|
include(tools/Utils.cmake)
|
||||||
|
|
||||||
# Stand-alone or Skype (dev_buildtools etc.) build
|
# Stand-alone or Skype (dev_buildtools etc.) build
|
||||||
|
if (NOT DEFAULT_PAL_IMPLEMENTATION)
|
||||||
|
# Linux, Mac OS X, MinGW, etc.
|
||||||
|
set(DEFAULT_PAL_IMPLEMENTATION CPP11)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Linux
|
# TODO: [MG] - remove. No longer needed - legacy stuff from Skype.
|
||||||
set(DEFAULT_PAL_IMPLEMENTATION CPP11)
|
#set(SYSROOT ${CMAKE_SOURCE_DIR}/sysroot)
|
||||||
set(SYSROOT ${CMAKE_SOURCE_DIR}/sysroot)
|
|
||||||
|
|
||||||
# User options
|
|
||||||
option(BUILD_HEADERS "Build API headers" YES)
|
|
||||||
option(BUILD_LIBRARY "Build library" YES)
|
|
||||||
option(BUILD_TEST_TOOL "Build console test tool" YES)
|
|
||||||
option(BUILD_UNIT_TESTS "Build unit tests" NO)
|
|
||||||
option(BUILD_FUNC_TESTS "Build functional tests" NO)
|
|
||||||
option(BUILD_JNI_WRAPPER "Build JNI wrapper" NO)
|
|
||||||
option(BUILD_PACKAGE "Build package" YES)
|
|
||||||
|
|
||||||
set(PAL_IMPLEMENTATION ${DEFAULT_PAL_IMPLEMENTATION})
|
set(PAL_IMPLEMENTATION ${DEFAULT_PAL_IMPLEMENTATION})
|
||||||
|
|
||||||
message(STATUS "PAL implementation: ${PAL_IMPLEMENTATION}")
|
message(STATUS "-- PAL implementation: ${PAL_IMPLEMENTATION}")
|
||||||
string(TOUPPER ${PAL_IMPLEMENTATION} PAL_IMPLEMENTATION_UPPER)
|
string(TOUPPER ${PAL_IMPLEMENTATION} PAL_IMPLEMENTATION_UPPER)
|
||||||
add_definitions(-DARIASDK_PAL_${PAL_IMPLEMENTATION_UPPER}=1)
|
add_definitions(-DARIASDK_PAL_${PAL_IMPLEMENTATION_UPPER}=1)
|
||||||
|
|
||||||
|
@ -65,9 +65,11 @@ if(GCC5_CXX11_ABI_WORKAROUND)
|
||||||
add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0)
|
add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Build version
|
################################################################################################
|
||||||
set(SDK_VERSION_PREFIX "ACT")
|
# Build prefix and version
|
||||||
message(STATUS "SDK version prefix: ${SDK_VERSION_PREFIX}")
|
################################################################################################
|
||||||
|
|
||||||
|
set(SDK_VERSION_PREFIX "EVT")
|
||||||
add_definitions("-DARIASDK_VERSION_PREFIX=\"${SDK_VERSION_PREFIX}\"")
|
add_definitions("-DARIASDK_VERSION_PREFIX=\"${SDK_VERSION_PREFIX}\"")
|
||||||
|
|
||||||
set(ARIASDK_API_VERSION "3.0")
|
set(ARIASDK_API_VERSION "3.0")
|
||||||
|
@ -84,19 +86,36 @@ if(DEFINED BUILD_VERSION AND NOT BUILD_VERSION STREQUAL "0.0.0.0")
|
||||||
set(ARIASDK_BUILD_VERSION ${BUILD_VERSION})
|
set(ARIASDK_BUILD_VERSION ${BUILD_VERSION})
|
||||||
else()
|
else()
|
||||||
set(ARIASDK_BUILD_VERSION ${ARIASDK_API_VERSION}.${DAYNUMBER}.0)
|
set(ARIASDK_BUILD_VERSION ${ARIASDK_API_VERSION}.${DAYNUMBER}.0)
|
||||||
message(STATUS "Build Version ${ARIASDK_BUILD_VERSION}")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
message(STATUS "-- SDK version: ${SDK_VERSION_PREFIX}-${ARIASDK_BUILD_VERSION}")
|
||||||
|
|
||||||
include(FindCURL)
|
################################################################################################
|
||||||
find_package(CURL REQUIRED)
|
# HTTP stack section
|
||||||
if (NOT CURL_FOUND)
|
################################################################################################
|
||||||
message (FATAL_ERROR "libcurl not found! Have you installed deps?")
|
|
||||||
endif (NOT CURL_FOUND)
|
|
||||||
|
|
||||||
include_directories(CURL_INCLUDE_DIRS)
|
# Only use custom curl if compiling with CPP11 PAL
|
||||||
set(CMAKE_REQUIRED_LIBRARIES "${CURL_LIBRARIES}")
|
if (PAL_IMPLEMENTATION STREQUAL "CPP11")
|
||||||
list(APPEND LIBS "${CURL_LIBRARIES}")
|
include(FindCURL)
|
||||||
|
find_package(CURL REQUIRED)
|
||||||
|
if (NOT CURL_FOUND)
|
||||||
|
message (FATAL_ERROR "libcurl not found! Have you installed deps?")
|
||||||
|
endif (NOT CURL_FOUND)
|
||||||
|
include_directories(CURL_INCLUDE_DIRS)
|
||||||
|
set(CMAKE_REQUIRED_LIBRARIES "${CURL_LIBRARIES}")
|
||||||
|
list(APPEND LIBS "${CURL_LIBRARIES}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
################################################################################################
|
||||||
|
# User options
|
||||||
|
################################################################################################
|
||||||
|
option(BUILD_HEADERS "Build API headers" YES)
|
||||||
|
option(BUILD_LIBRARY "Build library" YES)
|
||||||
|
option(BUILD_TEST_TOOL "Build console test tool" YES)
|
||||||
|
option(BUILD_UNIT_TESTS "Build unit tests" NO)
|
||||||
|
option(BUILD_FUNC_TESTS "Build functional tests" NO)
|
||||||
|
option(BUILD_JNI_WRAPPER "Build JNI wrapper" NO)
|
||||||
|
option(BUILD_PACKAGE "Build package" YES)
|
||||||
|
|
||||||
if(BUILD_UNIT_TESTS OR BUILD_FUNC_TESTS)
|
if(BUILD_UNIT_TESTS OR BUILD_FUNC_TESTS)
|
||||||
add_library(gtest STATIC IMPORTED GLOBAL)
|
add_library(gtest STATIC IMPORTED GLOBAL)
|
||||||
|
@ -104,7 +123,6 @@ if(BUILD_UNIT_TESTS OR BUILD_FUNC_TESTS)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Bond Lite subdirectories
|
# Bond Lite subdirectories
|
||||||
|
|
||||||
include_directories(bondlite/include)
|
include_directories(bondlite/include)
|
||||||
|
|
||||||
if(BUILD_UNIT_TESTS)
|
if(BUILD_UNIT_TESTS)
|
||||||
|
@ -112,18 +130,6 @@ if(BUILD_UNIT_TESTS)
|
||||||
add_subdirectory(bondlite/tests)
|
add_subdirectory(bondlite/tests)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# SDK subdirectories
|
|
||||||
|
|
||||||
if (BUILD_PACKAGE)
|
|
||||||
if (${CMAKE_PACKAGE_TYPE} STREQUAL "deb")
|
|
||||||
# FIXME: hardcode it for 64-bit Linux for now
|
|
||||||
set(INSTALL_LIB_DIR ${CMAKE_INSTALL_PREFIX}/lib/${CPACK_DEBIAN_ARCHITECTURE}-linux-gnu)
|
|
||||||
include(tools/MakeDeb.cmake)
|
|
||||||
else()
|
|
||||||
include(tools/MakeRpm.cmake)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(BUILD_HEADERS)
|
if(BUILD_HEADERS)
|
||||||
add_subdirectory(lib/include)
|
add_subdirectory(lib/include)
|
||||||
endif()
|
endif()
|
||||||
|
@ -141,3 +147,26 @@ endif()
|
||||||
#if(BUILD_TEST_TOOL)
|
#if(BUILD_TEST_TOOL)
|
||||||
# add_subdirectory(linktest)
|
# add_subdirectory(linktest)
|
||||||
#endif()
|
#endif()
|
||||||
|
|
||||||
|
################################################################################################
|
||||||
|
# Packaging
|
||||||
|
################################################################################################
|
||||||
|
|
||||||
|
if (BUILD_PACKAGE)
|
||||||
|
if (${CMAKE_PACKAGE_TYPE} STREQUAL "deb")
|
||||||
|
# FIXME: hardcode it for 64-bit Linux for now
|
||||||
|
set(INSTALL_LIB_DIR ${CMAKE_INSTALL_PREFIX}/lib/${CPACK_DEBIAN_ARCHITECTURE}-linux-gnu)
|
||||||
|
include(tools/MakeDeb.cmake)
|
||||||
|
endif()
|
||||||
|
if (${CMAKE_PACKAGE_TYPE} STREQUAL "rpm")
|
||||||
|
# TODO: [MG] - fix path
|
||||||
|
set(INSTALL_LIB_DIR ${CMAKE_INSTALL_PREFIX}/lib/${CMAKE_SYSTEM_PROCESSOR}-linux-gnu)
|
||||||
|
include(tools/MakeRpm.cmake)
|
||||||
|
endif()
|
||||||
|
if (${CMAKE_PACKAGE_TYPE} STREQUAL "tgz")
|
||||||
|
# TODO: [MG] - fix path... should we simply use /usr/local/lib without CPU?
|
||||||
|
# TODO: [MG] - Windows path is not ideal -- C:/Program Files (x86)/AriaSDK/* - what should we use instead?
|
||||||
|
set(INSTALL_LIB_DIR ${CMAKE_INSTALL_PREFIX}/lib/${CMAKE_BUILD_TYPE}/${TARGET_ARCH})
|
||||||
|
include(tools/MakeTgz.cmake)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
|
@ -54,9 +54,7 @@
|
||||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\lib\offline\StorageObserver.cpp" />
|
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\lib\offline\StorageObserver.cpp" />
|
||||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\lib\packager\BondSplicer.cpp" />
|
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\lib\packager\BondSplicer.cpp" />
|
||||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\lib\packager\Packager.cpp" />
|
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\lib\packager\Packager.cpp" />
|
||||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\lib\pal\DeviceInformationImpl.cpp" />
|
|
||||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\lib\pal\InformationProviderImpl.cpp" />
|
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\lib\pal\InformationProviderImpl.cpp" />
|
||||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\lib\pal\NetworkInformationImpl.cpp" />
|
|
||||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\lib\pal\PAL_Win32.cpp" />
|
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\lib\pal\PAL_Win32.cpp" />
|
||||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\lib\pal\win32\WindowsEnvironmentInfo.cpp" />
|
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\lib\pal\win32\WindowsEnvironmentInfo.cpp" />
|
||||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\lib\stats\MetaStats.cpp" />
|
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\lib\stats\MetaStats.cpp" />
|
||||||
|
@ -138,6 +136,7 @@
|
||||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\lib\include\public\LogConfiguration.hpp" />
|
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\lib\include\public\LogConfiguration.hpp" />
|
||||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\lib\include\public\LogManager.hpp" />
|
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\lib\include\public\LogManager.hpp" />
|
||||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\lib\include\public\LogManagerBase.hpp" />
|
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\lib\include\public\LogManagerBase.hpp" />
|
||||||
|
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\lib\include\public\CAPIClient.hpp" />
|
||||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\lib\include\public\LogManagerProvider.hpp" />
|
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\lib\include\public\LogManagerProvider.hpp" />
|
||||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\lib\include\public\LogSessionData.hpp" />
|
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\lib\include\public\LogSessionData.hpp" />
|
||||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\lib\include\public\NullObjects.hpp" />
|
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\lib\include\public\NullObjects.hpp" />
|
||||||
|
|
|
@ -141,12 +141,6 @@
|
||||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\lib\pal\InformationProviderImpl.cpp">
|
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\lib\pal\InformationProviderImpl.cpp">
|
||||||
<Filter>pal</Filter>
|
<Filter>pal</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\lib\pal\DeviceInformationImpl.cpp">
|
|
||||||
<Filter>pal</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\lib\pal\NetworkInformationImpl.cpp">
|
|
||||||
<Filter>pal</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\lib\tpm\DeviceStateHandler.cpp">
|
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\lib\tpm\DeviceStateHandler.cpp">
|
||||||
<Filter>tpm</Filter>
|
<Filter>tpm</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
@ -557,6 +551,9 @@
|
||||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\lib\system\EventPropertiesStorage.hpp">
|
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\lib\system\EventPropertiesStorage.hpp">
|
||||||
<Filter>system</Filter>
|
<Filter>system</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\lib\include\public\CAPIClient.hpp">
|
||||||
|
<Filter>include\public</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="$(MSBuildThisFileDirectory)..\..\lib\include\public\Version.hpp.template">
|
<None Include="$(MSBuildThisFileDirectory)..\..\lib\include\public\Version.hpp.template">
|
||||||
|
|
|
@ -174,7 +174,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;ARIASDK_VERSION_PREFIX="EVT";ENABLE_ECSCLIENT;_ARIA_UTC_SDK;USE_SQLITE;WIN10_CS;_CRTDBG_MAP_ALLOC;_ARIA_UTC_SDK;USE_TIMERSHIM2;USE_SQLITE;WINAPI_FAMILY=WINAPI_FAMILY_APP;_WINRT_DLL;ARIASDK_SHARED_LIB;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;ARIASDK_VERSION_PREFIX="EVT";ENABLE_ECSCLIENT;_ARIA_UTC_SDK;USE_SQLITE;WIN10_CS;_CRTDBG_MAP_ALLOC;_ARIA_UTC_SDK;USE_TIMERSHIM2;USE_SQLITE;WINAPI_FAMILY=WINAPI_FAMILY_APP;_WINRT_DLL;ARIASDK_SHARED_LIB;_CRT_SECURE_NO_WARNINGS;USE_BOND;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CallingConvention>Cdecl</CallingConvention>
|
<CallingConvention>Cdecl</CallingConvention>
|
||||||
|
@ -210,7 +210,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;ARIASDK_VERSION_PREFIX="EVT";ENABLE_ECSCLIENT;_ARIA_UTC_SDK;USE_SQLITE;WIN10_CS;WINAPI_FAMILY=WINAPI_FAMILY_APP;_WINRT_DLL;ARIASDK_SHARED_LIB;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;ARIASDK_VERSION_PREFIX="EVT";ENABLE_ECSCLIENT;_ARIA_UTC_SDK;USE_SQLITE;WIN10_CS;WINAPI_FAMILY=WINAPI_FAMILY_APP;_WINRT_DLL;ARIASDK_SHARED_LIB;_CRT_SECURE_NO_WARNINGS;USE_BOND;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<Optimization>MinSpace</Optimization>
|
<Optimization>MinSpace</Optimization>
|
||||||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
||||||
|
@ -241,7 +241,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;ARIASDK_VERSION_PREFIX="EVT";ENABLE_ECSCLIENT;_ARIA_UTC_SDK;USE_SQLITE;WIN10_CS;_ARIA_UTC_SDK;USE_TIMERSHIM2;USE_SQLITE;WINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP;_WINRT_DLL;ARIASDK_SHARED_LIB;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;ARIASDK_VERSION_PREFIX="EVT";ENABLE_ECSCLIENT;_ARIA_UTC_SDK;USE_SQLITE;WIN10_CS;_ARIA_UTC_SDK;USE_TIMERSHIM2;USE_SQLITE;WINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP;_WINRT_DLL;ARIASDK_SHARED_LIB;_CRT_SECURE_NO_WARNINGS;USE_BOND;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<CallingConvention>Cdecl</CallingConvention>
|
<CallingConvention>Cdecl</CallingConvention>
|
||||||
<CompileAsManaged>false</CompileAsManaged>
|
<CompileAsManaged>false</CompileAsManaged>
|
||||||
|
@ -272,7 +272,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;ARIASDK_VERSION_PREFIX="EVT";ENABLE_ECSCLIENT;_ARIA_UTC_SDK;USE_SQLITE;WIN10_CS;WINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP;_WINRT_DLL;ARIASDK_SHARED_LIB;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;ARIASDK_VERSION_PREFIX="EVT";ENABLE_ECSCLIENT;_ARIA_UTC_SDK;USE_SQLITE;WIN10_CS;WINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP;_WINRT_DLL;ARIASDK_SHARED_LIB;_CRT_SECURE_NO_WARNINGS;USE_BOND;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<Optimization>MinSpace</Optimization>
|
<Optimization>MinSpace</Optimization>
|
||||||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
||||||
|
@ -303,7 +303,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;ARIASDK_VERSION_PREFIX="EVT";ENABLE_ECSCLIENT;_ARIA_UTC_SDK;USE_SQLITE;WIN10_CS;_ARIA_UTC_SDK;USE_TIMERSHIM2;USE_SQLITE;WINAPI_FAMILY=WINAPI_FAMILY_APP;_WINRT_DLL;ARIASDK_SHARED_LIB;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;ARIASDK_VERSION_PREFIX="EVT";ENABLE_ECSCLIENT;_ARIA_UTC_SDK;USE_SQLITE;WIN10_CS;_ARIA_UTC_SDK;USE_TIMERSHIM2;USE_SQLITE;WINAPI_FAMILY=WINAPI_FAMILY_APP;_WINRT_DLL;ARIASDK_SHARED_LIB;_CRT_SECURE_NO_WARNINGS;USE_BOND;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CallingConvention>Cdecl</CallingConvention>
|
<CallingConvention>Cdecl</CallingConvention>
|
||||||
|
@ -335,7 +335,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;ARIASDK_VERSION_PREFIX="EVT";ENABLE_ECSCLIENT;_ARIA_UTC_SDK;USE_SQLITE;WIN10_CS;WINAPI_FAMILY=WINAPI_FAMILY_APP;_WINRT_DLL;ARIASDK_SHARED_LIB;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;ARIASDK_VERSION_PREFIX="EVT";ENABLE_ECSCLIENT;_ARIA_UTC_SDK;USE_SQLITE;WIN10_CS;WINAPI_FAMILY=WINAPI_FAMILY_APP;_WINRT_DLL;ARIASDK_SHARED_LIB;_CRT_SECURE_NO_WARNINGS;USE_BOND;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<Optimization>MinSpace</Optimization>
|
<Optimization>MinSpace</Optimization>
|
||||||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
||||||
|
@ -368,7 +368,7 @@
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<SupportJustMyCode>false</SupportJustMyCode>
|
<SupportJustMyCode>false</SupportJustMyCode>
|
||||||
<CompileAsManaged>false</CompileAsManaged>
|
<CompileAsManaged>false</CompileAsManaged>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;ARIASDK_VERSION_PREFIX="EVT";ENABLE_ECSCLIENT;WIN10_CS;WINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;ARIASDK_VERSION_PREFIX="EVT";ENABLE_ECSCLIENT;WIN10_CS;WINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>sqlite-uwp.lib;zlib.lib;WindowsApp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>sqlite-uwp.lib;zlib.lib;WindowsApp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
@ -382,7 +382,7 @@
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<CompileAsManaged>false</CompileAsManaged>
|
<CompileAsManaged>false</CompileAsManaged>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;ARIASDK_VERSION_PREFIX="EVT";ENABLE_ECSCLIENT;WIN10_CS;WINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;ARIASDK_VERSION_PREFIX="EVT";ENABLE_ECSCLIENT;WIN10_CS;WINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>sqlite-uwp.lib;zlib.lib;WindowsApp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>sqlite-uwp.lib;zlib.lib;WindowsApp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
|
|
@ -170,7 +170,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CallingConvention>Cdecl</CallingConvention>
|
<CallingConvention>Cdecl</CallingConvention>
|
||||||
|
@ -205,7 +205,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
||||||
|
@ -234,7 +234,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<CallingConvention>Cdecl</CallingConvention>
|
<CallingConvention>Cdecl</CallingConvention>
|
||||||
<ExceptionHandling>Async</ExceptionHandling>
|
<ExceptionHandling>Async</ExceptionHandling>
|
||||||
|
@ -265,7 +265,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
||||||
|
@ -295,7 +295,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CallingConvention>Cdecl</CallingConvention>
|
<CallingConvention>Cdecl</CallingConvention>
|
||||||
|
@ -327,7 +327,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
||||||
|
@ -358,7 +358,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<SupportJustMyCode>false</SupportJustMyCode>
|
<SupportJustMyCode>false</SupportJustMyCode>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
@ -374,7 +374,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
|
|
|
@ -165,7 +165,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_STATIC_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_STATIC_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CallingConvention>Cdecl</CallingConvention>
|
<CallingConvention>Cdecl</CallingConvention>
|
||||||
|
@ -195,7 +195,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_STATIC_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_STATIC_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<Optimization>MinSpace</Optimization>
|
<Optimization>MinSpace</Optimization>
|
||||||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
||||||
|
@ -222,7 +222,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_STATIC_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_STATIC_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<CallingConvention>Cdecl</CallingConvention>
|
<CallingConvention>Cdecl</CallingConvention>
|
||||||
<ExceptionHandling>Async</ExceptionHandling>
|
<ExceptionHandling>Async</ExceptionHandling>
|
||||||
|
@ -247,7 +247,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_STATIC_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_STATIC_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<Optimization>MinSpace</Optimization>
|
<Optimization>MinSpace</Optimization>
|
||||||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
||||||
|
@ -276,7 +276,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_STATIC_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_STATIC_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<Optimization>MinSpace</Optimization>
|
<Optimization>MinSpace</Optimization>
|
||||||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
||||||
|
@ -303,7 +303,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_STATIC_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_STATIC_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CallingConvention>Cdecl</CallingConvention>
|
<CallingConvention>Cdecl</CallingConvention>
|
||||||
|
@ -329,7 +329,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_STATIC_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_STATIC_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<Optimization>MinSpace</Optimization>
|
<Optimization>MinSpace</Optimization>
|
||||||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
||||||
|
@ -357,7 +357,7 @@
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_STATIC_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_STATIC_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<ControlFlowGuard>Guard</ControlFlowGuard>
|
<ControlFlowGuard>Guard</ControlFlowGuard>
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
|
@ -366,7 +366,7 @@
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_STATIC_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_STATIC_LIB;_ARIA_UTC_SDK;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;USE_BOND;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<ControlFlowGuard>Guard</ControlFlowGuard>
|
<ControlFlowGuard>Guard</ControlFlowGuard>
|
||||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||||
|
|
|
@ -164,7 +164,7 @@
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<WarningLevel>Level4</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB=1;_ARIA_UTC_SDK;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;WIN32;_DEBUG;_WINDOWS;_USRDLL;WINVER=_WIN32_WINNT_WIN7;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB=1;_ARIA_UTC_SDK;_CRT_SECURE_NO_WARNINGS;USE_BOND;WIN32;_DEBUG;_WINDOWS;_USRDLL;WINVER=_WIN32_WINNT_WIN7;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAsManaged>false</CompileAsManaged>
|
<CompileAsManaged>false</CompileAsManaged>
|
||||||
|
@ -255,7 +255,7 @@
|
||||||
<Optimization Condition="'$(Platform)'=='ARM64'">MaxSpeed</Optimization>
|
<Optimization Condition="'$(Platform)'=='ARM64'">MaxSpeed</Optimization>
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>false</IntrinsicFunctions>
|
<IntrinsicFunctions>false</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB=1;_ARIA_UTC_SDK;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;WIN32;NDEBUG;_WINDOWS;_USRDLL;WINVER=_WIN32_WINNT_WIN7;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB=1;_ARIA_UTC_SDK;_CRT_SECURE_NO_WARNINGS;USE_BOND;WIN32;NDEBUG;_WINDOWS;_USRDLL;WINVER=_WIN32_WINNT_WIN7;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<CompileAsManaged>false</CompileAsManaged>
|
<CompileAsManaged>false</CompileAsManaged>
|
||||||
<CompileAsWinRT>false</CompileAsWinRT>
|
<CompileAsWinRT>false</CompileAsWinRT>
|
||||||
|
|
|
@ -258,7 +258,7 @@
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<WarningLevel>Level4</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB=1;_ARIA_UTC_SDK;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;WIN32;_DEBUG;_WINDOWS;_USRDLL;WINVER=_WIN32_WINNT_WIN7;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB=1;_ARIA_UTC_SDK;_CRT_SECURE_NO_WARNINGS;USE_BOND;WIN32;_DEBUG;_WINDOWS;_USRDLL;WINVER=_WIN32_WINNT_WIN7;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAsManaged>false</CompileAsManaged>
|
<CompileAsManaged>false</CompileAsManaged>
|
||||||
|
@ -323,7 +323,7 @@
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<WarningLevel>Level4</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB=1;_ARIA_UTC_SDK;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;WIN32;_DEBUG;_WINDOWS;_USRDLL;WINVER=_WIN32_WINNT_WIN7;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB=1;_ARIA_UTC_SDK;_CRT_SECURE_NO_WARNINGS;USE_BOND;WIN32;_DEBUG;_WINDOWS;_USRDLL;WINVER=_WIN32_WINNT_WIN7;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAsManaged>false</CompileAsManaged>
|
<CompileAsManaged>false</CompileAsManaged>
|
||||||
|
@ -395,7 +395,7 @@
|
||||||
<Optimization Condition="'$(Platform)'=='ARM64'">MinSpace</Optimization>
|
<Optimization Condition="'$(Platform)'=='ARM64'">MinSpace</Optimization>
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>false</IntrinsicFunctions>
|
<IntrinsicFunctions>false</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB=1;_ARIA_UTC_SDK;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;WIN32;NDEBUG;_WINDOWS;_USRDLL;WINVER=_WIN32_WINNT_WIN7;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB=1;_ARIA_UTC_SDK;_CRT_SECURE_NO_WARNINGS;USE_BOND;WIN32;NDEBUG;_WINDOWS;_USRDLL;WINVER=_WIN32_WINNT_WIN7;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<CompileAsManaged>false</CompileAsManaged>
|
<CompileAsManaged>false</CompileAsManaged>
|
||||||
<CompileAsWinRT>false</CompileAsWinRT>
|
<CompileAsWinRT>false</CompileAsWinRT>
|
||||||
|
@ -468,7 +468,7 @@
|
||||||
<Optimization Condition="'$(Platform)'=='ARM64'">MinSpace</Optimization>
|
<Optimization Condition="'$(Platform)'=='ARM64'">MinSpace</Optimization>
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>false</IntrinsicFunctions>
|
<IntrinsicFunctions>false</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB=1;_ARIA_UTC_SDK;_CRT_SECURE_NO_WARNINGS;USE_BOND;BOND_COMPACT_BINARY_PROTOCOL;WIN32;NDEBUG;_WINDOWS;_USRDLL;WINVER=_WIN32_WINNT_WIN7;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>ZLIB_WINAPI;WIN32;ARIASDK_VERSION_PREFIX="EVT";ARIASDK_PLATFORM_WINDOWS=1;ARIASDK_SHARED_LIB=1;_ARIA_UTC_SDK;_CRT_SECURE_NO_WARNINGS;USE_BOND;WIN32;NDEBUG;_WINDOWS;_USRDLL;WINVER=_WIN32_WINNT_WIN7;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\lib;$(ProjectDir)..\..\lib\include\public;$(ProjectDir)..\..\lib\include\aria;$(ProjectDir)..\..\bondlite\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<CompileAsManaged>false</CompileAsManaged>
|
<CompileAsManaged>false</CompileAsManaged>
|
||||||
<CompileAsWinRT>false</CompileAsWinRT>
|
<CompileAsWinRT>false</CompileAsWinRT>
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
#!/bin/sh
|
||||||
|
export CLANG_PATH=/tools/clang+llvm-7.0.0-x86_64-apple-darwin/bin
|
||||||
|
export PATH=$CLANG_PATH:$PATH
|
||||||
|
export CC=$CLANG_PATH/clang-7
|
||||||
|
export CXX=$CLANG_PATH/clang++
|
||||||
|
source ./build.sh
|
|
@ -0,0 +1,66 @@
|
||||||
|
@echo off
|
||||||
|
setlocal enableextensions
|
||||||
|
setlocal enabledelayedexpansion
|
||||||
|
set ROOT=%~dp0
|
||||||
|
|
||||||
|
REM ********************************************************************
|
||||||
|
REM Use cmake
|
||||||
|
REM ********************************************************************
|
||||||
|
set PATH="C:\Program Files\CMake\bin\";%PATH%
|
||||||
|
|
||||||
|
REM ********************************************************************
|
||||||
|
REM Use clang compiler
|
||||||
|
REM ********************************************************************
|
||||||
|
set CLANG_PATH="C:\Program Files\LLVM\bin"
|
||||||
|
set CC=%CLANG_PATH%\clang.exe
|
||||||
|
set CXX=%CLANG_PATH%\clang++.exe
|
||||||
|
set LLVM_VER=LLVM
|
||||||
|
|
||||||
|
REM ********************************************************************
|
||||||
|
REM Set output directory, clean and/or create as-needed
|
||||||
|
REM ********************************************************************
|
||||||
|
set OUTDIR=%ROOT%\Solutions\out
|
||||||
|
if "%1" == "clean" (
|
||||||
|
@rmdir /s /q %OUTDIR%
|
||||||
|
)
|
||||||
|
if not exist "%OUTDIR%" mkdir %OUTDIR%
|
||||||
|
cd %OUTDIR%
|
||||||
|
|
||||||
|
REM ********************************************************************
|
||||||
|
REM Build all deps using MSVC - Visual Studio 2017 (15)
|
||||||
|
REM ********************************************************************
|
||||||
|
if "%1" == "nodeps" goto NODEPS
|
||||||
|
call tools\build-deps.cmd
|
||||||
|
:NODEPS
|
||||||
|
|
||||||
|
REM ********************************************************************
|
||||||
|
REM Invoke the build script
|
||||||
|
REM ********************************************************************
|
||||||
|
set CMAKE_PACKAGE_TYPE=tgz
|
||||||
|
for %%a in ( m32 m64 ) do (
|
||||||
|
for %%c in ( Debug Release ) do (
|
||||||
|
if "%%a"=="m32" (
|
||||||
|
set ARCH=Win32
|
||||||
|
set ARCH_GEN=
|
||||||
|
)
|
||||||
|
if "%%a"=="m64" (
|
||||||
|
set ARCH=x64
|
||||||
|
set ARCH_GEN= Win64
|
||||||
|
)
|
||||||
|
@mkdir %OUTDIR%\%%c\!ARCH!
|
||||||
|
cd %OUTDIR%\%%c\!ARCH!
|
||||||
|
set CFLAGS=-%%a
|
||||||
|
set CXXFLAGS=-%%a
|
||||||
|
cmake -G"Visual Studio 15 2017!ARCH_GEN!" ^
|
||||||
|
-T"%LLVM_VER%" ^
|
||||||
|
-DTARGET_ARCH=!ARCH! ^
|
||||||
|
-DBUILD_SHARED_LIBS=OFF ^
|
||||||
|
-DCMAKE_BUILD_TYPE=%%c ^
|
||||||
|
-DCMAKE_PACKAGE_TYPE=%CMAKE_PACKAGE_TYPE% ^
|
||||||
|
-DDEFAULT_PAL_IMPLEMENTATION=WIN32 ^
|
||||||
|
%ROOT%
|
||||||
|
cmake --build . --config %%c -- /p:Configuration=%%c
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
cd %ROOT%
|
56
build.sh
56
build.sh
|
@ -15,23 +15,40 @@ fi
|
||||||
|
|
||||||
# Install build tools and recent sqlite3
|
# Install build tools and recent sqlite3
|
||||||
FILE=.buildtools
|
FILE=.buildtools
|
||||||
if [ ! -f .buildtools ]; then
|
OS_NAME=`uname -a`
|
||||||
sudo tools/setup-buildtools.sh
|
if [ ! -f $FILE ]; then
|
||||||
echo >.buildtools
|
case "$OS_NAME" in
|
||||||
|
*Darwin*) echo "TODO: install build tools on Mac OS X..." ;;
|
||||||
|
*Linux*) sudo tools/setup-buildtools.sh ;;
|
||||||
|
*) echo "WARNING: unsupported OS $OS_NAME , skipping build tools installation.."
|
||||||
|
esac
|
||||||
|
# Assume that the build tools have been successfully installed
|
||||||
|
echo > $FILE
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f /usr/bin/gcc ]; then
|
if [ -f /usr/bin/gcc ]; then
|
||||||
echo "gcc version: `gcc --version`"
|
echo "gcc version: `gcc --version`"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f /usr/bin/clang ]; then
|
||||||
|
echo "clang version: `clang --version`"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#rm -rf out
|
#rm -rf out
|
||||||
mkdir -p out
|
mkdir -p out
|
||||||
cd out
|
cd out
|
||||||
|
|
||||||
|
# .tgz package
|
||||||
|
CMAKE_PACKAGE_TYPE=tgz
|
||||||
|
|
||||||
|
# .deb package
|
||||||
|
if [ -f /usr/bin/dpkg ]; then
|
||||||
|
export CMAKE_PACKAGE_TYPE=deb
|
||||||
|
fi
|
||||||
|
|
||||||
|
# .rpm package
|
||||||
if [ -f /usr/bin/rpmbuild ]; then
|
if [ -f /usr/bin/rpmbuild ]; then
|
||||||
export CMAKE_PACKAGE_TYPE=rpm
|
export CMAKE_PACKAGE_TYPE=rpm
|
||||||
else
|
|
||||||
export CMAKE_PACKAGE_TYPE=deb
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$2" == "release" ]; then
|
if [ "$2" == "release" ]; then
|
||||||
|
@ -43,7 +60,9 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Build all
|
# Build all
|
||||||
make
|
# TODO: what are the pros and cons of using 'make' vs 'cmake --build' ?
|
||||||
|
#make
|
||||||
|
cmake --build .
|
||||||
|
|
||||||
# Remove old package
|
# Remove old package
|
||||||
rm -f *.deb *.rpm
|
rm -f *.deb *.rpm
|
||||||
|
@ -51,24 +70,25 @@ rm -f *.deb *.rpm
|
||||||
# Build new package
|
# Build new package
|
||||||
make package
|
make package
|
||||||
|
|
||||||
|
# Debian / Ubuntu / Raspbian
|
||||||
if [ -f /usr/bin/dpkg ]; then
|
if [ -f /usr/bin/dpkg ]; then
|
||||||
# Install new package
|
# Install new package
|
||||||
sudo dpkg -i *.deb
|
sudo dpkg -i *.deb
|
||||||
else
|
fi
|
||||||
|
|
||||||
|
# RedHat / CentOS
|
||||||
|
if [ -f /usr/bin/rpmbuild ]; then
|
||||||
sudo rpm -i --force -v *.rpm
|
sudo rpm -i --force -v *.rpm
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# TODO: remove this section below ... consider moving 'strip' commands to release configuration above
|
|
||||||
#
|
|
||||||
# Install SDK headers and lib to /usr/local
|
# Install SDK headers and lib to /usr/local
|
||||||
#
|
#
|
||||||
#cd ..
|
## TODO: [MG] - fix this section for shared library
|
||||||
#ARIA_SDK_INSTALL_DIR="${ARIA_SDK_INSTALL_DIR:-/usr/local}"
|
|
||||||
#echo "Install SDK to $ARIA_SDK_INSTALL_DIR .."
|
|
||||||
#sudo mkdir -p $ARIA_SDK_INSTALL_DIR/lib/aria
|
|
||||||
#sudo cp out/lib/libaria.a $ARIA_SDK_INSTALL_DIR/lib/aria
|
|
||||||
## strip --strip-unneeded out/lib/libaria.so
|
## strip --strip-unneeded out/lib/libaria.so
|
||||||
## strip -S --strip-unneeded --remove-section=.note.gnu.gold-version --remove-section=.comment --remove-section=.note --remove-section=.note.gnu.build-id --remove-section=.note.ABI-tag out/lib/libaria.so
|
## strip -S --strip-unneeded --remove-section=.note.gnu.gold-version --remove-section=.comment --remove-section=.note --remove-section=.note.gnu.build-id --remove-section=.note.ABI-tag out/lib/libaria.so
|
||||||
#sudo cp out/lib/libaria.so $ARIA_SDK_INSTALL_DIR/lib/aria
|
|
||||||
#sudo mkdir -p $ARIA_SDK_INSTALL_DIR/include/aria
|
if [ "$CMAKE_PACKAGE_TYPE" == "tgz" ]; then
|
||||||
#sudo cp lib/include/public/* $ARIA_SDK_INSTALL_DIR/include/aria
|
cd ..
|
||||||
|
ARIA_SDK_INSTALL_DIR="${ARIA_SDK_INSTALL_DIR:-/usr/local}"
|
||||||
|
sudo ./install.sh $ARIA_SDK_INSTALL_DIR
|
||||||
|
fi
|
||||||
|
|
|
@ -37,7 +37,13 @@ else()
|
||||||
set (SQLITE3_LIB "sqlite3")
|
set (SQLITE3_LIB "sqlite3")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
set (PLATFORM_LIBS "")
|
||||||
|
# Add flags for obtaining system UUID via IOKit
|
||||||
|
if (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||||
|
set (PLATFORM_LIBS "-framework CoreFoundation -framework IOKit")
|
||||||
|
endif()
|
||||||
|
|
||||||
#tcmalloc turned off by default
|
#tcmalloc turned off by default
|
||||||
#target_link_libraries(HelloAria ${ARIA_SDK_LIB}/libaria.a curl z ${CMAKE_THREAD_LIBS_INIT} ${SQLITE3_LIB} dl tcmalloc)
|
#target_link_libraries(HelloAria ${ARIA_SDK_LIB}/libaria.a curl z ${CMAKE_THREAD_LIBS_INIT} ${SQLITE3_LIB} dl tcmalloc)
|
||||||
|
|
||||||
target_link_libraries(HelloAria ${ARIA_SDK_LIB}/libaria.a curl z ${CMAKE_THREAD_LIBS_INIT} ${SQLITE3_LIB} dl)
|
target_link_libraries(HelloAria ${ARIA_SDK_LIB}/libaria.a curl z ${CMAKE_THREAD_LIBS_INIT} ${SQLITE3_LIB} ${PLATFORM_LIBS} dl)
|
||||||
|
|
|
@ -1,11 +1,37 @@
|
||||||
#include <aria.h>
|
#include <aria.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
const char *TOKEN = "6d084bbf6a9644ef83f40a77c9e34580-c2d379e0-4408-4325-9b4d-2a7d78131e14-7322";
|
#define API_KEY "6d084bbf6a9644ef83f40a77c9e34580-c2d379e0-4408-4325-9b4d-2a7d78131e14-7322"
|
||||||
|
|
||||||
void test_c_api()
|
void test_c_api()
|
||||||
{
|
{
|
||||||
|
printf("Testing C API...\n");
|
||||||
|
|
||||||
|
#if 0 // Initialize using TOKEN
|
||||||
|
evt_handle_t handle = evt_open(TOKEN);
|
||||||
|
#else // Initialize using ILogConfiguration in JSON format
|
||||||
|
|
||||||
|
// Attemppt to load an alternate impl if possible
|
||||||
|
evt_load((evt_handle_t)LoadLibrary(L"ClientTelemetry2.Dll"));
|
||||||
|
|
||||||
|
static const char* config =
|
||||||
|
"{"
|
||||||
|
"\"cacheFilePath\":\"MyOfflineStorage.db\"," // Custom storage path
|
||||||
|
"\"config\":{\"host\": \"*\"}," // Attach as guest to any host
|
||||||
|
"\"name\":\"C-API-Client-0\"," // Module ID
|
||||||
|
"\"version\":\"1.0.0\"," // Module semver
|
||||||
|
"\"primaryToken\":\"" API_KEY "\"," // Primary Token
|
||||||
|
"\"maxTeardownUploadTimeInSec\":5," // Allow up to 5 seconds for upload
|
||||||
|
"\"hostMode\":false," // Explicitly declare yourself as guest
|
||||||
|
"\"minimumTraceLevel\":0," // Debug printout level
|
||||||
|
"\"sdkmode\":0" // Aria direct-upload mode
|
||||||
|
"}";
|
||||||
|
evt_handle_t handle = evt_open(config);
|
||||||
|
#endif
|
||||||
|
|
||||||
// Ref. https://docs.microsoft.com/en-us/windows/privacy/basic-level-windows-diagnostic-events-and-fields for description of Common Schema fields
|
// Ref. https://docs.microsoft.com/en-us/windows/privacy/basic-level-windows-diagnostic-events-and-fields for description of Common Schema fields
|
||||||
aria_prop event[] = ARIA_EVENT
|
evt_prop event[] = TELEMETRY_EVENT
|
||||||
(
|
(
|
||||||
// Common Data Extensions.Envelope - reserved keywords that C API should not use.
|
// Common Data Extensions.Envelope - reserved keywords that C API should not use.
|
||||||
// Alternate solution is to declare a special macro for envelope 'root' namespace props,
|
// Alternate solution is to declare a special macro for envelope 'root' namespace props,
|
||||||
|
@ -14,23 +40,24 @@ void test_c_api()
|
||||||
_STR("ver", "3.0"), // Represents the major and minor version of the extension
|
_STR("ver", "3.0"), // Represents the major and minor version of the extension
|
||||||
_STR("time", "1979-08-12"), // Represents the event date time in Coordinated Universal Time(UTC) when the event was generated on the client.This should be in ISO 8601 format
|
_STR("time", "1979-08-12"), // Represents the event date time in Coordinated Universal Time(UTC) when the event was generated on the client.This should be in ISO 8601 format
|
||||||
_INT("popSample", 100), // Represents the effective sample rate for this event at the time it was generated by a client
|
_INT("popSample", 100), // Represents the effective sample rate for this event at the time it was generated by a client
|
||||||
_STR("iKey", TOKEN), // Represents an ID for applications or other logical groupings of events.
|
// FIXME: [MG] - iKey should only be needed if logging to alternate token, otherwise we should use the primaryToken by default
|
||||||
|
_STR("iKey", API_KEY), // Represents an ID for applications or other logical groupings of events.
|
||||||
_INT("flags", 0xffffffff), // Represents a collection of bits that describe how the event should be processed ...
|
_INT("flags", 0xffffffff), // Represents a collection of bits that describe how the event should be processed ...
|
||||||
_STR("cV", "12345"), // Represents the Correlation Vector : A single field for tracking partial order of related telemetry events across component boundaries.
|
_STR("cV", "12345"), // Represents the Correlation Vector : A single field for tracking partial order of related telemetry events across component boundaries.
|
||||||
|
|
||||||
// Customer Data fields go as part of userdata
|
// Customer Data fields go as part of userdata
|
||||||
_STR("strKey", "value1"),
|
_STR("strKey", "value1"),
|
||||||
_INT("intKey", 12345),
|
_INT("intKey", 12345),
|
||||||
PII_STR("piiKey", "secret", 1), // TODO: copy-paste-translate the Pii Kind enum from C++ to C
|
PII_STR("piiKey", "secret", 1), // TODO: copy-paste-translate the Pii Kind enum from C++ to C
|
||||||
|
|
||||||
// Part "X" demo - populating CS extension props
|
// Part "X" demo - populating CS extension props
|
||||||
// Common Data Extensions.App
|
// Common Data Extensions.App
|
||||||
PII_STR("ext.app.userId", "maxgolov@microsoft.com", 1),
|
PII_STR("ext.app.userId", "maxgolov@microsoft.com", 1),
|
||||||
_STR("ext.app.ver", "1.0.0")
|
_STR("ext.app.ver", "1.0.0")
|
||||||
);
|
);
|
||||||
|
|
||||||
aria_logevent(event);
|
evt_log(handle, event);
|
||||||
aria_flush();
|
evt_flush(handle);
|
||||||
aria_upload();
|
// FIXME: [MG] - default settings are optimized for 'fast shutdown' and not giving enough time for SDK to upload the event logged.
|
||||||
aria_teardown();
|
// However, if you restart this sample - events from a previous run get uploaded. Modify the
|
||||||
}
|
evt_upload(handle);
|
||||||
|
evt_close(handle);
|
||||||
|
}
|
||||||
|
|
|
@ -164,6 +164,12 @@ extern "C" void test_c_api();
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
|
if (1)
|
||||||
|
{
|
||||||
|
test_c_api();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef OFFICE_TEST /* Custom test for a stats crash scenario experienced by OTEL */
|
#ifdef OFFICE_TEST /* Custom test for a stats crash scenario experienced by OTEL */
|
||||||
OfficeTest();
|
OfficeTest();
|
||||||
if (1)
|
if (1)
|
||||||
|
@ -185,8 +191,13 @@ int main()
|
||||||
|
|
||||||
// config["stats"]["interval"] = 1; // uncomment for accelerated stats sent every second
|
// config["stats"]["interval"] = 1; // uncomment for accelerated stats sent every second
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
config[CFG_STR_CACHE_FILE_PATH] = "/tmp/offlinestorage.db";
|
||||||
|
#else
|
||||||
config[CFG_STR_CACHE_FILE_PATH] = "offlinestorage.db";
|
config[CFG_STR_CACHE_FILE_PATH] = "offlinestorage.db";
|
||||||
config[CFG_INT_TRACE_LEVEL_MASK] = 0; 0xFFFFFFFF ^ 128;
|
#endif
|
||||||
|
|
||||||
|
config[CFG_INT_TRACE_LEVEL_MASK] = 0; // 0xFFFFFFFF ^ 128;
|
||||||
config[CFG_INT_TRACE_LEVEL_MIN] = ACTTraceLevel_Warn; // ACTTraceLevel_Info; // ACTTraceLevel_Debug;
|
config[CFG_INT_TRACE_LEVEL_MIN] = ACTTraceLevel_Warn; // ACTTraceLevel_Info; // ACTTraceLevel_Debug;
|
||||||
config[CFG_INT_SDK_MODE] = SdkModeTypes::SdkModeTypes_Aria; // SdkModeTypes::SdkModeTypes_UTCCommonSchema
|
config[CFG_INT_SDK_MODE] = SdkModeTypes::SdkModeTypes_Aria; // SdkModeTypes::SdkModeTypes_UTCCommonSchema
|
||||||
config[CFG_INT_MAX_TEARDOWN_TIME] = 10;
|
config[CFG_INT_MAX_TEARDOWN_TIME] = 10;
|
||||||
|
@ -196,8 +207,6 @@ int main()
|
||||||
config[CFG_INT_RAM_QUEUE_SIZE] = 32 * 1024 * 1024; // 32 MB heap limit for sqlite3
|
config[CFG_INT_RAM_QUEUE_SIZE] = 32 * 1024 * 1024; // 32 MB heap limit for sqlite3
|
||||||
config[CFG_INT_CACHE_FILE_SIZE] = 16 * 1024 * 1024; // 16 MB storage file limit
|
config[CFG_INT_CACHE_FILE_SIZE] = 16 * 1024 * 1024; // 16 MB storage file limit
|
||||||
|
|
||||||
// printf("LogConfiguration: %s\n", configuration.data());
|
|
||||||
|
|
||||||
printf("Adding debug event listeners...\n");
|
printf("Adding debug event listeners...\n");
|
||||||
auto eventsList = {
|
auto eventsList = {
|
||||||
DebugEventType::EVT_LOG_EVENT,
|
DebugEventType::EVT_LOG_EVENT,
|
||||||
|
@ -230,6 +239,10 @@ int main()
|
||||||
|
|
||||||
printf("LogManager::GetSemanticContext \n");
|
printf("LogManager::GetSemanticContext \n");
|
||||||
ISemanticContext* semanticContext = LogManager::GetSemanticContext();
|
ISemanticContext* semanticContext = LogManager::GetSemanticContext();
|
||||||
|
semanticContext->SetAppVersion("1.0.1");
|
||||||
|
semanticContext->SetAppLanguage("en-US");
|
||||||
|
// semanticContext->SetUserId("maxgolov@microsoft.com");
|
||||||
|
semanticContext->SetUserLanguage("en-US");
|
||||||
|
|
||||||
// Ingest events of various latencies
|
// Ingest events of various latencies
|
||||||
printf("Starting stress-test...\n");
|
printf("Starting stress-test...\n");
|
||||||
|
|
|
@ -1,12 +1,11 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
##
|
||||||
#
|
## Clean-up previous results
|
||||||
# Clean-up previous results
|
##
|
||||||
#
|
#sudo rm /tmp/aria*.log
|
||||||
sudo rm /tmp/aria*.log
|
#sudo rm offline*
|
||||||
sudo rm offline*
|
#sudo rm -f heap*
|
||||||
sudo rm -f heap*
|
|
||||||
|
|
||||||
BIN=./out/HelloAria
|
BIN=./out/HelloAria
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||||
|
# Visual C++ Express 2010
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HelloCAPI", "HelloCAPI.vcxproj", "{277AEB2C-E995-4A40-B63A-B16B8A3A4550}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Win32 = Debug|Win32
|
||||||
|
Release|Win32 = Release|Win32
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{277AEB2C-E995-4A40-B63A-B16B8A3A4550}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{277AEB2C-E995-4A40-B63A-B16B8A3A4550}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{277AEB2C-E995-4A40-B63A-B16B8A3A4550}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{277AEB2C-E995-4A40-B63A-B16B8A3A4550}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
|
@ -0,0 +1,109 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<ProjectGuid>{277AEB2C-E995-4A40-B63A-B16B8A3A4550}</ProjectGuid>
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
<RootNamespace>HelloCAPI</RootNamespace>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<LinkIncremental>true</LinkIncremental>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
<LibraryPath>$(MSBuildProjectDirectory)\lib\$(Configuration)\$(Platform);$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib</LibraryPath>
|
||||||
|
<IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(MSBuildProjectDirectory)\include</IncludePath>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
<PreBuildEvent>
|
||||||
|
<Command>$(MSBuildProjectDirectory)\deploy-dll.cmd $(Configuration) $(Platform) $(OutDir)</Command>
|
||||||
|
</PreBuildEvent>
|
||||||
|
<PreBuildEvent>
|
||||||
|
<Message>Deploy DLLs</Message>
|
||||||
|
</PreBuildEvent>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<PrecompiledHeaderFile>
|
||||||
|
</PrecompiledHeaderFile>
|
||||||
|
<PrecompiledHeaderOutputFile>
|
||||||
|
</PrecompiledHeaderOutputFile>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<AdditionalDependencies>ClientTelemetry.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
</Link>
|
||||||
|
<PreBuildEvent>
|
||||||
|
<Command>$(MSBuildProjectDirectory)\deploy-dll.cmd $(Configuration) $(Platform) $(OutDir)</Command>
|
||||||
|
</PreBuildEvent>
|
||||||
|
<PreBuildEvent>
|
||||||
|
<Message>Deploy DLLs</Message>
|
||||||
|
</PreBuildEvent>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="main.c" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="include\aria.h" />
|
||||||
|
<ClInclude Include="include\CAPIClient.hpp" />
|
||||||
|
<ClInclude Include="include\ctmacros.hpp" />
|
||||||
|
<ClInclude Include="include\Version.h" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="deploy-dll.cmd" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
|
@ -0,0 +1,39 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup>
|
||||||
|
<Filter Include="Source Files">
|
||||||
|
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||||
|
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="Header Files">
|
||||||
|
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||||
|
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="Resource Files">
|
||||||
|
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||||
|
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||||
|
</Filter>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="main.c">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="include\aria.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\CAPIClient.hpp">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\ctmacros.hpp">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\Version.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="deploy-dll.cmd" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
|
@ -0,0 +1,16 @@
|
||||||
|
@echo off
|
||||||
|
set PROJECT_DIR=%~dp0
|
||||||
|
|
||||||
|
mkdir %PROJECT_DIR%\include
|
||||||
|
copy %PROJECT_DIR%..\..\lib\include\public\aria.h %PROJECT_DIR%\include
|
||||||
|
copy %PROJECT_DIR%..\..\lib\include\public\Version.h %PROJECT_DIR%\include
|
||||||
|
copy %PROJECT_DIR%..\..\lib\include\public\ctmacros.hpp %PROJECT_DIR%\include
|
||||||
|
|
||||||
|
mkdir %PROJECT_DIR%\lib\%1\%2
|
||||||
|
copy %PROJECT_DIR%..\..\Solutions\out\%1\%2\win32-dll\*.lib %PROJECT_DIR%\lib\%1\%2
|
||||||
|
|
||||||
|
mkdir %PROJECT_DIR%\%1\%2
|
||||||
|
copy %PROJECT_DIR%..\..\
|
||||||
|
copy %PROJECT_DIR%..\..\Solutions\out\%1\%2\win32-dll\*.* %PROJECT_DIR%\lib\%1\%2
|
||||||
|
copy %PROJECT_DIR%..\..\Solutions\out\%1\%2\win32-dll\*.* %3
|
||||||
|
exit /b 0
|
|
@ -0,0 +1,66 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#include "aria.h"
|
||||||
|
|
||||||
|
#define API_KEY "6d084bbf6a9644ef83f40a77c9e34580-c2d379e0-4408-4325-9b4d-2a7d78131e14-7322"
|
||||||
|
|
||||||
|
char* config =
|
||||||
|
"{"
|
||||||
|
"\"cacheFilePath\":\"MyOfflineStorage.db\"," // Custom storage path
|
||||||
|
"\"config\":{\"host\": \"*\"}," // Attach as guest to any host
|
||||||
|
"\"name\":\"C-API-Client-0\"," // Module ID
|
||||||
|
"\"version\":\"1.0.0\"," // Module semver
|
||||||
|
"\"primaryToken\":\"" API_KEY "\"," // Primary Token
|
||||||
|
"\"maxTeardownUploadTimeInSec\":5," // Allow up to 5 seconds for upload
|
||||||
|
"\"hostMode\":false," // Explicitly declare yourself as guest
|
||||||
|
"\"minimumTraceLevel\":0," // Debug printout level
|
||||||
|
"\"sdkmode\":0" // Aria direct-upload mode
|
||||||
|
"}";
|
||||||
|
|
||||||
|
void test_c_api()
|
||||||
|
{
|
||||||
|
evt_handle_t handle;
|
||||||
|
evt_prop event[] = TELEMETRY_EVENT
|
||||||
|
(
|
||||||
|
// Common Data Extensions.Envelope - reserved keywords that C API should not use.
|
||||||
|
// Alternate solution is to declare a special macro for envelope 'root' namespace props,
|
||||||
|
// such as $STR, $INT, etc.
|
||||||
|
_STR("name", "Event.Name.Pure.C.vs2010"), // Represents the uniquely qualified name for the event
|
||||||
|
_STR("ver", "3.0"), // Represents the major and minor version of the extension
|
||||||
|
_STR("time", "1979-08-12"), // Represents the event date time in Coordinated Universal Time(UTC) when the event was generated on the client.This should be in ISO 8601 format
|
||||||
|
_INT("popSample", 100), // Represents the effective sample rate for this event at the time it was generated by a client
|
||||||
|
// FIXME: [MG] - iKey should only be needed if logging to alternate token, otherwise we should use the primaryToken by default
|
||||||
|
_STR("iKey", API_KEY), // Represents an ID for applications or other logical groupings of events.
|
||||||
|
_INT("flags", 0xffffffff), // Represents a collection of bits that describe how the event should be processed ...
|
||||||
|
_STR("cV", "12345"), // Represents the Correlation Vector : A single field for tracking partial order of related telemetry events across component boundaries.
|
||||||
|
// Customer Data fields go as part of userdata
|
||||||
|
_STR("strKey", "value1"),
|
||||||
|
_INT("intKey", 12345),
|
||||||
|
PII_STR("piiKey", "secret", 1), // TODO: copy-paste-translate the Pii Kind enum from C++ to C
|
||||||
|
// Part "X" demo - populating CS extension props
|
||||||
|
// Common Data Extensions.App
|
||||||
|
PII_STR("ext.app.userId", "maxgolov@microsoft.com", 1),
|
||||||
|
_STR("ext.app.ver", "1.0.0")
|
||||||
|
);
|
||||||
|
|
||||||
|
printf("Testing C API...\n");
|
||||||
|
|
||||||
|
handle = evt_open(config);
|
||||||
|
|
||||||
|
// Ref. https://docs.microsoft.com/en-us/windows/privacy/basic-level-windows-diagnostic-events-and-fields for description of Common Schema fields
|
||||||
|
|
||||||
|
evt_log(handle, event);
|
||||||
|
evt_flush(handle);
|
||||||
|
// FIXME: [MG] - default settings are optimized for 'fast shutdown' and not giving enough time for SDK to upload the event logged.
|
||||||
|
// However, if you restart this sample - events from a previous run get uploaded. Modify the
|
||||||
|
evt_upload(handle);
|
||||||
|
evt_close(handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
printf("Hello, Aria C API!\n");
|
||||||
|
test_c_api();
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
.vs/
|
||||||
|
include/
|
||||||
|
lib/
|
|
@ -0,0 +1,31 @@
|
||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio 15
|
||||||
|
VisualStudioVersion = 15.0.28010.2016
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HelloClang", "HelloClang.vcxproj", "{8C0967B4-1A46-43DF-ACC5-6FEAC5E985F1}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|x64 = Debug|x64
|
||||||
|
Debug|x86 = Debug|x86
|
||||||
|
Release|x64 = Release|x64
|
||||||
|
Release|x86 = Release|x86
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{8C0967B4-1A46-43DF-ACC5-6FEAC5E985F1}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{8C0967B4-1A46-43DF-ACC5-6FEAC5E985F1}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{8C0967B4-1A46-43DF-ACC5-6FEAC5E985F1}.Debug|x86.ActiveCfg = Release|x64
|
||||||
|
{8C0967B4-1A46-43DF-ACC5-6FEAC5E985F1}.Debug|x86.Build.0 = Release|x64
|
||||||
|
{8C0967B4-1A46-43DF-ACC5-6FEAC5E985F1}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{8C0967B4-1A46-43DF-ACC5-6FEAC5E985F1}.Release|x64.Build.0 = Release|x64
|
||||||
|
{8C0967B4-1A46-43DF-ACC5-6FEAC5E985F1}.Release|x86.ActiveCfg = Release|Win32
|
||||||
|
{8C0967B4-1A46-43DF-ACC5-6FEAC5E985F1}.Release|x86.Build.0 = Release|Win32
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {3636DF36-75D8-4F85-8D01-BA48BDA3BD6A}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
|
@ -0,0 +1,115 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|x64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|x64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<ProjectGuid>{8c0967b4-1a46-43df-acc5-6feac5e985f1}</ProjectGuid>
|
||||||
|
<Keyword>Clang</Keyword>
|
||||||
|
<RootNamespace>HelloClang</RootNamespace>
|
||||||
|
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
|
||||||
|
<WindowsTargetPlatformVersion>10.0.14393.0</WindowsTargetPlatformVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>llvm</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>llvm</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>llvm</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>llvm</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
|
<ImportGroup Label="ExtensionSettings" />
|
||||||
|
<ImportGroup Label="Shared" />
|
||||||
|
<ImportGroup Label="PropertySheets" />
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<ItemDefinitionGroup>
|
||||||
|
<ClCompile>
|
||||||
|
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_USRDLL;HelloClang_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_USRDLL;HelloClang_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">_DEBUG;_WINDOWS;_USRDLL;HelloClang_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NDEBUG;_WINDOWS;_USRDLL;HelloClang_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)include</AdditionalIncludeDirectories>
|
||||||
|
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)include</AdditionalIncludeDirectories>
|
||||||
|
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)include</AdditionalIncludeDirectories>
|
||||||
|
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)include</AdditionalIncludeDirectories>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<AdditionalDependencies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">sqlite.lib;zlib.lib;wininet.lib;aria.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
<AdditionalDependencies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">sqlite.lib;zlib.lib;wininet.lib;aria.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
<AdditionalDependencies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">sqlite.lib;zlib.lib;wininet.lib;aria.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
<AdditionalDependencies Condition="'$(Configuration)|$(Platform)'=='Release|x64'">sqlite.lib;zlib.lib;wininet.lib;aria.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
<AdditionalLibraryDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)lib\$(Configuration)\$(Platform);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
|
<AdditionalLibraryDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)lib\$(Configuration)\$(Platform);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
|
<AdditionalLibraryDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)lib\$(Configuration)\$(Platform);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
|
<AdditionalLibraryDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)lib\$(Configuration)\$(Platform);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="main.cpp" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="include\AggregatedMetric.hpp" />
|
||||||
|
<ClInclude Include="include\aria.h" />
|
||||||
|
<ClInclude Include="include\CorrelationVector.hpp" />
|
||||||
|
<ClInclude Include="include\ctmacros.hpp" />
|
||||||
|
<ClInclude Include="include\DebugEvents.hpp" />
|
||||||
|
<ClInclude Include="include\Enums.hpp" />
|
||||||
|
<ClInclude Include="include\EventProperties.hpp" />
|
||||||
|
<ClInclude Include="include\EventProperty.hpp" />
|
||||||
|
<ClInclude Include="include\IAFDClient.hpp" />
|
||||||
|
<ClInclude Include="include\IAuthTokensController.hpp" />
|
||||||
|
<ClInclude Include="include\IBandwidthController.hpp" />
|
||||||
|
<ClInclude Include="include\IECSClient.hpp" />
|
||||||
|
<ClInclude Include="include\IHttpClient.hpp" />
|
||||||
|
<ClInclude Include="include\ILogConfiguration.hpp" />
|
||||||
|
<ClInclude Include="include\ILogger.hpp" />
|
||||||
|
<ClInclude Include="include\ILogManager.hpp" />
|
||||||
|
<ClInclude Include="include\ISemanticContext.hpp" />
|
||||||
|
<ClInclude Include="include\LogConfiguration.hpp" />
|
||||||
|
<ClInclude Include="include\LogManager.hpp" />
|
||||||
|
<ClInclude Include="include\LogManagerBase.hpp" />
|
||||||
|
<ClInclude Include="include\LogManagerProvider.hpp" />
|
||||||
|
<ClInclude Include="include\LogSessionData.hpp" />
|
||||||
|
<ClInclude Include="include\NullObjects.hpp" />
|
||||||
|
<ClInclude Include="include\TransmitProfiles.hpp" />
|
||||||
|
<ClInclude Include="include\Variant.hpp" />
|
||||||
|
<ClInclude Include="include\VariantType.hpp" />
|
||||||
|
<ClInclude Include="include\Version.hpp" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="include\Version.hpp.template" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets" />
|
||||||
|
</Project>
|
|
@ -0,0 +1,108 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup>
|
||||||
|
<Filter Include="Source Files">
|
||||||
|
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||||
|
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="Header Files">
|
||||||
|
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||||
|
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="Resource Files">
|
||||||
|
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||||
|
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||||
|
</Filter>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="main.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="include\AggregatedMetric.hpp">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\aria.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\CorrelationVector.hpp">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\ctmacros.hpp">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\DebugEvents.hpp">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\Enums.hpp">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\EventProperties.hpp">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\EventProperty.hpp">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\IAFDClient.hpp">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\IAuthTokensController.hpp">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\IBandwidthController.hpp">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\IECSClient.hpp">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\IHttpClient.hpp">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\ILogConfiguration.hpp">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\ILogger.hpp">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\ILogManager.hpp">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\ISemanticContext.hpp">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\LogConfiguration.hpp">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\LogManager.hpp">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\LogManagerBase.hpp">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\LogManagerProvider.hpp">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\LogSessionData.hpp">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\NullObjects.hpp">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\TransmitProfiles.hpp">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\Variant.hpp">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\VariantType.hpp">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\Version.hpp">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="include\Version.hpp.template" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
|
@ -0,0 +1,37 @@
|
||||||
|
#include <cstdlib>
|
||||||
|
#include <cstdio>
|
||||||
|
|
||||||
|
#include "LogManager.hpp"
|
||||||
|
|
||||||
|
LOGMANAGER_INSTANCE
|
||||||
|
|
||||||
|
#define TOKEN "6d084bbf6a9644ef83f40a77c9e34580-c2d379e0-4408-4325-9b4d-2a7d78131e14-7322"
|
||||||
|
|
||||||
|
using namespace MAT;
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
printf("Setting up configuration...\n");
|
||||||
|
|
||||||
|
auto& config = LogManager::GetLogConfiguration();
|
||||||
|
config["name"] = "HelloAria";
|
||||||
|
config["version"] = "1.2.5";
|
||||||
|
config["config"]["host"] = "HelloAria"; // host
|
||||||
|
config["compat"]["dotType"] = false; // Legacy v1 behaviour with respect to SetType using underscore instead of a dot
|
||||||
|
config[CFG_STR_CACHE_FILE_PATH] = "offlinestorage.db";
|
||||||
|
config[CFG_INT_TRACE_LEVEL_MASK] = 0; // 0xFFFFFFFF ^ 128;
|
||||||
|
config[CFG_INT_TRACE_LEVEL_MIN] = ACTTraceLevel_Warn; // ACTTraceLevel_Info; // ACTTraceLevel_Debug;
|
||||||
|
config[CFG_INT_SDK_MODE] = SdkModeTypes::SdkModeTypes_Aria; // SdkModeTypes::SdkModeTypes_UTCCommonSchema
|
||||||
|
config[CFG_INT_MAX_TEARDOWN_TIME] = 10;
|
||||||
|
config[CFG_INT_RAM_QUEUE_SIZE] = 32 * 1024 * 1024; // 32 MB heap limit for sqlite3
|
||||||
|
config[CFG_INT_CACHE_FILE_SIZE] = 16 * 1024 * 1024; // 16 MB storage file limit
|
||||||
|
|
||||||
|
printf("LogManager::Initialize\n");
|
||||||
|
ILogger *logger = LogManager::Initialize(TOKEN);
|
||||||
|
|
||||||
|
logger->LogEvent("fooBar");
|
||||||
|
LogManager::FlushAndTeardown();
|
||||||
|
printf("[ DONE ]\n");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/sh
|
||||||
|
ARIA_SDK_INSTALL_DIR=$1
|
||||||
|
echo "Install SDK to $ARIA_SDK_INSTALL_DIR"
|
||||||
|
mkdir -p $ARIA_SDK_INSTALL_DIR/lib/aria
|
||||||
|
cp out/lib/libaria.a $ARIA_SDK_INSTALL_DIR/lib
|
||||||
|
mkdir -p $ARIA_SDK_INSTALL_DIR/include/aria
|
||||||
|
cp lib/include/public/* $ARIA_SDK_INSTALL_DIR/include/aria
|
|
@ -34,8 +34,6 @@ set(SRCS decorators/BaseDecorator.cpp
|
||||||
exp/ecs/ecsclient/ECSConfigCache.cpp
|
exp/ecs/ecsclient/ECSConfigCache.cpp
|
||||||
exp/JsonHelper.cpp
|
exp/JsonHelper.cpp
|
||||||
exp/EXPCommonClient.cpp
|
exp/EXPCommonClient.cpp
|
||||||
pal/NetworkInformationImpl.cpp
|
|
||||||
pal/DeviceInformationImpl.cpp
|
|
||||||
pal/InformationProviderImpl.cpp
|
pal/InformationProviderImpl.cpp
|
||||||
http/HttpClientManager.cpp
|
http/HttpClientManager.cpp
|
||||||
http/HttpRequestEncoder.cpp
|
http/HttpRequestEncoder.cpp
|
||||||
|
@ -57,23 +55,35 @@ if(PAL_IMPLEMENTATION STREQUAL "CPP11")
|
||||||
http/HttpClient.hpp
|
http/HttpClient.hpp
|
||||||
pal/PAL_CPP11.cpp
|
pal/PAL_CPP11.cpp
|
||||||
pal/PAL_CPP11.hpp
|
pal/PAL_CPP11.hpp
|
||||||
pal/linux/LinuxDeviceInformationImpl.cpp
|
pal/posix/DeviceInformationImpl.cpp
|
||||||
pal/linux/LinuxNetworkInformationImpl.cpp
|
pal/posix/NetworkInformationImpl.cpp
|
||||||
pal/linux/LinuxSystemInformationImpl.cpp
|
pal/posix/SystemInformationImpl.cpp
|
||||||
pal/linux/sysinfo_sources.cpp
|
pal/posix/sysinfo_sources.cpp
|
||||||
|
)
|
||||||
|
elseif(PAL_IMPLEMENTATION STREQUAL "WIN32")
|
||||||
|
# Win32 Desktop for now.
|
||||||
|
# TODO: define a separate PAL for Win10 cmake build
|
||||||
|
include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/../zlib ${CMAKE_CURRENT_SOURCE_DIR}/../sqlite)
|
||||||
|
add_definitions(-D_UNICODE -DUNICODE -DZLIB_WINAPI -DWIN32 -DARIASDK_PLATFORM_WINDOWS=1 -DARIASDK_SHARED_LIB=1 -D_ARIA_UTC_SDK -D_CRT_SECURE_NO_WARNINGS -DUSE_BOND -D_WINDOWS -D_USRDLL -DWINVER=_WIN32_WINNT_WIN7)
|
||||||
|
remove_definitions(-D_MBCS)
|
||||||
|
list(APPEND SRCS
|
||||||
|
http/HttpClient_WinInet.cpp
|
||||||
|
http/HttpClient_WinInet.hpp
|
||||||
|
http/HttpClient.hpp
|
||||||
|
pal/PAL_Win32.cpp
|
||||||
|
pal/PAL_Win32.hpp
|
||||||
|
pal/win32/WindowsDesktopDeviceInformationImpl.cpp
|
||||||
|
pal/win32/WindowsDesktopNetworkInformationImpl.cpp
|
||||||
|
pal/win32/WindowsDesktopSystemInformationImpl.cpp
|
||||||
|
pal/win32/WindowsEnvironmentInfo.cpp
|
||||||
|
pal/win32/NetworkDetector.cpp
|
||||||
|
pal/win32/UtcHelpers.cpp
|
||||||
|
system/UtcTelemetrySystem.cpp
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
message(FATAL_ERROR "No platform abstraction library configured. Set PAL_IMPLEMENTATION.")
|
message(FATAL_ERROR "No platform abstraction library configured. Set PAL_IMPLEMENTATION.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(ARIASDK_UTC_ENABLED)
|
|
||||||
list(APPEND SRCS
|
|
||||||
utc/MicrosoftTelemetry.h
|
|
||||||
utc/traceloggingdynamic.h
|
|
||||||
utc/UtcForwarder.cpp
|
|
||||||
utc/UtcForwarder.hpp
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
create_source_files_groups_per_folder(${SRCS})
|
create_source_files_groups_per_folder(${SRCS})
|
||||||
|
|
||||||
|
|
|
@ -233,6 +233,9 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
|
|
||||||
void LogManagerImpl::Configure()
|
void LogManagerImpl::Configure()
|
||||||
{
|
{
|
||||||
|
// TODO: [MG] - this API should allow to reconfigure the instance
|
||||||
|
// at runtime using customer-provided instance of ILogConfiguration object
|
||||||
|
// without having to restart the instance.
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -411,7 +414,8 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
/// <param name="name"></param>
|
/// <param name="name"></param>
|
||||||
/// <param name="value"></param>
|
/// <param name="value"></param>
|
||||||
/// <param name="piiKind"></param>
|
/// <param name="piiKind"></param>
|
||||||
status_t LogManagerImpl::SetContext(const std::string& name, int64_t value, PiiKind piiKind) {
|
status_t LogManagerImpl::SetContext(const std::string& name, int64_t value, PiiKind piiKind)
|
||||||
|
{
|
||||||
LOG_INFO("SetContext");
|
LOG_INFO("SetContext");
|
||||||
EventProperty prop(value, piiKind);
|
EventProperty prop(value, piiKind);
|
||||||
m_context.setCustomField(name, prop);
|
m_context.setCustomField(name, prop);
|
||||||
|
@ -424,7 +428,8 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
/// <param name="name"></param>
|
/// <param name="name"></param>
|
||||||
/// <param name="value"></param>
|
/// <param name="value"></param>
|
||||||
/// <param name="piiKind"></param>
|
/// <param name="piiKind"></param>
|
||||||
status_t LogManagerImpl::SetContext(const std::string& name, bool value, PiiKind piiKind) {
|
status_t LogManagerImpl::SetContext(const std::string& name, bool value, PiiKind piiKind)
|
||||||
|
{
|
||||||
LOG_INFO("SetContext");
|
LOG_INFO("SetContext");
|
||||||
EventProperty prop(value, piiKind);
|
EventProperty prop(value, piiKind);
|
||||||
m_context.setCustomField(name, prop);
|
m_context.setCustomField(name, prop);
|
||||||
|
@ -437,7 +442,8 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
/// <param name="name"></param>
|
/// <param name="name"></param>
|
||||||
/// <param name="value"></param>
|
/// <param name="value"></param>
|
||||||
/// <param name="piiKind"></param>
|
/// <param name="piiKind"></param>
|
||||||
status_t LogManagerImpl::SetContext(const std::string& name, time_ticks_t value, PiiKind piiKind) {
|
status_t LogManagerImpl::SetContext(const std::string& name, time_ticks_t value, PiiKind piiKind)
|
||||||
|
{
|
||||||
LOG_INFO("SetContext");
|
LOG_INFO("SetContext");
|
||||||
EventProperty prop(value, piiKind);
|
EventProperty prop(value, piiKind);
|
||||||
m_context.setCustomField(name, prop);
|
m_context.setCustomField(name, prop);
|
||||||
|
@ -450,13 +456,23 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
/// <param name="name"></param>
|
/// <param name="name"></param>
|
||||||
/// <param name="value"></param>
|
/// <param name="value"></param>
|
||||||
/// <param name="piiKind"></param>
|
/// <param name="piiKind"></param>
|
||||||
status_t LogManagerImpl::SetContext(const std::string& name, GUID_t value, PiiKind piiKind) {
|
status_t LogManagerImpl::SetContext(const std::string& name, GUID_t value, PiiKind piiKind)
|
||||||
|
{
|
||||||
LOG_INFO("SetContext");
|
LOG_INFO("SetContext");
|
||||||
EventProperty prop(value, piiKind);
|
EventProperty prop(value, piiKind);
|
||||||
m_context.setCustomField(name, prop);
|
m_context.setCustomField(name, prop);
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Obtain current ILogConfiguration instance associated with the LogManager
|
||||||
|
/// </summary>
|
||||||
|
ILogConfiguration & LogManagerImpl::GetLogConfiguration()
|
||||||
|
{
|
||||||
|
return m_logConfiguration;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
ILogger* LogManagerImpl::GetLogger(std::string const& tenantToken, std::string const& source, std::string const& experimentationProject)
|
ILogger* LogManagerImpl::GetLogger(std::string const& tenantToken, std::string const& source, std::string const& experimentationProject)
|
||||||
{
|
{
|
||||||
if (m_alive)
|
if (m_alive)
|
||||||
|
@ -547,7 +563,6 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
return m_logSessionData.get();
|
return m_logSessionData.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
status_t LogManagerImpl::SetExclusionFilter(const char* tenantToken, const char** filterStrings, uint32_t filterCount)
|
status_t LogManagerImpl::SetExclusionFilter(const char* tenantToken, const char** filterStrings, uint32_t filterCount)
|
||||||
{
|
{
|
||||||
return m_eventFilterRegulator.SetExclusionFilter(tenantToken, filterStrings, filterCount);
|
return m_eventFilterRegulator.SetExclusionFilter(tenantToken, filterStrings, filterCount);
|
||||||
|
|
|
@ -31,14 +31,11 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
class ITelemetrySystem;
|
class ITelemetrySystem;
|
||||||
|
|
||||||
class ILogManagerInternal : public ILogManager {
|
class ILogManagerInternal : public ILogManager {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
static std::recursive_mutex managers_lock;
|
static std::recursive_mutex managers_lock;
|
||||||
static std::set<ILogManager*> managers;
|
static std::set<ILogManager*> managers;
|
||||||
|
|
||||||
virtual void sendEvent(IncomingEventContextPtr const& event) = 0;
|
virtual void sendEvent(IncomingEventContextPtr const& event) = 0;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Logger;
|
class Logger;
|
||||||
|
@ -65,7 +62,7 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
virtual status_t SetTransmitProfile(TransmitProfile profile) override;
|
virtual status_t SetTransmitProfile(TransmitProfile profile) override;
|
||||||
virtual status_t SetTransmitProfile(const std::string& profile) override;
|
virtual status_t SetTransmitProfile(const std::string& profile) override;
|
||||||
virtual status_t LoadTransmitProfiles(const std::string& profiles_json) override;
|
virtual status_t LoadTransmitProfiles(const std::string& profiles_json) override;
|
||||||
virtual status_t ResetTransmitProfiles();
|
virtual status_t ResetTransmitProfiles() override;
|
||||||
virtual const std::string& GetTransmitProfileName() override;
|
virtual const std::string& GetTransmitProfileName() override;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -101,6 +98,7 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
|
|
||||||
virtual status_t SetContext(const std::string& name, GUID_t value, PiiKind piiKind = PiiKind_None) override;
|
virtual status_t SetContext(const std::string& name, GUID_t value, PiiKind piiKind = PiiKind_None) override;
|
||||||
|
|
||||||
|
virtual ILogConfiguration & GetLogConfiguration() override;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GetLogger method
|
* GetLogger method
|
||||||
|
@ -109,7 +107,7 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
|
|
||||||
LogSessionData* GetLogSessionData() override;
|
LogSessionData* GetLogSessionData() override;
|
||||||
|
|
||||||
ILogController *GetLogController(void);
|
ILogController *GetLogController(void) override;
|
||||||
|
|
||||||
IAuthTokensController* GetAuthTokensController() override;
|
IAuthTokensController* GetAuthTokensController() override;
|
||||||
|
|
||||||
|
@ -147,7 +145,7 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
/// <param name="filterStrings">The filter strings.</param>
|
/// <param name="filterStrings">The filter strings.</param>
|
||||||
/// <param name="filterCount">The filter count.</param>
|
/// <param name="filterCount">The filter count.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
status_t SetExclusionFilter(const char* tenantToken, const char** filterStrings, uint32_t filterCount);
|
status_t SetExclusionFilter(const char* tenantToken, const char** filterStrings, uint32_t filterCount) override;
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -158,7 +156,7 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
/// <param name="filterRates">The filter rates.</param>
|
/// <param name="filterRates">The filter rates.</param>
|
||||||
/// <param name="filterCount">The filter count.</param>
|
/// <param name="filterCount">The filter count.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
status_t SetExclusionFilter(const char* tenantToken, const char** filterStrings, const uint32_t* filterRates, uint32_t filterCount);
|
status_t SetExclusionFilter(const char* tenantToken, const char** filterStrings, const uint32_t* filterRates, uint32_t filterCount) override;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Adds the incoming event.
|
/// Adds the incoming event.
|
||||||
|
|
309
lib/api/capi.cpp
309
lib/api/capi.cpp
|
@ -2,96 +2,243 @@
|
||||||
#define ARIASDK_DECLSPEC __declspec(dllexport)
|
#define ARIASDK_DECLSPEC __declspec(dllexport)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <LogManager.hpp>
|
#include "LogManagerProvider.hpp"
|
||||||
|
#include "aria.h"
|
||||||
namespace ARIASDK_NS_BEGIN {
|
#include "utils/Utils.hpp"
|
||||||
class ModuleCAPI : public ILogConfiguration {};
|
#include <map>
|
||||||
class LogManagerC : public LogManagerBase<ModuleCAPI> {};
|
|
||||||
DEFINE_LOGMANAGER(LogManagerC, ModuleCAPI);
|
|
||||||
} ARIASDK_NS_END;
|
|
||||||
|
|
||||||
using namespace MAT;
|
using namespace MAT;
|
||||||
|
|
||||||
static std::atomic<bool> is_inited = false;
|
typedef struct
|
||||||
|
{
|
||||||
|
ILogConfiguration cfg;
|
||||||
|
ILogManager * lm;
|
||||||
|
} entry;
|
||||||
|
|
||||||
|
// FIXME: [MG] - add locking around lms
|
||||||
|
std::map < evt_handle_t, entry > lms;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obtain log manager ptr using C API handle
|
||||||
|
*/
|
||||||
|
ILogManager* GetLogManager(evt_handle_t handle)
|
||||||
|
{
|
||||||
|
auto it = lms.find(handle);
|
||||||
|
return (it != lms.end()) ?
|
||||||
|
it->second.lm :
|
||||||
|
nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
evt_status_t aria_open(evt_context_t *ctx)
|
||||||
|
{
|
||||||
|
char* config = (char *)ctx->data;
|
||||||
|
|
||||||
|
evt_handle_t code = static_cast<evt_handle_t>(hashCode(config));
|
||||||
|
auto it = lms.find(code);
|
||||||
|
if (it != lms.end())
|
||||||
|
{
|
||||||
|
// Already open?..
|
||||||
|
//
|
||||||
|
// FIXME: [MG] - check for hashCode collisions. If there's a collision - different tenant,
|
||||||
|
// but same hash code, then keep trying with a different seed until a good unused hash is
|
||||||
|
// found.
|
||||||
|
return EALREADY;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (config == nullptr)
|
||||||
|
{
|
||||||
|
// Invalid configuration
|
||||||
|
return EFAULT;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (config[0] == '{')
|
||||||
|
{
|
||||||
|
// Create new configuration object from JSON
|
||||||
|
lms[code].cfg = MAT::FromJSON(config);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Assume that config is a token string
|
||||||
|
std::string moduleName = "CAPI-Client-";
|
||||||
|
moduleName += std::to_string(code);
|
||||||
|
lms[code].cfg =
|
||||||
|
{
|
||||||
|
{ "name", moduleName },
|
||||||
|
{ "version", "1.0.0" },
|
||||||
|
{ "config",
|
||||||
|
{
|
||||||
|
{ "host", "*" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ CFG_STR_PRIMARY_TOKEN, config }
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pass a reference to obtain or create new log manager instance
|
||||||
|
auto & cfg = lms[code].cfg;
|
||||||
|
status_t status;
|
||||||
|
ILogManager *lm = LogManagerProvider::CreateLogManager(cfg, status);
|
||||||
|
|
||||||
|
// Verify that the instance pointer is valid
|
||||||
|
if (lm == nullptr)
|
||||||
|
{
|
||||||
|
status = static_cast<status_t>(EFAULT);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Remember the pointer to current ILogManager instance
|
||||||
|
lms[code].lm = lm;
|
||||||
|
}
|
||||||
|
|
||||||
|
ctx->result = (evt_status_t)status;
|
||||||
|
ctx->handle = code;
|
||||||
|
return ctx->result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Marashal C struct tro Aria C++ API
|
||||||
|
//
|
||||||
|
evt_status_t aria_log(evt_context_t *ctx)
|
||||||
|
{
|
||||||
|
ILogManager *lm = GetLogManager(ctx->handle);
|
||||||
|
if (lm == nullptr)
|
||||||
|
{
|
||||||
|
return ENOENT;
|
||||||
|
}
|
||||||
|
|
||||||
|
evt_prop *evt = (evt_prop*)ctx->data;
|
||||||
|
EventProperties props;
|
||||||
|
props.unpack(evt);
|
||||||
|
|
||||||
|
// TODO: should we remove the iKey from props?
|
||||||
|
auto m = props.GetProperties();
|
||||||
|
EventProperty &prop = m["iKey"];
|
||||||
|
std::string token = prop.as_string;
|
||||||
|
|
||||||
|
// TODO: should we support source passed in evt?
|
||||||
|
ILogger *logger = lm->GetLogger(token);
|
||||||
|
logger->LogEvent(props);
|
||||||
|
|
||||||
|
ctx->result = EOK;
|
||||||
|
return EOK;
|
||||||
|
}
|
||||||
|
|
||||||
|
evt_status_t aria_close(evt_context_t *ctx)
|
||||||
|
{
|
||||||
|
ILogManager *lm = GetLogManager(ctx->handle);
|
||||||
|
if (lm == nullptr)
|
||||||
|
{
|
||||||
|
return ENOENT;
|
||||||
|
}
|
||||||
|
auto & cfg = lm->GetLogConfiguration();
|
||||||
|
return (evt_status_t)LogManagerProvider::Release(cfg);
|
||||||
|
}
|
||||||
|
|
||||||
|
evt_status_t aria_pause(evt_context_t *ctx)
|
||||||
|
{
|
||||||
|
ILogManager *lm = GetLogManager(ctx->handle);
|
||||||
|
if (lm == nullptr)
|
||||||
|
{
|
||||||
|
return ENOENT;
|
||||||
|
}
|
||||||
|
return (evt_status_t)lm->PauseTransmission();
|
||||||
|
}
|
||||||
|
|
||||||
|
evt_status_t aria_resume(evt_context_t *ctx)
|
||||||
|
{
|
||||||
|
ILogManager *lm = GetLogManager(ctx->handle);
|
||||||
|
if (lm == nullptr)
|
||||||
|
{
|
||||||
|
return ENOENT;
|
||||||
|
}
|
||||||
|
return (evt_status_t)lm->ResumeTransmission();
|
||||||
|
}
|
||||||
|
|
||||||
|
evt_status_t aria_upload(evt_context_t *ctx)
|
||||||
|
{
|
||||||
|
|
||||||
|
ILogManager *lm = GetLogManager(ctx->handle);
|
||||||
|
if (lm == nullptr)
|
||||||
|
{
|
||||||
|
return ENOENT;
|
||||||
|
}
|
||||||
|
return (evt_status_t)lm->UploadNow();
|
||||||
|
}
|
||||||
|
|
||||||
|
evt_status_t aria_flush(evt_context_t *ctx)
|
||||||
|
{
|
||||||
|
ILogManager *lm = GetLogManager(ctx->handle);
|
||||||
|
if (lm == nullptr)
|
||||||
|
{
|
||||||
|
return ENOENT;
|
||||||
|
}
|
||||||
|
return (evt_status_t)lm->Flush();
|
||||||
|
}
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
|
||||||
//
|
/**
|
||||||
// TODO: expose struct LogConfiguration as a second parameter
|
* Simple stable backwards- / forward- compatible ABI interface
|
||||||
// TODO: allow the customer to specify their module name
|
*/
|
||||||
//
|
EVTSDK_LIBABI evt_status_t EVTSDK_LIBABI_CDECL evt_api_call_default(evt_context_t *ctx)
|
||||||
bool ARIASDK_LIBABI_CDECL aria_initialize(const char* token)
|
|
||||||
{
|
{
|
||||||
if (!is_inited.exchange(true))
|
evt_status_t result = EFAIL;
|
||||||
|
|
||||||
|
if (ctx != nullptr)
|
||||||
{
|
{
|
||||||
|
switch (ctx->call)
|
||||||
|
{
|
||||||
|
case EVT_OP_LOAD:
|
||||||
|
result = ENOTSUP;
|
||||||
|
break;
|
||||||
|
|
||||||
// Each pure C API caller module name starts with CAPI
|
case EVT_OP_UNLOAD:
|
||||||
// with tenant token appended after dash.
|
result = ENOTSUP;
|
||||||
std::string moduleName = "CAPI";
|
break;
|
||||||
moduleName += "-";
|
|
||||||
moduleName += token;
|
|
||||||
|
|
||||||
// Obtain the current LogManagerC configuration.
|
case EVT_OP_OPEN:
|
||||||
// Different customers going thru the pure C API
|
result = aria_open(ctx);
|
||||||
// all get the same guest log manager for now
|
break;
|
||||||
auto& config = LogManagerC::GetLogConfiguration();
|
|
||||||
config["name"] = moduleName;
|
case EVT_OP_CLOSE:
|
||||||
config["version"] = "1.0";
|
result = aria_close(ctx);
|
||||||
config["config"] = { { "host", "*" } }; // Any host
|
break;
|
||||||
return (LogManagerC::Initialize(token) != nullptr);
|
|
||||||
|
case EVT_OP_CONFIG:
|
||||||
|
result = ENOTSUP;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case EVT_OP_LOG:
|
||||||
|
result = aria_log(ctx);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case EVT_OP_PAUSE:
|
||||||
|
result = aria_pause(ctx);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case EVT_OP_RESUME:
|
||||||
|
result = aria_resume(ctx);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case EVT_OP_UPLOAD:
|
||||||
|
result = aria_upload(ctx);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case EVT_OP_FLUSH:
|
||||||
|
result = aria_flush(ctx);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case EVT_OP_VERSION:
|
||||||
|
result = ENOTSUP;
|
||||||
|
break;
|
||||||
|
|
||||||
|
// Add more OPs here
|
||||||
|
|
||||||
|
default:
|
||||||
|
result = ENOTSUP;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// Already initialized.
|
return result;
|
||||||
// TODO: should we log an error here?
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
//
|
|
||||||
// Marashal C struct tro Aria C++ API
|
|
||||||
//
|
|
||||||
void ARIASDK_LIBABI_CDECL aria_logevent(aria_prop* evt)
|
|
||||||
{
|
|
||||||
EventProperties props;
|
|
||||||
props.unpack(evt);
|
|
||||||
|
|
||||||
// TODO: should we remove the iKey from props?
|
|
||||||
auto m = props.GetProperties();
|
|
||||||
EventProperty &prop = m["iKey"];
|
|
||||||
std::string token = prop.as_string;
|
|
||||||
|
|
||||||
// Initialize if needed
|
|
||||||
if (!token.empty())
|
|
||||||
{
|
|
||||||
aria_initialize(token.c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: should we support source passed in evt?
|
|
||||||
ILogger *logger = LogManagerC::GetLogger(token);
|
|
||||||
logger->LogEvent(props);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ARIASDK_LIBABI_CDECL aria_teardown()
|
|
||||||
{
|
|
||||||
LogManagerC::FlushAndTeardown();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ARIASDK_LIBABI_CDECL aria_pause()
|
|
||||||
{
|
|
||||||
LogManagerC::PauseTransmission();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ARIASDK_LIBABI_CDECL aria_resume()
|
|
||||||
{
|
|
||||||
LogManagerC::ResumeTransmission();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ARIASDK_LIBABI_CDECL aria_upload()
|
|
||||||
{
|
|
||||||
LogManagerC::UploadNow();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ARIASDK_LIBABI_CDECL aria_flush()
|
|
||||||
{
|
|
||||||
LogManagerC::Flush();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -175,7 +175,7 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
return config[CFG_INT_MAX_TEARDOWN_TIME];
|
return config[CFG_INT_MAX_TEARDOWN_TIME];
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual Variant & operator[](const char* key)
|
virtual Variant & operator[](const char* key) override
|
||||||
{
|
{
|
||||||
return config[key]; // FIXME: [MG] - Error #116: LEAK 32 bytes
|
return config[key]; // FIXME: [MG] - Error #116: LEAK 32 bytes
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,63 +29,71 @@ namespace Microsoft { namespace Applications { namespace Experimentation { names
|
||||||
AFDClient();
|
AFDClient();
|
||||||
virtual ~AFDClient();
|
virtual ~AFDClient();
|
||||||
|
|
||||||
virtual void Initialize(const AFDClientConfiguration& config);
|
virtual void Initialize(const AFDClientConfiguration& config) override;
|
||||||
|
|
||||||
virtual bool AddListener(IAFDClientCallback* listener);
|
virtual bool AddListener(IAFDClientCallback* listener) override;
|
||||||
|
|
||||||
virtual bool RemoveListener(IAFDClientCallback* listener);
|
virtual bool RemoveListener(IAFDClientCallback* listener) override;
|
||||||
|
|
||||||
// Register a logger to auto-tag events sent by the logger with AFD configuration infos like ETag
|
// Register a logger to auto-tag events sent by the logger with AFD configuration infos like ETag
|
||||||
|
|
||||||
virtual bool RegisterLogger(MAT::ILogger* pLoger, const std::string& agentName);
|
virtual bool RegisterLogger(MAT::ILogger* pLoger, const std::string& agentName) override;
|
||||||
|
|
||||||
virtual bool SetRequestParameters(const std::map<std::string, std::string>& requestParams);
|
virtual bool SetRequestParameters(const std::map<std::string, std::string>& requestParams) override;
|
||||||
|
|
||||||
virtual bool SetRequestHeaders(const std::map<std::string, std::string>& headerParams);
|
virtual bool SetRequestHeaders(const std::map<std::string, std::string>& headerParams) override;
|
||||||
|
|
||||||
virtual bool Start();
|
virtual bool Start() override;
|
||||||
|
|
||||||
virtual bool Stop();
|
virtual bool Stop() override;
|
||||||
|
|
||||||
virtual bool Suspend();
|
virtual bool Suspend() override;
|
||||||
|
|
||||||
virtual bool Resume(bool fetchConfig = true);
|
virtual bool Resume(bool fetchConfig = true) override;
|
||||||
|
|
||||||
virtual std::string GetETag();
|
virtual std::string GetETag() override;
|
||||||
|
|
||||||
virtual std::vector<std::string> GetFlights();
|
virtual std::vector<std::string> GetFlights() override;
|
||||||
|
|
||||||
virtual std::vector<std::string> GetFeatures();
|
virtual std::vector<std::string> GetFeatures() override;
|
||||||
|
|
||||||
virtual std::map<std::string, std::string> GetConfigs();
|
virtual std::map<std::string, std::string> GetConfigs() override;
|
||||||
|
|
||||||
virtual std::string GetSetting(const std::string& agentName, const std::string& settingPath, const std::string& defaultValue);
|
virtual std::string GetSetting(const std::string& agentName, const std::string& settingPath, const std::string& defaultValue) override;
|
||||||
|
|
||||||
virtual bool GetSetting(const std::string& agentName, const std::string& settingPath, const bool defaultValue);
|
virtual bool GetSetting(const std::string& agentName, const std::string& settingPath, const bool defaultValue) override;
|
||||||
|
|
||||||
virtual int GetSetting(const std::string& agentName, const std::string& settingPath, const int defaultValue);
|
virtual int GetSetting(const std::string& agentName, const std::string& settingPath, const int defaultValue) override;
|
||||||
|
|
||||||
virtual double GetSetting(const std::string& agentName, const std::string& settingPath, const double defaultValue);
|
virtual double GetSetting(const std::string& agentName, const std::string& settingPath, const double defaultValue) override;
|
||||||
|
|
||||||
virtual std::vector<std::string> GetSettings(const std::string& agentName, const std::string& settingPath);
|
virtual std::vector<std::string> GetSettings(const std::string& agentName, const std::string& settingPath) override;
|
||||||
|
|
||||||
virtual std::vector<int> GetSettingsAsInts(const std::string& agentName, const std::string& settingPath);
|
virtual std::vector<int> GetSettingsAsInts(const std::string& agentName, const std::string& settingPath) override;
|
||||||
|
|
||||||
virtual std::vector<double> GetSettingsAsDbls(const std::string& agentName, const std::string& settingPath);
|
virtual std::vector<double> GetSettingsAsDbls(const std::string& agentName, const std::string& settingPath) override;
|
||||||
|
|
||||||
std::vector<std::string> GetKeys(const std::string& agentName, const std::string& keysPath);
|
std::vector<std::string> GetKeys(const std::string& agentName, const std::string& keysPath) override;
|
||||||
|
|
||||||
|
virtual void HandleHttpCallback(Message& msg, bool& isActiveConfigUpdatedOnAFD, bool& isActiveConfigUpdatedOnAFDSaveNeeded) override;
|
||||||
|
|
||||||
|
virtual void FireClientEvent(CommonClientEventType evtType, bool fConfigUpdateFromServer) override;
|
||||||
|
|
||||||
|
virtual void HandleConfigReload(Message& msg, bool& isActiveConfigSwitched, bool& isActiveConfigSwitchedSaveNeeded) override;
|
||||||
|
|
||||||
|
virtual void HandleConfigSave(bool isActiveConfigSwitchedSaveNeeded, bool isActiveConfigUpdatedOnEXPSaveNeeded) override;
|
||||||
|
|
||||||
|
virtual void HandleUpdateClient(bool isActiveConfigSwitched, bool isActiveConfigUpdatedOnEXP, bool isActiveConfigUpdatedOnEXPSaveNeeded) override;
|
||||||
|
|
||||||
|
virtual bool FetchFromServerIfRequired() override;
|
||||||
|
|
||||||
|
virtual unsigned int GetExpiryTimeInSec() override;
|
||||||
|
|
||||||
|
virtual nlohmann::json GetActiveConfigVariant() override;
|
||||||
|
|
||||||
virtual void HandleHttpCallback(Message& msg, bool& isActiveConfigUpdatedOnAFD, bool& isActiveConfigUpdatedOnAFDSaveNeeded);
|
|
||||||
virtual void FireClientEvent(CommonClientEventType evtType, bool fConfigUpdateFromServer);
|
|
||||||
virtual void HandleConfigReload(Message& msg, bool& isActiveConfigSwitched, bool& isActiveConfigSwitchedSaveNeeded);
|
|
||||||
virtual void HandleConfigSave(bool isActiveConfigSwitchedSaveNeeded, bool isActiveConfigUpdatedOnEXPSaveNeeded);
|
|
||||||
virtual void HandleUpdateClient(bool isActiveConfigSwitched, bool isActiveConfigUpdatedOnEXP, bool isActiveConfigUpdatedOnEXPSaveNeeded);
|
|
||||||
virtual bool FetchFromServerIfRequired();
|
|
||||||
virtual unsigned int GetExpiryTimeInSec();
|
|
||||||
virtual nlohmann::json GetActiveConfigVariant();
|
|
||||||
virtual std::string GetAFDConfiguration() override;
|
virtual std::string GetAFDConfiguration() override;
|
||||||
|
|
||||||
virtual void SetRetryTimeFactor(int time);
|
virtual void SetRetryTimeFactor(int time) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
nlohmann::json _GetActiveConfigVariant();
|
nlohmann::json _GetActiveConfigVariant();
|
||||||
|
|
|
@ -101,7 +101,12 @@ namespace Microsoft {
|
||||||
char month[4] = {};
|
char month[4] = {};
|
||||||
|
|
||||||
// There should be 7 valid fields scanned.
|
// There should be 7 valid fields scanned.
|
||||||
|
#ifdef _MSC_VER
|
||||||
if (7 == sscanf_s(gmt.c_str(), "%3c, %d %3c %d %d:%d:%d", wday, 3, &tms.tm_mday, month, 3, &tms.tm_year, &tms.tm_hour, &tms.tm_min, &tms.tm_sec))
|
if (7 == sscanf_s(gmt.c_str(), "%3c, %d %3c %d %d:%d:%d", wday, 3, &tms.tm_mday, month, 3, &tms.tm_year, &tms.tm_hour, &tms.tm_min, &tms.tm_sec))
|
||||||
|
#else
|
||||||
|
// There is NO sscanf_s in the standard, so we cannot use it with clang and gcc. Previous 'hack' for gcc won't work for clang
|
||||||
|
if (7 == sscanf(gmt.c_str(), "%3c, %d %3c %d %d:%d:%d", wday, &tms.tm_mday, month, &tms.tm_year, &tms.tm_hour, &tms.tm_min, &tms.tm_sec))
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
tms.tm_wday = GetDayIndex(wday);
|
tms.tm_wday = GetDayIndex(wday);
|
||||||
tms.tm_mon = GetMonthIndex(month);
|
tms.tm_mon = GetMonthIndex(month);
|
||||||
|
|
|
@ -30,9 +30,9 @@ namespace ARIASDK_NS_BEGIN
|
||||||
virtual status_t SetExclusionFilter(const char* tenantToken, const char** filterStrings, uint32_t filterCount) override;
|
virtual status_t SetExclusionFilter(const char* tenantToken, const char** filterStrings, uint32_t filterCount) override;
|
||||||
virtual status_t SetExclusionFilter(const char* tenantToken, const char** filterStrings, const uint32_t* filterRates, uint32_t filterCount) override;
|
virtual status_t SetExclusionFilter(const char* tenantToken, const char** filterStrings, const uint32_t* filterRates, uint32_t filterCount) override;
|
||||||
virtual IEventFilter& GetTenantFilter(const std::string& normalizedTenantToken) override;
|
virtual IEventFilter& GetTenantFilter(const std::string& normalizedTenantToken) override;
|
||||||
virtual void Reset();
|
virtual void Reset() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
} ARIASDK_NS_END
|
} ARIASDK_NS_END
|
||||||
|
|
||||||
#endif // !ARIA_EVENTFILTERREGULATOR_HPP
|
#endif // !ARIA_EVENTFILTERREGULATOR_HPP
|
||||||
|
|
|
@ -15,7 +15,11 @@
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
#define USE_SYNC_HTTPRESPONSE_HANDLER
|
#define USE_SYNC_HTTPRESPONSE_HANDLER
|
||||||
|
#else
|
||||||
|
// Linux and Mac OS X with libcurl require an async handler for now
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace ARIASDK_NS_BEGIN {
|
namespace ARIASDK_NS_BEGIN {
|
||||||
|
|
||||||
|
|
|
@ -49,8 +49,14 @@ namespace PAL_NS_BEGIN {
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>Source of power the device is using</returns>
|
/// <returns>Source of power the device is using</returns>
|
||||||
virtual PowerSource GetPowerSource() const = 0;
|
virtual PowerSource GetPowerSource() const = 0;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the device ticket.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>Device ticket</returns>
|
||||||
|
virtual std::string GetDeviceTicket() const = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
} PAL_NS_END
|
} PAL_NS_END
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -0,0 +1,91 @@
|
||||||
|
#ifndef EVENTSCLIENT_HPP
|
||||||
|
#define EVENTSCLIENT_HPP
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
//
|
||||||
|
// Header-only implementation of C++03 API on top of stable C ABI
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "Version.hpp"
|
||||||
|
|
||||||
|
#include "aria.h"
|
||||||
|
|
||||||
|
namespace ARIASDK_NS_BEGIN {
|
||||||
|
|
||||||
|
// TODO: [MG] - consider __fastcall for all methods here for best perf
|
||||||
|
class CAPIClient
|
||||||
|
{
|
||||||
|
|
||||||
|
protected:
|
||||||
|
evt_handle_t handle;
|
||||||
|
evt_handle_t lib;
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
CAPIClient(evt_handle_t lib = 0) :
|
||||||
|
handle(0),
|
||||||
|
lib(lib)
|
||||||
|
{
|
||||||
|
if (lib != 0)
|
||||||
|
evt_load(lib);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual ~CAPIClient()
|
||||||
|
{
|
||||||
|
if (lib != 0)
|
||||||
|
evt_unload(lib);
|
||||||
|
}
|
||||||
|
|
||||||
|
evt_handle_t open(const char* config)
|
||||||
|
{
|
||||||
|
handle = evt_open(config);
|
||||||
|
return handle;
|
||||||
|
};
|
||||||
|
|
||||||
|
evt_status_t configure(const char* config)
|
||||||
|
{
|
||||||
|
return evt_configure(handle, config);
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: [MG] - header-only EventProperties class?
|
||||||
|
evt_status_t log(evt_prop* evt)
|
||||||
|
{
|
||||||
|
return evt_log(handle, evt);
|
||||||
|
}
|
||||||
|
|
||||||
|
evt_status_t pause()
|
||||||
|
{
|
||||||
|
return evt_pause(handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
evt_status_t resume()
|
||||||
|
{
|
||||||
|
return evt_resume(handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
evt_status_t upload()
|
||||||
|
{
|
||||||
|
return evt_upload(handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
evt_status_t flush()
|
||||||
|
{
|
||||||
|
return evt_flush(handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
evt_status_t close()
|
||||||
|
{
|
||||||
|
return evt_close(handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
const char * version()
|
||||||
|
{
|
||||||
|
// FIXME: [MG] - pass version hardcoded in our header
|
||||||
|
return evt_version("1.0.0");
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
} ARIASDK_NS_END
|
||||||
|
|
||||||
|
#endif
|
|
@ -8,30 +8,34 @@
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
|
#ifndef _WIN32
|
||||||
|
#include <sys/errno.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace ARIASDK_NS_BEGIN {
|
namespace ARIASDK_NS_BEGIN {
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The status_t enumeration contains a set of status code.
|
/// The status_t enumeration contains a set of status code.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
enum status_t
|
enum status_t
|
||||||
{
|
{
|
||||||
/// <summary>General failure</summary>
|
/// <summary>General failure</summary>
|
||||||
STATUS_EFAIL = -1,
|
STATUS_EFAIL = -1,
|
||||||
|
|
||||||
/// <summary>Success.</summary>
|
/// <summary>Success.</summary>
|
||||||
STATUS_SUCCESS = 0,
|
STATUS_SUCCESS = 0,
|
||||||
|
|
||||||
/// <summary>Permission denied</summary>
|
/// <summary>Permission denied</summary>
|
||||||
STATUS_EPERM = EPERM,
|
STATUS_EPERM = EPERM,
|
||||||
|
|
||||||
/// <summary>Already done / already in progress</summary>
|
/// <summary>Already done / already in progress</summary>
|
||||||
STATUS_EALREADY = EALREADY,
|
STATUS_EALREADY = EALREADY,
|
||||||
|
|
||||||
/// <summary>Not implemented or no-op</summary>
|
/// <summary>Not implemented or no-op</summary>
|
||||||
STATUS_ENOSYS = ENOSYS,
|
STATUS_ENOSYS = ENOSYS,
|
||||||
|
|
||||||
/// <summary>Not supported.</summary>
|
/// <summary>Not supported.</summary>
|
||||||
STATUS_ENOTSUP = ENOTSUP
|
STATUS_ENOTSUP = ENOTSUP
|
||||||
};
|
};
|
||||||
|
|
||||||
enum DataCategory
|
enum DataCategory
|
||||||
|
@ -557,4 +561,4 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
|
|
||||||
} ARIASDK_NS_END
|
} ARIASDK_NS_END
|
||||||
|
|
||||||
#endif //EVENTPRIORITY_H
|
#endif //EVENTPRIORITY_H
|
||||||
|
|
|
@ -307,8 +307,8 @@ namespace ARIASDK_NS_BEGIN
|
||||||
|
|
||||||
#ifdef ARIA_C_API
|
#ifdef ARIA_C_API
|
||||||
/// Implementation of ABI-safe packing of EventProperties object
|
/// Implementation of ABI-safe packing of EventProperties object
|
||||||
aria_prop* pack();
|
evt_prop* pack();
|
||||||
bool unpack(aria_prop *packed);
|
bool unpack(evt_prop *packed);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -113,7 +113,7 @@ namespace ARIASDK_NS_BEGIN
|
||||||
/// This class is used to manage the Events logging system
|
/// This class is used to manage the Events logging system
|
||||||
/// </summary>
|
/// </summary>
|
||||||
class ARIASDK_LIBABI ILogManager :
|
class ARIASDK_LIBABI ILogManager :
|
||||||
protected ILogController,
|
public ILogController,
|
||||||
public IContextProvider,
|
public IContextProvider,
|
||||||
public DebugEventDispatcher
|
public DebugEventDispatcher
|
||||||
{
|
{
|
||||||
|
@ -124,7 +124,7 @@ namespace ARIASDK_NS_BEGIN
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="evt">DebugEvent</param>
|
/// <param name="evt">DebugEvent</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
virtual bool DispatchEvent(DebugEvent evt) = 0;
|
virtual bool DispatchEvent(DebugEvent evt) override = 0;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Dispatches broadcast event to all active ILogManager instances.
|
/// Dispatches broadcast event to all active ILogManager instances.
|
||||||
|
@ -271,6 +271,9 @@ namespace ARIASDK_NS_BEGIN
|
||||||
/// <returns>A pointer to the ILogger instance.</returns>
|
/// <returns>A pointer to the ILogger instance.</returns>
|
||||||
virtual ILogger* GetLogger(std::string const& tenantToken, std::string const& source = std::string(), std::string const& experimentationProject = std::string()) = 0;
|
virtual ILogger* GetLogger(std::string const& tenantToken, std::string const& source = std::string(), std::string const& experimentationProject = std::string()) = 0;
|
||||||
|
|
||||||
|
/// <summary>Retrieves the current LogManager instance configuration</summary>
|
||||||
|
virtual ILogConfiguration& GetLogConfiguration() = 0;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Adds the event listener.
|
/// Adds the event listener.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -335,4 +338,4 @@ namespace ARIASDK_NS_BEGIN
|
||||||
|
|
||||||
} ARIASDK_NS_END
|
} ARIASDK_NS_END
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -2,12 +2,14 @@
|
||||||
#define ARIA_LOGMANAGER_HPP
|
#define ARIA_LOGMANAGER_HPP
|
||||||
// Copyright (c) Microsoft. All rights reserved.
|
// Copyright (c) Microsoft. All rights reserved.
|
||||||
|
|
||||||
// TODO: [MG] - temporary workaround for error: ISO C++ does not permit ‘XXX::foo’ to be defined as ‘YYY::foo’
|
// TODO: [MG] - temporary workaround for error: ISO C++ does not permit <EFBFBD>XXX::foo<6F> to be defined as <20>YYY::foo<6F>
|
||||||
// This error is benign and this syntax is allowed by MSVC and clang. We utilize this down there below to
|
// This error is benign and this syntax is allowed by MSVC and clang. We utilize this down there below to
|
||||||
// instantiate a private singleton using a macro and a template.
|
// instantiate a private singleton using a macro and a template.
|
||||||
|
|
||||||
#pragma warning(push)
|
#pragma warning(push)
|
||||||
#pragma warning(disable:4459 4100 4121 4244)
|
#pragma warning(disable:4459 4100 4121 4244 4068)
|
||||||
|
#pragma clang diagnostic push
|
||||||
|
#pragma clang diagnostic ignored "-Wundefined-var-template"
|
||||||
|
|
||||||
#ifdef _MANAGED
|
#ifdef _MANAGED
|
||||||
#include <msclr/lock.h>
|
#include <msclr/lock.h>
|
||||||
|
@ -32,6 +34,16 @@ public:
|
||||||
return STATUS_EFAIL; \
|
return STATUS_EFAIL; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define LM_SAFE_CALL_STR(method , ... ) \
|
||||||
|
{ \
|
||||||
|
LM_LOCKGUARD(stateLock()); \
|
||||||
|
if (nullptr != instance) \
|
||||||
|
{ \
|
||||||
|
return instance-> method ( __VA_ARGS__);\
|
||||||
|
} \
|
||||||
|
return ""; \
|
||||||
|
}
|
||||||
|
|
||||||
#define LM_SAFE_CALL_PTR(method , ... ) \
|
#define LM_SAFE_CALL_PTR(method , ... ) \
|
||||||
{ \
|
{ \
|
||||||
LM_LOCKGUARD(stateLock()); \
|
LM_LOCKGUARD(stateLock()); \
|
||||||
|
@ -338,8 +350,8 @@ namespace ARIASDK_NS_BEGIN
|
||||||
|
|
||||||
/// <summary>Get profile name based on built-in profile enum<summary>
|
/// <summary>Get profile name based on built-in profile enum<summary>
|
||||||
/// <param name="profile">Transmit profile</param>
|
/// <param name="profile">Transmit profile</param>
|
||||||
static const std::string& GetTransmitProfileName()
|
static std::string GetTransmitProfileName()
|
||||||
LM_SAFE_CALL_PTR(GetTransmitProfileName);
|
LM_SAFE_CALL_STR(GetTransmitProfileName);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Retrieve an ISemanticContext interface through which to specify context information
|
/// Retrieve an ISemanticContext interface through which to specify context information
|
||||||
|
@ -565,7 +577,7 @@ namespace ARIASDK_NS_BEGIN
|
||||||
};
|
};
|
||||||
|
|
||||||
// Implements LogManager<T> singleton template static members
|
// Implements LogManager<T> singleton template static members
|
||||||
#if defined(_MANAGED) || defined(_MSC_VER)
|
#if (defined(_MANAGED) || defined(_MSC_VER)) && (!defined(__clang__))
|
||||||
// Definition that is compatible with managed and native code compiled with MSVC.
|
// Definition that is compatible with managed and native code compiled with MSVC.
|
||||||
// Unfortuantey we can't use ISO C++11 template definitions because of compiler bug
|
// Unfortuantey we can't use ISO C++11 template definitions because of compiler bug
|
||||||
// that causes improper global static templated member initialization:
|
// that causes improper global static templated member initialization:
|
||||||
|
@ -580,5 +592,8 @@ namespace ARIASDK_NS_BEGIN
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
} ARIASDK_NS_END
|
} ARIASDK_NS_END
|
||||||
|
|
||||||
|
#pragma clang diagnostic pop
|
||||||
#pragma warning(pop)
|
#pragma warning(pop)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -139,6 +139,12 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
return STATUS_ENOSYS;
|
return STATUS_ENOSYS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual ILogConfiguration& GetLogConfiguration() override
|
||||||
|
{
|
||||||
|
static ILogConfiguration nullConfig;
|
||||||
|
return nullConfig;
|
||||||
|
}
|
||||||
|
|
||||||
virtual const std::string & GetTransmitProfileName() override
|
virtual const std::string & GetTransmitProfileName() override
|
||||||
{
|
{
|
||||||
static std::string nothing;
|
static std::string nothing;
|
||||||
|
@ -246,7 +252,7 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual ILogController* GetLogController()
|
virtual ILogController* GetLogController() override
|
||||||
{
|
{
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,10 +8,10 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Constructor and getter for Variant type
|
// Constructor and getter for Variant type
|
||||||
#define VARIANT_PROP(basetype, field, typeenum) \
|
#define VARIANT_PROP(basetype, field, typeenum) \
|
||||||
Variant(basetype v) : field(v), type(typeenum) {} ; \
|
Variant(basetype v) : field(v), type(typeenum) {} ; \
|
||||||
operator basetype() { return (basetype)field; }; \
|
operator basetype() { return (basetype)field; }; \
|
||||||
Variant& operator=(basetype v) { field = v; type = typeenum; return *this; };
|
Variant& operator=(basetype v) { field = v; type = typeenum; return *this; };
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Variant type for containers
|
* Variant type for containers
|
||||||
|
@ -19,10 +19,10 @@
|
||||||
class Variant {
|
class Variant {
|
||||||
|
|
||||||
union {
|
union {
|
||||||
int64_t iV;
|
int64_t iV;
|
||||||
double dV;
|
double dV;
|
||||||
const char* sV;
|
const char* sV;
|
||||||
bool bV;
|
bool bV;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Unfortunately keeping object pointers inside the union above causes issues
|
// Unfortunately keeping object pointers inside the union above causes issues
|
||||||
|
@ -58,11 +58,11 @@ public:
|
||||||
Variant() : iV(0), type(TYPE_NULL) {};
|
Variant() : iV(0), type(TYPE_NULL) {};
|
||||||
|
|
||||||
// All integer types
|
// All integer types
|
||||||
VARIANT_PROP(int8_t, iV, TYPE_INT);
|
VARIANT_PROP(int8_t, iV, TYPE_INT);
|
||||||
VARIANT_PROP(int16_t, iV, TYPE_INT);
|
VARIANT_PROP(int16_t, iV, TYPE_INT);
|
||||||
VARIANT_PROP(int32_t, iV, TYPE_INT);
|
VARIANT_PROP(int32_t, iV, TYPE_INT);
|
||||||
VARIANT_PROP(int64_t, iV, TYPE_INT);
|
VARIANT_PROP(int64_t, iV, TYPE_INT);
|
||||||
VARIANT_PROP(uint8_t, iV, TYPE_INT);
|
VARIANT_PROP(uint8_t, iV, TYPE_INT);
|
||||||
VARIANT_PROP(uint16_t, iV, TYPE_INT);
|
VARIANT_PROP(uint16_t, iV, TYPE_INT);
|
||||||
VARIANT_PROP(uint32_t, iV, TYPE_INT);
|
VARIANT_PROP(uint32_t, iV, TYPE_INT);
|
||||||
VARIANT_PROP(uint64_t, iV, TYPE_INT);
|
VARIANT_PROP(uint64_t, iV, TYPE_INT);
|
||||||
|
@ -119,39 +119,39 @@ public:
|
||||||
type = other.type;
|
type = other.type;
|
||||||
switch (other.type)
|
switch (other.type)
|
||||||
{
|
{
|
||||||
case TYPE_NULL:
|
case TYPE_NULL:
|
||||||
iV = 0;
|
iV = 0;
|
||||||
break;
|
break;
|
||||||
case TYPE_INT:
|
case TYPE_INT:
|
||||||
iV = other.iV;
|
iV = other.iV;
|
||||||
break;
|
break;
|
||||||
case TYPE_DOUBLE:
|
case TYPE_DOUBLE:
|
||||||
dV = other.dV;
|
dV = other.dV;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_STRING:
|
case TYPE_STRING:
|
||||||
type = TYPE_STRING2;
|
type = TYPE_STRING2;
|
||||||
SV = (other.sV) ? other.sV : "";
|
SV = (other.sV) ? other.sV : "";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_STRING2:
|
case TYPE_STRING2:
|
||||||
SV = other.SV;
|
SV = other.SV;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_BOOL:
|
case TYPE_BOOL:
|
||||||
bV = other.bV;
|
bV = other.bV;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_OBJ:
|
case TYPE_OBJ:
|
||||||
for (const auto& kv : other.mV)
|
for (const auto& kv : other.mV)
|
||||||
{
|
{
|
||||||
mV[kv.first] = kv.second;
|
mV[kv.first] = kv.second;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_ARR:
|
case TYPE_ARR:
|
||||||
// std::swap(aV, other.aV);
|
// std::swap(aV, other.aV);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
|
@ -195,9 +195,9 @@ public:
|
||||||
mV.clear();
|
mV.clear();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (type == TYPE_ARR) {
|
if (type == TYPE_ARR) {
|
||||||
aV.clear();
|
aV.clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
operator std::string&()
|
operator std::string&()
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
// WARNING: DO NOT MODIFY THIS FILE!
|
// WARNING: DO NOT MODIFY THIS FILE!
|
||||||
// Copyright (c) Microsoft. All rights reserved.
|
// Copyright (c) Microsoft. All rights reserved.
|
||||||
// This file has been automatically generated, manual changes will be lost.
|
// This file has been automatically generated, manual changes will be lost.
|
||||||
#define BUILD_VERSION_STR "3.0.289.1"
|
#define BUILD_VERSION_STR "3.0.309.0"
|
||||||
#define BUILD_VERSION 3,0,289,1
|
#define BUILD_VERSION 3,0,309,0
|
||||||
|
|
||||||
#ifndef RESOURCE_COMPILER_INVOKED
|
#ifndef RESOURCE_COMPILER_INVOKED
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
@ -24,15 +24,15 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
uint64_t const Version =
|
uint64_t const Version =
|
||||||
((uint64_t)3 << 48) |
|
((uint64_t)3 << 48) |
|
||||||
((uint64_t)0 << 32) |
|
((uint64_t)0 << 32) |
|
||||||
((uint64_t)289 << 16) |
|
((uint64_t)309 << 16) |
|
||||||
((uint64_t)1);
|
((uint64_t)0);
|
||||||
|
|
||||||
// TODO: [MG] - move declaration of ARIA_SDK_UNUSED to separate include file
|
// TODO: [MG] - move declaration of ARIA_SDK_UNUSED to separate include file
|
||||||
#ifdef ARIASDK_UNUSED
|
#ifdef ARIASDK_UNUSED
|
||||||
#elif defined(__GNUC__) || defined(__clang__)
|
#elif defined(__GNUC__) || defined(__clang__)
|
||||||
# define ARIASDK_UNUSED(x) (x) /* __attribute__((unused)) */
|
# define ARIASDK_UNUSED(x) (x) /* __attribute__((unused)) */
|
||||||
#elif defined(__LCLINT__)
|
#elif defined(__LCLINT__)
|
||||||
# define ARIASDK_UNUSED(x) /*@unused@*/ x
|
# define ARIASDK_UNUSED(x) /**/ x
|
||||||
#elif defined(__cplusplus)
|
#elif defined(__cplusplus)
|
||||||
# define ARIASDK_UNUSED(x)
|
# define ARIASDK_UNUSED(x)
|
||||||
#else
|
#else
|
||||||
|
@ -46,4 +46,3 @@ uint64_t const Version =
|
||||||
namespace PAL_NS_BEGIN { } PAL_NS_END
|
namespace PAL_NS_BEGIN { } PAL_NS_END
|
||||||
|
|
||||||
#endif // RESOURCE_COMPILER_INVOKED
|
#endif // RESOURCE_COMPILER_INVOKED
|
||||||
|
|
||||||
|
|
|
@ -1,87 +1,159 @@
|
||||||
#ifndef ARIA_H
|
#ifndef TELEMETRY_EVENTS_H
|
||||||
#define ARIA_H
|
#define TELEMETRY_EVENTS_H
|
||||||
|
|
||||||
#include <ctmacros.hpp>
|
#include <ctmacros.hpp>
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include <Windows.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (_MSC_VER == 1500) || (_MSC_VER == 1600)
|
||||||
|
/* Visual Studio 2010 */
|
||||||
|
typedef __int64 int64_t;
|
||||||
|
typedef unsigned __int64 uint64_t;
|
||||||
|
typedef __int32 int32_t;
|
||||||
|
typedef unsigned __int32 uint32_t;
|
||||||
|
typedef __int16 int16_t;
|
||||||
|
typedef unsigned __int16 uint16_t;
|
||||||
|
typedef __int8 int8_t;
|
||||||
|
typedef unsigned __int8 uint8_t;
|
||||||
|
typedef int bool;
|
||||||
|
#define inline
|
||||||
|
#else
|
||||||
|
/* Other compilers with C11 support */
|
||||||
|
#include <inttypes.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <inttypes.h>
|
typedef enum
|
||||||
#include <stdbool.h>
|
{
|
||||||
|
EVT_OP_LOAD = 0x00000001,
|
||||||
|
EVT_OP_UNLOAD = 0x00000002,
|
||||||
|
EVT_OP_OPEN = 0x00000003,
|
||||||
|
EVT_OP_CLOSE = 0x00000004,
|
||||||
|
EVT_OP_CONFIG = 0x00000005,
|
||||||
|
EVT_OP_LOG = 0x00000006,
|
||||||
|
EVT_OP_PAUSE = 0x00000007,
|
||||||
|
EVT_OP_RESUME = 0x00000008,
|
||||||
|
EVT_OP_UPLOAD = 0x00000009,
|
||||||
|
EVT_OP_FLUSH = 0x0000000A,
|
||||||
|
EVT_OP_VERSION = 0x0000000B,
|
||||||
|
//
|
||||||
|
EVT_OP_MAX = EVT_OP_VERSION + 1
|
||||||
|
} evt_call_t;
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
|
||||||
// Basic types
|
|
||||||
TYPE_STRING,
|
|
||||||
TYPE_INT64,
|
|
||||||
TYPE_DOUBLE,
|
|
||||||
TYPE_TIME,
|
|
||||||
TYPE_BOOLEAN,
|
|
||||||
TYPE_GUID,
|
|
||||||
// Arrays of basic types
|
|
||||||
TYPE_STRING_ARRAY,
|
|
||||||
TYPE_INT64_ARRAY,
|
|
||||||
TYPE_DOUBLE_ARRAY,
|
|
||||||
TYPE_TIME_ARRAY,
|
|
||||||
TYPE_BOOL_ARRAY,
|
|
||||||
TYPE_GUID_ARRAY,
|
|
||||||
// NULL-type
|
|
||||||
TYPE_NULL
|
|
||||||
} aria_prop_type;
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Specifies the first eight hexadecimal digits of the GUID.
|
|
||||||
/// </summary>
|
|
||||||
uint32_t Data1;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Specifies the first group of four hexadecimal digits.
|
|
||||||
///</summary>
|
|
||||||
uint16_t Data2;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Specifies the second group of four hexadecimal digits.
|
|
||||||
/// </summary>
|
|
||||||
uint16_t Data3;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// An array of eight bytes.
|
|
||||||
/// The first two bytes contain the third group of four hexadecimal digits.
|
|
||||||
/// The remaining six bytes contain the final 12 hexadecimal digits.
|
|
||||||
/// </summary>
|
|
||||||
uint8_t Data4[8];
|
|
||||||
} aria_guid_t;
|
|
||||||
|
|
||||||
typedef struct aria_event aria_event;
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
char* name;
|
|
||||||
aria_prop_type type;
|
|
||||||
union
|
|
||||||
{
|
{
|
||||||
// Basic types
|
// Basic types
|
||||||
char* as_string;
|
TYPE_STRING,
|
||||||
int64_t as_int64;
|
TYPE_INT64,
|
||||||
double as_double;
|
TYPE_DOUBLE,
|
||||||
bool as_bool;
|
TYPE_TIME,
|
||||||
aria_guid_t* as_guid;
|
TYPE_BOOLEAN,
|
||||||
uint64_t as_time;
|
TYPE_GUID,
|
||||||
// Array types are nullptr-terminated array of pointers
|
// Arrays of basic types
|
||||||
char** as_arr_string;
|
TYPE_STRING_ARRAY,
|
||||||
int64_t** as_arr_int64;
|
TYPE_INT64_ARRAY,
|
||||||
bool** as_arr_bool;
|
TYPE_DOUBLE_ARRAY,
|
||||||
double** as_arr_double;
|
TYPE_TIME_ARRAY,
|
||||||
aria_guid_t** as_arr_guid;
|
TYPE_BOOL_ARRAY,
|
||||||
uint64_t** as_arr_time;
|
TYPE_GUID_ARRAY,
|
||||||
} value;
|
// NULL-type
|
||||||
uint32_t piiKind;
|
TYPE_NULL
|
||||||
} aria_prop;
|
} evt_prop_t;
|
||||||
|
|
||||||
#define ARIA_EVENT(...) { __VA_ARGS__ , { .name = NULL, .type = TYPE_NULL } }
|
typedef struct
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies the first eight hexadecimal digits of the GUID.
|
||||||
|
/// </summary>
|
||||||
|
uint32_t Data1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies the first group of four hexadecimal digits.
|
||||||
|
///</summary>
|
||||||
|
uint16_t Data2;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies the second group of four hexadecimal digits.
|
||||||
|
/// </summary>
|
||||||
|
uint16_t Data3;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// An array of eight bytes.
|
||||||
|
/// The first two bytes contain the third group of four hexadecimal digits.
|
||||||
|
/// The remaining six bytes contain the final 12 hexadecimal digits.
|
||||||
|
/// </summary>
|
||||||
|
uint8_t Data4[8];
|
||||||
|
} evt_guid_t;
|
||||||
|
|
||||||
|
// FIXME: [MG] - this should be the size of platform void*, e.g. 32 or 64 bit
|
||||||
|
typedef int64_t evt_handle_t;
|
||||||
|
|
||||||
|
typedef int32_t evt_status_t;
|
||||||
|
typedef struct evt_event evt_event;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
evt_call_t call; /* In */
|
||||||
|
evt_handle_t handle; /* In / Out */
|
||||||
|
void* data; /* In / Out */
|
||||||
|
evt_status_t result; /* Out */
|
||||||
|
// TODO: add context version here?
|
||||||
|
} evt_context_t;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
char* name;
|
||||||
|
evt_prop_t type;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
// Basic types
|
||||||
|
char* as_string;
|
||||||
|
int64_t as_int64;
|
||||||
|
double as_double;
|
||||||
|
bool as_bool;
|
||||||
|
evt_guid_t* as_guid;
|
||||||
|
uint64_t as_time;
|
||||||
|
// Array types are nullptr-terminated array of pointers
|
||||||
|
char** as_arr_string;
|
||||||
|
int64_t** as_arr_int64;
|
||||||
|
bool** as_arr_bool;
|
||||||
|
double** as_arr_double;
|
||||||
|
evt_guid_t** as_arr_guid;
|
||||||
|
uint64_t** as_arr_time;
|
||||||
|
} value;
|
||||||
|
uint32_t piiKind;
|
||||||
|
} evt_prop;
|
||||||
|
|
||||||
|
#if (_MSC_VER == 1500) || (_MSC_VER == 1600)
|
||||||
|
/* Code to support C89 compiler, including VS2010 */
|
||||||
|
#define TELEMETRY_EVENT(...) { __VA_ARGS__ , { NULL, TYPE_NULL } }
|
||||||
|
/* With C89-style initializers, structure members must be initialized in the order declared.
|
||||||
|
...and (!) - only the first member of a union can be initialized.
|
||||||
|
Which means that we have to do the hack of C-style casting from value to char* ...
|
||||||
|
*/
|
||||||
|
#define _STR(key, val) { key, TYPE_STRING, { (char *)val } }
|
||||||
|
#define _INT(key, val) { key, TYPE_INT64, { (char *)val } }
|
||||||
|
#define _DBL(key, val) { key, TYPE_DOUBLE, { (char *)val } }
|
||||||
|
#define _BOOL(key, val) { key, TYPE_BOOLEAN, { (char *)val } }
|
||||||
|
#define _GUID(key, val) { key, TYPE_GUID, { (char *)val } }
|
||||||
|
#define _TIME(key, val) { key, TYPE_TIME, { (char *)val } }
|
||||||
|
|
||||||
|
#define PII_STR(key, val, kind) { key, TYPE_STRING, { (char *)val }, kind }
|
||||||
|
#define PII_INT(key, val, kind) { key, TYPE_INT64, { (char *)val }, kind }
|
||||||
|
#define PII_DBL(key, val, kind) { key, TYPE_DOUBLE, { (char *)val }, kind }
|
||||||
|
#define PII_BOOL(key, val, kind) { key, TYPE_BOOLEAN, { (char *)val }, kind }
|
||||||
|
#define PII_GUID(key, val, kind) { key, TYPE_GUID, { (char *)val }, kind }
|
||||||
|
#define PII_TIME(key, val, kind) { key, TYPE_TIME, { (char *)val }, kind }
|
||||||
|
|
||||||
|
#else
|
||||||
|
/* Code to support any modern C99 compiler */
|
||||||
|
#define TELEMETRY_EVENT(...) { __VA_ARGS__ , { .name = NULL, .type = TYPE_NULL } }
|
||||||
|
|
||||||
#define _STR(key, val) { .name = key, .type = TYPE_STRING, .value = { .as_string = val }, .piiKind = 0 }
|
#define _STR(key, val) { .name = key, .type = TYPE_STRING, .value = { .as_string = val }, .piiKind = 0 }
|
||||||
#define _INT(key, val) { .name = key, .type = TYPE_INT64, .value = { .as_int64 = val }, .piiKind = 0 }
|
#define _INT(key, val) { .name = key, .type = TYPE_INT64, .value = { .as_int64 = val }, .piiKind = 0 }
|
||||||
|
@ -97,16 +169,142 @@ typedef struct
|
||||||
#define PII_GUID(key, val, kind) { .name = key, .type = TYPE_GUID, .value = { .as_guid = val }, .piiKind = kind }
|
#define PII_GUID(key, val, kind) { .name = key, .type = TYPE_GUID, .value = { .as_guid = val }, .piiKind = kind }
|
||||||
#define PII_TIME(key, val, kind) { .name = key, .type = TYPE_TIME, .value = { .as_time = val }, .piiKind = kind }
|
#define PII_TIME(key, val, kind) { .name = key, .type = TYPE_TIME, .value = { .as_time = val }, .piiKind = kind }
|
||||||
|
|
||||||
ARIASDK_LIBABI bool ARIASDK_LIBABI_CDECL aria_initialize(const char* token);
|
#endif
|
||||||
ARIASDK_LIBABI void ARIASDK_LIBABI_CDECL aria_logevent(aria_prop* evt);
|
|
||||||
ARIASDK_LIBABI void ARIASDK_LIBABI_CDECL aria_teardown();
|
typedef evt_status_t(EVTSDK_LIBABI_CDECL *evt_app_call_t)(evt_context_t *);
|
||||||
ARIASDK_LIBABI void ARIASDK_LIBABI_CDECL aria_pause();
|
|
||||||
ARIASDK_LIBABI void ARIASDK_LIBABI_CDECL aria_resume();
|
EVTSDK_LIBABI evt_status_t EVTSDK_LIBABI_CDECL evt_api_call_default(evt_context_t *ctx);
|
||||||
ARIASDK_LIBABI void ARIASDK_LIBABI_CDECL aria_upload();
|
|
||||||
ARIASDK_LIBABI void ARIASDK_LIBABI_CDECL aria_flush();
|
#ifdef _MSC_VER
|
||||||
|
/* User of the library may delay-load the invocation of __impl_evt_api_call to assign their own implementation */
|
||||||
|
__declspec(selectany) evt_app_call_t evt_api_call = evt_api_call_default;
|
||||||
|
#else
|
||||||
|
/* Implementation of evt_api_call can be provided by the executable module that includes this header */
|
||||||
|
__attribute__((weak)) evt_app_call_t evt_api_call = evt_api_call_default;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Load implementation of a Client Telemetry library.
|
||||||
|
*
|
||||||
|
* TODO: consider accepting a library path on Linux and Mac rather than a handle.
|
||||||
|
* Assume we accept a handle on Windows. The code to load a corresponding library
|
||||||
|
* in-proc would have to reside in customer's code.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
static inline evt_status_t evt_load(evt_handle_t handle)
|
||||||
|
{
|
||||||
|
#ifdef _WIN32
|
||||||
|
evt_app_call_t impl = (evt_app_call_t)GetProcAddress((HMODULE)handle, "evt_api_call_default");
|
||||||
|
if (impl != NULL)
|
||||||
|
{
|
||||||
|
evt_api_call = impl;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
// Unable to load alternate implementation
|
||||||
|
return -1;
|
||||||
|
#else
|
||||||
|
/* review this for consistency on other platforms */
|
||||||
|
evt_context_t ctx;
|
||||||
|
ctx.call = EVT_OP_LOAD;
|
||||||
|
ctx.handle = handle;
|
||||||
|
return evt_api_call(&ctx);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/* TODO: [MG] - we don't need to unload the routine that has been loaded... consider removal of that funciton. */
|
||||||
|
static inline evt_status_t evt_unload(evt_handle_t handle)
|
||||||
|
{
|
||||||
|
evt_context_t ctx;
|
||||||
|
ctx.call = EVT_OP_UNLOAD;
|
||||||
|
ctx.handle = handle;
|
||||||
|
return evt_api_call(&ctx);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline evt_handle_t evt_open(const char* config)
|
||||||
|
{
|
||||||
|
evt_context_t ctx;
|
||||||
|
ctx.call = EVT_OP_OPEN;
|
||||||
|
ctx.data = (void *)config;
|
||||||
|
evt_api_call(&ctx);
|
||||||
|
return ctx.handle;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline evt_status_t evt_close(evt_handle_t handle)
|
||||||
|
{
|
||||||
|
evt_context_t ctx;
|
||||||
|
ctx.call = EVT_OP_CLOSE;
|
||||||
|
ctx.handle = handle;
|
||||||
|
return evt_api_call(&ctx);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline evt_status_t evt_configure(evt_handle_t handle, const char* config)
|
||||||
|
{
|
||||||
|
evt_context_t ctx;
|
||||||
|
ctx.call = EVT_OP_CONFIG;
|
||||||
|
ctx.handle = handle;
|
||||||
|
ctx.data = (void *)config;
|
||||||
|
return evt_api_call(&ctx);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline evt_status_t evt_log(evt_handle_t handle, evt_prop* evt)
|
||||||
|
{
|
||||||
|
evt_context_t ctx;
|
||||||
|
ctx.call = EVT_OP_LOG;
|
||||||
|
ctx.handle = handle;
|
||||||
|
ctx.data = (void *)evt;
|
||||||
|
return evt_api_call(&ctx);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline evt_status_t evt_pause(evt_handle_t handle)
|
||||||
|
{
|
||||||
|
evt_context_t ctx;
|
||||||
|
ctx.call = EVT_OP_PAUSE;
|
||||||
|
ctx.handle = handle;
|
||||||
|
return evt_api_call(&ctx);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline evt_status_t evt_resume(evt_handle_t handle)
|
||||||
|
{
|
||||||
|
evt_context_t ctx;
|
||||||
|
ctx.call = EVT_OP_RESUME;
|
||||||
|
ctx.handle = handle;
|
||||||
|
return evt_api_call(&ctx);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline evt_status_t evt_upload(evt_handle_t handle)
|
||||||
|
{
|
||||||
|
evt_context_t ctx;
|
||||||
|
ctx.call = EVT_OP_UPLOAD;
|
||||||
|
ctx.handle = handle;
|
||||||
|
return evt_api_call(&ctx);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline evt_status_t evt_flush(evt_handle_t handle)
|
||||||
|
{
|
||||||
|
evt_context_t ctx;
|
||||||
|
ctx.call = EVT_OP_FLUSH;
|
||||||
|
ctx.handle = handle;
|
||||||
|
return evt_api_call(&ctx);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline const char * evt_version(const char* libSemver)
|
||||||
|
{
|
||||||
|
evt_context_t ctx;
|
||||||
|
ctx.call = EVT_OP_VERSION;
|
||||||
|
ctx.data = (void*)libSemver;
|
||||||
|
evt_api_call(&ctx);
|
||||||
|
// TODO: [MG] - make sure that the API call always returns a const char *
|
||||||
|
return (const char *)(ctx.data);
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: [MG] - more API calls can be added later using evt_api_call(&ctx) for backwards-forward ABI compat
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#include "CAPIClient.hpp"
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
|
@ -69,4 +69,8 @@
|
||||||
#define ARCH_ARM
|
#define ARCH_ARM
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define EVTSDK_LIBABI ARIASDK_LIBABI
|
||||||
|
#define EVTSDK_LIBABI_CDECL ARIASDK_LIBABI_CDECL
|
||||||
|
#define EVTSDK_SPEC ARIASDK_SPEC
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -50,7 +50,9 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_reserved_records.size())
|
if (m_reserved_records.size())
|
||||||
|
{
|
||||||
LOG_WARN("Discarding %u reserved records", m_reserved_records.size());
|
LOG_WARN("Discarding %u reserved records", m_reserved_records.size());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -162,7 +162,7 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
return ::sqlite3_step(stmt);
|
return ::sqlite3_step(stmt);
|
||||||
}
|
}
|
||||||
|
|
||||||
int64_t sqlite3_soft_heap_limit64(int64_t N)
|
int64_t sqlite3_soft_heap_limit64(int64_t N) override
|
||||||
{
|
{
|
||||||
return ::sqlite3_soft_heap_limit64((sqlite3_int64)N);
|
return ::sqlite3_soft_heap_limit64((sqlite3_int64)N);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
#include "DeviceInformationImpl.hpp"
|
|
||||||
|
|
||||||
namespace PAL_NS_BEGIN {
|
|
||||||
|
|
||||||
///// IDeviceInformation API
|
|
||||||
|
|
||||||
int DeviceInformationImpl::RegisterInformationChangedCallback(IPropertyChangedCallback* pCallback)
|
|
||||||
{
|
|
||||||
m_registredCount++;
|
|
||||||
return m_info_helper.RegisterInformationChangedCallback(pCallback);
|
|
||||||
}
|
|
||||||
|
|
||||||
void DeviceInformationImpl::UnRegisterInformationChangedCallback(int callbackToken)
|
|
||||||
{
|
|
||||||
--m_registredCount;
|
|
||||||
m_info_helper.UnRegisterInformationChangedCallback(callbackToken);
|
|
||||||
}
|
|
||||||
|
|
||||||
} PAL_NS_END
|
|
|
@ -1,6 +1,6 @@
|
||||||
#ifndef DEVICEINFORMATIONIMPL_HPP
|
#ifndef DEVICEINFORMATIONIMPL_HPP
|
||||||
#define DEVICEINFORMATIONIMPL_HPP
|
#define DEVICEINFORMATIONIMPL_HPP
|
||||||
|
// Copyright (c) Microsoft. All rights reserved.
|
||||||
#include <pal/PAL.hpp>
|
#include <pal/PAL.hpp>
|
||||||
#include "Enums.hpp"
|
#include "Enums.hpp"
|
||||||
|
|
||||||
|
@ -16,17 +16,25 @@ namespace PAL_NS_BEGIN {
|
||||||
public:
|
public:
|
||||||
static IDeviceInformation* Create();
|
static IDeviceInformation* Create();
|
||||||
|
|
||||||
// IInformationProvider API
|
virtual int RegisterInformationChangedCallback(PAL::IPropertyChangedCallback* pCallback) override
|
||||||
virtual int RegisterInformationChangedCallback(PAL::IPropertyChangedCallback* pCallback) override;
|
{
|
||||||
virtual void UnRegisterInformationChangedCallback(int callbackToken) override;
|
m_registredCount++;
|
||||||
|
return m_info_helper.RegisterInformationChangedCallback(pCallback);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void UnRegisterInformationChangedCallback(int callbackToken) override
|
||||||
|
{
|
||||||
|
--m_registredCount;
|
||||||
|
m_info_helper.UnRegisterInformationChangedCallback(callbackToken);
|
||||||
|
}
|
||||||
|
|
||||||
// IDeviceInformation API
|
// IDeviceInformation API
|
||||||
virtual std::string const& GetDeviceId() const { return m_device_id; }
|
virtual std::string const& GetDeviceId() const override { return m_device_id; }
|
||||||
virtual std::string const& GetManufacturer() const { return m_manufacturer; }
|
virtual std::string const& GetManufacturer() const override { return m_manufacturer; }
|
||||||
virtual std::string const& GetModel() const { return m_model; }
|
virtual std::string const& GetModel() const override { return m_model; }
|
||||||
virtual OsArchitectureType GetOsArchitectureType() const { return m_os_architecture; }
|
virtual OsArchitectureType GetOsArchitectureType() const override { return m_os_architecture; }
|
||||||
virtual PowerSource GetPowerSource() const { return m_powerSource; }
|
virtual PowerSource GetPowerSource() const override { return m_powerSource; }
|
||||||
virtual std::string GetDeviceTicket();
|
virtual std::string GetDeviceTicket() const override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::string m_device_id;
|
std::string m_device_id;
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
#include "pal/PAL.hpp"
|
#include "pal/PAL.hpp"
|
||||||
|
|
||||||
#include "InformationProviderImpl.hpp"
|
#include "InformationProviderImpl.hpp"
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#ifndef INFORMATIONPROVIDERIMPL_HPP
|
#ifndef INFORMATIONPROVIDERIMPL_HPP
|
||||||
#define INFORMATIONPROVIDERIMPL_HPP
|
#define INFORMATIONPROVIDERIMPL_HPP
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
#include <pal/PAL.hpp>
|
#include <pal/PAL.hpp>
|
||||||
#include <IInformationProvider.hpp>
|
#include <IInformationProvider.hpp>
|
||||||
|
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
#include "NetworkInformationImpl.hpp"
|
|
||||||
|
|
||||||
namespace PAL_NS_BEGIN {
|
|
||||||
|
|
||||||
|
|
||||||
bool NetworkInformationImpl::IsEthernetAvailable()
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool NetworkInformationImpl::IsWifiAvailable()
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool NetworkInformationImpl::IsWwanAvailable()
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
} PAL_NS_END
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
#pragma once
|
#pragma once
|
||||||
#include "pal/PAL.hpp"
|
#include "pal/PAL.hpp"
|
||||||
#include "Enums.hpp"
|
#include "Enums.hpp"
|
||||||
|
@ -24,9 +25,9 @@ namespace PAL_NS_BEGIN {
|
||||||
virtual NetworkType GetNetworkType() { return m_type; }
|
virtual NetworkType GetNetworkType() { return m_type; }
|
||||||
virtual NetworkCost GetNetworkCost() { return m_cost; }
|
virtual NetworkCost GetNetworkCost() { return m_cost; }
|
||||||
|
|
||||||
virtual bool IsEthernetAvailable();
|
virtual bool IsEthernetAvailable() { return false; }
|
||||||
virtual bool IsWifiAvailable();
|
virtual bool IsWifiAvailable() { return false; }
|
||||||
virtual bool IsWwanAvailable();
|
virtual bool IsWwanAvailable() { return false; }
|
||||||
|
|
||||||
NetworkInformationImpl();
|
NetworkInformationImpl();
|
||||||
virtual ~NetworkInformationImpl();
|
virtual ~NetworkInformationImpl();
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
// Copyright (c) Microsoft. All rights reserved.
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
#include <Version.hpp>
|
#include <Version.hpp>
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
// Copyright (c) Microsoft. All rights reserved.
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
|
||||||
#include "PAL.hpp"
|
#include "PAL.hpp"
|
||||||
#ifdef ARIASDK_PAL_CPP11
|
#ifdef ARIASDK_PAL_CPP11
|
||||||
#include "ILogManager.hpp"
|
#include "ILogManager.hpp"
|
||||||
|
@ -87,7 +86,11 @@ namespace PAL_NS_BEGIN {
|
||||||
|
|
||||||
namespace detail {
|
namespace detail {
|
||||||
|
|
||||||
|
#ifdef NDEBUG
|
||||||
|
LogLevel g_logLevel = LogLevel::Error;
|
||||||
|
#else
|
||||||
LogLevel g_logLevel = LogLevel::Detail;
|
LogLevel g_logLevel = LogLevel::Detail;
|
||||||
|
#endif
|
||||||
|
|
||||||
#define DBG_BUFFER_LEN 2048
|
#define DBG_BUFFER_LEN 2048
|
||||||
|
|
||||||
|
@ -279,9 +282,17 @@ namespace PAL_NS_BEGIN {
|
||||||
m_hThread.detach();
|
m_hThread.detach();
|
||||||
}
|
}
|
||||||
catch (...) {};
|
catch (...) {};
|
||||||
assert(m_queue.empty());
|
|
||||||
// FIXME: [MG] - investigate why sometimes we shutdown on non-empty queue?!
|
// TODO: [MG] - investigate how often that happens.
|
||||||
assert(m_timerQueue.empty());
|
// Side-effect is that we have a queued work item discarded on shutdown.
|
||||||
|
if (!m_queue.empty())
|
||||||
|
{
|
||||||
|
LOG_WARN("m_queue is not empty!");
|
||||||
|
}
|
||||||
|
if (!m_timerQueue.empty())
|
||||||
|
{
|
||||||
|
LOG_WARN("m_timerQueue is not empty!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void queue(detail::WorkerThreadItemPtr item)
|
void queue(detail::WorkerThreadItemPtr item)
|
||||||
|
@ -336,11 +347,14 @@ namespace PAL_NS_BEGIN {
|
||||||
protected:
|
protected:
|
||||||
static void threadFunc(void* lpThreadParameter)
|
static void threadFunc(void* lpThreadParameter)
|
||||||
{
|
{
|
||||||
|
uint64_t wakeupCount = 0;
|
||||||
|
|
||||||
WorkerThread* self = reinterpret_cast<WorkerThread*>(lpThreadParameter);
|
WorkerThread* self = reinterpret_cast<WorkerThread*>(lpThreadParameter);
|
||||||
LOG_INFO("Running thread %u", std::this_thread::get_id());
|
LOG_INFO("Running thread %u", std::this_thread::get_id());
|
||||||
|
|
||||||
detail::WorkerThreadItemPtr item = nullptr;
|
detail::WorkerThreadItemPtr item = nullptr;
|
||||||
for (;;) {
|
for (;;) {
|
||||||
|
wakeupCount++;
|
||||||
unsigned nextTimerInMs = UINT_MAX;
|
unsigned nextTimerInMs = UINT_MAX;
|
||||||
{
|
{
|
||||||
LOCKGUARD(self->m_lock);
|
LOCKGUARD(self->m_lock);
|
||||||
|
@ -361,16 +375,16 @@ namespace PAL_NS_BEGIN {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!item) {
|
if (!item) {
|
||||||
self->m_event.wait(nextTimerInMs);
|
if (!self->m_event.Reset())
|
||||||
Sleep(100);
|
self->m_event.wait(nextTimerInMs);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item->type == detail::WorkerThreadItem::Shutdown) {
|
if (item->type == detail::WorkerThreadItem::Shutdown) {
|
||||||
break;
|
break; // TODO: [MG] - delete item
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG_TRACE("Execute item=%p type=%s\n", item, item->typeName.c_str() );
|
LOG_TRACE("%10llu Execute item=%p type=%s\n", wakeupCount, item, item->typeName.c_str() );
|
||||||
self->m_itemInProgress = item;
|
self->m_itemInProgress = item;
|
||||||
(*item)();
|
(*item)();
|
||||||
self->m_itemInProgress = nullptr;
|
self->m_itemInProgress = nullptr;
|
||||||
|
@ -436,6 +450,7 @@ namespace PAL_NS_BEGIN {
|
||||||
return getUtcSystemTimeMs() / 1000;
|
return getUtcSystemTimeMs() / 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: [MG] - use time_ticks_t for that
|
||||||
int64_t getUtcSystemTimeinTicks()
|
int64_t getUtcSystemTimeinTicks()
|
||||||
{
|
{
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
|
@ -482,10 +497,9 @@ namespace PAL_NS_BEGIN {
|
||||||
}
|
}
|
||||||
|
|
||||||
char buf[sizeof("YYYY-MM-DDTHH:MM:SS.sssZ") + 1] = { 0 };
|
char buf[sizeof("YYYY-MM-DDTHH:MM:SS.sssZ") + 1] = { 0 };
|
||||||
int rc = snprintf(buf, sizeof(buf), "%04d-%02d-%02dT%02d:%02d:%02d.%03dZ",
|
snprintf(buf, sizeof(buf), "%04d-%02d-%02dT%02d:%02d:%02d.%03dZ",
|
||||||
1900 + tm.tm_year, 1 + tm.tm_mon, tm.tm_mday,
|
1900 + tm.tm_year, 1 + tm.tm_mon, tm.tm_mday,
|
||||||
tm.tm_hour, tm.tm_min, tm.tm_sec, milliseconds);
|
tm.tm_hour, tm.tm_min, tm.tm_sec, milliseconds);
|
||||||
(rc);
|
|
||||||
#endif
|
#endif
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
@ -550,15 +564,25 @@ namespace PAL_NS_BEGIN {
|
||||||
void unregisterSemanticContext(ISemanticContext* context)
|
void unregisterSemanticContext(ISemanticContext* context)
|
||||||
{
|
{
|
||||||
UNREFERENCED_PARAMETER(context);
|
UNREFERENCED_PARAMETER(context);
|
||||||
OACR_USE_PTR(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FIXME: [MG] - This isn't the most elegant way of OS name detection
|
||||||
|
#undef OS_NAME
|
||||||
|
#ifdef __APPLE__
|
||||||
|
#define OS_NAME "MacOSX"
|
||||||
|
#else
|
||||||
|
#define OS_NAME "Linux"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// FIXME: [MG] - we'd be rolling out SKU without ECS for 3r parties
|
||||||
|
#define ECS_SUPP "ECS"
|
||||||
|
|
||||||
//---
|
//---
|
||||||
// TODO: [MG] - make it portable...
|
// TODO: [MG] - make it portable...
|
||||||
std::string getSdkVersion()
|
std::string getSdkVersion()
|
||||||
{
|
{
|
||||||
// TODO: [MG] - move this code to common PAL code
|
// TODO: [MG] - move this code to common PAL code
|
||||||
return std::string(ARIASDK_VERSION_PREFIX "-Linux-C++-No-") + BUILD_VERSION_STR;
|
return std::string(ARIASDK_VERSION_PREFIX "-" OS_NAME "-C++-" ECS_SUPP "-") + BUILD_VERSION_STR;
|
||||||
}
|
}
|
||||||
|
|
||||||
//---
|
//---
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (c) Microsoft. All rights reserved.
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
#ifndef PAL_CPP11_HPP
|
#ifndef PAL_CPP11_HPP
|
||||||
#define PAL_CPP11_HPP
|
#define PAL_CPP11_HPP
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@
|
||||||
|
|
||||||
namespace ARIASDK_NS_BEGIN {
|
namespace ARIASDK_NS_BEGIN {
|
||||||
extern void print_backtrace();
|
extern void print_backtrace();
|
||||||
}ARIASDK_NS_END
|
} ARIASDK_NS_END
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#define PATH_SEPARATOR_CHAR '\\'
|
#define PATH_SEPARATOR_CHAR '\\'
|
||||||
|
@ -88,13 +88,13 @@ namespace PAL_NS_BEGIN {
|
||||||
if (millis == UINT_MAX)
|
if (millis == UINT_MAX)
|
||||||
{
|
{
|
||||||
std::unique_lock< std::mutex > lock(m_mutex);
|
std::unique_lock< std::mutex > lock(m_mutex);
|
||||||
m_condition.wait(lock, [&]()->bool {return m_bFlag;});
|
m_condition.wait(lock, [&]()->bool {return m_bFlag; });
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto crRelTime = std::chrono::milliseconds(millis);
|
auto crRelTime = std::chrono::milliseconds(millis);
|
||||||
std::unique_lock<std::mutex> ulock(m_mutex);
|
std::unique_lock<std::mutex> ulock(m_mutex);
|
||||||
if (!m_condition.wait_for(ulock, crRelTime, [&]()->bool {return m_bFlag;}))
|
if (!m_condition.wait_for(ulock, crRelTime, [&]()->bool {return m_bFlag; }))
|
||||||
return false;
|
return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -120,7 +120,7 @@ namespace PAL_NS_BEGIN {
|
||||||
return bWasSignalled;
|
return bWasSignalled;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool IsSet() const {return m_bFlag;}
|
inline bool IsSet() const { return m_bFlag; }
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -133,7 +133,7 @@ namespace PAL_NS_BEGIN {
|
||||||
class WorkerThreadItem
|
class WorkerThreadItem
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
volatile enum {Shutdown, Call, TimedCall, Done}type;
|
volatile enum { Shutdown, Call, TimedCall, Done } type;
|
||||||
int64_t targetTime;
|
int64_t targetTime;
|
||||||
virtual ~WorkerThreadItem() {}
|
virtual ~WorkerThreadItem() {}
|
||||||
virtual void operator()() {}
|
virtual void operator()() {}
|
||||||
|
@ -151,11 +151,11 @@ namespace PAL_NS_BEGIN {
|
||||||
WorkerThreadCall(TCall& call) :
|
WorkerThreadCall(TCall& call) :
|
||||||
WorkerThreadItem(),
|
WorkerThreadItem(),
|
||||||
m_call(call)
|
m_call(call)
|
||||||
{
|
{
|
||||||
this->typeName = __typename(call);
|
this->typeName = __typename(call);
|
||||||
this->type = WorkerThreadItem::Call;
|
this->type = WorkerThreadItem::Call;
|
||||||
this->targetTime = -1;
|
this->targetTime = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
WorkerThreadCall(TCall& call, int64_t targetTime) :
|
WorkerThreadCall(TCall& call, int64_t targetTime) :
|
||||||
WorkerThreadItem(),
|
WorkerThreadItem(),
|
||||||
|
@ -190,9 +190,9 @@ namespace PAL_NS_BEGIN {
|
||||||
public:
|
public:
|
||||||
detail::WorkerThreadItemPtr m_item;
|
detail::WorkerThreadItemPtr m_item;
|
||||||
|
|
||||||
DeferredCallbackHandle(detail::WorkerThreadItemPtr item) : m_item(item) {};
|
DeferredCallbackHandle(detail::WorkerThreadItemPtr item) : m_item(item) { };
|
||||||
DeferredCallbackHandle() : m_item(nullptr) {};
|
DeferredCallbackHandle() : m_item(nullptr) {};
|
||||||
DeferredCallbackHandle(const DeferredCallbackHandle& h) : m_item(h.m_item) {};
|
DeferredCallbackHandle(const DeferredCallbackHandle& h) : m_item(h.m_item) { };
|
||||||
void cancel()
|
void cancel()
|
||||||
{
|
{
|
||||||
if (m_item)
|
if (m_item)
|
||||||
|
@ -259,8 +259,8 @@ namespace PAL_NS_BEGIN {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
std::default_random_engine m_engine {std::random_device()()};
|
std::default_random_engine m_engine{ std::random_device()() };
|
||||||
std::uniform_real_distribution<double> m_distribution {0.0, 1.0};
|
std::uniform_real_distribution<double> m_distribution{ 0.0, 1.0 };
|
||||||
#else /* Unfortunately the functionality above fails memory checker on Linux with gcc-5 */
|
#else /* Unfortunately the functionality above fails memory checker on Linux with gcc-5 */
|
||||||
public:
|
public:
|
||||||
double getRandomDouble()
|
double getRandomDouble()
|
||||||
|
@ -285,6 +285,8 @@ namespace PAL_NS_BEGIN {
|
||||||
void unregisterSemanticContext(ISemanticContext * context);
|
void unregisterSemanticContext(ISemanticContext * context);
|
||||||
|
|
||||||
// Convert various numeric types and bool to string in an uniform manner.
|
// Convert various numeric types and bool to string in an uniform manner.
|
||||||
|
#pragma clang diagnostic push
|
||||||
|
#pragma clang diagnostic ignored "-Wunused-value"
|
||||||
template<typename T>// , typename Check = std::enable_if<std::is_arithmetic<T>::value || std::is_same<T, bool>::value, void>::type>
|
template<typename T>// , typename Check = std::enable_if<std::is_arithmetic<T>::value || std::is_same<T, bool>::value, void>::type>
|
||||||
std::string to_string(char const* format, T value)
|
std::string to_string(char const* format, T value)
|
||||||
{
|
{
|
||||||
|
@ -292,13 +294,13 @@ namespace PAL_NS_BEGIN {
|
||||||
// This function is private so it will only be called for numeric types.
|
// This function is private so it will only be called for numeric types.
|
||||||
static const int buf_size = 33;
|
static const int buf_size = 33;
|
||||||
char buf[buf_size] = {0};
|
char buf[buf_size] = {0};
|
||||||
int rc = snprintf(buf, buf_size, format, value);
|
snprintf(buf, buf_size, format, value);
|
||||||
(rc);
|
|
||||||
return std::string(buf);
|
return std::string(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Return SDK version in Aria schema "<Prefix>-<Platform>-<SKU>-<Projection>-<BuildVersion>".
|
// Return SDK version in Aria schema "<Prefix>-<Platform>-<SKU>-<Projection>-<BuildVersion>".
|
||||||
std::string getSdkVersion();
|
std::string getSdkVersion();
|
||||||
|
#pragma clang diagnostic pop
|
||||||
|
|
||||||
} PAL_NS_END
|
} PAL_NS_END
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
// Copyright (c) Microsoft. All rights reserved.
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
|
||||||
#include "PAL.hpp"
|
#include "PAL.hpp"
|
||||||
#include <rtnet/rtnet_interface.hpp>
|
#include <rtnet/rtnet_interface.hpp>
|
||||||
#include <list>
|
#include <list>
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
// Copyright (c) Microsoft. All rights reserved.
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
#include <aria/ISemanticContext.hpp>
|
#include <aria/ISemanticContext.hpp>
|
||||||
#include <aria/Utils.hpp>
|
#include <aria/Utils.hpp>
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
// Copyright (c) Microsoft. All rights reserved.
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
|
||||||
#include "PAL.hpp"
|
#include "PAL.hpp"
|
||||||
#ifdef ARIASDK_PAL_WIN32
|
#ifdef ARIASDK_PAL_WIN32
|
||||||
#include "ILogManager.hpp"
|
#include "ILogManager.hpp"
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
// Copyright (c) Microsoft. All rights reserved.
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
#include "SystemInformationImpl.hpp"
|
#include "SystemInformationImpl.hpp"
|
||||||
#include "NetworkInformationImpl.hpp"
|
#include "NetworkInformationImpl.hpp"
|
||||||
|
@ -283,7 +282,7 @@ namespace PAL_NS_BEGIN {
|
||||||
void unregisterSemanticContext(ISemanticContext * context);
|
void unregisterSemanticContext(ISemanticContext * context);
|
||||||
|
|
||||||
// Convert various numeric types and bool to string in an uniform manner.
|
// Convert various numeric types and bool to string in an uniform manner.
|
||||||
template<typename T, typename Check = std::enable_if<std::is_arithmetic<T>::value || std::is_same<T, bool>::value, void>::type>
|
template<typename T>
|
||||||
std::string to_string(char const* format, T value)
|
std::string to_string(char const* format, T value)
|
||||||
{
|
{
|
||||||
// TODO: [MG] - sync with Linux implementation
|
// TODO: [MG] - sync with Linux implementation
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#ifndef SYSTEMINFORMATIONIMPL_HPP
|
#ifndef SYSTEMINFORMATIONIMPL_HPP
|
||||||
#define SYSTEMINFORMATIONIMPL_HPP
|
#define SYSTEMINFORMATIONIMPL_HPP
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
#include <pal/PAL.hpp>
|
#include <pal/PAL.hpp>
|
||||||
|
|
||||||
#include "ISystemInformation.hpp"
|
#include "ISystemInformation.hpp"
|
||||||
|
@ -23,19 +23,19 @@ namespace PAL_NS_BEGIN {
|
||||||
virtual void UnRegisterInformationChangedCallback(int callbackToken) override;
|
virtual void UnRegisterInformationChangedCallback(int callbackToken) override;
|
||||||
|
|
||||||
// ISystemInformation API
|
// ISystemInformation API
|
||||||
virtual std::string const& GetAppId() const { return m_app_id; };
|
virtual std::string const& GetAppId() const override { return m_app_id; };
|
||||||
virtual std::string const& GetAppVersion() const { return m_app_version; }
|
virtual std::string const& GetAppVersion() const override { return m_app_version; }
|
||||||
virtual std::string const& GetAppLanguage() const { return m_app_language; }
|
virtual std::string const& GetAppLanguage() const override { return m_app_language; }
|
||||||
|
|
||||||
virtual std::string const& GetOsFullVersion() const { return m_os_full_version; };
|
virtual std::string const& GetOsFullVersion() const override { return m_os_full_version; };
|
||||||
virtual std::string const& GetOsMajorVersion() const { return m_os_major_version; };
|
virtual std::string const& GetOsMajorVersion() const override { return m_os_major_version; };
|
||||||
virtual std::string const& GetOsName() const { return m_os_name; };
|
virtual std::string const& GetOsName() const override { return m_os_name; };
|
||||||
|
|
||||||
virtual std::string const& GetUserLanguage() const { return m_user_language; };
|
virtual std::string const& GetUserLanguage() const override { return m_user_language; };
|
||||||
virtual std::string const& GetUserTimeZone() const { return m_user_timezone; };
|
virtual std::string const& GetUserTimeZone() const override { return m_user_timezone; };
|
||||||
virtual std::string const& GetUserAdvertisingId() const { return m_user_advertising_id; };
|
virtual std::string const& GetUserAdvertisingId() const override { return m_user_advertising_id; };
|
||||||
|
|
||||||
virtual std::string const& GetDeviceClass() const { return m_device_class; };
|
virtual std::string const& GetDeviceClass() const override { return m_device_class; };
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::string m_app_id;
|
std::string m_app_id;
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
#pragma once
|
#pragma once
|
||||||
#include "utils/Utils.hpp"
|
#include "utils/Utils.hpp"
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
#define LOG_MODULE DBG_API
|
#define LOG_MODULE DBG_API
|
||||||
#include "pal/PAL.hpp"
|
#include "pal/PAL.hpp"
|
||||||
#include "pal/DeviceInformationImpl.hpp"
|
#include "pal/DeviceInformationImpl.hpp"
|
||||||
|
@ -46,7 +47,7 @@ namespace PAL_NS_BEGIN {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string DeviceInformationImpl::GetDeviceTicket()
|
std::string DeviceInformationImpl::GetDeviceTicket() const
|
||||||
{
|
{
|
||||||
return m_deviceTicket;
|
return m_deviceTicket;
|
||||||
}
|
}
|
|
@ -1,3 +1,4 @@
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
#define LOG_MODULE DBG_PAL
|
#define LOG_MODULE DBG_PAL
|
||||||
#include "pal/PAL.hpp"
|
#include "pal/PAL.hpp"
|
||||||
#include "pal/NetworkInformationImpl.hpp"
|
#include "pal/NetworkInformationImpl.hpp"
|
||||||
|
@ -8,7 +9,7 @@ namespace PAL_NS_BEGIN {
|
||||||
|
|
||||||
NetworkInformationImpl::~NetworkInformationImpl() {};
|
NetworkInformationImpl::~NetworkInformationImpl() {};
|
||||||
|
|
||||||
class LinuxNetworkInformation : public NetworkInformationImpl
|
class NetworkInformation : public NetworkInformationImpl
|
||||||
{
|
{
|
||||||
std::string m_network_provider;
|
std::string m_network_provider;
|
||||||
|
|
||||||
|
@ -17,12 +18,12 @@ namespace PAL_NS_BEGIN {
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="pal"></param>
|
/// <param name="pal"></param>
|
||||||
LinuxNetworkInformation();
|
NetworkInformation();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
virtual ~LinuxNetworkInformation();
|
virtual ~NetworkInformation();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the current network provider for the device
|
/// Gets the current network provider for the device
|
||||||
|
@ -58,20 +59,20 @@ namespace PAL_NS_BEGIN {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
LinuxNetworkInformation::LinuxNetworkInformation() :
|
NetworkInformation::NetworkInformation() :
|
||||||
NetworkInformationImpl()
|
NetworkInformationImpl()
|
||||||
{
|
{
|
||||||
m_type = NetworkType_Wired;
|
m_type = NetworkType_Wired;
|
||||||
m_cost = NetworkCost_Unmetered;
|
m_cost = NetworkCost_Unmetered;
|
||||||
}
|
}
|
||||||
|
|
||||||
LinuxNetworkInformation::~LinuxNetworkInformation()
|
NetworkInformation::~NetworkInformation()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
INetworkInformation* NetworkInformationImpl::Create()
|
INetworkInformation* NetworkInformationImpl::Create()
|
||||||
{
|
{
|
||||||
return new LinuxNetworkInformation();
|
return new NetworkInformation();
|
||||||
}
|
}
|
||||||
|
|
||||||
} PAL_NS_END
|
} PAL_NS_END
|
|
@ -1,3 +1,4 @@
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
#include "pal/PAL.hpp"
|
#include "pal/PAL.hpp"
|
||||||
#include "pal/SystemInformationImpl.hpp"
|
#include "pal/SystemInformationImpl.hpp"
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* sysinfo_sources.cpp
|
* sysinfo_sources.cpp
|
||||||
*
|
*
|
||||||
|
@ -30,9 +29,40 @@
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <array>
|
#include <array>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
#include "EventProperty.hpp"
|
#include "EventProperty.hpp"
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
#include <IOKit/IOKitLib.h>
|
||||||
|
#include <mach-o/dyld.h>
|
||||||
|
#include <sys/syslimits.h>
|
||||||
|
#include <libgen.h>
|
||||||
|
|
||||||
|
// This would be better than int gethostuuid(uuid_t id, const struct timespec *wait);
|
||||||
|
void get_platform_uuid(char * buf, int bufSize)
|
||||||
|
{
|
||||||
|
io_registry_entry_t ioRegistryRoot = IORegistryEntryFromPath(kIOMasterPortDefault, "IOService:/");
|
||||||
|
CFStringRef uuidCf = (CFStringRef) IORegistryEntryCreateCFProperty(ioRegistryRoot, CFSTR(kIOPlatformUUIDKey), kCFAllocatorDefault, 0);
|
||||||
|
IOObjectRelease(ioRegistryRoot);
|
||||||
|
CFStringGetCString(uuidCf, buf, bufSize, kCFStringEncodingMacRoman);
|
||||||
|
CFRelease(uuidCf);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string get_app_name()
|
||||||
|
{
|
||||||
|
std::vector<char> appId(PATH_MAX+1, 0);
|
||||||
|
uint32_t length = 0;
|
||||||
|
if(_NSGetExecutablePath(&appId[0], &length))
|
||||||
|
{
|
||||||
|
appId.resize(length, 0);
|
||||||
|
_NSGetExecutablePath(&appId[0], &length);
|
||||||
|
}
|
||||||
|
std::string result = basename(appId.data());
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Read file contents
|
* Read file contents
|
||||||
*
|
*
|
||||||
|
@ -79,27 +109,30 @@ static std::string Exec(const char* cmd)
|
||||||
*/
|
*/
|
||||||
bool sysinfo_sources::fetch(std::string key)
|
bool sysinfo_sources::fetch(std::string key)
|
||||||
{
|
{
|
||||||
for(auto &kv : (*this))
|
for(auto &kv : (*this))
|
||||||
{
|
{
|
||||||
if(kv.first == key)
|
if(kv.first == key)
|
||||||
{
|
{
|
||||||
std::string contents = ReadFile(kv.second.path);
|
const std::string star("*");
|
||||||
if((kv.second.selector == "*") || (kv.second.selector == ""))
|
const std::string empty("");
|
||||||
{
|
|
||||||
cache[key] = contents;
|
std::string contents = ReadFile(kv.second.path);
|
||||||
return true;
|
if((kv.second.selector == star) || (kv.second.selector == empty))
|
||||||
}
|
{
|
||||||
// Run regexp
|
cache[key] = contents;
|
||||||
std::regex selector_regex(kv.second.selector);
|
return true;
|
||||||
std::smatch match;
|
}
|
||||||
if(std::regex_search(contents, match, selector_regex))
|
// Run regexp
|
||||||
{
|
std::regex selector_regex(kv.second.selector);
|
||||||
cache[key] = match[1];
|
std::smatch match;
|
||||||
return true;
|
if(std::regex_search(contents, match, selector_regex))
|
||||||
}
|
{
|
||||||
}
|
cache[key] = match[1];
|
||||||
}
|
return true;
|
||||||
return false;
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -164,6 +197,12 @@ public:
|
||||||
add("devModel", { "/proc/registry/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/SystemInformation/SystemProductName", "*"});
|
add("devModel", { "/proc/registry/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/SystemInformation/SystemProductName", "*"});
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(__APPLE__)
|
||||||
|
// FIXME: [MG] - This is not the most elegant way of obtaining it
|
||||||
|
cache["devMake"] = "Apple";
|
||||||
|
cache["devModel"] = Exec("sysctl hw.model | awk '{ print $2 }'");
|
||||||
|
#endif
|
||||||
|
|
||||||
// Fallback to uname if above methods failed
|
// Fallback to uname if above methods failed
|
||||||
if (!get("osVer").compare(""))
|
if (!get("osVer").compare(""))
|
||||||
{
|
{
|
||||||
|
@ -180,8 +219,20 @@ public:
|
||||||
cache["osRel"] = (const char *)(buf.release);
|
cache["osRel"] = (const char *)(buf.release);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __APPLE__
|
||||||
|
add("appId", {"/proc/self/cmdline", "(.*)[ ]*.*[\n]*"});
|
||||||
|
#else
|
||||||
|
cache["appId"] = get_app_name(); // TODO: [MG] - verify this path
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!get("devId").compare(""))
|
if (!get("devId").compare(""))
|
||||||
{
|
{
|
||||||
|
#ifdef __APPLE__
|
||||||
|
// std::string contents = Exec("ioreg -d2 -c IOPlatformExpertDevice | awk -F\" '/IOPlatformUUID/{print $(NF-1)}'");
|
||||||
|
char deviceId[512] = { 0 };
|
||||||
|
get_platform_uuid(deviceId, sizeof(deviceId));
|
||||||
|
cache["devId"] = MAT::GUID_t(deviceId).to_string(); // TODO: [MG] - do we need to prepend i:{...} here?
|
||||||
|
#else
|
||||||
// We were unable to obtain Device Id using standard means.
|
// We were unable to obtain Device Id using standard means.
|
||||||
// Try to use hash of blkid + hostname instead. Both blkid
|
// Try to use hash of blkid + hostname instead. Both blkid
|
||||||
// and hostname would rarely change, as well as guarantee
|
// and hostname would rarely change, as well as guarantee
|
||||||
|
@ -196,9 +247,9 @@ public:
|
||||||
}
|
}
|
||||||
cache["devId"] = MAT::GUID_t(guid_bytes).to_string();
|
cache["devId"] = MAT::GUID_t(guid_bytes).to_string();
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
add("appId", {"/proc/self/cmdline", "(.*)[ ]*.*[\n]*"});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
|
@ -1,6 +1,5 @@
|
||||||
#ifndef LIB_PAL_LINUX_SYSINFO_SOURCES_HPP_
|
#ifndef LIB_PAL_POSIX_SYSINFO_SOURCES_HPP_
|
||||||
#define LIB_PAL_LINUX_SYSINFO_SOURCES_HPP_
|
#define LIB_PAL_POSIX_SYSINFO_SOURCES_HPP_
|
||||||
|
|
||||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
|
||||||
#include <map>
|
#include <map>
|
||||||
|
@ -59,4 +58,4 @@ public:
|
||||||
|
|
||||||
extern sysinfo_sources aria_hwinfo;
|
extern sysinfo_sources aria_hwinfo;
|
||||||
|
|
||||||
#endif /* LIB_PAL_LINUX_SYSINFO_SOURCES_HPP_ */
|
#endif /* LIB_PAL_POSIX_SYSINFO_SOURCES_HPP_ */
|
|
@ -1,6 +1,6 @@
|
||||||
#ifndef TYPENAME_HPP
|
#ifndef TYPENAME_HPP
|
||||||
#define TYPENAME_HPP
|
#define TYPENAME_HPP
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <typeinfo>
|
#include <typeinfo>
|
||||||
|
|
||||||
|
|
|
@ -98,7 +98,7 @@ namespace PAL_NS_BEGIN {
|
||||||
return converterX.to_bytes(wstr);
|
return converterX.to_bytes(wstr);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string DeviceInformationImpl::GetDeviceTicket()
|
std::string DeviceInformationImpl::GetDeviceTicket() const
|
||||||
{
|
{
|
||||||
return m_deviceTicket;
|
return m_deviceTicket;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
// Copyright (c) Microsoft. All rights reserved.
|
||||||
#include "Version.hpp"
|
#include "Version.hpp"
|
||||||
#include "WindowsEnvironmentInfo.h"
|
#include "WindowsEnvironmentInfo.h"
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
// Copyright (c) Microsoft. All rights reserved.
|
||||||
#pragma once
|
#pragma once
|
||||||
#include "Enums.hpp"
|
#include "Enums.hpp"
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
|
@ -106,7 +106,7 @@ namespace PAL_NS_BEGIN {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string DeviceInformationImpl::GetDeviceTicket()
|
std::string DeviceInformationImpl::GetDeviceTicket() const
|
||||||
{
|
{
|
||||||
return m_deviceTicket;
|
return m_deviceTicket;
|
||||||
}
|
}
|
||||||
|
|
|
@ -361,7 +361,7 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef ARIA_C_API
|
#ifdef ARIA_C_API
|
||||||
static inline void cppprop_to_cprop(EventProperty &rhs, aria_prop &lhs)
|
static inline void cppprop_to_cprop(EventProperty &rhs, evt_prop &lhs)
|
||||||
{
|
{
|
||||||
switch (rhs.type)
|
switch (rhs.type)
|
||||||
{
|
{
|
||||||
|
@ -381,7 +381,7 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
lhs.value.as_bool = rhs.as_bool;
|
lhs.value.as_bool = rhs.as_bool;
|
||||||
break;
|
break;
|
||||||
case TYPE_GUID:
|
case TYPE_GUID:
|
||||||
lhs.value.as_guid = new aria_guid_t();
|
lhs.value.as_guid = new evt_guid_t();
|
||||||
// TODO: copy from GUID_t to aria_guid_t
|
// TODO: copy from GUID_t to aria_guid_t
|
||||||
break;
|
break;
|
||||||
#if 0
|
#if 0
|
||||||
|
@ -403,10 +403,10 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
aria_prop* EventProperties::pack()
|
evt_prop* EventProperties::pack()
|
||||||
{
|
{
|
||||||
size_t size = m_storage->Properties.size() + m_storage->PropertiesPartB.size() + 1;
|
size_t size = m_storage->Properties.size() + m_storage->PropertiesPartB.size() + 1;
|
||||||
aria_prop * result = (aria_prop *)calloc(sizeof(aria_prop), size);
|
evt_prop * result = static_cast<evt_prop *>(calloc(sizeof(evt_prop), size));
|
||||||
size_t i = 0;
|
size_t i = 0;
|
||||||
for(auto &props : { m_storage->Properties, m_storage->PropertiesPartB })
|
for(auto &props : { m_storage->Properties, m_storage->PropertiesPartB })
|
||||||
for (auto &kv : props)
|
for (auto &kv : props)
|
||||||
|
@ -414,7 +414,7 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
auto k = kv.first;
|
auto k = kv.first;
|
||||||
auto v = kv.second;
|
auto v = kv.second;
|
||||||
result[i].name = (char *)k.c_str();
|
result[i].name = (char *)k.c_str();
|
||||||
result[i].type = (aria_prop_type)v.type;
|
result[i].type = static_cast<evt_prop_t>(v.type);
|
||||||
result[i].piiKind = v.piiKind;
|
result[i].piiKind = v.piiKind;
|
||||||
cppprop_to_cprop(v, result[i]);
|
cppprop_to_cprop(v, result[i]);
|
||||||
};
|
};
|
||||||
|
@ -422,14 +422,14 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool EventProperties::unpack(aria_prop *packed)
|
bool EventProperties::unpack(evt_prop *packed)
|
||||||
{
|
{
|
||||||
// List of attributes going into envelope section
|
// List of attributes going into envelope section
|
||||||
static const std::string keyName = "name";
|
static const std::string keyName = "name";
|
||||||
static const std::string keyTime = "time";
|
static const std::string keyTime = "time";
|
||||||
static const std::string keyPopSample = "popSample";
|
static const std::string keyPopSample = "popSample";
|
||||||
|
|
||||||
aria_prop *curr = packed;
|
evt_prop *curr = packed;
|
||||||
for (size_t i = 0; curr->type != TYPE_NULL; i++, curr++)
|
for (size_t i = 0; curr->type != TYPE_NULL; i++, curr++)
|
||||||
{
|
{
|
||||||
// Event name
|
// Event name
|
||||||
|
@ -487,7 +487,6 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
(packed);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
#endif /* end of ARIA_C_API */
|
#endif /* end of ARIA_C_API */
|
||||||
|
|
|
@ -278,6 +278,31 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
as_stringArray = new std::vector<std::string>(*source->as_stringArray);
|
as_stringArray = new std::vector<std::string>(*source->as_stringArray);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case TYPE_GUID:
|
||||||
|
{
|
||||||
|
as_guid = source->as_guid;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case TYPE_INT64:
|
||||||
|
{
|
||||||
|
as_int64 = source->as_int64;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case TYPE_DOUBLE:
|
||||||
|
{
|
||||||
|
as_double = source->as_double;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case TYPE_TIME:
|
||||||
|
{
|
||||||
|
as_time_ticks = source->as_time_ticks;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case TYPE_BOOLEAN:
|
||||||
|
{
|
||||||
|
as_bool = source->as_bool;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -289,6 +314,7 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
EventProperty::EventProperty(const EventProperty& source) :
|
EventProperty::EventProperty(const EventProperty& source) :
|
||||||
type(source.type)
|
type(source.type)
|
||||||
{
|
{
|
||||||
|
// TODO: [MG] - memcpy is probably no longer needed here
|
||||||
memcpy((void*)this, (void*)&source, sizeof(EventProperty));
|
memcpy((void*)this, (void*)&source, sizeof(EventProperty));
|
||||||
copydata(&source);
|
copydata(&source);
|
||||||
}
|
}
|
||||||
|
@ -300,6 +326,7 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
EventProperty::EventProperty(EventProperty&& source) /* noexcept */ :
|
EventProperty::EventProperty(EventProperty&& source) /* noexcept */ :
|
||||||
type(source.type)
|
type(source.type)
|
||||||
{
|
{
|
||||||
|
// TODO: [MG] - memcpy is probably no longer needed here
|
||||||
memcpy((void*)this, (void*)&source, sizeof(EventProperty));
|
memcpy((void*)this, (void*)&source, sizeof(EventProperty));
|
||||||
copydata(&source);
|
copydata(&source);
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,12 +91,14 @@ Example:
|
||||||
|
|
||||||
#include <evntprov.h>
|
#include <evntprov.h>
|
||||||
|
|
||||||
|
#ifndef __clang__
|
||||||
// Enum declaration may be missing from older evntprov.h:
|
// Enum declaration may be missing from older evntprov.h:
|
||||||
enum _EVENT_INFO_CLASS
|
enum _EVENT_INFO_CLASS
|
||||||
#if !defined(__INTELLISENSE__) && defined(__cplusplus) && (_MSC_VER >= 1700)
|
#if !defined(__INTELLISENSE__) && defined(__cplusplus) && (_MSC_VER >= 1700)
|
||||||
: int // base type for enum forward declaration
|
: int // base type for enum forward declaration
|
||||||
#endif
|
#endif
|
||||||
;
|
;
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Macro MICROSOFTTELEMETRY_EVENT_SET_INFORMATION:
|
Macro MICROSOFTTELEMETRY_EVENT_SET_INFORMATION:
|
||||||
|
|
|
@ -110,9 +110,8 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
m_done.post();
|
m_done.post();
|
||||||
};
|
};
|
||||||
|
|
||||||
virtual void handleIncomingEventPrepared(IncomingEventContextPtr const& event) override
|
virtual void handleIncomingEventPrepared(IncomingEventContextPtr const&) override
|
||||||
{
|
{
|
||||||
(event);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
virtual void preparedIncomingEventAsync(IncomingEventContextPtr const& event) override
|
virtual void preparedIncomingEventAsync(IncomingEventContextPtr const& event) override
|
||||||
|
@ -129,7 +128,7 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
/// Gets the log manager.
|
/// Gets the log manager.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
ILogManager& getLogManager()
|
ILogManager& getLogManager() override
|
||||||
{
|
{
|
||||||
return m_logManager;
|
return m_logManager;
|
||||||
}
|
}
|
||||||
|
@ -138,12 +137,12 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
/// Gets the configuration.
|
/// Gets the configuration.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
IRuntimeConfig& getConfig()
|
IRuntimeConfig& getConfig() override
|
||||||
{
|
{
|
||||||
return m_config;
|
return m_config;
|
||||||
}
|
}
|
||||||
|
|
||||||
ISemanticContext& getContext()
|
ISemanticContext& getContext() override
|
||||||
{
|
{
|
||||||
return m_logManager.GetSemanticContext();
|
return m_logManager.GetSemanticContext();
|
||||||
}
|
}
|
||||||
|
@ -177,4 +176,4 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
|
|
||||||
} ARIASDK_NS_END
|
} ARIASDK_NS_END
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -16,17 +16,21 @@ Environment:
|
||||||
|
|
||||||
--*/
|
--*/
|
||||||
|
|
||||||
|
// TODO: [MG] - verify this header against the latest version in //depot/*/publicint/onecoreuapbase/inc/traceloggingdynamic.h
|
||||||
#pragma once
|
#pragma once
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
//#include <winapifamily.h>
|
//#include <winapifamily.h>
|
||||||
#include <evntprov.h>
|
#include <evntprov.h>
|
||||||
|
|
||||||
// Enum declaration may be missing from older evntprov.h:
|
// Enum declaration may be missing from older evntprov.h:
|
||||||
|
// XXX: [MG] - workaround for clang compiler not liking enum redifinition here
|
||||||
|
#ifndef __clang__
|
||||||
enum _EVENT_INFO_CLASS
|
enum _EVENT_INFO_CLASS
|
||||||
#if !defined(__INTELLISENSE__) && defined(__cplusplus) && (_MSC_VER >= 1700)
|
#if !defined(__INTELLISENSE__) && defined(__cplusplus) && (_MSC_VER >= 1700)
|
||||||
: int // base type for enum forward declaration
|
: int // base type for enum forward declaration
|
||||||
#endif
|
#endif
|
||||||
;
|
;
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace tld
|
namespace tld
|
||||||
{
|
{
|
||||||
|
@ -300,9 +304,7 @@ namespace tld
|
||||||
It is ok to create an array of nested structures where fields in the
|
It is ok to create an array of nested structures where fields in the
|
||||||
structure have TypeNone or TypeBinary.
|
structure have TypeNone or TypeBinary.
|
||||||
*/
|
*/
|
||||||
#pragma warning(push)
|
enum Type : UINT16;
|
||||||
#pragma warning(disable:4471) //a forward declaration of an unscoped enumeration must have an underlying type. Not fixing Windows code.
|
|
||||||
enum Type;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Used for composing Type values.
|
Used for composing Type values.
|
||||||
|
@ -318,7 +320,7 @@ namespace tld
|
||||||
The comments for each InType value indicate the payload encoding rules and
|
The comments for each InType value indicate the payload encoding rules and
|
||||||
the OutTypes that are most likely to be usable with this InType.
|
the OutTypes that are most likely to be usable with this InType.
|
||||||
*/
|
*/
|
||||||
enum InType;
|
enum InType : UINT8;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Used for composing Type values.
|
Used for composing Type values.
|
||||||
|
@ -339,7 +341,7 @@ namespace tld
|
||||||
consumer. The most commonly-supported combinations are the combinations
|
consumer. The most commonly-supported combinations are the combinations
|
||||||
with corresponding precomposed Type... values.
|
with corresponding precomposed Type... values.
|
||||||
*/
|
*/
|
||||||
enum OutType;
|
enum OutType : UINT8;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
enum ProviderTraitType (low-level API):
|
enum ProviderTraitType (low-level API):
|
||||||
|
@ -347,7 +349,6 @@ namespace tld
|
||||||
The type of a provider trait. Used when building up provider metadata.
|
The type of a provider trait. Used when building up provider metadata.
|
||||||
*/
|
*/
|
||||||
enum ProviderTraitType;
|
enum ProviderTraitType;
|
||||||
#pragma warning(pop)
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
class ProviderMetadataBuilder (low-level API):
|
class ProviderMetadataBuilder (low-level API):
|
||||||
|
|
|
@ -1,520 +0,0 @@
|
||||||
//depot/rs_prerelease/publicint/minwin/priv_sdk/inc/telemetry/microsofttelemetry.h#3 - integrate change 8074616 (text)
|
|
||||||
/* ++
|
|
||||||
|
|
||||||
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
||||||
|
|
||||||
Module Name:
|
|
||||||
|
|
||||||
MicrosoftTelemetry.h
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
Microsoft Telemetry-specific definitions and extensions to logging functions:
|
|
||||||
- Opt-in helpers to Microsoft Telemetry (TraceLoggingOptionMicrosoftTelemetry)
|
|
||||||
- Keywords for categories (applies to TraceLogging and manifested events)
|
|
||||||
- Event tags to influence persistence and latency
|
|
||||||
- Field tags to influence PII treatment
|
|
||||||
|
|
||||||
These should be used only by ETW providers in the Microsoft Telemetry provider group {4f50731a-89cf-4782-b3e0-dce8c90476ba}.
|
|
||||||
|
|
||||||
Please see the following link for the full specification text:
|
|
||||||
https://microsoft.sharepoint.com/teams/osg_threshold_specs/_layouts/15/WopiFrame.aspx?sourcedoc={8e8236cf-6b80-4e3c-9d7a-c35b52588946}&action=view
|
|
||||||
|
|
||||||
Environment:
|
|
||||||
|
|
||||||
User mode or kernel mode.
|
|
||||||
|
|
||||||
Note:
|
|
||||||
|
|
||||||
If you are seeing unexpected references to EtwSetInformation (kernel-mode)
|
|
||||||
or EventSetInformation (user-mode), you can use the
|
|
||||||
MICROSOFTTELEMETRY_HAVE_EVENT_SET_INFORMATION and
|
|
||||||
MICROSOFTTELEMETRY_EVENT_SET_INFORMATION macros to adjust how the
|
|
||||||
EnableManifestedProviderForMicrosoftTelemetry function accesses this API.
|
|
||||||
--*/
|
|
||||||
|
|
||||||
#ifndef _MICROSOFTTELEMETRY_
|
|
||||||
#define _MICROSOFTTELEMETRY_
|
|
||||||
|
|
||||||
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
|
|
||||||
#pragma once
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
Macro TraceLoggingOptionMicrosoftTelemetry():
|
|
||||||
Wrapper macro for use in TRACELOGGING_DEFINE_PROVIDER that declares the
|
|
||||||
provider's membership in the Microsoft Telemetry provider group
|
|
||||||
{4f50731a-89cf-4782-b3e0-dce8c90476ba}. Membership in this group means that
|
|
||||||
events with keyword MICROSOFT_KEYWORD_TELEMETRY, MICROSOFT_KEYWORD_MEASURES,
|
|
||||||
or MICROSOFT_KEYWORD_CRITICAL_DATA will be recognized as "telemetry" events by
|
|
||||||
UTC.
|
|
||||||
|
|
||||||
TraceLoggingOptionMicrosoftTelemetry()
|
|
||||||
|
|
||||||
is equivalent to:
|
|
||||||
|
|
||||||
TraceLoggingOptionGroup(0x4f50731a, 0x89cf, 0x4782, 0xb3, 0xe0, 0xdc, 0xe8, 0xc9, 0x4, 0x76, 0xba).
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
TRACELOGGING_DEFINE_PROVIDER(g_hMyProvider, "MyProvider",
|
|
||||||
(0xb3864c38, 0x4273, 0x58c5, 0x54, 0x5b, 0x8b, 0x36, 0x08, 0x34, 0x34, 0x71),
|
|
||||||
TraceLoggingOptionMicrosoftTelemetry());
|
|
||||||
*/
|
|
||||||
#define TraceLoggingOptionMicrosoftTelemetry() \
|
|
||||||
TraceLoggingOptionGroup(0x4f50731a, 0x89cf, 0x4782, 0xb3, 0xe0, 0xdc, 0xe8, 0xc9, 0x4, 0x76, 0xba)
|
|
||||||
|
|
||||||
/*
|
|
||||||
Macro TraceLoggingOptionWindowsCoreTelemetry():
|
|
||||||
Wrapper macro for use in TRACELOGGING_DEFINE_PROVIDER that declares the
|
|
||||||
provider's membership in the Windows Core Telemetry provider group
|
|
||||||
{c7de053a-0c2e-4a44-91a2-5222ec2ecdf1}. Membership in this group means that
|
|
||||||
events with keyword MICROSOFT_KEYWORD_CRITICAL_DATA or event tag
|
|
||||||
MICROSOFT_EVENTTAG_CORE_DATA will be recognized as "telemetry" events by
|
|
||||||
UTC even at the Basic level.
|
|
||||||
|
|
||||||
TraceLoggingOptionWindowsCoreTelemetry()
|
|
||||||
|
|
||||||
is equivalent to:
|
|
||||||
|
|
||||||
TraceLoggingOptionGroup(0xc7de053a, 0x0c2e, 0x4a44, 0x91, 0xa2, 0x52, 0x22, 0xec, 0x2e, 0xcd, 0xf1).
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
TRACELOGGING_DEFINE_PROVIDER(g_hMyProvider, "MyProvider",
|
|
||||||
(0xb3864c38, 0x4273, 0x58c5, 0x54, 0x5b, 0x8b, 0x36, 0x08, 0x34, 0x34, 0x71),
|
|
||||||
TraceLoggingOptionWindowsCoreTelemetry());
|
|
||||||
*/
|
|
||||||
#define TraceLoggingOptionWindowsCoreTelemetry() \
|
|
||||||
TraceLoggingOptionGroup(0xc7de053a, 0x0c2e, 0x4a44, 0x91, 0xa2, 0x52, 0x22, 0xec, 0x2e, 0xcd, 0xf1)
|
|
||||||
|
|
||||||
#ifndef MICROSOFTTELEMETRY_NO_FUNCTIONS
|
|
||||||
|
|
||||||
#include <evntprov.h>
|
|
||||||
|
|
||||||
// Enum declaration may be missing from older evntprov.h:
|
|
||||||
enum _EVENT_INFO_CLASS
|
|
||||||
#if !defined(__INTELLISENSE__) && defined(__cplusplus) && (_MSC_VER >= 1700)
|
|
||||||
: int // base type for enum forward declaration
|
|
||||||
#endif
|
|
||||||
;
|
|
||||||
|
|
||||||
/*
|
|
||||||
Macro MICROSOFTTELEMETRY_EVENT_SET_INFORMATION:
|
|
||||||
Macro MICROSOFTTELEMETRY_HAVE_EVENT_SET_INFORMATION:
|
|
||||||
|
|
||||||
These macros affect the behavior of
|
|
||||||
EnableManifestedProviderForMicrosoftTelemetry.
|
|
||||||
|
|
||||||
The default behavior of EnableManifestedProviderForMicrosoftTelemetry depends
|
|
||||||
on the version of Windows being targeted. If the targeted version of Windows
|
|
||||||
supports the EventSetInformation/EtwSetInformation API, then
|
|
||||||
EnableManifestedProviderForMicrosoftTelemetry will call the API directly,
|
|
||||||
leading to a static dependency. If the targeted version of Windows does not
|
|
||||||
support the API, then EnableManifestedProviderForMicrosoftTelemetry will
|
|
||||||
attempt to dynamically load the appropriate API (via GetProcAddress or
|
|
||||||
MmGetSystemRoutineAddress), avoiding the static dependency.
|
|
||||||
|
|
||||||
Use MICROSOFTTELEMETRY_EVENT_SET_INFORMATION if you want a custom API to be
|
|
||||||
called instead of EventSetInformation or EtwSetInformation. If
|
|
||||||
MICROSOFTTELEMETRY_EVENT_SET_INFORMATION is defined, then
|
|
||||||
EnableManifestedProviderForMicrosoftTelemetry will invoke
|
|
||||||
MICROSOFTTELEMETRY_EVENT_SET_INFORMATION(...) instead of calling
|
|
||||||
EventSetInformation(...) or EtwSetInformation(...). Note that
|
|
||||||
MICROSOFTTELEMETRY_EVENT_SET_INFORMATION will only take effect if
|
|
||||||
MICROSOFTTELEMETRY_HAVE_EVENT_SET_INFORMATION is unset or is set to 1.
|
|
||||||
|
|
||||||
Use MICROSOFTTELEMETRY_HAVE_EVENT_SET_INFORMATION if you want to override the
|
|
||||||
Windows version detection of EnableManifestedProviderForMicrosoftTelemetry.
|
|
||||||
If MICROSOFTTELEMETRY_HAVE_EVENT_SET_INFORMATION is not defined,
|
|
||||||
EnableManifestedProviderForMicrosoftTelemetry will use windows version macros
|
|
||||||
to determine whether to static-link or runtime-link the EventSetInformation or
|
|
||||||
EtwSetInformation API. You can set
|
|
||||||
MICROSOFTTELEMETRY_HAVE_EVENT_SET_INFORMATION to 0, 1, or 2 to override this
|
|
||||||
versioning logic. Set it to 0 to completely disable the API (always return a
|
|
||||||
NOT_SUPPORTED error). Set it to 1 to force static-link with the API. Set it to
|
|
||||||
2 to force dynamic-load of the API.
|
|
||||||
*/
|
|
||||||
#ifdef _ETW_KM_
|
|
||||||
#ifndef MICROSOFTTELEMETRY_EVENT_SET_INFORMATION
|
|
||||||
#define MICROSOFTTELEMETRY_EVENT_SET_INFORMATION EtwSetInformation
|
|
||||||
#ifndef MICROSOFTTELEMETRY_HAVE_EVENT_SET_INFORMATION
|
|
||||||
#if NTDDI_VERSION < 0x06040000
|
|
||||||
#define MICROSOFTTELEMETRY_HAVE_EVENT_SET_INFORMATION 2 // Find "EtwSetInformation" via MmGetSystemRoutineAddress
|
|
||||||
#else
|
|
||||||
#define MICROSOFTTELEMETRY_HAVE_EVENT_SET_INFORMATION 1 // Directly invoke EtwSetInformation(...)
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#elif !defined(MICROSOFTTELEMETRY_HAVE_EVENT_SET_INFORMATION)
|
|
||||||
#define MICROSOFTTELEMETRY_HAVE_EVENT_SET_INFORMATION 1 // Directly invoke MICROSOFTTELEMETRY_EVENT_SET_INFORMATION(...)
|
|
||||||
#endif
|
|
||||||
#else // _ETW_KM_
|
|
||||||
#ifndef MICROSOFTTELEMETRY_EVENT_SET_INFORMATION
|
|
||||||
#define MICROSOFTTELEMETRY_EVENT_SET_INFORMATION EventSetInformation
|
|
||||||
#ifndef MICROSOFTTELEMETRY_HAVE_EVENT_SET_INFORMATION
|
|
||||||
#if WINVER < 0x0602 || !defined(EVENT_FILTER_TYPE_SCHEMATIZED)
|
|
||||||
#define MICROSOFTTELEMETRY_HAVE_EVENT_SET_INFORMATION 2 // Find "EventSetInformation" via GetModuleHandleExW+GetProcAddress
|
|
||||||
#else
|
|
||||||
#define MICROSOFTTELEMETRY_HAVE_EVENT_SET_INFORMATION 1 // Directly invoke EventSetInformation(...)
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#elif !defined(MICROSOFTTELEMETRY_HAVE_EVENT_SET_INFORMATION)
|
|
||||||
#define MICROSOFTTELEMETRY_HAVE_EVENT_SET_INFORMATION 1 // Directly invoke MICROSOFTTELEMETRY_EVENT_SET_INFORMATION(...)
|
|
||||||
#endif
|
|
||||||
#endif // _ETW_KM_
|
|
||||||
|
|
||||||
__inline
|
|
||||||
#ifdef _ETW_KM_
|
|
||||||
NTSTATUS
|
|
||||||
#else // _ETW_KM_
|
|
||||||
ULONG
|
|
||||||
#endif // _ETW_KM_
|
|
||||||
EventSetInformation_ProviderTraits(
|
|
||||||
_In_ REGHANDLE RegHandle,
|
|
||||||
_In_count_x_(*(UINT16*)Traits) UCHAR const* Traits
|
|
||||||
)
|
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
This routine calls EventSetInformation(EventProviderSetTraits) to set the
|
|
||||||
provider traits for an ETW provider. For this to work, this must be
|
|
||||||
called immediately after the provider has been registered (i.e. immediately
|
|
||||||
after the call to EventRegister).
|
|
||||||
|
|
||||||
As a side-effect, this function also notifies ETW that this provider
|
|
||||||
properly initializes the EVENT_DATA_DESCRIPTOR::Reserved field in all
|
|
||||||
calls to EventWrite/EtwWrite.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
RegHandle - The provider registration handle.
|
|
||||||
Traits - A pointer to the traits to register. This is assumed to be a valid
|
|
||||||
traits blob, starting with a 16-bit length field.
|
|
||||||
|
|
||||||
Return Value:
|
|
||||||
|
|
||||||
User mode: ERROR_SUCCESS on success, error code otherwise.
|
|
||||||
Kernel mode: STATUS_SUCCESS on success, error code otherwise.
|
|
||||||
|
|
||||||
The most common error code is ERROR_NOT_SUPPORTED/STATUS_NOT_SUPPORTED,
|
|
||||||
which occurs if running on a system that does not support Microsoft
|
|
||||||
Telemetry.
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
|
||||||
#ifdef _ETW_KM_
|
|
||||||
NTSTATUS Status = STATUS_NOT_SUPPORTED;
|
|
||||||
#else // _ETW_KM_
|
|
||||||
ULONG Status = ERROR_NOT_SUPPORTED;
|
|
||||||
#endif // _ETW_KM_
|
|
||||||
|
|
||||||
#if MICROSOFTTELEMETRY_HAVE_EVENT_SET_INFORMATION == 0 // Immediately return NOT_SUPPORTED.
|
|
||||||
|
|
||||||
(void)RegHandle; // Unreferenced parameter
|
|
||||||
(void)Traits; // Unreferenced parameter
|
|
||||||
|
|
||||||
#elif MICROSOFTTELEMETRY_HAVE_EVENT_SET_INFORMATION == 1
|
|
||||||
|
|
||||||
Status = MICROSOFTTELEMETRY_EVENT_SET_INFORMATION(
|
|
||||||
RegHandle,
|
|
||||||
(enum _EVENT_INFO_CLASS)2, // EventProviderSetTraits
|
|
||||||
(PVOID)Traits,
|
|
||||||
*(USHORT*)Traits);
|
|
||||||
|
|
||||||
#elif MICROSOFTTELEMETRY_HAVE_EVENT_SET_INFORMATION != 2
|
|
||||||
|
|
||||||
#error Invalid value for MICROSOFTTELEMETRY_HAVE_EVENT_SET_INFORMATION. Must be 0, 1, or 2.
|
|
||||||
|
|
||||||
#elif defined(_ETW_KM_)
|
|
||||||
|
|
||||||
typedef NTSTATUS(NTAPI* PFEtwSetInformation)(
|
|
||||||
_In_ REGHANDLE RegHandle,
|
|
||||||
_In_ enum _EVENT_INFO_CLASS InformationClass,
|
|
||||||
_In_reads_bytes_opt_(InformationLength) PVOID EventInformation,
|
|
||||||
_In_ ULONG InformationLength);
|
|
||||||
static UNICODE_STRING strEtwSetInformation = {
|
|
||||||
sizeof(L"EtwSetInformation") - 2,
|
|
||||||
sizeof(L"EtwSetInformation") - 2,
|
|
||||||
L"EtwSetInformation"
|
|
||||||
};
|
|
||||||
#pragma warning(push)
|
|
||||||
#pragma warning(disable: 4055) // Allow the cast from a PVOID to a PFN
|
|
||||||
PFEtwSetInformation pfEtwSetInformation =
|
|
||||||
(PFEtwSetInformation)MmGetSystemRoutineAddress(&strEtwSetInformation);
|
|
||||||
#pragma warning(pop)
|
|
||||||
if (pfEtwSetInformation)
|
|
||||||
{
|
|
||||||
Status = pfEtwSetInformation(
|
|
||||||
RegHandle,
|
|
||||||
(enum _EVENT_INFO_CLASS)2, // EventProviderSetTraits
|
|
||||||
(PVOID)Traits,
|
|
||||||
*(USHORT*)Traits);
|
|
||||||
}
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
HMODULE hEventing = NULL;
|
|
||||||
if (GetModuleHandleExW(0, L"api-ms-win-eventing-provider-l1-1-0", &hEventing) ||
|
|
||||||
GetModuleHandleExW(0, L"advapi32", &hEventing))
|
|
||||||
{
|
|
||||||
typedef ULONG(WINAPI* PFEventSetInformation)(
|
|
||||||
_In_ REGHANDLE RegHandle,
|
|
||||||
_In_ enum _EVENT_INFO_CLASS InformationClass,
|
|
||||||
_In_reads_bytes_opt_(InformationLength) PVOID EventInformation,
|
|
||||||
_In_ ULONG InformationLength);
|
|
||||||
PFEventSetInformation pfEventSetInformation =
|
|
||||||
(PFEventSetInformation)GetProcAddress(hEventing, "EventSetInformation");
|
|
||||||
if (pfEventSetInformation) {
|
|
||||||
Status = pfEventSetInformation(
|
|
||||||
RegHandle,
|
|
||||||
(enum _EVENT_INFO_CLASS)2, // EventProviderSetTraits
|
|
||||||
(PVOID)Traits,
|
|
||||||
*(USHORT*)Traits);
|
|
||||||
}
|
|
||||||
|
|
||||||
FreeLibrary(hEventing);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return Status;
|
|
||||||
}
|
|
||||||
|
|
||||||
__inline
|
|
||||||
#ifdef _ETW_KM_
|
|
||||||
NTSTATUS
|
|
||||||
#else // _ETW_KM_
|
|
||||||
ULONG
|
|
||||||
#endif // _ETW_KM_
|
|
||||||
EnableManifestedProviderForMicrosoftTelemetry(
|
|
||||||
_In_ REGHANDLE RegHandle
|
|
||||||
)
|
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Manifested providers that want to write telemetry must call this function
|
|
||||||
immediately after registration. For example:
|
|
||||||
|
|
||||||
EventRegisterMy_Provider_Name();
|
|
||||||
EnableManifestedProviderForMicrosoftTelemetry(My_Provider_NameHandle);
|
|
||||||
|
|
||||||
This routine calls EventSetInformation(EventProviderSetTraits) to declare
|
|
||||||
the provider's membership in the Microsoft Telemetry provider group
|
|
||||||
{4f50731a-89cf-4782-b3e0-dce8c90476ba}. Membership in this group means
|
|
||||||
that events with the following keywords will be recognized as "telemetry"
|
|
||||||
events by UTC:
|
|
||||||
|
|
||||||
- MICROSOFT_KEYWORD_TELEMETRY (ms:Telemetry)
|
|
||||||
- MICROSOFT_KEYWORD_MEASURES (ms:Measures)
|
|
||||||
- MICROSOFT_KEYWORD_CRITICAL_DATA (ms:CriticalData)
|
|
||||||
|
|
||||||
In addition, MICROSOFT_KEYWORD_RESERVED_44 (ms:ReservedKeyword44) is
|
|
||||||
reserved for future use as a telemetry keyword and must not be used.
|
|
||||||
|
|
||||||
As a side-effect, this function also notifies ETW that this provider
|
|
||||||
properly initializes the EVENT_DATA_DESCRIPTOR::Reserved field in all
|
|
||||||
calls to EventWrite/EtwWrite.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
RegHandle - The provider registration handle.
|
|
||||||
|
|
||||||
Return Value:
|
|
||||||
|
|
||||||
User mode: ERROR_SUCCESS on success, error code otherwise.
|
|
||||||
Kernel mode: STATUS_SUCCESS on success, error code otherwise.
|
|
||||||
|
|
||||||
The most common error code is ERROR_NOT_SUPPORTED/STATUS_NOT_SUPPORTED,
|
|
||||||
which occurs if running on a system that does not support Microsoft
|
|
||||||
Telemetry.
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
|
||||||
static UCHAR const Traits[] = {
|
|
||||||
0x16, 0x00, 0x00, 0x13, 0x00, 0x01,
|
|
||||||
// {4f50731a-89cf-4782-b3e0-dce8c90476ba}
|
|
||||||
0x1a, 0x73, 0x50, 0x4f, 0xcf, 0x89, 0x82, 0x47, 0xb3, 0xe0, 0xdc, 0xe8, 0xc9, 0x04, 0x76, 0xba
|
|
||||||
};
|
|
||||||
return EventSetInformation_ProviderTraits(RegHandle, Traits);
|
|
||||||
}
|
|
||||||
|
|
||||||
__inline
|
|
||||||
#ifdef _ETW_KM_
|
|
||||||
NTSTATUS
|
|
||||||
#else // _ETW_KM_
|
|
||||||
ULONG
|
|
||||||
#endif // _ETW_KM_
|
|
||||||
EnableManifestedProviderForMicrosoftWlanTelemetry(
|
|
||||||
_In_ REGHANDLE RegHandle
|
|
||||||
)
|
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Not for normal use! This function is only for use with providers that need
|
|
||||||
to use alternate keywords instead of the standard ms:Telemetry,
|
|
||||||
ms:Measures, and ms:CriticalData keywords. This function declares that the
|
|
||||||
associated provider will use alternate keyword values, not the standard
|
|
||||||
ones. Unless you've specifically worked with the UTC team on your manifest,
|
|
||||||
DO NOT USE THIS FUNCTION!
|
|
||||||
|
|
||||||
Manifested providers that use the alternate keywords and want to write
|
|
||||||
telemetry must call this function immediately after registration. For
|
|
||||||
example:
|
|
||||||
|
|
||||||
EventRegisterMy_WLAN_Provider_Name();
|
|
||||||
EnableManifestedProviderForMicrosoftWlanTelemetry(
|
|
||||||
My_WLAN_Provider_NameHandle);
|
|
||||||
|
|
||||||
This routine calls EventSetInformation(EventProviderSetTraits) to declare
|
|
||||||
the provider's membership in the Microsoft WLAN Telemetry provider group
|
|
||||||
{976a8310-986e-4640-8bfb-7736ee6d9b65}. Membership in this group means
|
|
||||||
that events the following keywords will be recognized as "telemetry"
|
|
||||||
events by UTC:
|
|
||||||
|
|
||||||
- 0x20000000 (Telemetry)
|
|
||||||
- 0x40000000 (Measures)
|
|
||||||
- 0x80000000 (CriticalData)
|
|
||||||
|
|
||||||
In addition, keyword 0x10000000 is reserved for future use as a telemetry
|
|
||||||
keyword and must not be used.
|
|
||||||
|
|
||||||
As a side-effect, this function also notifies ETW that this provider
|
|
||||||
properly initializes the EVENT_DATA_DESCRIPTOR::Reserved field in all
|
|
||||||
calls to EventWrite/EtwWrite.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
RegHandle - The provider registration handle.
|
|
||||||
|
|
||||||
Return Value:
|
|
||||||
|
|
||||||
User mode: ERROR_SUCCESS on success, error code otherwise.
|
|
||||||
Kernel mode: STATUS_SUCCESS on success, error code otherwise.
|
|
||||||
|
|
||||||
The most common error code is ERROR_NOT_SUPPORTED/STATUS_NOT_SUPPORTED,
|
|
||||||
which occurs if running on a system that does not support Microsoft
|
|
||||||
Telemetry.
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
|
||||||
static UCHAR const Traits[] = {
|
|
||||||
0x16, 0x00, 0x00, 0x13, 0x00, 0x01,
|
|
||||||
// {976a8310-986e-4640-8bfb-7736ee6d9b65}
|
|
||||||
0x10, 0x83, 0x6a, 0x97, 0x6e, 0x98, 0x40, 0x46, 0x8b, 0xfb, 0x77, 0x36, 0xee, 0x6d, 0x9b, 0x65
|
|
||||||
};
|
|
||||||
return EventSetInformation_ProviderTraits(RegHandle, Traits);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // !MICROSOFTTELEMETRY_NO_FUNCTIONS
|
|
||||||
|
|
||||||
/*
|
|
||||||
Telemetry categories that can be assigned as event keywords:
|
|
||||||
|
|
||||||
MICROSOFT_KEYWORD_CRITICAL_DATA: Events that power user experiences or are critical to business intelligence
|
|
||||||
MICROSOFT_KEYWORD_MEASURES: Events for understanding measures and reporting scenarios
|
|
||||||
MICROSOFT_KEYWORD_TELEMETRY: Events for general-purpose telemetry
|
|
||||||
|
|
||||||
Only one telemetry category should be assigned per event, though an event may also participate in other non-telemetry keywords.
|
|
||||||
|
|
||||||
Some categories (such as CRITICAL_DATA) require formal approval before they can be used. Refer to
|
|
||||||
https://osgwiki.com/wiki/Common_Schema_Event_Overrides
|
|
||||||
for details on the requirements and how to start the approval process.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// c.f. WINEVENT_KEYWORD_RESERVED_63-56 0xFF00000000000000 // Bits 63-56 - channel keywords
|
|
||||||
// c.f. WINEVENT_KEYWORD_* 0x00FF000000000000 // Bits 55-48 - system-reserved keywords
|
|
||||||
#define MICROSOFT_KEYWORD_CRITICAL_DATA 0x0000800000000000 // Bit 47
|
|
||||||
#define MICROSOFT_KEYWORD_MEASURES 0x0000400000000000 // Bit 46
|
|
||||||
#define MICROSOFT_KEYWORD_TELEMETRY 0x0000200000000000 // Bit 45
|
|
||||||
#define MICROSOFT_KEYWORD_RESERVED_44 0x0000100000000000 // Bit 44 (reserved for future assignment)
|
|
||||||
|
|
||||||
/*
|
|
||||||
For manifested providers, add the following xmlns:ms declaration to the instrumentation
|
|
||||||
element in the manifest:
|
|
||||||
|
|
||||||
<instrumentation
|
|
||||||
...
|
|
||||||
xmlns:ms="http://manifests.microsoft.com/win/2004/08/windows/events"
|
|
||||||
...>
|
|
||||||
|
|
||||||
Then modify the EVENTS_* settings in your SOURCES file to include:
|
|
||||||
|
|
||||||
EVENTS_INCLUDE_MICROSOFT_TELEMETRY=1
|
|
||||||
|
|
||||||
Finally, make sure to call EnableManifestedProviderForMicrosoftTelemetry(Provider_NameHandle)
|
|
||||||
immediately after registering your provider:
|
|
||||||
|
|
||||||
EventRegisterProvider_Name();
|
|
||||||
EnableManifestedProviderForMicrosoftTelemetry(Provider_NameHandle);
|
|
||||||
|
|
||||||
Events may then be decorated with ms:CriticalData, ms:Measures, and ms:Telemetry; for example:
|
|
||||||
|
|
||||||
<event
|
|
||||||
keywords="ms:Telemetry"
|
|
||||||
symbol="HelloWorldEvent"
|
|
||||||
value="1"
|
|
||||||
/>
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
Event tags that can be assigned to influence how the telemetry client handles events (TraceLogging only):
|
|
||||||
|
|
||||||
MICROSOFT_EVENTTAG_CORE_DATA: This event contains high-priority "core data".
|
|
||||||
|
|
||||||
MICROSOFT_EVENTTAG_INJECT_XTOKEN: Inject an Xbox identity token into this event.
|
|
||||||
|
|
||||||
MICROSOFT_EVENTTAG_REALTIME_LATENCY: Send these events in real time.
|
|
||||||
MICROSOFT_EVENTTAG_COSTDEFERRED_LATENCY: Treat these events like NORMAL_LATENCY until they've been stuck on the device for too long,
|
|
||||||
then allow them to upload over costed networks.
|
|
||||||
MICROSOFT_EVENTTAG_NORMAL_LATENCY: Send these events via the preferred connection based on device policy.
|
|
||||||
|
|
||||||
MICROSOFT_EVENTTAG_CRITICAL_PERSISTENCE: Delete these events last when low on spool space.
|
|
||||||
MICROSOFT_EVENTTAG_NORMAL_PERSISTENCE: Delete these events first when low on spool space.
|
|
||||||
|
|
||||||
MICROSOFT_EVENTTAG_DROP_PII: The event's Part A will be reduced.
|
|
||||||
MICROSOFT_EVENTTAG_HASH_PII: The event's Part A will be obscured.
|
|
||||||
MICROSOFT_EVENTTAG_MARK_PII: The event's Part A will be kept as-is and routed to a private stream in the backend.
|
|
||||||
|
|
||||||
For example:
|
|
||||||
|
|
||||||
TraceLoggingWrite(..., TraceLoggingEventTag(MICROSOFT_EVENTTAG_REALTIME_LATENCY), ...)
|
|
||||||
|
|
||||||
Some tags require formal approval before they can be used. Refer to
|
|
||||||
https://osgwiki.com/wiki/Common_Schema_Event_Overrides
|
|
||||||
for details on the requirements and how to start the approval process.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define MICROSOFT_EVENTTAG_COSTDEFERRED_LATENCY 0x00040000
|
|
||||||
|
|
||||||
#define MICROSOFT_EVENTTAG_CORE_DATA 0x00080000
|
|
||||||
#define MICROSOFT_EVENTTAG_INJECT_XTOKEN 0x00100000
|
|
||||||
|
|
||||||
#define MICROSOFT_EVENTTAG_REALTIME_LATENCY 0x00200000
|
|
||||||
#define MICROSOFT_EVENTTAG_NORMAL_LATENCY 0x00400000
|
|
||||||
|
|
||||||
#define MICROSOFT_EVENTTAG_CRITICAL_PERSISTENCE 0x00800000
|
|
||||||
#define MICROSOFT_EVENTTAG_NORMAL_PERSISTENCE 0x01000000
|
|
||||||
|
|
||||||
#define MICROSOFT_EVENTTAG_DROP_PII 0x02000000
|
|
||||||
#define MICROSOFT_EVENTTAG_HASH_PII 0x04000000
|
|
||||||
#define MICROSOFT_EVENTTAG_MARK_PII 0x08000000
|
|
||||||
|
|
||||||
/*
|
|
||||||
Field tags that can be assigned to influence how the telemetry client handles fields and generates
|
|
||||||
Part A's for the containing event (TraceLogging only):
|
|
||||||
|
|
||||||
MICROSOFT_FIELDTAG_DROP_PII: The field contains PII and should be dropped by the telemetry client.
|
|
||||||
MICROSOFT_FIELDTAG_HASH_PII: The field contains PII and should be hashed (obfuscated) prior to uploading.
|
|
||||||
|
|
||||||
Note that in order to specify a field tag, a field description must be specified as well, e.g.:
|
|
||||||
|
|
||||||
..., TraceLoggingWideString(wszUser, "UserName", "User name", MICROSOFT_FIELDTAG_HASH_PII), ...
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define MICROSOFT_FIELDTAG_DROP_PII 0x04000000
|
|
||||||
#define MICROSOFT_FIELDTAG_HASH_PII 0x08000000
|
|
||||||
|
|
||||||
#endif // _MICROSOFTTELEMETRY_
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -325,4 +325,9 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
unsigned hashCode(const char* str, int h)
|
||||||
|
{
|
||||||
|
return (unsigned)(!str[h] ? 5381 : ((unsigned long long)hashCode(str, h + 1) * (unsigned)33) ^ str[h]);
|
||||||
|
}
|
||||||
|
|
||||||
} ARIASDK_NS_END
|
} ARIASDK_NS_END
|
||||||
|
|
|
@ -29,6 +29,14 @@
|
||||||
#define _WINRT
|
#define _WINRT
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef EOK
|
||||||
|
#define EOK 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EFAIL
|
||||||
|
#define EFAIL -1
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace ARIASDK_NS_BEGIN {
|
namespace ARIASDK_NS_BEGIN {
|
||||||
|
|
||||||
// TODO: [MG] - refactor this
|
// TODO: [MG] - refactor this
|
||||||
|
@ -145,7 +153,7 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
case EventLatency_RealTime:
|
case EventLatency_RealTime:
|
||||||
return "RealTime";
|
return "RealTime";
|
||||||
|
|
||||||
case EventPriority_Immediate:
|
case EventLatency_Max:
|
||||||
return "Immediate";
|
return "Immediate";
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -178,6 +186,8 @@ namespace ARIASDK_NS_BEGIN {
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
unsigned hashCode(const char* str, int h = 0);
|
||||||
|
|
||||||
} ARIASDK_NS_END
|
} ARIASDK_NS_END
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
set(CMAKE_PROJECT_NAME "aria-sdk")
|
||||||
|
set(CPACK_SYSTEM_NAME "${OS_RELEASE_ID}-${OS_RELEASE_VERSION_ID}")
|
||||||
|
#set(CPACK_SET_DESTDIR ${CPACK_SYSTEM_NAME})
|
||||||
|
set(CPACK_PACKAGING_INSTALL_PREFIX "/usr/local")
|
||||||
|
set(CPACK_GENERATOR "TGZ")
|
||||||
|
|
||||||
|
set(MAJOR_VERSION "3")
|
||||||
|
set(MINOR_VERSION "0")
|
||||||
|
string(TIMESTAMP DAYNUMBER "%j")
|
||||||
|
set(PATCH_VERSION "${DAYNUMBER}")
|
||||||
|
|
||||||
|
set(CPACK_PACKAGE_DESCRIPTION "Aria SDK for Unix")
|
||||||
|
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Aria SDK for events ingestion from Unix hosts")
|
||||||
|
set(CPACK_PACKAGE_VENDOR "Microsoft")
|
||||||
|
set(CPACK_PACKAGE_CONTACT "ariaesdks@microsoft.com")
|
||||||
|
set(CPACK_PACKAGE_VERSION_MAJOR "${MAJOR_VERSION}")
|
||||||
|
set(CPACK_PACKAGE_VERSION_MINOR "${MINOR_VERSION}")
|
||||||
|
set(CPACK_PACKAGE_VERSION_PATCH "${PATCH_VERSION}")
|
||||||
|
|
||||||
|
# FIXME: add architecture name in file name
|
||||||
|
set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${CPACK_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
|
||||||
|
message("-- Package name: ${CPACK_PACKAGE_FILE_NAME}.tgz")
|
||||||
|
|
||||||
|
include(CPack)
|
|
@ -0,0 +1,34 @@
|
||||||
|
@echo off
|
||||||
|
echo Building 3rd party dependencies...
|
||||||
|
@setlocal ENABLEEXTENSIONS
|
||||||
|
|
||||||
|
set ROOT=%~dp0\..
|
||||||
|
|
||||||
|
echo Using Visual Studio 2017 tools...
|
||||||
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\VsDevCmd.bat"
|
||||||
|
|
||||||
|
set MAXCPUCOUNT=%NUMBER_OF_PROCESSORS%
|
||||||
|
set platform=
|
||||||
|
set SOLUTION=%ROOT%\Solutions\AriaSDK.sln
|
||||||
|
|
||||||
|
REM DLL and static /MD build
|
||||||
|
msbuild %SOLUTION% /target:sqlite,zlib,sqlite-uwp /p:BuildProjectReferences=true /maxcpucount:%MAXCPUCOUNT% /p:Configuration=Debug /p:Platform=Win32
|
||||||
|
msbuild %SOLUTION% /target:sqlite,zlib,sqlite-uwp /p:BuildProjectReferences=true /maxcpucount:%MAXCPUCOUNT% /p:Configuration=Release /p:Platform=Win32
|
||||||
|
msbuild %SOLUTION% /target:sqlite,zlib,sqlite-uwp /p:BuildProjectReferences=true /maxcpucount:%MAXCPUCOUNT% /p:Configuration=Debug /p:Platform=x64
|
||||||
|
msbuild %SOLUTION% /target:sqlite,zlib,sqlite-uwp /p:BuildProjectReferences=true /maxcpucount:%MAXCPUCOUNT% /p:Configuration=Release /p:Platform=x64
|
||||||
|
|
||||||
|
REM Static /MT build
|
||||||
|
msbuild %SOLUTION% /target:sqlite,zlib /p:BuildProjectReferences=true /maxcpucount:%MAXCPUCOUNT% /p:Configuration=Debug.vs2015.MT-sqlite /p:Platform=Win32
|
||||||
|
msbuild %SOLUTION% /target:sqlite,zlib /p:BuildProjectReferences=true /maxcpucount:%MAXCPUCOUNT% /p:Configuration=Release.vs2015.MT-sqlite /p:Platform=Win32
|
||||||
|
msbuild %SOLUTION% /target:sqlite,zlib /p:BuildProjectReferences=true /maxcpucount:%MAXCPUCOUNT% /p:Configuration=Debug.vs2015.MT-sqlite /p:Platform=x64
|
||||||
|
msbuild %SOLUTION% /target:sqlite,zlib /p:BuildProjectReferences=true /maxcpucount:%MAXCPUCOUNT% /p:Configuration=Release.vs2015.MT-sqlite /p:Platform=x64
|
||||||
|
|
||||||
|
REM ARM DLL build
|
||||||
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\vsdevcmd\ext\vcvars.bat" arm
|
||||||
|
msbuild %SOLUTION% /target:zlib /p:BuildProjectReferences=true /maxcpucount:%MAXCPUCOUNT% /p:Configuration=Debug /p:Platform=ARM
|
||||||
|
msbuild %SOLUTION% /target:zlib /p:BuildProjectReferences=true /maxcpucount:%MAXCPUCOUNT% /p:Configuration=Release /p:Platform=ARM
|
||||||
|
|
||||||
|
REM ARM64 DLL build
|
||||||
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\vsdevcmd\ext\vcvars.bat" arm64
|
||||||
|
msbuild %SOLUTION% /target:sqlite,zlib,sqlite-uwp /p:BuildProjectReferences=true /maxcpucount:%MAXCPUCOUNT% /p:Configuration=Debug /p:Platform=ARM64
|
||||||
|
msbuild %SOLUTION% /target:sqlite,zlib,sqlite-uwp /p:BuildProjectReferences=true /maxcpucount:%MAXCPUCOUNT% /p:Configuration=Release /p:Platform=ARM64
|
|
@ -247,3 +247,12 @@ if(HAVE_OFF64_T)
|
||||||
target_link_libraries(minigzip64 zlib)
|
target_link_libraries(minigzip64 zlib)
|
||||||
set_target_properties(minigzip64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64")
|
set_target_properties(minigzip64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
add_compile_definitions(WIN32)
|
||||||
|
add_compile_definitions(_CRT_NONSTDC_NO_DEPRECATE)
|
||||||
|
add_compile_definitions(_CRT_SECURE_NO_DEPRECATE)
|
||||||
|
add_compile_definitions(_CRT_NONSTDC_NO_WARNINGS)
|
||||||
|
add_compile_definitions(ZLIB_WINAPI)
|
||||||
|
# For x64 online
|
||||||
|
add_compile_definitions(WIN64)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче