diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2026-02-07 23:39:34 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2026-02-07 23:39:34 +0100 |
| commit | 8008dafead1c3da323a199d3233d7066b350eb34 (patch) | |
| tree | 94eed2aa892fa1c98f20ea17d753233796f9fc01 | |
| parent | 5c3092e1436c7e7a1218559605bd73780435f8c8 (diff) | |
chore: ban AI from library.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
| -rw-r--r-- | CLAUDE.md | 109 |
1 files changed, 0 insertions, 109 deletions
diff --git a/CLAUDE.md b/CLAUDE.md deleted file mode 100644 index 550e6e6..0000000 --- a/CLAUDE.md +++ /dev/null @@ -1,109 +0,0 @@ -# CLAUDE.md - -This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. - -## Project Overview - -OCL.FIX is a C++20 library for parsing Financial Information Exchange (FIX) protocol messages. The library is part of the Open C++ Libraries (OCL) family and follows the Boost Software License. - -## Build System - -The project uses CMake as its build system. - -### Building the Library - -```bash -# Configure and build from project root -cmake -B build -cmake --build build - -# Install the library -cmake --install build -``` - -### Building and Running Tests - -Tests use Google Test and are located in `test/fix_basic/`: - -```bash -# Build and run all tests -cd test/fix_basic -cmake -B build -cmake --build build -cd build && ctest - -# Run specific test binary directly -./FIXTestBasic -``` - -### Building Examples - -```bash -cd example/fix_tag_example -cmake -B build -cmake --build build -./build/FixExample -``` - -## Architecture - -### Core Components - -1. **Parser (`include/ocl/fix/parser.hpp`, `src/fix/parser_impl.cpp`)** - - `ocl::fix::visitor`: The main parser class using the Pimpl idiom - - `ocl::fix::range_buffer`: Container for parsed FIX message tags and values - - `ocl::fix::range`: Buffer+Length structure for byte ranges - - FIX message format: SOH-delimited (0x01) tag=value pairs - -2. **Implementation Pattern** - - Uses Pimpl (Pointer to Implementation) idiom to hide implementation details - - `visitor::impl` is defined in `parser_impl.cpp` and forward-declared in the header - - Conditional compilation controlled by `OCL_FIX_HAS_IMPL` macro - - When `OCL_FIX_HAS_IMPL` is not defined, a stub `impl` struct is provided - -3. **FIX Message Parsing** - - Parses tag=value pairs separated by SOH (Start of Header, 0x01) character - - Tag "8" contains the FIX version (e.g., "FIX.4.2") - - `range_buffer::operator[]` retrieves values by tag number - - `range_buffer::is_valid()` checks if tag "8" exists - -### Dependencies - -- **OCL.Core**: Parent library providing `ocl/detail/config.hpp`, `ocl/crc_hash.hpp`, and `ocl/print.hpp` -- **Boost**: Required for `boost::string_view` and other utilities -- **C++20**: Required for language features - -### Directory Structure - -``` -include/ocl/fix/ # Public API headers - parser.hpp # Main parser interface - checksum.hpp # Checksum utilities (currently stub) - detail/config.hpp # Configuration and OCL dependencies -src/fix/ # Implementation - parser_impl.cpp # Parser implementation with Pimpl -test/fix_basic/ # Google Test unit tests -example/fix_tag_example/ # Example usage -``` - -## Development Notes - -### Code Style - -- C++20 standard enforced -- Includes `.clang-format` configuration -- Run `./format.sh` to format code - -### Working with the Parser - -When modifying the parser: -- Implementation goes in `src/fix/parser_impl.cpp` with `OCL_FIX_HAS_IMPL` defined -- Public API changes go in `include/ocl/fix/parser.hpp` -- The `visitor::impl` struct contains the actual parsing logic -- Remember to handle both the constructor initialization and the Pimpl pointer - -### Testing - -- Test files should verify both valid and invalid FIX messages -- Use constexpr character arrays with SOH (0x01) separators for test messages -- Verify tag retrieval returns correct values and empty strings for missing tags |
