* adding example app for swift wrappers
* linking required libs and setting build dependencies to build the project
* adding a readme file with details
* removing box specific files
* remove assets
* applying pr suggestions
* fixing a bug and correcting sample app projectclear
* correcting heading signature
* adding swift wrapper
* moving files to sources
* moving files to proper places
* adding module for header expose and importing it in swift wrapper
* correcting files for build errors and other changes
* adding module for objc
* swift build passing'
* adding readme
* changing the package name to 1dsswiftwrapper
* changing target name
* adding pr suggestions
* adding build.sh changes
* cmake list file changes
* creating static lib
* adding swift wrappers build and linking
* adding more logic for building and producing sample app
* adding code for swiftc invoking
* adding comments
* adding change to create the sample app
* linking and includding modules in swiftc to build the sample exe: being created
* adding comments
* compiling all files frrom sample
* removing extraline
* correcting the output folder of swift build
* correcting build output folder paths
* adding typealias file to stop importing the objcmodule in clients (#1171)
* adding typealias file to stop importing the objcmodule in clients
* giving better names
* adding call to create logger
* adding changes for framework include
* adding fwks
* linking libs and fwks
* adding getter and setters for swift as computed properties
* adding sample app changes
* adding app changes
* adding commondatacontext
* swift build passing
* correcting common context init
* adding get set in event properties list
* adding getter to eventprops
* removing useless methods
* adding getter and setter for eventprops
* adding getter
* fixing type bug
* fixing main app issues
* adding semantic context variable to the logger
* modifying the access level for the objc types in swift to make sure they are not exposed to the lcient
* adding default constructor
* keeping main.swift clean
'
* correcting comment
* adding computed property for objc variable
---------
Co-authored-by: Lalit Kumar Bhasin <labhas@microsoft.com>
* adding swift wrapper
* moving files to sources
* moving files to proper places
* adding module for header expose and importing it in swift wrapper
* correcting files for build errors and other changes
* adding module for objc
* swift build passing'
* adding readme
* changing the package name to 1dsswiftwrapper
* changing target name
* adding pr suggestions
* adding build.sh changes
* cmake list file changes
* creating static lib
* adding swift wrappers build and linking
* adding more logic for building and producing sample app
* adding code for swiftc invoking
* adding comments
* adding change to create the sample app
* linking and includding modules in swiftc to build the sample exe: being created
* adding comments
* compiling all files frrom sample
* removing extraline
* correcting the output folder of swift build
* correcting build output folder paths
* adding typealias file to stop importing the objcmodule in clients (#1171)
* adding typealias file to stop importing the objcmodule in clients
* giving better names
---------
Co-authored-by: Lalit Kumar Bhasin <labhas@microsoft.com>
* adding diagnostic wrapper for swift
* adding suggestions from pr
* making it final
* adding vars instead of methods
* correcting var
* fixing build issues
---------
Co-authored-by: Lalit Kumar Bhasin <labhas@microsoft.com>
* adding mgr and logger classes
* adding comment
* adding line at end
* adding pr suggestions
* adding pr suggestions
* changing file names
* adding suggestions from the pr comments
* adding suggestions from PR
* adding pr suggestions
* removing self from the instance references
* adding final to the logger class
* adding config class
* adding comment
* correcting the cmake min version
* adding checks for libs being linked in cmake
* correcting comments and args
* changing filename
* removing comment
* correcting the use of optional in swift wrapper
* marking class final
---------
* adding local build script file for swift wrappers
* adding main file to test the swift logger classes
* adding build.sh and cmake file for swift wrappers ONLY build
* adding git ignore file
* correcting xcodebuild args
* removing comments
* adding EventProperties class, wrapper for properties in Swift along with other required files
* adding pr suggestions
* adding min version of cmake required to generate for swift
The way SQLite is initialized (synchronous=NORMAL config) introduces potential issues with durability of changes/updates in some corner cases.
iOS Outlook logs telemetry in scenarios where some critical validation/check failed and cannot be handled and process self-terminates. In between logging the event and terminating we call Flush() to avoid lost events. If we checkpoint the DB before returning from the Flush() call app can safely assume no events will be lost. This change introduces an option that enables such behavior.
Alternative solution would be to use the default configuration (with synchronous=FULL) which doesn't have that problem but has overhead of filesystem syncing for each transaction which makes it a bad idea from the perf point of view.
* Add Reset Privacy Guard API and make reinitialization of Privacy Guard no-op.
* Add example in main.mm
Co-authored-by: Sid Dahiya <sidahiy@microsoft.com>
* Add PrivacyGuardHelper
The class manages the PrivacyGuard shared_ptr.shared_ptr. This is needed to allow for logmanger-specific integration.
* Add checks for module before including PG.
* Update modules commit to module-master
* Fix build breaks and address comments.
* Correctly use the shared_ptr
* Fix missing methods for ILogManager
- Added tests
- Renamed PrivacyGuardState to PrivacyGuardHelper.
* Remove `/*static*/` where it's not used.
* Simplify the PG registration for LogManager
* Revert "Remove `/*static*/` where it's not used."
This reverts commit 3cf8f12242.
* Revert "Add PrivacyGuardState"
This reverts commit 42996be631.
# Conflicts:
# lib/android_build/maesdk/src/main/java/com/microsoft/applications/events/LogManagerProvider.java
# lib/jni/LogManager_jni.cpp
# lib/jni/PrivacyGuard_jni.cpp
* Revert more changes.
* Cleanup LogManager and tests
* Minor rename of methods.
* Improve the test for PG on Multiple LogManager
* Minor refactoring.
* Add Java implementation for PG InitConfig
* Fix Mac build break for Android
Add support for multi-user scenarios
Point modules to newer commit with PG Module changes.
* Update modules and JNI.
* Try fix build break.
* Disable Android test for PG
Remove all the #ifs I added to make the test work.
* Fix PrivacyGuard_JNI compilation
* Remove deprecated CDC fields from Java.
* Update Obj-C Wrapper.
* Add ObjC InitConfig files.
* ObjC Wrapper updates.
* Update modules commit.
* Modules repo commit update.
* Pair programming and Xcode FTW
* Java Updates
* Address ObjC comments.
* Update main.mm to initialize the NSMutableArrays before using them.
* fix typo
* Update PG test
* Update InitConfig to use a C'tor for required values.
* Fix a typo on ObjC Wrapper
* Update Modules commit point to master tip.
Co-authored-by: David Brown <dabrow@microsoft.com>
* Added applicationWillTerminate notification observer
* Added appWillTerminte notification handler to not allow use of SDK after the notification fires
* Minor corrections
* used compiler flags for iOS
* Added [ODWLogManager applicationWillTerminate] class method instead of listening to notification in SDK
* Addded pause transmission and flushAndTearDown calls in appWillTerminate method.
* correctin in api call
Co-authored-by: Max Golovanov <maxgolov@microsoft.com>
* Enable Warning as Error on GCC and Clang builds for symmetry with Windows.
* Fix -Wreorder issues in HttpClient_Curl.hpp
* Default assign variables using in-class initializer per CppStandardGuidelines C.48
* Disable -Wtype-limits on clang in parity with MSVC
* Handle GCC separately from Clang for manipulating the warning state.
* Undo a clang-format change.
* Exec is used on non-Apple platforms, however this means that the method fires -Wunused-function on Apple platforms. Locally supress that warning.
* Suppress missing field initializer warning around tm, as I'm not 100% what the most correct fix is here.
* Avoid multi-line comment continuation in -Wcomment
* GCC throws -Wunknown-pragmas on #pragma clang, surround invocations with #ifdef __clang__
* Remove unused local variable, as it's not necessary for the test.
* Suppress -Wobjc-missing-super warnings in third_party code.
* Fix a -Wformat-security warning by treating the message string as an argument.
* Fix error: comparison between ‘const enum Microsoft::Applications::Events::EventProperty::<unnamed>’ and ‘const enum evt_prop_t’ [-Werror=enum-compare]
* Rather than %@, use %s for c-style strings.
* The two types here aren't safely default comparable, cast to underlying types.
* Rather than raising an exception directly, call ODWLogger raiseException
* Wrap #pragma warning with _MSC_VER ifdefs.
* No need for an NSString when NSException prefers a string literal.
* Fix -Wreorder issues in HttpResponseDecoderTests
* Fix error: 'ShadowBondSplicer::addRecord' hides overloaded virtual function [-Werror,-Woverloaded-virtual] by renaming the helper to addCsRecord
* Fix unused local variable warnings by removing the unused locals.
* Fix error: local variable 'output' will be copied despite being returned by name [-Werror,-Wreturn-std-move]. Note that this won't be necessary with guaranteed NVRO in C++17, yay!
* Remove unused locals in MetaStatsTests::GenerateStartEvent
* Fix -Wswitch error on non-Android.
* Fix error: comparison between signed and unsigned integer expressions [-Werror=sign-compare] in OfflineStorageTests_Room.cpp
* More unsigned-signed comparison warning fixes.
* howMany is used in a lambda capture, but clang thinks it isn't used. Odd.
* The unused-lambda-capture warning appears to be a Clang9 bug, don't disable this warning for GCC
* More signed-unsigned comparison fixes.
* Fix signed-unsigned comparison warning in TransmissionPolicyManagerTests. Used long long since that's the return type of std::chrono::duration::milliseconds::count()
* Don't need the long long, default int is fine.
* Fix -wsign-compare in TransmitProfilesTests.cpp
* Missed assigning isAborted to false, std::atomic<T> will zero init its details, but not the T (until C++20).
* Fix -Wdeprecated-copy by defining the copy and move constructors for the Variant type.
* Add copy and move c'tors and assignment operators to the GUID_t type.
* Add copy and move constructors and assignment operators on time_ticks_t
* Fix -Wformat-truncation on GCC 9.3.0 in Pal.cpp by suppressing the warning on this line. This appears to be a false positive.
* INSTANTIATE_TEST_CASE_P is deprecated, using INSTANTIATE_TEST_SUITE_P
* Clang also defines __GNUC__, so since this warning is a GCC only issue suppress the warning when !defined __clang__
* Missed closing #endif in PAL.cpp
* Some versions of GTest deprecate INSTANTIATE_TEST_CASE_P and others do not, the 1DS SDK should unify on a single version of GTest that's part of the repo, or via a package manager. That's not going to be part of this changelist, so simply suppress this warning.
Co-authored-by: Max Golovanov <maxgolov@microsoft.com>
Currently iOS only uses default config, which makes side-by-side loggers with different configuration not possible
Co-authored-by: Tommy Meisel <thomas.meisel95@gmail.com>
Co-authored-by: Tommy Meisel <thmeisel@microsoft.com>
* Add Obj-C wrapper to set cache path and add methods returnin a status for Flush and FlushAndTearDown
* Update
* Another update
* Maybe final one
* Addressing feedback
Co-authored-by: Max Golovanov <maxgolov@microsoft.com>