Граф коммитов

116 Коммитов

Автор SHA1 Сообщение Дата
Trevor Lacey aad6238531 Merged PR 938576: WorkerThread
Both PAL_Win32 and PAL_CPP11 have the exact same `WorkerThread` implementation (copy/pasted). This change extracts out the `WorkerThread` class from the Win32/CPP11 files _verbatim_ and puts them in a separate WorkerThread.hpp|cpp. The only change to the WorkerThread class is the introduction of an `IWorkerThread` interface and `WorkerThreadFactory`. This interface will be useful for when MIP creates its own custom WorkerThread that dispatches tasks to an external DLL.

I considered creating a separate PAL_CoreLib or PAL_MIP implementation, but it would everything except `WorkerThread` with the existing Win32/CPP11 PALs, so that seemed like the wrong abstraction.

I would like to merge this change to the main onesdk branch so that when I create the custom CoreLib/MIP implementation in a separate branch (for now), those changes will be very localized.
2019-02-26 21:01:47 +00:00
Max Golovanov cbee3c5b15 Add ETW-based tracing API from Aria v1 SDK. Keep it disabled for now, don't reroute default log facility to that yet. 2019-02-26 12:19:10 -08:00
Trevor Lacey 9f8cd7e8c6 Merged PR 908799: HttpClientFactory
HttpClientFactory chooses HttpClient implementation based on build flags. This factory can later be extended additional HttpClient implementations if necessary
2019-02-21 05:06:59 +00:00
Max Golovanov bf8672e762 2019: update version from 3.0 to 3.1 2019-01-11 22:11:14 -08:00
Matt Koscumb 3b3eef0b79 Disable /permissive-, there's an inconsistent build behavior between the loop and local machines. 2019-01-04 10:58:17 -08:00
Matt Koscumb 6f96e5c24d Enable /permissive- on all Aria VS projects. 2019-01-03 15:46:45 -08:00
Max Golovanov 6a1f1bfbfb Merged PR 839971: Win 10 UWP SDK sporadic crash in HTTP stack
Win 10 UWP SDK sporadic crash in HTTP stack.

Essentially it's the same fix that was previously done on Win32 Desktop: when we pass the buffer ptr to debug callback, the request has been already released and this may lead to trying to access the heap block possibly re-allocated for something else. The fix is to avoid de-allocation of HTTP req/resp until the handling is done, so when the wrapper is destroyed - the request object is also destroyed.

Related work items: #1510118
2018-11-20 03:08:18 +00:00
Matt Koscumb e5d61fa5f3 Rename winrt.vcxitems to universal.vcxitems 2018-11-16 10:14:24 -08:00
Matt Koscumb 5a3520243c move \pal\winrt\. to \pal\universal\. and update the build scripts appropriately. 2018-11-16 09:56:45 -08:00
Matt Koscumb 02ea5cb313 Rename win32.vcxitems -> desktop.vcxitems 2018-11-15 14:56:03 -08:00
Matt Koscumb 1a539fa907 Move lib\pal\win32 -> lib\pal\desktop, which is the term for legacy 'win32' API surfaces. 2018-11-15 14:36:29 -08:00
Max Golovanov db30858b81 Build infra clean-up (no code changes): remove all legacy vs2013 targets from .vcxproj . We don't support vs2013, these were left-overs from copy-paste from v1 source code base. 2018-11-07 14:02:54 -08:00
Max Golovanov fff773d6b1 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
2018-11-07 06:39:27 +00:00
Matt Koscumb c02407df7f Merged PR 815688: Clean up some more redundant heap allocations
* Remove RuntimeConfigDecorator. The decorate method does nothing, so it just eats memory.
* Move all data members of EventProperties into EventPropertiesStorage, and heap allocate that rather than heap allocating all the STL types. This has the bonus that the stack usage of every EventProperties is now sizeof(void*)
2018-11-02 22:07:13 +00:00
Max Golovanov 9af5ed881d Add google test version binary that comes with vs2017 2018-10-16 10:57:28 -07:00
Max Golovanov eb551cbf57 Merged PR 799323: Stats improvements, tests + fixes for recent OTEL issues discovered in dogfood
Fixes:
* implement HTTP stack passing of request body to callback for DDV tool
* add Microsoft googletest nupkg to enable visualization of test results in Visual Studio
* fix stats and stats session IDs
* MS Edge: fix telemetry not working if RO context is already inited
* Fix SetType API not working that breaks ODIN annotation processor
* BVT test fixes

Related work items: #1403111, #1403119, #1459042
2018-10-16 05:01:28 +00:00
Max Golovanov 787e514a76 Fix Aria SDK prefix 2018-09-24 14:07:40 -07:00
Max Golovanov 3b5e31bdf5 Unintentionally committed the version.txt with a fixed build version. Keep it 999 for auto-increment of daily build number. 2018-09-20 15:04:31 -07:00
Max Golovanov 46661093d8 Aria SKU for ARM64 Desktop 2018-09-20 12:59:43 -07:00
Max Golovanov 7de57751ed Merged PR 771012: FlushAndTeardown behaviour fixes
* address an issue with FlushAndTeardown taking too long: check for DB record count and pending uploads
* address an issue with possible duplication on shutdown (in-flight records successfully uploaded have not been unmarked)
* make API test with respect to logging and upload more strict
* remove Mincore.lib from the build, use Version.lib instead (needed for Win 7 compat)
* downgrade several printouts from INFO to TRACE to reduce the noise at INFO level
* send ram records first and respect their latency: critical goes to in-flight first prior to normal
* respect the "wantMore" flag. We were getting a situation where some records were "stuck" in marked state without being uploaded if these didn't fit into HTTP request

Related work items: #1400900
2018-09-18 00:38:25 +00:00
Max Golovanov ceb9ebde9b Revert "Don't link ClientTelemetry.dll against mincore.lib as it creates issues with unresolved DLL on Windows 7.1A"
This reverts commit 4c36876507.
2018-09-14 17:03:33 -07:00
Max Golovanov 4c36876507 Don't link ClientTelemetry.dll against mincore.lib as it creates issues with unresolved DLL on Windows 7.1A 2018-09-14 15:10:38 -07:00
Max Golovanov 6b0d55ae7a Add ARIASDK_SPEC to LogManagerProvider.hpp and add a custom build config for HelloAria sample to verify the case when the main app is built as stdcall rather than cdecl. 2018-09-06 17:04:46 -07:00
Max Golovanov 9066102885 Revert back to nightly auto-generated build version for onesdk branch 2018-09-06 12:10:54 -07:00
Max Golovanov 27e961ab0d OTEL ask: disable LTCG flag for sqlite and win32-lib (static flavor) 2018-09-06 11:41:13 -07:00
Max Golovanov 6f1f1d8992 Build scripts + start tracking release notes for v3 SDK 2018-09-05 14:47:54 -07:00
Max Golovanov ed2ce42fc9 Enable static /MT builds in build-all.bat and VS Batch build 2018-09-05 14:03:42 -07:00
Max Golovanov f60b85e49e Disable browse info (it slows down the build) and adjust the Batch Build options to enable building of all deps 2018-09-04 11:55:25 -07:00
Max Golovanov e06cca7b44 Fix building unit and functional tests from command line 2018-09-04 10:24:51 -07:00
Max Golovanov 6304297338 Fix command line build break 2018-08-31 18:51:56 -07:00
Max Golovanov 54d3253fd4 Retarget all projects to latest release of Windows 10 SDK 2018-08-31 18:28:14 -07:00
Max Golovanov 98ebfd3c90 Follow HoloLens (OS image)-suggested compiler flags 2018-08-31 18:17:01 -07:00
Max Golovanov b0223e8622 Draft implementation of ram queue that doesn't use sqlite 2018-08-21 16:28:13 -07:00
Max Golovanov 23dd3189c9 1297415 Task [v3] Remove Win 7.1A SDK dependency from v3 2018-06-19 15:37:21 -07:00
Max Golovanov 4abf91687a Addressing code review comments:
LogManagerFactory:  move ILogManager create/destroy to factory

LogManagerImpl:     add GetLogController method, thus restricting controller functionality via protected inheritance

LogManagerProvider:  refactor GetLogManager to Get because LogManagerProvider provides only LogManager's, right... not FOos or Bars

EventProperties:    add rough-in for safely passing EventProperties as a C struct across ABI boundary (this would be needed for header-only ABI stable Aria)

ILogManager:        make controller functionality protected and add GetLogController

LogManagerBase:     adjust the template to match the 2nd level API surface changes

LogManagerProvider: reinstate CreateLogManager and DestroyLogManager, although we discussed that we "don't remember" of the practical reasons why we named them this way.

NullObjects:        implement the API changes for NULL object LogManager

Version:            just a version change. Ideally we should kill the header from repo

EventProperties:    pack/unpack methods for translation of EventProperties into lean C struct, for passing across the ABI boundary (not advertising this to the customers just yet, subject to change)
2018-06-08 14:02:43 -07:00
Max Golovanov cb8a642283 Change compiler from vs2015 (v140) to vs2017 (v141) + minor fixes related to compiler change 2018-05-15 13:54:05 -07:00
Max Golovanov 47b0381702 - proper handling of offline storage path passed down via configuration
- implementation of Flush method - to move records from in-ram sqlite to on-disk sqlite db
- ability to forward debug callbacks to outside shim (needed for templated LogManager impl). No API changes, but internal impl!
- DebugSource.cpp : forward events to outside shim located at LogManager impl templated surface
- RuntimeConfig_Default.hpp : no longer need to set the path here, as it's done in LogManagerImpl
- ESCConfigCache.cpp : format changes and moved GetAppLocalTempDirectory to MAT as common cross-plat routine
- HttpResponseDecoder.cpp : temporary debug-only change to catch references to deallocated ptrs and assert on that
- IOfflineStorage.hpp : add Flush method (move ram to disk) and a callback for records saved to disk
- DebugEvents.hpp : proxy-forward callbacks to another "cascaded" listener
- ILogManager.hpp : AttachEventSource / DetachEventSource - attach "cascaded" proxy source (as there could be many templ ref to one instance)
- LogManagerBase.hpp : save primary tenant token back to configuration and attach "local" Debug event source proxy on a template
- NullObjects.hpp : add stubs to NULL-object pattern implementation
- Variant.hpp / VariantType.hpp : add draft implementation of thread-safe variants and fix vs201x memory corruption in destructor
- ISqlite3Proxy.hpp : expose v3 close method
- OfflineStorage_SQLite.cpp : move lock to outside of m_db check (race condition fix)
- OfflineStorageHandler.cpp : implementation of async flush copy from ram to disk + callback for records saved to disk
- Move local temp dir detection from UTC helpers to common MAT code
- Statistics.cpp : fix stats record decoration
- TelemetrySystem.cpp : reenable stats and move storage stop after telemetry system stop (otherwise there is a race condition)
- TPM : proper atomic check for uploads scheduled
- Added couple common utils from v1 codebase
2018-05-14 10:32:05 -07:00
Max Golovanov 14fcd476a7 Reinstate ILogController and associated permission checks.
Provide an example of how to use LogManager singleton in Guest mode (guest.cpp)
Rename EVTStatus to SDK name-neutral status_t as described in design doc.
2018-04-19 14:03:47 -07:00
Max Golovanov 09dc3caa24 Mac OS X C++ SDK build fixes 2018-04-17 13:49:57 -07:00
Max Golovanov dedfb11382 Fixing unit tests` 2018-04-13 13:25:33 -07:00
Max Golovanov 0ca59bcbe4 Fixing unit and functional tests:
* crash on shutdown
* race conditions in sqlite
* remove the unnecessary route sinks
2018-04-07 02:13:40 -07:00
Max Golovanov 04b3db4135 2nd round of Unit and Functional test fixes after refactor; plus add mocks for System 2018-04-06 18:17:59 -07:00
Max Golovanov da431306b1 Fixing Win 10 native, Win 10 C# and .NET SDKs; plus Functional Tests. 2018-04-05 13:58:33 -07:00
Max Golovanov 8ba03b2a89 Reimplementation of the LogManagerProvider and Host/Guest mode for C++ SDK 2018-04-02 16:42:06 -07:00
Max Golovanov 70e63499a9 Enable the control plane: filtering functionality 2018-04-02 13:45:23 -07:00
Max Golovanov d46f98350c Drafts for v3 2018-03-30 17:05:05 -07:00
sanjayga 5db2014f72 moved Linux sdk code to one sdk branch 2018-02-06 19:33:43 -08:00
sanjayga 8f5d211f99 Added Simple interface
fixed stats to be the same as ObjC
added per tenant stats
2018-01-10 16:06:39 -08:00
sanjayga 022572cb47 Changes names to Events SDK 2017-12-14 14:02:04 -08:00
sanjayga b94b38e6eb C# on C++ one SDK 2017-12-13 15:33:45 -08:00