aboutsummaryrefslogtreecommitdiff
path: root/util
AgeCommit message (Collapse)Author
2021-08-26Upgrade openscreen to f54d92523c9f2c8c5afb99e05fed70e4b8772b1candroid-s-beta-5android-s-beta-5Colin Cross
Test: make Change-Id: I7e5f099750b1eb6da0a6e20a9dbcd0dd2df94fc8
2021-08-26Remove unusd absl includeColin Cross
https://chromium-review.googlesource.com/c/openscreen/+/3001949 removed the only use of absl::Span, remove the absl/type/span.h include from util/stringprintf.h. Bug: b/158660166 Test: ninja -C out/debug osp_demo openscreen_unittests Change-Id: Ibe83f0a5730c2099ea8ce3c8b1b5504d55c6718c Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/3119701 Commit-Queue: mark a. foltz <mfoltz@chromium.org> Reviewed-by: mark a. foltz <mfoltz@chromium.org>
2021-07-14Remove abseil dependency from HexEncode methodKennan Gumbs
Currently the HexEncode method defined in util/stringprintf.h depends on absl::Span, which is part of abseil. This patch removes the dependency, allowing the method to be more widely used. Bug: b/158660166 Change-Id: I37715271391000b5c61d5a657f604db2bc6c882e Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/3001949 Reviewed-by: Jordan Bayles <jophba@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2021-06-04[Cast Streaming] Cleanup OFFER/ANSWERJordan Bayles
This patch finishes handling a TODO around json deserialization for offer messages, and removes some of the duplicate code in the json_helpers.h header. One more followup patch after this: ParseAndValidate* methods be simply renamed to Parse* methods. Change-Id: I36db01f1841731793597e5f89e904edb36d027ef Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2911769 Commit-Queue: Jordan Bayles <jophba@chromium.org> Reviewed-by: Ryan Keane <rwkeane@google.com>
2021-05-03Update Build RulesRyan Keane
In some cases, the full set of platform/api code will not be needed. Instead, just logging can suffice. This CL updates BUILD rules to allow for that smaller subset of dependencies. Bug: internal b/186668530 Change-Id: I0df802871610c5839ac2000fc25e4eba028be930 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2860519 Reviewed-by: Jordan Bayles <jophba@chromium.org> Commit-Queue: Ryan Keane <rwkeane@google.com>
2021-04-21Cleanup TODOs from @miuJordan Bayles
This patch removes all remaining TODOs from the now-departed @miu, either reassigning them to jophba, or for the majority, just implementing the fix directly. Change-Id: I73c21f577bf115cf37ec880fac54eef1555de7c5 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2831302 Commit-Queue: Jordan Bayles <jophba@chromium.org> Reviewed-by: Brandon Tolsch <btolsch@chromium.org>
2021-04-08[HOTFIX] Fix Chrome issuesJordan Bayles
Chrome build is complaining about a missing constructor as well as a bunch of static initialized stuff due to const declarations. This patch should put Chrome in a good state by making things constexpr and adding constructors where expected. TBR=rwkeane@chromium.org Change-Id: I6b98e04a8a103092bdeb02cd78a4799b7115c498 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2815613 Reviewed-by: Jordan Bayles <jophba@chromium.org> Reviewed-by: Ryan Keane <rwkeane@google.com> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2021-04-08[Cast] Cleanup Resolution + ReceiverSessionJordan Bayles
This patch changes the way Dimensions and Resolution objects are used in Open Screen--consolidating them into just one set of Dimensions and Resolution objects that can be used throughout the library, and updates the mirroring control protocol specification to be crisper about the difference between Resolution objects and Dimensions objects--and removing frame rates where they don't really make sense. As part of this cleanup, it also refactors the ReceiverSession to not expose the Answer messaging system at all, instead using new publicly exposed types. Finally, the capture recommendations are removed from the Receiver side, in favor of shared constants. Bug: b/184186374 Change-Id: I5e6a1c6798d07cb7f388ff5179c0bfa325d89229 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2808336 Reviewed-by: Ryan Keane <rwkeane@google.com> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2021-04-07Fix base64 unittests (again)Jordan Bayles
This patch fixes a EXPECT_STREQ call in the base64 unittests that was causing a crash on the following builder: chromium / try / linux_chromium_asan_rel_ng https://ci.chromium.org/ui/p/chromium/builders/try/linux_chromium_asan_rel_ng/b8850647978779234784/overview The STREQ is replaced with a std::memcmp. TBR=btolsch@chromium.org Change-Id: I8fad66f28d8a8b0d39e9f1b44851e90b168d28f7 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2810137 Reviewed-by: Jordan Bayles <jophba@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2021-04-06[Hotfix] fix base64 tests in ChromeJordan Bayles
This patch fixes a downstream issue where one of the build platforms doesn't like the string comparison for base64 unittests. TBR=btolsch@chromium.org Change-Id: I3c05d1989f7a514e7266acc967b98ae17a0c1d88 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2809197 Reviewed-by: Jordan Bayles <jophba@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2021-04-06[Cast] Enable Remoting in the SenderSessionJordan Bayles
This patch exposes remoting functionality on the SenderSession class, allowing embedders to request starting remoting. Bug: b/184186374 Change-Id: If82cffab9eda78e8b7d83d3f46a657e45267e8d6 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2626352 Commit-Queue: Jordan Bayles <jophba@chromium.org> Reviewed-by: Brandon Tolsch <btolsch@chromium.org>
2021-04-01Upgrade openscreen to 207f3b2b5814bbbe2530b3d0f8fb4da1665a02ceandroid-s-beta-2android-s-beta-1Elliott Hughes
Test: make Change-Id: I82665b4db5d30e87c87582b483f1404a5fcabe7e
2021-04-01Remove OperationLoopbtolsch
This change removes OperationLoop because it's only used in one place and is arguably confusing. OperationLoop mixes sleep() and select() usage, with separate timeouts, which has resulted in some "tuning" bugs in the past. Since there's no benefit to the sleep portion and it is also what causes the confusion, this change removes it and thing directly uses SocketHandleWaiter in PlatformClientPosix. Bug: None Change-Id: I9f62c9253bee7d29b26d1838d34c1399f4d472b5 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2798852 Commit-Queue: Jordan Bayles <jophba@chromium.org> Reviewed-by: Jordan Bayles <jophba@chromium.org>
2021-03-05Enable certificate utils unittests in Chromebtolsch
The previous failures when building in a chromium tree no longer repro so this change re-enables it to verify they're also working on bots. Bug: b/159955844 TBR=jophba@chromium.org Change-Id: I6334c722755520af9ce9cc75dbfdca71aab442a8 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2739535 Reviewed-by: Brandon Tolsch <btolsch@chromium.org> Commit-Queue: Brandon Tolsch <btolsch@chromium.org>
2021-03-05Fix a few more X509 struct accessesDavid Benjamin
I missed these earlier. Change-Id: I53873874f850193839003c8cb812a0bf68074453 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2740099 Reviewed-by: Brandon Tolsch <btolsch@chromium.org> Commit-Queue: Brandon Tolsch <btolsch@chromium.org>
2021-02-09Upgrade openscreen to 9d9da7b805d37b9e1bb890cf0200e8e505ef8b39Haibo Huang
Test: make Change-Id: Ibded80f41034de5725807574938bbf8b9cc22777
2021-02-09Fix gn check errors for chromiumbtolsch
Bug: 1159043, 1159044, 1159045, 1159046, 1159047 Bug: 1159048, 1159049, 1159050, 1159051 Change-Id: I4c01784608057662fc432f4ac35ced7c0be9b601 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2678725 Commit-Queue: Brandon Tolsch <btolsch@chromium.org> Reviewed-by: mark a. foltz <mfoltz@chromium.org>
2021-02-09Merge remote-tracking branch 'aosp/upstream-master'Joshua Duong
Change-Id: Ib08d8d8b3b228eee0a3faa857b7260a742258945
2021-01-25[c++17] Make consistent use of noexceptJan Wilken Dörrie
This change makes openscreen ready to be compiled with -std=c++17. In particular, c++17 demands the consistent use of the noexcept keyword accross declaration and definition. Bug: chromium:752720 Change-Id: I4715cbc7ccc9576e33ad7dec0ce6c1f6ebd9935b Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2643286 Commit-Queue: mark a. foltz <mfoltz@chromium.org> Reviewed-by: mark a. foltz <mfoltz@chromium.org>
2021-01-22Android: hide abseil headers.Joshua Duong
Change-Id: I181207bb3748e6865808f63ff7611e3705cd7067
2020-12-17Bikeshed: fix spelling mistakesJordan Bayles
Change-Id: If9531c66df28cfd86728d7a5ece42753037c0509 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2596321 Commit-Queue: Jordan Bayles <jophba@chromium.org> Commit-Queue: mark a. foltz <mfoltz@chromium.org> Reviewed-by: mark a. foltz <mfoltz@chromium.org>
2020-12-10Refactor session message sendingJordan Bayles
This patch refactors session message sending to include multiple new message types, such as RPC and GET_STATUS. Integration tests are included. Bug: b/170756458, b/174188662 Change-Id: I8b5de8a668171e0ce7cb3e74651d207aa7911c24 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2506651 Commit-Queue: Jordan Bayles <jophba@chromium.org> Reviewed-by: Yuri Wiitala <miu@chromium.org>
2020-12-09Remote virtual connections [2/3]: Add Open/CloseRemoteConnection().Yuri Wiitala
This patch adds two new methods to ConnectionNamespaceHandler, to allow Cast applications to establish and shutdown virtual connections over a socket to a remote device. Internally, this causes CONNECT, CONNECTED, and CLOSE messages to be sent between peers. Improved/Filled-in fields for CONNECT messaging (based on Chromium's implementation). Bug: b/162542369 Change-Id: I26c3de9a9f79140e553905a35b8ee455f94eaf7e Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2546883 Commit-Queue: Yuri Wiitala <miu@chromium.org> Reviewed-by: Brandon Tolsch <btolsch@chromium.org>
2020-12-03Add JSON schema validation (using valijson)Jordan Bayles
This patch adds a dependency on the valijson library, and new JSON validation methods in util that use it. Bug=b/174759086 Change-Id: I3607a95dcefb3efff103cc3b5c7c14e8ee2b9739 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2527747 Reviewed-by: mark a. foltz <mfoltz@chromium.org> Reviewed-by: Jordan Bayles <jophba@chromium.org>
2020-12-02Fix local buildJordan Bayles
This patch fixes a local build issue due to uint8_t not being defined. TBR=miu@chromium.org Change-Id: I8b4ab03b82c95a68fbbf173a6dab09d40f8e1d08 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2569888 Reviewed-by: Jordan Bayles <jophba@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2020-11-25[HOTFIX] remove iOS death testsJordan Bayles
This patch fixes an issue where google tests' lack of support of death tests on iOS causes a build failure on iOS and breaks the roller. TBR=miu@chromium.org Change-Id: I279fbe5b0633365cccf22c5316d0ef636ed7d12c Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2559716 Reviewed-by: Jordan Bayles <jophba@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2020-11-25[HOTFIX] Fix flatmap tests on MacJordan Bayles
This patch fixes an integration issue where Mac tests for Chromium fail due to the error message being different on some bots. TBR=miu@chromium.org Change-Id: Idfe0c6a28aa4a221a1a4ef96d91a2d87c9ed850e Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2559689 Reviewed-by: Jordan Bayles <jophba@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2020-11-25Add new FlatMap utility classJordan Bayles
This patch adds a new FlatMap class in our utility component. This class is intended as a drop-in replacement for std::vector<std::pair<key,value>>, which ends up getting used as a lower-cost std::map<key, value>, with some additional convenience functions to make it behave more like a map. This patch also replaces all std::vector<std::pair<>> declarations in favor of FlatMap. Change-Id: I1cbdc70998c9cc4754d20799ca0b4a6d30cb397a Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2552695 Commit-Queue: Jordan Bayles <jophba@chromium.org> Reviewed-by: Ryan Keane <rwkeane@google.com>
2020-11-25Logging cleanupsJordan Bayles
This patch removes some test-specific logging code in favor of death tests, and makes the OSP_NOTREACHED macro actually be annotated as [[noreturn]], so you don't have to put a bogus return statement after it. Change-Id: I6a6a271182061cbd98593ac0ae79347e48da5bc7 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2555597 Commit-Queue: Jordan Bayles <jophba@chromium.org> Reviewed-by: Brandon Tolsch <btolsch@chromium.org>
2020-11-24Add new enum name tableJordan Bayles
Add a new using statement and simple helper methods for storing enum names as strings. Doing this instead of porting Chrome's EnumTable class. Bug: crbug.com/openscreen/111 Change-Id: Ib92be8d1837782fd28398e96e3e3a50674d4a07f Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2545125 Reviewed-by: Ryan Keane <rwkeane@google.com> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2020-11-11[Open Screen] Fix noexcept usage.mark a. foltz
This patch consistently annotates move constructors with noexcept. This enables move optimization when std::vector is resized. Notes: - LLVM libcxx has been patched to no longer require this when -fno-exceptions is used [1] - However, libc++ still requires it as far as I can tell - There are no compilation issues with noexcept on clang or GCC so MAYBE_NOEXCEPT is no longer necessary - noexcept is only meaningful on declarations, not definitions Background: https://groups.google.com/a/chromium.org/g/chromium-dev/c/8i4tMqNpHhg [1] https://github.com/llvm/llvm-project/commit/2a573784f3679a7abab921018eb1c585dce8e669 Bug: b/160731444 Change-Id: Ib83e5c2fa5a2624665b76a3b2e0f6351a9196f8f Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2533433 Commit-Queue: mark a. foltz <mfoltz@chromium.org> Reviewed-by: Brandon Tolsch <btolsch@chromium.org>
2020-10-26Add StringPrintf() wrapper utility.Yuri Wiitala
Adds an efficient wrapper around std::snprintf() that returns the formatted result in a std::string. Background: The issue of either 1) wanting to use absl::StrFormat() without bloating our binary sizes, or 2) manually writing char[] buffer code around std::snprintf() has come up several times over the past year or so. So, this new utility is about reducing friction and improving future developer velocity. Change-Id: Ie898f91575852b06d59844dd564a0da03df1f7ed Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2487768 Commit-Queue: Yuri Wiitala <miu@chromium.org> Reviewed-by: Yuri Wiitala <miu@chromium.org> Reviewed-by: Brandon Tolsch <btolsch@chromium.org>
2020-10-22Add version field to generated TLS certificatesJordan Bayles
Chrome requires the version field to be populated and set to V3. This patch also adds DVLOGs, since currently generating a certificate requires stepping through a debugger. Change-Id: Id6e803834f11a4fba265684ff2be745197282279 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2489927 Reviewed-by: Brandon Tolsch <btolsch@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2020-10-02Speed up YABV tests by using smaller array of sizesJordan Bayles
Currently the YetAnotherBitVector tests are the slowest in the library, with ShiftsRight taking up to 3 seconds on a standard developer MacBook. This patch speeds up the test 10x by using a smaller array of test sizes, without omitting any major cases. Change-Id: Ide0ce14fab818083b1eacd241b07c11a59e2f04c Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2441206 Reviewed-by: Yuri Wiitala <miu@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2020-10-01Fix boringssl error message reportingbtolsch
Only using ERR_get_error() may not return a valid message. Instead, this change defaults to using the direct SSL error code message, and only includes addition errors from the ERR_get_error() stack if they are present. Change-Id: I9b63d1094f0a3e584fc7242b65cea9077e53f796 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2442074 Commit-Queue: Jordan Bayles <jophba@chromium.org> Reviewed-by: Jordan Bayles <jophba@chromium.org>
2020-09-29Fix PEM_read callsJordan Bayles
This patch moves PEM_read calls to using long types plus NOLINT directives. Change-Id: Ib8196599ac8b51deba623f48b252ab8a229b2563 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2438680 Reviewed-by: Jordan Bayles <jophba@chromium.org> Reviewed-by: Yuri Wiitala <miu@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2020-09-26Fixup standalone_{receiver, sender}Jordan Bayles
Currently the cast sender and receiver cannot connect because the receiver cannot present a CA-signed certificate due to not being able to set the private key or use a self signed certificate. This patch adds support for setting these arguments on both the cast sender and receiver, as well as some fixes found through manual testing. Total changelist: 1. Refactored testing code for reading certificates and private keys to share with the standalone sender, receiver. 2. Refactored TrustStore and CastTrustStore to allow self signed certificates and usage by the Cast Sender. 3. Updated the UDP socket POSIX implementation to allow reading--the previous implementation cannot read packets. 4. Updated certificate validation to work with the self signed certificates in the trust store. 5. Updated documentation. Example usage: $ ./out/Default/cast_sender -s cast_streaming.crt -v ~/video-1080-mp4.mp4 $ ./out/Default/cast_receiver lo0 -v -x -p cast_streaming_rsa -s cast_streaming.crt Bug: b/156995806 Change-Id: I6e31e66beff33c260e467290f454ec1dcc758660 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2426996 Commit-Queue: Jordan Bayles <jophba@chromium.org> Reviewed-by: Yuri Wiitala <miu@chromium.org>
2020-09-21[Cast Streaming] Implement sender session classJordan Bayles
This patch adds a new SenderSession class along with unit testing for this class. Embedders can create an instance of this class in order to start a streaming session with an already known receiver. The embedder is expected to have a valid TLS connection already established with the receiver. Bug: b/162542753 Change-Id: Ia91df728d947e1fa20ed0b360f595f75d41bf11c Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2378540 Reviewed-by: Jordan Bayles <jophba@chromium.org> Reviewed-by: mark a. foltz <mfoltz@chromium.org> Reviewed-by: Yuri Wiitala <miu@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2020-07-29[Open Screen] Adds a unit test for logging macros.mark a. foltz
- Adds unit tests for the macros defined in util/osp_logging.h - Adds testing hooks to logging_posix.h Tests both behavior in _DEBUG and !_DEBUG builds. Change-Id: I5fa3382d5455fbdf5e5b75d0d519cd43c5960d12 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2289036 Commit-Queue: mark a. foltz <mfoltz@chromium.org> Reviewed-by: Brandon Tolsch <btolsch@chromium.org>
2020-07-10[Open Screen] Fix/remove some TODOs in util/mark a. foltz
- Replace OSP_LOG with OSP_LOG_INFO - Remove TODO in scoped_trace_operations_unittest.cc - Update TODO in yet_another_bit_vector.cc Bug: openscreen:52 Change-Id: I6584413aeb0d20dc09a91f7744092d3963d62224 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2063423 Reviewed-by: Ryan Keane <rwkeane@google.com> Reviewed-by: Yuri Wiitala <miu@chromium.org> Commit-Queue: mark a. foltz <mfoltz@chromium.org>
2020-06-26Disable certificate utils unittests in ChromeJordan Bayles
This patch disables the CertificateUtilTest test suite when Open Screen is built inside an embedder, due to the tests failing on the linux-fieldtrial-rel bot. Bug: b/159955844 TBR=btolsch@chromium.org Change-Id: I55e29cd06f78e29d85721196dd61da23a3833be8 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2269061 Reviewed-by: Jordan Bayles <jophba@chromium.org>
2020-06-19Discovery: Add support for subtypes to the public headersRyan Keane
This CL adds support for Subtypes in the DnsSdInstance object, as defined in https://tools.ietf.org/html/rfc6763#section-7.1 In future, as part of b/158534054 ,support for subtypes / Selective Instance Enumeration will be fully added. For now, just the public APIs are being updated to prevent breaking users when these APIs are later implemented Here, DnsSdInstance and DnsSdInstanceEndpoint are publicly exposed classes. It is expected both that embedders will directly be interacting with these classes and, if they choose to override our DND-SD implementation (As is expected in many cases), becoming intimately familiar with them. For this reason and similicity of use by the embedder, support for a variety of ctors has been added to both DnsSdInstance and DnsSdInstanceEndpoint. Bug: b/158533407 Change-Id: I31eb9433a8e4ecb6ef018327a937e33b7e827ab1 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2242933 Reviewed-by: Jordan Bayles <jophba@chromium.org> Commit-Queue: Ryan Keane <rwkeane@google.com>
2020-06-09Update SimpleFraction to use abseil, improve testsJordan Bayles
The changes to avoid abseil dependencies for SimpleFraction are no longer necessary, so are reverted by this patch. There are also some easy oppportunities for improved code coverage, and build fixes included. Change-Id: If7430a22643157f439893e4556e9ae62606d027b Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2233366 Reviewed-by: Ryan Keane <rwkeane@google.com> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2020-06-05Implement Answer parsingJordan Bayles
This patch adds Answer parsing and testing, similar to how Offer messages are currently parsed. As part of this work, the following improvements are also included: 1. To avoid Abseil usage in public APIs, a new Optional type with unit tests is included. 2. message_util.h helpers have been greatly expanded, moved to util/json/parsing_helpers.h, and unit tests added. 3. SimpleFraction has been moved from util/ to platform/base/, so it can be properly used in public APIs. 4. SessionConfig has been cleaned up to follow coding style guidelines. 5. ANSWER message creation (that encapsulates the Answer struct) has been moved to the ReceiverSession. Bug: b/152633271, b/158030843 Change-Id: I59c20a140a5174d45378fb9b647ccbe5e6d23d1b Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2219571 Commit-Queue: Jordan Bayles <jophba@chromium.org> Reviewed-by: mark a. foltz <mfoltz@chromium.org> Reviewed-by: Ryan Keane <rwkeane@google.com>
2020-06-03Move std::chrono using statements to util/Jordan Bayles
This patch moves openscreen::<time type> using statements to be part of a new util/ header, chrono_helpers.h. Some helpful convenience functions are provided for doing conversions, and a new conversion method, to_duration, is added to the Clock implementation. Change-Id: I5a153c4da5266bceea97de0cad00a71a739f71ca Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2222684 Reviewed-by: mark a. foltz <mfoltz@chromium.org> Reviewed-by: Ryan Keane <rwkeane@google.com> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2020-05-28[Open Screen] Fix lint errors.mark a. foltz
This fixes a number of lint errors in the codebase flagged by cpplint.py. It also turns off a couple of checks: 1. The header check is too restrictive 2. The whitespace/braces check doesn't fully grok initializer list syntax. Bug: b/156101497 Change-Id: I11caefdc14fa1c5891022357bee35595673c4341 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2219135 Reviewed-by: Ryan Keane <rwkeane@google.com> Commit-Queue: mark a. foltz <mfoltz@chromium.org>
2020-05-21Add basic functional tests for the CastAgentJordan Bayles
This patch adds some rudimentary test coverage to ensure that the CastAgent in the standalone receiver implementation is not entirely broken. Bug: b/153079471 Change-Id: Iff26badce61fbded172ff27c490440651909b0c3 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2169345 Reviewed-by: Brandon Tolsch <btolsch@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2020-05-08Move SerialDeletePtr to platform/apiRyan Keane
util/ isn't exposed to clients, so this file should be moved to platform/api which is. NOTE: platform/base cannot be used because platform/base cannot depend on platform/api. Bug: b/155511578 Change-Id: Ib27bf33809c431b844e4443601813758c81d75e7 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2189915 Reviewed-by: mark a. foltz <mfoltz@chromium.org> Commit-Queue: Ryan Keane <rwkeane@google.com>
2020-05-07Discovery: Add Trace LoggingRyan Keane
Adds trace logging to the DNS-SD layer so that multiple calls with error codes can all be traced if multiple failures occur. Bug: b/155337599 Change-Id: Ic5ba146cf467895092ee6655213097bb0cf2fef2 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2182319 Commit-Queue: Ryan Keane <rwkeane@google.com> Reviewed-by: Jordan Bayles <jophba@chromium.org>
2020-05-07Rename util/logging.h to avoid collisionsJordan Bayles
Currently, the util/logging.h file causes build issues because other external repos have the same file. This patch fixes this bug by renaming our copy of logging.h to osp_logging.h, the same way we renamed DCHECK to OSP_DCHECK. Bug: b/155927492 Change-Id: I75ff546775bed01daeda2a631c06b4776e3829f1 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2186351 Reviewed-by: mark a. foltz <mfoltz@chromium.org>