-
Notifications
You must be signed in to change notification settings - Fork 29
Documentation PRs? #35
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
Comments
@tphnicholas I believe LTP to be stable enough for documentation. My last update to LTP contained some optimizations as well as a new feature to allow the option to have sessions keep the Red Part session data on disk instead of memory (for long delays with high rates and many simultaneous sessions), which was pretty invasive to the code. There's currently no plans in the near term for any major updates, so any documentation PRs would be excellent and helpful! |
Would you prefer keeping the format of a short description per function + inline comments where the implementation could use some clarifications/details? As seen in: HDTN/common/ltp/src/LtpRandomNumberGenerator.cpp Lines 33 to 37 in 91eafd5
Or looking for something more structured and descriptive akin to doxygen-style comments? |
@tphnicholas The goal for documentation would be to have doxygen-style comments in the header files only. We definitely want both function comments as well as an overall Also, just curious how you heard about HDTN or what got you interested in the project. Thanks |
@briantomko Thanks for the example, should clear things up, I'll see to a PR for one of the smaller/less involved classes sometime in the next couple of days to get some reviewing going. The interest was coincidental, was reading up on communication through EM waves out of curiosity -> wondered what the variables in space comms were -> found DTN -> looked for an actively developed/maintained implementation -> found HDTN -> found your paper https://ntrs.nasa.gov/citations/20220011407 interesting. The goal for now is to become familiar with the implementation while reading through the RFCs for each layer of the stack, getting involved with documenting/refactoring would complement my learning and hopefully add some value to the project. |
@tphnicholas That's great to hear. As always, let me know if you have any questions with the code or the project. |
@briantomko In response to #37, if you have no additional requests/input on style/format, I can start working through the core LTP modules + any small utility classes they might be referencing, for a PR sometime in the following week. |
@tphnicholas The style/format looked good. As with the "Circular Index Buffer" class, if you see any functions that should be |
@briantomko Is If not, the docs based on the current state of the class are ready and will be included in the next PR regardless. |
@tphnicholas LtpTimerManager was difficult in that it had to be able to be deleted whether or not it had a timer within the external io_service. If the LtpTimerManager was deleted and then the timer completion callback got called, all the member variables would be considered deleted, so it must look at the heap allocated flag bound to its callback function to determine this. I couldn't think of a better way to solve this at the time. Always open to suggestions. |
@briantomko Alright, should be finishing up the LTP docs PR over the weekend, will keep |
@briantomko If explicitly-defined trivial destructors, copy/move constructors and copy/move assignment operators are left in for consistency, should I be explicitly defaulting them instead (with e.g. HDTN/common/ltp/src/LtpEngine.cpp Line 33 in 6b8d7ef
|
@tphnicholas Let's keep the behavior as-is for now. The memcpy there was to allow emplace construction from an array of bytes. Thanks |
@tphnicholas I'm looking to merge some LTP performance updates with a little refactoring to some of the functions. Just wondering if I should hold off until your branch is ready to merge so I can rebase on top of your branch and resolve conflicts? |
@briantomko I am just finishing up ~10 functions left for If they are changes to function logic and not overall class structure and only contained in a few functions, shouldn't be too much work rebasing and correcting the docs locally on my end if you are looking to push before that. |
@tphnicholas Thanks I will hold off and look for your PR today. |
@tphnicholas I rebased and pushed up my ltp updates.
to:
I haven't updated the docs to reflect that. |
@briantomko I will be keeping track of LTP changes and doc mismatches to eventually give it a second pass, now looking to get a high-level understanding of the HDTN modules and how they interact with each other to be able to run some of the examples/simulations, is the natural progression to start working upwards from What is the development status for the HDTN modules, specifically router, scheduler and storage? Any of those stable enough for docs? |
@tphnicholas Since LTP and the other convergence layers would sort of be the lowest level, the next level up would be:
in parallel to that:
The induct and outduct managers are definitely stable. The ingress and egress and storage modules (which communicate over ZeroMQ) are undergoing only slight modifications. |
@briantomko I'll see about setting up a simulation environment and starting on the documentation for the base in/outduct classes, the in/outduct_managers and the LTP in/outduct + bundle sink/source implementations this week, but should take some time since I need to review the relative RFCs and skim through the rest of the convergence layers. Would you like me to add some user-facing docs for |
@tphnicholas That would be great! thanks! |
How do you feel about documentation for the internals of the project's main components? Starting with LTP, while the RFCs cover the high-level logic, the implementation could perhaps benefit from some structured documentation to get up to speed quicker/make the impact of changes across shared state of sub-components more obvious.
Is the implementation/interface stable enough at this point for documentation to make sense?
If so, what's your input on structure/content?
The text was updated successfully, but these errors were encountered: