From 8008dafead1c3da323a199d3233d7066b350eb34 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Sat, 7 Feb 2026 23:39:34 +0100 Subject: chore: ban AI from library. Signed-off-by: Amlal El Mahrouss --- CLAUDE.md | 109 -------------------------------------------------------------- 1 file changed, 109 deletions(-) delete mode 100644 CLAUDE.md 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 -- cgit v1.2.3