Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
d7c9306
Add sequential execution support for serial interface functions
Katze719 Jul 11, 2025
f4cba5b
Clarify documentation for sequential version retrieval
Katze719 Jul 11, 2025
6c01efc
Add Doxygen configuration and documentation workflow
Katze719 Jul 11, 2025
a4ec5c7
test action
Katze719 Jul 11, 2025
297ae70
Refactor mutex and condition variable naming in sequential dispatch
Katze719 Jul 11, 2025
d9283b1
Add support for per-handle queue mode in sequential dispatch
Katze719 Jul 12, 2025
23b87aa
Enhance documentation for sequential dispatch functions
Katze719 Jul 12, 2025
719cc5f
Refactor state and mutex variable names in sequential dispatch
Katze719 Jul 12, 2025
4aba221
Apply suggestion from @Mqxx
Katze719 Jul 14, 2025
af259f2
Remove deprecated sequential interface headers and related functions
Katze719 Jul 14, 2025
870d027
Add sequential header aggregation for serial interface
Katze719 Jul 14, 2025
ed6e960
Enhance documentation in sequential_dispatch.h
Katze719 Jul 14, 2025
653bedf
Update serial interface headers for improved organization
Katze719 Jul 14, 2025
7adaed4
Add serial_sequential header and refactor serial interface
Katze719 Jul 15, 2025
4f1c413
Refactor sequential interface to use new call mechanism
Katze719 Jul 16, 2025
9f12e63
Refactor serial_sequential header to aggregate sequential interface h…
Katze719 Jul 16, 2025
ab890f3
Update include/cpp_core/serial_sequential.h
Katze719 Jul 18, 2025
5122982
Remove deprecated `serial_sequential.h` header and update includes in…
Katze719 Jul 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 0 additions & 40 deletions .github/workflows/build.yml

This file was deleted.

48 changes: 48 additions & 0 deletions .github/workflows/doxygen.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: 'Generate & Deploy Doxygen Docs'

on:
push:
branches: [ main ]
paths:
- 'include/**'
- 'Doxyfile'
- '.github/workflows/doxygen.yml'
workflow_dispatch:

# Required for GitHub Pages deployment
permissions:
contents: write
pages: write
id-token: write

jobs:
build-docs:
runs-on: ubuntu-latest
name: 'Build Doxygen HTML'
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Install Doxygen + Graphviz
run: |
sudo apt-get update -qq
sudo apt-get install -y doxygen graphviz

- name: Generate documentation
run: |
doxygen -v
doxygen Doxyfile

- name: Upload Pages artifact
uses: actions/upload-pages-artifact@v3
with:
path: docs/html

deploy:
needs: build-docs
runs-on: ubuntu-latest
name: 'Deploy to GitHub Pages'
steps:
- name: Deploy
id: deployment
uses: actions/deploy-pages@v4
45 changes: 45 additions & 0 deletions Doxyfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
#--------------------------------------------------------------------------
# Doxyfile – generated for cpp-core
#--------------------------------------------------------------------------

# Project related --------------------------------------------------------
PROJECT_NAME = "cpp-core"
PROJECT_BRIEF = "Header-only C++ helper library"
PROJECT_NUMBER = "1.0"
OUTPUT_DIRECTORY = docs/html
CREATE_SUBDIRS = NO

# Build options ----------------------------------------------------------
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
EXTRACT_ANON_NSPACES = YES

# Source files -----------------------------------------------------------
INPUT = include README.md LICENSE
FILE_PATTERNS = *.h *.hpp *.md
RECURSIVE = YES

# HTML output ------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT = .
HTML_COLORSTYLE_HUE = 220
HTML_COLORSTYLE_SAT = 100
HTML_COLORSTYLE_GAMMA = 80

# Disable unwanted output -----------------------------------------------
GENERATE_LATEX = NO
GENERATE_MAN = NO
GENERATE_RTF = NO
GENERATE_XML = NO

# Diagrams --------------------------------------------------------------
HAVE_DOT = YES
DOT_IMAGE_FORMAT = svg
CALL_GRAPH = YES
CALLER_GRAPH = YES

# Misc ------------------------------------------------------------------
FULL_PATH_NAMES = NO
STRIP_FROM_PATH = include
GENERATE_TREEVIEW = YES
1 change: 1 addition & 0 deletions include/cpp_core.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
*/

#include "cpp_core/error_callback.h"
#include "cpp_core/interface/sequential.h"
#include "cpp_core/serial.h"
#include "cpp_core/status_codes.h"
#include "cpp_core/version.h"
18 changes: 18 additions & 0 deletions include/cpp_core/interface/sequential.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#pragma once

// Sequential wrappers
#include "sequential/serial_abort_read_sequential.h"
#include "sequential/serial_abort_write_sequential.h"
#include "sequential/serial_clear_buffer_in_sequential.h"
#include "sequential/serial_clear_buffer_out_sequential.h"
#include "sequential/serial_close_sequential.h"
#include "sequential/serial_drain_sequential.h"
#include "sequential/serial_in_bytes_total_sequential.h"
#include "sequential/serial_in_bytes_waiting_sequential.h"
#include "sequential/serial_out_bytes_total_sequential.h"
#include "sequential/serial_out_bytes_waiting_sequential.h"
#include "sequential/serial_read_line_sequential.h"
#include "sequential/serial_read_sequential.h"
#include "sequential/serial_read_until_sequence_sequential.h"
#include "sequential/serial_read_until_sequential.h"
#include "sequential/serial_write_sequential.h"
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#pragma once

#include "../../error_callback.h"
#include "../../internal/sequential/call.h"
#include "../serial_abort_read.h"

#ifdef __cplusplus
extern "C"
{
#endif

/**
* @copydoc serialAbortRead
* @note Sequential variant: guarantees execution in the exact order the calls were made across threads.
*/
inline MODULE_API auto serialAbortReadSequential(
int64_t handle,
ErrorCallbackT error_callback = nullptr
) -> int
{
return cpp_core::internal::sequential::call(handle, [=] { return serialAbortRead(handle, error_callback); });
}

#ifdef __cplusplus
}
#endif
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#pragma once

#include "../../error_callback.h"
#include "../../internal/sequential/call.h"
#include "../serial_abort_write.h"

#ifdef __cplusplus
extern "C"
{
#endif

/**
* @copydoc serialAbortWrite
* @note Sequential variant: guarantees execution in the exact order the calls were made across threads.
*/
inline MODULE_API auto serialAbortWriteSequential(
int64_t handle,
ErrorCallbackT error_callback = nullptr
) -> int
{
return cpp_core::internal::sequential::call(handle, [=] { return serialAbortWrite(handle, error_callback); });
}

#ifdef __cplusplus
}
#endif
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#pragma once

#include "../../error_callback.h"
#include "../../internal/sequential/call.h"
#include "../serial_clear_buffer_in.h"

#ifdef __cplusplus
extern "C"
{
#endif

/**
* @copydoc serialClearBufferIn
* @note Sequential variant: guarantees execution in the exact order the calls were made across threads.
*/
inline MODULE_API auto serialClearBufferInSequential(
int64_t handle,
ErrorCallbackT error_callback = nullptr
) -> int
{
return cpp_core::internal::sequential::call(handle, [=] {
return serialClearBufferIn(handle, error_callback);
});
}

#ifdef __cplusplus
}
#endif
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#pragma once

#include "../../error_callback.h"
#include "../../internal/sequential/call.h"
#include "../serial_clear_buffer_out.h"

#ifdef __cplusplus
extern "C"
{
#endif

/**
* @copydoc serialClearBufferOut
* @note Sequential variant: guarantees execution in the exact order the calls were made across threads.
*/
inline MODULE_API auto serialClearBufferOutSequential(
int64_t handle,
ErrorCallbackT error_callback = nullptr
) -> int
{
return cpp_core::internal::sequential::call(handle, [=] {
return serialClearBufferOut(handle, error_callback);
});
}

#ifdef __cplusplus
}
#endif
26 changes: 26 additions & 0 deletions include/cpp_core/interface/sequential/serial_close_sequential.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#pragma once

#include "../../error_callback.h"
#include "../../internal/sequential/call.h"
#include "../serial_close.h"

#ifdef __cplusplus
extern "C"
{
#endif

/**
* @copydoc serialClose
* @note Sequential variant: guarantees execution in the exact order the calls were made across threads.
*/
inline MODULE_API auto serialCloseSequential(
int64_t handle,
ErrorCallbackT error_callback = nullptr
) -> int
{
return cpp_core::internal::sequential::call(handle, [=] { return serialClose(handle, error_callback); });
}

#ifdef __cplusplus
}
#endif
26 changes: 26 additions & 0 deletions include/cpp_core/interface/sequential/serial_drain_sequential.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#pragma once

#include "../../error_callback.h"
#include "../../internal/sequential/call.h"
#include "../serial_drain.h"

#ifdef __cplusplus
extern "C"
{
#endif

/**
* @copydoc serialDrain
* @note Sequential variant: guarantees execution in the exact order the calls were made across threads.
*/
inline MODULE_API auto serialDrainSequential(
int64_t handle,
ErrorCallbackT error_callback = nullptr
) -> int
{
return cpp_core::internal::sequential::call(handle, [=] { return serialDrain(handle, error_callback); });
}

#ifdef __cplusplus
}
#endif
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#pragma once

#include "../../error_callback.h"
#include "../../internal/sequential/call.h"
#include "../serial_in_bytes_total.h"

#ifdef __cplusplus
extern "C"
{
#endif

/**
* @copydoc serialInBytesTotal
* @note Sequential variant: guarantees execution in the exact order the calls were made across threads.
*/
inline MODULE_API auto serialInBytesTotalSequential(
int64_t handle,
ErrorCallbackT error_callback = nullptr
) -> int64_t
{
return cpp_core::internal::sequential::call(handle, [=] { return serialInBytesTotal(handle, error_callback); });
}

#ifdef __cplusplus
}
#endif
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#pragma once

#include "../../error_callback.h"
#include "../../internal/sequential/call.h"
#include "../serial_in_bytes_waiting.h"

#ifdef __cplusplus
extern "C"
{
#endif

/**
* @copydoc serialInBytesWaiting
* @note Sequential variant: guarantees execution in the exact order the calls were made across threads.
*/
inline MODULE_API auto serialInBytesWaitingSequential(
int64_t handle,
ErrorCallbackT error_callback = nullptr
) -> int
{
return cpp_core::internal::sequential::call(handle, [=] {
return serialInBytesWaiting(handle, error_callback);
});
}

#ifdef __cplusplus
}
#endif
Loading