Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add DataStreamDownload API #198

Merged
merged 46 commits into from
Mar 1, 2024
Merged

Add DataStreamDownload API #198

merged 46 commits into from
Mar 1, 2024

Conversation

corbin-phipps
Copy link
Contributor

Type

  • Bug fix
  • Feature addition
  • Feature update
  • Documentation
  • Build Infrastructure

Side Effects

  • Breaking change
  • Non-functional change

Goals

This PR adds the DataStreamDownload API.

Technical Details

  • Added DataStreamDownload API to NetRemoteDataStreamingService.proto and associated types to NetRemoteDataStream.proto.
  • Added API implementation to NetRemoteDataStreamingService.
  • Added DataStreamWriter implementation of gRPC ServerWriteReactor reactor class to NetRemoteDataStreamingReactors.
  • Added unit tests and client reactors to TestNetRemoteDataStreamingServiceClient and TestNetRemoteDataStreamingReactors.

Test Results

All tests pass.

Reviewer Focus

None.

Future Work

None.

Checklist

  • Build target all compiles cleanly.
  • clang-format and clang-tidy deltas produced no new output.
  • Newly added functions include doxygen-style comment block.

corbin-phipps and others added 30 commits February 27, 2024 23:12
…-memory-management

Use smart pointers for memory management
…-api

Add initial DataStreamDownload API implementation
…-improvements

DataStreamDownload API improvements
…ownload-stream

Add continuous download stream unit test
@corbin-phipps corbin-phipps requested a review from a team as a code owner March 1, 2024 05:50
Copy link
Contributor

@abeltrano abeltrano left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good, other than the Windows build failure. Can you take a look at that?
https://github.com/microsoft/netremote/actions/runs/8107181867/job/22158274829?pr=198

Also, there are some clang-tidy issues I'd like to get resolved before merging to develop. I'll send a PR to feature/dataStreaming with them, then we can integrate that here.

@corbin-phipps
Copy link
Contributor Author

This looks good, other than the Windows build failure. Can you take a look at that? https://github.com/microsoft/netremote/actions/runs/8107181867/job/22158274829?pr=198

Also, there are some clang-tidy issues I'd like to get resolved before merging to develop. I'll send a PR to feature/dataStreaming with them, then we can integrate that here.

Looks like std::uniform_int_distribution template can't use uint8_t or any 8-bit type

@abeltrano
Copy link
Contributor

Also, there are some clang-tidy issues I'd like to get resolved before merging to develop. I'll send a PR to feature/dataStreaming with them, then we can integrate that here.

#199

@abeltrano
Copy link
Contributor

This looks good, other than the Windows build failure. Can you take a look at that? https://github.com/microsoft/netremote/actions/runs/8107181867/job/22158274829?pr=198
Also, there are some clang-tidy issues I'd like to get resolved before merging to develop. I'll send a PR to feature/dataStreaming with them, then we can integrate that here.

Looks like std::uniform_int_distribution template can't use uint8_t or any 8-bit type

Do we ever need single-bytes? In my experience, using uint32_t for random data generation is good enough since you can truncate it to a uint8_t if necessary (just pick a random byte from the uint32_t).

@corbin-phipps
Copy link
Contributor Author

This looks good, other than the Windows build failure. Can you take a look at that? https://github.com/microsoft/netremote/actions/runs/8107181867/job/22158274829?pr=198
Also, there are some clang-tidy issues I'd like to get resolved before merging to develop. I'll send a PR to feature/dataStreaming with them, then we can integrate that here.

Looks like std::uniform_int_distribution template can't use uint8_t or any 8-bit type

Do we ever need single-bytes? In my experience, using uint32_t for random data generation is good enough since you can truncate it to a uint8_t if necessary (just pick a random byte from the uint32_t).

Since the data generated is a string, I was created one byte (char) at a time hence the use of uint8_t. In #200 I used uint32_t then casted to uint8_t

@corbin-phipps corbin-phipps merged commit 5477269 into develop Mar 1, 2024
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants