Skip to content

Update ffi#7

Closed
VPRamon wants to merge 52 commits intomainfrom
update--ffi
Closed

Update ffi#7
VPRamon wants to merge 52 commits intomainfrom
update--ffi

Conversation

@VPRamon
Copy link
Copy Markdown
Member

@VPRamon VPRamon commented May 8, 2026

No description provided.

VPRamon and others added 30 commits February 19, 2026 17:12
- Introduced CMake configuration for building the tempoch C++ wrapper.
- Added submodule for tempoch-ffi.
- Implemented core classes: UTC, JulianDate, MJD, and Period with necessary methods.
- Created error handling mechanism for tempoch exceptions.
- Added example and test files demonstrating the usage of the API.
- Introduced Doxygen configuration files and updated CMakeLists.txt to enable documentation generation.
- Added a Dockerfile for building the project with Doxygen and other dependencies.
- Enhanced CI workflow to include C++ linting, documentation generation, and coverage reporting.
- Updated mainpage.md and period.hpp with additional documentation and error handling details.
- Updated exception constructors in ffi_core.hpp for consistent formatting.
- Enhanced check_status function for better readability and structure.
- Rearranged include directives in period.hpp and tempoch.hpp for clarity.
- Improved formatting and consistency in time.hpp, including UTC, JulianDate, and MJD classes.
- Updated test cases in main.cpp, test_period.cpp, and test_time.cpp for consistent formatting and improved readability.
- Updated submodule reference for qtty-cpp.
…arity

chore: update subproject commits for qtty-cpp and tempoch
feat: implement Time<S> class template and CivilTime struct; update t…
VPRamon and others added 22 commits February 28, 2026 20:09
feat: add FFI-backed time scales and conversion traits for various ti…
Add error handling classes and enhance CMake for Rust integration
- ffi_core.hpp: add PeriodListUnsortedError and PeriodListOverlappingError
  exception classes; handle status codes 9 and 10 in check_status()
- constants.hpp: new header with tempoch::constants:: namespace wrapping all
  11 named constant getter functions (j2000_jd_tt, eop_start_mjd, …)
- eop.hpp: new header with EopValues struct (std::optional fields replacing
  NaN sentinels) and eop_at() / eop_covers() free functions
- period.hpp: add Period::contains(), Period::union_with(),
  Period::complement_of() member functions; add validate_periods(),
  intersect_periods(), union_periods(), normalize_periods() free functions
- tempoch.hpp: update umbrella header to include constants.hpp and eop.hpp;
  update documentation comment
…ch crate

Add six numbered examples that mirror the tempoch Rust crate examples:
  01_quickstart     – UTC → TT, JD, MJD
  02_scales         – all scale conversions from J2000.0 TT
  03_formats        – constructor/accessor showcase for Time<S>
  04_periods        – complement, intersect, normalize, validate, contains
  06_runtime_tables – EOP table access, UT1 conversion, constants
  07_conversions    – full chain Unix → UTC → TAI → TT → TDB / UT1 / GPS

05_serde has no C++ equivalent (no JSON round-trip in the FFI), so it is
intentionally skipped to keep the numbering aligned with the Rust crate.

Remove the previous examples/time_example.cpp and examples/timescales.cpp,
which are superseded by the new series.

Update CMakeLists.txt to register the new targets via a foreach loop,
dropping the two now-deleted targets.
All 12 scale tag structs are now in tempoch::scales:: and named
without the Scale suffix:
  JDScale → scales::JD,  MJDScale → scales::MJD,
  TTScale → scales::TT,  TAIScale → scales::TAI,
  TDBScale → scales::TDB, TCGScale → scales::TCG,
  TCBScale → scales::TCB, GPSScale → scales::GPS,
  UTScale → scales::UT,  UTCScale → scales::UTC,
  JDEScale → scales::JDE, UnixTimeScale → scales::Unix

All TimeScaleTraits<>, ScaleIdOf<>, TimeTraits<>, and SFINAE
guards in time_base.hpp updated accordingly.  Type aliases in
time.hpp (JulianDate, TT, TAI, …) are unchanged in name.

Examples updated to use scales:: in .to<>() calls and drop
.value() from print statements in favour of operator<<.
…d clang-tidy

refactor: remove old CI scripts and integrate new build and test scripts
style: update .clang-format to increase column limit to 100
@VPRamon VPRamon self-assigned this May 8, 2026
@VPRamon VPRamon closed this May 8, 2026
@VPRamon VPRamon deleted the update--ffi branch May 8, 2026 23:45
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.

1 participant