mirror of
https://github.com/slsdetectorgroup/aare.git
synced 2025-06-13 07:47:13 +02:00
Compare commits
152 Commits
2024.10.28
...
developer_
Author | SHA1 | Date | |
---|---|---|---|
403d10b668 | |||
246ac90f71 | |||
4760648d87 | |||
4f184ddf40 | |||
68dcfca74e | |||
5b7ab5a810 | |||
1dd361a343 | |||
fed362e843 | |||
91a628cd6c | |||
9637d0602f | |||
70acfbf4ac | |||
a4850892e0 | |||
23849338e6 | |||
1d0de6876e | |||
28d7e8c07a | |||
9dfd388927 | |||
eb7108b837 | |||
04a2272937 | |||
f7b3ef2cdc | |||
abf364765c | |||
2ebbd0d7cd | |||
111b421476 | |||
74be5b5c7c | |||
260cb96f64 | |||
530feca830 | |||
bfb59d650b | |||
ea17a640cf | |||
0755de309e | |||
59b04ad6e8 | |||
a48820059d | |||
a2499c96d6 | |||
cd46f59b99 | |||
598e9f6708 | |||
2f23e4610d | |||
3c58039502 | |||
818ad608d9 | |||
35d2b274f4 | |||
47cf462f3d | |||
f772434072 | |||
bb7459d36b | |||
9e96f8b150 | |||
76c0f7a757 | |||
2e4eec0c8a | |||
8627f5e97b | |||
b02feceb2c | |||
31a20d4f6c | |||
23c855acbc | |||
0efee0c96d | |||
0aafde730e | |||
77785fa89b | |||
d80ea2269f | |||
3f83e37e6b | |||
166a78a2a5 | |||
9413efa9e5 | |||
70b0ae2ae8 | |||
6644406535 | |||
faf2714a60 | |||
670d9415e6 | |||
f6e2d358f9 | |||
d196eb5a2e | |||
e59940aa01 | |||
a6c0879de7 | |||
390ceb02d8 | |||
9854500a6f | |||
e534cc0f25 | |||
0a6030aa3e | |||
449c5119a4 | |||
643ea39670 | |||
d87855004f | |||
04cbe9924e | |||
6e8cf179c7 | |||
f848c00799 | |||
130f6746e3 | |||
d07f867630 | |||
dc9fb51a89 | |||
0973580670 | |||
bf216f55c6 | |||
937acd1138 | |||
e280742a6c | |||
7e913b3385 | |||
aa60a434e9 | |||
251f08767b | |||
4ff34a22d3 | |||
d0151153fb | |||
23658764a0 | |||
50e606bb8b | |||
bbaeeebaef | |||
0932869b4c | |||
eb2b093130 | |||
cffe020a6f | |||
e7bf408a21 | |||
9ae051c081 | |||
3c8130aca2 | |||
136829f70a | |||
4ff2e18c6a | |||
c7ee7f3af4 | |||
783c355784 | |||
2d5b28d500 | |||
e33e6546b0 | |||
e42cb6e8ff | |||
0e3e2df899 | |||
dfd25f1993 | |||
72e3b58c09 | |||
cca9c5249d | |||
e04d1e28f9 | |||
c1ddb84bc0 | |||
0891e66bbe | |||
cd905e96f3 | |||
b096cf8dd3 | |||
4da9bc0813 | |||
5f8d8a8c0b | |||
954db79c36 | |||
9380fd1be8 | |||
609c754b23 | |||
3fee6b792d | |||
c38b46df59 | |||
fd0bbf8170 | |||
c4c88c50d1 | |||
25d282717c | |||
5173f26bf8 | |||
565cad0fca | |||
765bbdc295 | |||
ea8efa64b2 | |||
b8cd465a12 | |||
e8f81e618d | |||
dec072c090 | |||
dfb298aaeb | |||
bc5c40d13b | |||
146d2aed19 | |||
47d381d299 | |||
0d552d6f75 | |||
1f56374496 | |||
ef61e62238 | |||
52865930c2 | |||
44d6ff6d2e | |||
5690a61284 | |||
22fb8763be | |||
1b7ea707ae | |||
49ebaf5c81 | |||
f62cc229f9 | |||
1bffa4a86d | |||
b0ce167471 | |||
137c29c52e | |||
2bc6e16887 | |||
315bf6eb5d | |||
a6ff0fc794 | |||
9906c5886c | |||
718682aec8 | |||
66f87b0f51 | |||
079d519e96 | |||
d720a8e338 | |||
2e466c7a73 |
BIN
.CMakeLists.txt.swp
Normal file
BIN
.CMakeLists.txt.swp
Normal file
Binary file not shown.
7
.clang-format
Normal file
7
.clang-format
Normal file
@ -0,0 +1,7 @@
|
||||
BasedOnStyle: LLVM
|
||||
IndentWidth: 4
|
||||
|
||||
UseTab: Never
|
||||
ColumnLimit: 120
|
||||
AlignConsecutiveAssignments: false
|
||||
AlignConsecutiveMacros: true
|
57
.clang-tidy
Normal file
57
.clang-tidy
Normal file
@ -0,0 +1,57 @@
|
||||
---
|
||||
Checks: '*,
|
||||
-abseil-*
|
||||
-readability-magic-numbers,
|
||||
-misc-include-cleaner,
|
||||
-cppcoreguidelines-avoid-magic-numbers,
|
||||
-cppcoreguidelines-owning-memory,
|
||||
-bugprone-easily-swappable-parameters,
|
||||
-cppcoreguidelines-non-private-member-variables-in-classes,
|
||||
-cppcoreguidelines-special-member-functions,
|
||||
-hicpp-special-member-functions,
|
||||
-cert-err33-c,
|
||||
-modernize-pass-by-value,
|
||||
-altera-*,
|
||||
-android-cloexec-fopen,
|
||||
-cppcoreguidelines-pro-bounds-array-to-pointer-decay,
|
||||
-cppcoreguidelines-pro-bounds-pointer-arithmetic,
|
||||
-fuchsia*,
|
||||
-readability-else-after-return,
|
||||
-readability-avoid-const-params-in-decls,
|
||||
-readability-identifier-length,
|
||||
-cppcoreguidelines-pro-bounds-constant-array-index,
|
||||
-cppcoreguidelines-pro-type-reinterpret-cast,
|
||||
-llvm-header-guard,
|
||||
-modernize-use-nodiscard,
|
||||
-misc-non-private-member-variables-in-classes,
|
||||
-readability-static-accessed-through-instance,
|
||||
-readability-braces-around-statements,
|
||||
-readability-isolate-declaration,
|
||||
-readability-implicit-bool-conversion,
|
||||
-readability-identifier-length,
|
||||
-readability-identifier-naming,
|
||||
-hicpp-signed-bitwise,
|
||||
-hicpp-no-array-decay,
|
||||
-hicpp-braces-around-statements,
|
||||
-google-runtime-references,
|
||||
-google-readability-todo,
|
||||
-google-readability-braces-around-statements,
|
||||
-modernize-use-trailing-return-type,
|
||||
-llvmlibc-*
|
||||
'
|
||||
|
||||
HeaderFilterRegex: '*.hpp'
|
||||
ImplementationFileExtensions: [cpp]
|
||||
AnalyzeTemporaryDtors: false
|
||||
WarningsAsErrors: '*,
|
||||
-bugprone-implicit-widening-of-multiplication-result'
|
||||
FormatStyle: none
|
||||
CheckOptions:
|
||||
- { key: readability-identifier-naming.NamespaceCase, value: lower_case }
|
||||
# - { key: readability-identifier-naming.FunctionCase, value: lower_case }
|
||||
- { key: readability-identifier-naming.ClassCase, value: CamelCase }
|
||||
# - { key: readability-identifier-naming.MethodCase, value: CamelCase }
|
||||
# - { key: readability-identifier-naming.StructCase, value: CamelCase }
|
||||
# - { key: readability-identifier-naming.VariableCase, value: lower_case }
|
||||
- { key: readability-identifier-naming.GlobalConstantCase, value: UPPER_CASE }
|
||||
...
|
103
.clang-uml
Normal file
103
.clang-uml
Normal file
@ -0,0 +1,103 @@
|
||||
compilation_database_dir: ./build
|
||||
output_directory: docs/diagrams
|
||||
|
||||
diagrams:
|
||||
aare_class:
|
||||
type: class
|
||||
using_namespace: aare
|
||||
include:
|
||||
namespaces:
|
||||
- aare
|
||||
exclude:
|
||||
element_types:
|
||||
- enum
|
||||
access:
|
||||
- private
|
||||
- protected
|
||||
- public
|
||||
glob:
|
||||
- core/src/*.cpp
|
||||
- file_io/src/*.cpp
|
||||
- network_io/src/*.cpp
|
||||
- utils/src/*.cpp
|
||||
|
||||
aare_class_simplified:
|
||||
type: class
|
||||
using_namespace: aare
|
||||
include:
|
||||
context:
|
||||
- match:
|
||||
radius: 1
|
||||
pattern: aare::FileInterface
|
||||
- match:
|
||||
radius: 2
|
||||
pattern: aare::ZmqSocket
|
||||
- match:
|
||||
radius: 2
|
||||
pattern: aare::Frame
|
||||
namespaces:
|
||||
- aare
|
||||
exclude:
|
||||
elements:
|
||||
- aare::xy
|
||||
element_types:
|
||||
- enum
|
||||
access:
|
||||
- private
|
||||
- protected
|
||||
- public
|
||||
glob:
|
||||
- core/src/*.cpp
|
||||
- file_io/src/*.cpp
|
||||
- network_io/src/*.cpp
|
||||
- utils/src/*.cpp
|
||||
|
||||
# aare_package:
|
||||
# type: package
|
||||
# package_type: directory
|
||||
|
||||
# include:
|
||||
# paths:
|
||||
# - core
|
||||
# - file_io
|
||||
# - network_io
|
||||
# - utils
|
||||
# - tests
|
||||
|
||||
file_io_class:
|
||||
type: class
|
||||
# generate_packages: true
|
||||
# package_type: directory
|
||||
include:
|
||||
context:
|
||||
- aare::FileInterface
|
||||
- aare::File
|
||||
namespaces:
|
||||
- aare
|
||||
# relationships:
|
||||
# - inheritance
|
||||
|
||||
glob:
|
||||
- file_io/src/*.cpp
|
||||
|
||||
network_io_class:
|
||||
type: class
|
||||
include:
|
||||
paths:
|
||||
- network_io/include/aare/network_io/*.hpp
|
||||
- core/include/aare/core/Frame.hpp
|
||||
namespaces:
|
||||
- aare
|
||||
glob:
|
||||
- network_io/src/*.cpp
|
||||
|
||||
core_class:
|
||||
type: class
|
||||
include:
|
||||
paths:
|
||||
- core/include/aare/core/*.hpp
|
||||
namespaces:
|
||||
- aare
|
||||
glob:
|
||||
- core/src/*.cpp
|
||||
|
2814
.doxygen.config
Normal file
2814
.doxygen.config
Normal file
File diff suppressed because it is too large
Load Diff
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
@ -0,0 +1 @@
|
||||
*.ipynb -linguist-detectable
|
98
.github/workflows/common-workflow.yml
vendored
Normal file
98
.github/workflows/common-workflow.yml
vendored
Normal file
@ -0,0 +1,98 @@
|
||||
name: Build and run tests
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
use-system-libraries: # the variable you can use in place of a matrix
|
||||
required: true
|
||||
type: string
|
||||
default: OFF
|
||||
build-type:
|
||||
required: true
|
||||
type: string
|
||||
default: Debug
|
||||
use-python-bindings:
|
||||
required: true
|
||||
type: string
|
||||
default: OFF
|
||||
os:
|
||||
required: true
|
||||
type: string
|
||||
default: ubuntu-latest
|
||||
|
||||
jobs:
|
||||
build-and-test:
|
||||
name: "Build and test[os: ${{ inputs.os }}, build-type: ${{ inputs.build-type }}, use-system-libraries: ${{ inputs.use-system-libraries }}, use-python-bindings: ${{ inputs.use-python-bindings }}]"
|
||||
runs-on: ${{ inputs.os }}
|
||||
steps:
|
||||
- name: Dump GitHub context
|
||||
env:
|
||||
GITHUB_CONTEXT: ${{ toJson(github) }}
|
||||
JOB_CONTEXT: ${{ toJson(job) }}
|
||||
STEPS_CONTEXT: ${{ toJson(steps) }}
|
||||
RUNNER_CONTEXT: ${{ toJson(runner) }}
|
||||
run: |
|
||||
echo "$GITHUB_CONTEXT"
|
||||
echo "$JOB_CONTEXT"
|
||||
echo "$STEPS_CONTEXT"
|
||||
echo "$RUNNER_CONTEXT"
|
||||
echo "The job_id is: $GITHUB_JOB" # reference the default environment variables
|
||||
echo "The id of this action is: $GITHUB_ACTION" # reference the default environment variables
|
||||
echo "The run id is: $GITHUB_RUN_ID"
|
||||
echo "The GitHub Actor's username is: $GITHUB_ACTOR"
|
||||
echo "GitHub SHA: $GITHUB_SHA"
|
||||
|
||||
- name: print inputs
|
||||
run: |
|
||||
echo "use-system-libraries: ${{inputs.use-system-libraries}}"
|
||||
echo "build-type: ${{inputs.build-type}}"
|
||||
echo "use-python-bindings: ${{inputs.use-python-bindings}}"
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- uses: mamba-org/setup-micromamba@v1
|
||||
if: ${{ contains(inputs.use-system-libraries, 'ON')}}
|
||||
with:
|
||||
micromamba-version: '1.5.6-0' # any version from https://github.com/mamba-org/micromamba-releases
|
||||
environment-file: aare-environment.yml
|
||||
init-shell: bash
|
||||
cache-environment: true
|
||||
post-cleanup: 'all'
|
||||
|
||||
- name: build
|
||||
shell: bash -el {0}
|
||||
run: |
|
||||
mkdir build
|
||||
cd build
|
||||
cmake .. -DCMAKE_BUILD_TYPE=${{inputs.build-type}} -DAARE_PYTHON_BINDINGS=${{inputs.use-python-bindings}} -DAARE_SYSTEM_LIBRARIES=${{inputs.use-system-libraries}}
|
||||
cmake --build . -j
|
||||
- name: run tests
|
||||
run: |
|
||||
cd build/
|
||||
./run_tests
|
||||
if: ${{ inputs.os != 'windows-latest' }}
|
||||
- name: run tests
|
||||
run: |
|
||||
cd build/
|
||||
dir
|
||||
cd Debug/
|
||||
dir
|
||||
start run_tests.exe
|
||||
# start /B /WAIT "run_tests.exe"
|
||||
if: ${{ inputs.os == 'windows-latest' }}
|
||||
- name: run examples
|
||||
if: ${{ inputs.os != 'windows-latest' }}
|
||||
# find all examples in build/examples and run them
|
||||
run: |
|
||||
pwd
|
||||
export AARE_ROOT_DIR="$PWD"
|
||||
ls build/examples/*_example
|
||||
# examples to run
|
||||
cd build/examples
|
||||
examples=(raw_example json_example logger_example multiport_example mythen_example)
|
||||
examples+=(numpy_read_example numpy_write_example)
|
||||
for example in "${examples[@]}"; do
|
||||
echo "Running example: $example"
|
||||
./$example
|
||||
done
|
||||
|
||||
|
||||
|
33
.github/workflows/config.yml
vendored
Normal file
33
.github/workflows/config.yml
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
# config file to run multiple jobs in parallel with matrix strategy
|
||||
name: Config Workflow
|
||||
|
||||
on:
|
||||
push:
|
||||
|
||||
jobs:
|
||||
build-and-test:
|
||||
strategy:
|
||||
# super important if you want to see all results, even if one fails
|
||||
# fail-fast is true by default
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: ["macos-latest", "ubuntu-latest", "windows-latest"]
|
||||
build-type: ["Release", "Debug"]
|
||||
use-system-libraries: ["ON", "OFF"]
|
||||
use-python-bindings: ["OFF", "ON"]
|
||||
exclude:
|
||||
# excludes combinations that are not supported
|
||||
- os: "windows-latest"
|
||||
build-type: "Release" # TODO: fix this
|
||||
- os: "windows-latest"
|
||||
build-type: "Debug"
|
||||
use-system-libraries: "ON" # different _ITERATOR_DEBUG_LEVEL for system libraries
|
||||
|
||||
uses: ./.github/workflows/common-workflow.yml # calls the one above
|
||||
with:
|
||||
use-system-libraries: ${{ matrix.use-system-libraries }}
|
||||
build-type: ${{ matrix.build-type }}
|
||||
use-python-bindings: ${{ matrix.use-python-bindings }}
|
||||
os: ${{ matrix.os }}
|
||||
secrets: inherit
|
||||
|
20
.gitignore
vendored
Normal file
20
.gitignore
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
.vscode
|
||||
.env
|
||||
.env.dev
|
||||
.cproject
|
||||
.project
|
||||
bin/
|
||||
.settings
|
||||
*.aux
|
||||
*.log
|
||||
*.out
|
||||
*.toc
|
||||
*.o
|
||||
*.so
|
||||
build/**
|
||||
RELEASE.txt
|
||||
Testing/
|
||||
|
||||
*.pyc
|
||||
*/__pycache__/*
|
||||
|
6
.ipynb_checkpoints/Untitled-checkpoint.ipynb
Normal file
6
.ipynb_checkpoints/Untitled-checkpoint.ipynb
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"cells": [],
|
||||
"metadata": {},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
255
CMakeLists.txt
Normal file
255
CMakeLists.txt
Normal file
@ -0,0 +1,255 @@
|
||||
cmake_minimum_required(VERSION 3.12)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17) #TODO! Global or per target?
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
|
||||
project(aare
|
||||
VERSION 0.1
|
||||
DESCRIPTION "Data processing library for PSI detectors"
|
||||
HOMEPAGE_URL "https://github.com/slsdetectorgroup/aare"
|
||||
LANGUAGES C CXX
|
||||
)
|
||||
|
||||
cmake_policy(SET CMP0135 NEW)
|
||||
cmake_policy(SET CMP0079 NEW)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
include(FetchContent)
|
||||
|
||||
#Set default build type if none was specified
|
||||
include(cmake/helpers.cmake)
|
||||
default_build_type("Release")
|
||||
|
||||
option(AARE_USE_WARNINGS "Enable warnings" ON)
|
||||
option(AARE_PYTHON_BINDINGS "Build python bindings" ON)
|
||||
option(AARE_TESTS "Build tests" ON)
|
||||
option(AARE_EXAMPLES "Build examples" ON)
|
||||
option(AARE_IN_GITHUB_ACTIONS "Running in Github Actions" OFF)
|
||||
|
||||
option(AARE_FETCH_FMT "Use FetchContent to download fmt" ON)
|
||||
option(AARE_FETCH_PYBIND11 "Use FetchContent to download pybind11" ON)
|
||||
option(AARE_FETCH_CATCH "Use FetchContent to download catch2" ON)
|
||||
option(AARE_FETCH_JSON "Use FetchContent to download nlohmann::json" ON)
|
||||
option(AARE_FETCH_ZMQ "Use FetchContent to download libzmq" ON)
|
||||
option(ENABLE_DRAFTS "Enable zmq drafts (depends on gnutls or nss)" OFF)
|
||||
|
||||
|
||||
#Convenience option to use system libraries
|
||||
option(AARE_SYSTEM_LIBRARIES "Use system libraries" OFF)
|
||||
if(AARE_SYSTEM_LIBRARIES)
|
||||
message(STATUS "Build using system libraries")
|
||||
set(AARE_FETCH_FMT OFF CACHE BOOL "Disabled FetchContent for FMT" FORCE)
|
||||
set(AARE_FETCH_PYBIND11 OFF CACHE BOOL "Disabled FetchContent for pybind11" FORCE)
|
||||
set(AARE_FETCH_CATCH OFF CACHE BOOL "Disabled FetchContent for catch2" FORCE)
|
||||
set(AARE_FETCH_JSON OFF CACHE BOOL "Disabled FetchContent for nlohmann::json" FORCE)
|
||||
set(AARE_FETCH_ZMQ OFF CACHE BOOL "Disabled FetchContent for libzmq" FORCE)
|
||||
|
||||
endif()
|
||||
|
||||
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
|
||||
if(AARE_FETCH_ZMQ)
|
||||
|
||||
FetchContent_Declare(
|
||||
libzmq
|
||||
GIT_REPOSITORY https://github.com/zeromq/libzmq.git
|
||||
GIT_TAG v4.3.4
|
||||
)
|
||||
# TODO! Verify that this is what we want to do in aare
|
||||
# Using GetProperties and Populate to be able to exclude zmq
|
||||
# from install (not possible with FetchContent_MakeAvailable(libzmq))
|
||||
FetchContent_GetProperties(libzmq)
|
||||
if(NOT libzmq_POPULATED)
|
||||
FetchContent_Populate(libzmq)
|
||||
add_subdirectory(${libzmq_SOURCE_DIR} ${libzmq_BINARY_DIR} EXCLUDE_FROM_ALL)
|
||||
endif()
|
||||
|
||||
else()
|
||||
find_package(ZeroMQ 4 REQUIRED)
|
||||
endif()
|
||||
|
||||
|
||||
if (AARE_FETCH_FMT)
|
||||
set(FMT_TEST OFF CACHE INTERNAL "disabling fmt tests")
|
||||
FetchContent_Declare(
|
||||
fmt
|
||||
GIT_REPOSITORY https://github.com/fmtlib/fmt.git
|
||||
GIT_TAG 10.2.1
|
||||
GIT_PROGRESS TRUE
|
||||
USES_TERMINAL_DOWNLOAD TRUE
|
||||
)
|
||||
FetchContent_MakeAvailable(fmt)
|
||||
set_property(TARGET fmt PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
else()
|
||||
find_package(fmt 6 REQUIRED)
|
||||
endif()
|
||||
|
||||
|
||||
add_library(aare_compiler_flags INTERFACE)
|
||||
target_compile_features(aare_compiler_flags INTERFACE cxx_std_17)
|
||||
|
||||
#################
|
||||
# MSVC specific #
|
||||
#################
|
||||
if(MSVC)
|
||||
add_compile_definitions(AARE_MSVC)
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Release")
|
||||
message(STATUS "Release build")
|
||||
target_compile_options(aare_compiler_flags INTERFACE /O2)
|
||||
else()
|
||||
message(STATUS "Debug build")
|
||||
target_compile_options(
|
||||
aare_compiler_flags
|
||||
INTERFACE
|
||||
/Od
|
||||
/Zi
|
||||
/MDd
|
||||
/D_ITERATOR_DEBUG_LEVEL=2
|
||||
)
|
||||
target_link_options(
|
||||
aare_compiler_flags
|
||||
INTERFACE
|
||||
/DEBUG:FULL
|
||||
)
|
||||
endif()
|
||||
target_compile_options(
|
||||
aare_compiler_flags
|
||||
INTERFACE
|
||||
/w # disable warnings
|
||||
)
|
||||
|
||||
|
||||
else()
|
||||
######################
|
||||
# GCC/Clang specific #
|
||||
######################
|
||||
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Release")
|
||||
message(STATUS "Release build")
|
||||
target_compile_options(aare_compiler_flags INTERFACE -O3)
|
||||
else()
|
||||
message(STATUS "Debug build")
|
||||
target_compile_options(
|
||||
aare_compiler_flags
|
||||
INTERFACE
|
||||
-Og
|
||||
-ggdb3
|
||||
# -D_GLIBCXX_DEBUG # causes errors with boost
|
||||
-D_GLIBCXX_DEBUG_PEDANTIC
|
||||
)
|
||||
|
||||
if (NOT AARE_PYTHON_BINDINGS)
|
||||
target_compile_options(
|
||||
aare_compiler_flags
|
||||
INTERFACE
|
||||
-fdiagnostics-parseable-fixits
|
||||
# -fdiagnostics-generate-patch
|
||||
-fdiagnostics-show-template-tree
|
||||
-fsanitize=address,undefined,pointer-compare
|
||||
-fno-sanitize-recover
|
||||
# -D_FORTIFY_SOURCE=2 # not needed for debug builds
|
||||
# -fstack-protector # cause errors wih folly? (ProducerConsumerQueue.hpp)
|
||||
-fno-omit-frame-pointer
|
||||
)
|
||||
|
||||
target_link_libraries(
|
||||
aare_compiler_flags
|
||||
INTERFACE
|
||||
-fdiagnostics-parseable-fixits
|
||||
# -fdiagnostics-generate-patch
|
||||
-fdiagnostics-show-template-tree
|
||||
-fsanitize=address,undefined,pointer-compare
|
||||
-fno-sanitize-recover
|
||||
# -D_FORTIFY_SOURCE=2
|
||||
-fno-omit-frame-pointer
|
||||
)
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
||||
if(AARE_USE_WARNINGS)
|
||||
target_compile_options(
|
||||
aare_compiler_flags
|
||||
INTERFACE
|
||||
-Wall
|
||||
-Wextra
|
||||
-pedantic
|
||||
-Wshadow
|
||||
-Wnon-virtual-dtor
|
||||
-Woverloaded-virtual
|
||||
-Wdouble-promotion
|
||||
-Wformat=2
|
||||
-Wredundant-decls
|
||||
-Wvla
|
||||
-Wdouble-promotion
|
||||
-Werror=return-type #important can cause segfault in optimzed builds
|
||||
)
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
endif() #GCC/Clang specific
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if(AARE_TESTS)
|
||||
enable_testing()
|
||||
add_subdirectory(tests)
|
||||
endif()
|
||||
|
||||
add_subdirectory(src)
|
||||
|
||||
|
||||
#Overall target to link to when using the library
|
||||
add_library(aare INTERFACE)
|
||||
target_link_libraries(aare INTERFACE core file_io utils network_io processing aare_compiler_flags)
|
||||
target_include_directories(aare INTERFACE
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
||||
$<INSTALL_INTERFACE:include>
|
||||
)
|
||||
|
||||
add_subdirectory(examples)
|
||||
|
||||
|
||||
|
||||
|
||||
# custom target to run check formatting with clang-format
|
||||
add_custom_target(
|
||||
check-format
|
||||
COMMAND find \( -name "*.cpp" -o -name "*.hpp" \) -not -path "./build/*" | xargs -I {} -n 1 -P 10 bash -c "clang-format -Werror -style=\"file:.clang-format\" {} | diff {} -"
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
COMMENT "Checking code formatting with clang-format"
|
||||
VERBATIM
|
||||
|
||||
)
|
||||
|
||||
add_custom_target(
|
||||
format-files
|
||||
COMMAND find \( -name "*.cpp" -o -name "*.hpp" \) -not -path "./build/*" | xargs -I {} -n 1 -P 10 bash -c "clang-format -i -style=\"file:.clang-format\" {}"
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
COMMENT "Formatting with clang-format"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
if (AARE_IN_GITHUB_ACTIONS)
|
||||
message(STATUS "Running in Github Actions")
|
||||
set(CLANG_TIDY_COMMAND "clang-tidy-17")
|
||||
else()
|
||||
set(CLANG_TIDY_COMMAND "clang-tidy")
|
||||
endif()
|
||||
|
||||
add_custom_target(
|
||||
clang-tidy
|
||||
COMMAND find \( -path "./src/*" -a -not -path "./src/python/*" -a \( -name "*.cpp" -not -name "*.test.cpp"\) \) -not -name "CircularFifo.hpp" -not -name "ProducerConsumerQueue.hpp" -not -name "VariableSizeClusterFinder.hpp" | xargs -I {} -n 1 -P 10 bash -c "${CLANG_TIDY_COMMAND} --config-file=.clang-tidy -p build {}"
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
COMMENT "linting with clang-tidy"
|
||||
VERBATIM
|
||||
)
|
||||
|
17
COPYING
Normal file
17
COPYING
Normal file
@ -0,0 +1,17 @@
|
||||
The Aare Package is provided under:
|
||||
|
||||
SPDX-License-Identifier: LGPL-3.0-or-later
|
||||
|
||||
Being under the terms of the GNU Lesser General Public License version 3 or later,
|
||||
according with:
|
||||
|
||||
LICENSES/LGPL-3.0
|
||||
|
||||
Source code under the Apache 2.0 License have the SPDX Identifier and are
|
||||
according with:
|
||||
|
||||
LICENSES/ThirdParty/Apache-2.0
|
||||
|
||||
All contributions to the Aare Package are subject to this COPYING file.
|
||||
|
||||
|
688
LICENSES/GPL-3.0
Normal file
688
LICENSES/GPL-3.0
Normal file
@ -0,0 +1,688 @@
|
||||
Valid-License-Identifier: GPL-3.0
|
||||
Valid-License-Identifier: GPL-3.0+
|
||||
SPDX-URL: https://spdx.org/licenses/GPL-3.0-or-later.html
|
||||
Usage-Guide:
|
||||
To use this license in source code, put one of the following SPDX
|
||||
tag/value pairs into a comment according to the placement
|
||||
guidelines in the licensing rules documentation.
|
||||
For 'GNU Library General Public License (LGPL) version 3.0 only' use:
|
||||
SPDX-License-Identifier: GPL-3.0
|
||||
For 'GNU Library General Public License (LGPL) version 3.0 or any later
|
||||
version' use:
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
License-Text:
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Use with the GNU Affero General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<https://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<https://www.gnu.org/licenses/why-not-lgpl.html>.
|
179
LICENSES/LGPL-3.0
Normal file
179
LICENSES/LGPL-3.0
Normal file
@ -0,0 +1,179 @@
|
||||
Valid-License-Identifier: LGPL-3.0
|
||||
Valid-License-Identifier: LGPL-3.0+
|
||||
SPDX-URL: https://spdx.org/licenses/LGPL-3.0-or-later.html
|
||||
Usage-Guide:
|
||||
To use this license in source code, put one of the following SPDX
|
||||
tag/value pairs into a comment according to the placement
|
||||
guidelines in the licensing rules documentation.
|
||||
For 'GNU Library General Public License (LGPL) version 3.0 only' use:
|
||||
SPDX-License-Identifier: LGPL-3.0
|
||||
For 'GNU Library General Public License (LGPL) version 3.0 or any later
|
||||
version' use:
|
||||
SPDX-License-Identifier: LGPL-3.0-or-later
|
||||
License-Text:
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
||||
This version of the GNU Lesser General Public License incorporates
|
||||
the terms and conditions of version 3 of the GNU General Public
|
||||
License, supplemented by the additional permissions listed below.
|
||||
|
||||
0. Additional Definitions.
|
||||
|
||||
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||
General Public License.
|
||||
|
||||
"The Library" refers to a covered work governed by this License,
|
||||
other than an Application or a Combined Work as defined below.
|
||||
|
||||
An "Application" is any work that makes use of an interface provided
|
||||
by the Library, but which is not otherwise based on the Library.
|
||||
Defining a subclass of a class defined by the Library is deemed a mode
|
||||
of using an interface provided by the Library.
|
||||
|
||||
A "Combined Work" is a work produced by combining or linking an
|
||||
Application with the Library. The particular version of the Library
|
||||
with which the Combined Work was made is also called the "Linked
|
||||
Version".
|
||||
|
||||
The "Minimal Corresponding Source" for a Combined Work means the
|
||||
Corresponding Source for the Combined Work, excluding any source code
|
||||
for portions of the Combined Work that, considered in isolation, are
|
||||
based on the Application, and not on the Linked Version.
|
||||
|
||||
The "Corresponding Application Code" for a Combined Work means the
|
||||
object code and/or source code for the Application, including any data
|
||||
and utility programs needed for reproducing the Combined Work from the
|
||||
Application, but excluding the System Libraries of the Combined Work.
|
||||
|
||||
1. Exception to Section 3 of the GNU GPL.
|
||||
|
||||
You may convey a covered work under sections 3 and 4 of this License
|
||||
without being bound by section 3 of the GNU GPL.
|
||||
|
||||
2. Conveying Modified Versions.
|
||||
|
||||
If you modify a copy of the Library, and, in your modifications, a
|
||||
facility refers to a function or data to be supplied by an Application
|
||||
that uses the facility (other than as an argument passed when the
|
||||
facility is invoked), then you may convey a copy of the modified
|
||||
version:
|
||||
|
||||
a) under this License, provided that you make a good faith effort to
|
||||
ensure that, in the event an Application does not supply the
|
||||
function or data, the facility still operates, and performs
|
||||
whatever part of its purpose remains meaningful, or
|
||||
|
||||
b) under the GNU GPL, with none of the additional permissions of
|
||||
this License applicable to that copy.
|
||||
|
||||
3. Object Code Incorporating Material from Library Header Files.
|
||||
|
||||
The object code form of an Application may incorporate material from
|
||||
a header file that is part of the Library. You may convey such object
|
||||
code under terms of your choice, provided that, if the incorporated
|
||||
material is not limited to numerical parameters, data structure
|
||||
layouts and accessors, or small macros, inline functions and templates
|
||||
(ten or fewer lines in length), you do both of the following:
|
||||
|
||||
a) Give prominent notice with each copy of the object code that the
|
||||
Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
4. Combined Works.
|
||||
|
||||
You may convey a Combined Work under terms of your choice that,
|
||||
taken together, effectively do not restrict modification of the
|
||||
portions of the Library contained in the Combined Work and reverse
|
||||
engineering for debugging such modifications, if you also do each of
|
||||
the following:
|
||||
|
||||
a) Give prominent notice with each copy of the Combined Work that
|
||||
the Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
c) For a Combined Work that displays copyright notices during
|
||||
execution, include the copyright notice for the Library among
|
||||
these notices, as well as a reference directing the user to the
|
||||
copies of the GNU GPL and this license document.
|
||||
|
||||
d) Do one of the following:
|
||||
|
||||
0) Convey the Minimal Corresponding Source under the terms of this
|
||||
License, and the Corresponding Application Code in a form
|
||||
suitable for, and under terms that permit, the user to
|
||||
recombine or relink the Application with a modified version of
|
||||
the Linked Version to produce a modified Combined Work, in the
|
||||
manner specified by section 6 of the GNU GPL for conveying
|
||||
Corresponding Source.
|
||||
|
||||
1) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (a) uses at run time
|
||||
a copy of the Library already present on the user's computer
|
||||
system, and (b) will operate properly with a modified version
|
||||
of the Library that is interface-compatible with the Linked
|
||||
Version.
|
||||
|
||||
e) Provide Installation Information, but only if you would otherwise
|
||||
be required to provide such information under section 6 of the
|
||||
GNU GPL, and only to the extent that such information is
|
||||
necessary to install and execute a modified version of the
|
||||
Combined Work produced by recombining or relinking the
|
||||
Application with a modified version of the Linked Version. (If
|
||||
you use option 4d0, the Installation Information must accompany
|
||||
the Minimal Corresponding Source and Corresponding Application
|
||||
Code. If you use option 4d1, you must provide the Installation
|
||||
Information in the manner specified by section 6 of the GNU GPL
|
||||
for conveying Corresponding Source.)
|
||||
|
||||
5. Combined Libraries.
|
||||
|
||||
You may place library facilities that are a work based on the
|
||||
Library side by side in a single library together with other library
|
||||
facilities that are not Applications and are not covered by this
|
||||
License, and convey such a combined library under terms of your
|
||||
choice, if you do both of the following:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work based
|
||||
on the Library, uncombined with any other library facilities,
|
||||
conveyed under the terms of this License.
|
||||
|
||||
b) Give prominent notice with the combined library that part of it
|
||||
is a work based on the Library, and explaining where to find the
|
||||
accompanying uncombined form of the same work.
|
||||
|
||||
6. Revised Versions of the GNU Lesser General Public License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions
|
||||
of the GNU Lesser General Public License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Library as you received it specifies that a certain numbered version
|
||||
of the GNU Lesser General Public License "or any later version"
|
||||
applies to it, you have the option of following the terms and
|
||||
conditions either of that published version or of any later version
|
||||
published by the Free Software Foundation. If the Library as you
|
||||
received it does not specify a version number of the GNU Lesser
|
||||
General Public License, you may choose any version of the GNU Lesser
|
||||
General Public License ever published by the Free Software Foundation.
|
||||
|
||||
If the Library as you received it specifies that a proxy can decide
|
||||
whether future versions of the GNU Lesser General Public License shall
|
||||
apply, that proxy's public statement of acceptance of any version is
|
||||
permanent authorization for you to choose that version for the
|
||||
Library.
|
210
LICENSES/Third Party/Apache-2.0
Normal file
210
LICENSES/Third Party/Apache-2.0
Normal file
@ -0,0 +1,210 @@
|
||||
Valid-License-Identifier: Apache-2.0
|
||||
SPDX-URL: https://spdx.org/licenses/Apache-2.0.html
|
||||
Usage-Guide:
|
||||
To use this license in source code, put one of the following SPDX
|
||||
tag/value pairs into a comment according to the placement
|
||||
guidelines in the licensing rules documentation.
|
||||
SPDX-License-Identifier: Apache-2.0
|
||||
License-Text:
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
75
README.md
75
README.md
@ -1,2 +1,77 @@
|
||||
# aare
|
||||
Data analysis library for PSI hybrid detectors
|
||||
|
||||
|
||||
|
||||
|
||||
## Folder structure
|
||||
|
||||
| Folder | subfolder | Content |
|
||||
|----------|---------------|-------------------------------------|
|
||||
| include/ | aare/ | top level header/s |
|
||||
| core/ | include/ | public headers for core |
|
||||
| | src/ | source files and non public headers |
|
||||
|
||||
## file_io class diagram
|
||||

|
||||
|
||||
|
||||
|
||||
## Test the zmq socket with a detector simulator
|
||||
|
||||
**1. Download and build the slsDetectorPackage**
|
||||
|
||||
```bash
|
||||
git clone https://github.com/slsdetectorgroup/slsDetectorPackage.git --branch=8.0.1 #or the desired branch
|
||||
cd slsDetectorPackage
|
||||
mkdir build && cd build
|
||||
cmake .. -DSLS_USE_SIMULATOR=ON
|
||||
make -j8 #or your number of cores
|
||||
```
|
||||
|
||||
**2. Launch the slsReceiver**
|
||||
```bash
|
||||
bin/slsReceiver
|
||||
```
|
||||
|
||||
**3. Launch the virtual server**
|
||||
```bash
|
||||
bin/jungfrauDetectorServer_virtual
|
||||
```
|
||||
|
||||
**4 Configure the detector simulator**
|
||||
|
||||
```bash
|
||||
#sample config file is in etc/ in the aare repo
|
||||
sls_detector_put config etc/virtual_jf.config
|
||||
|
||||
#Now you can take images using sls_detector_acquire
|
||||
sls_detector_acquire
|
||||
```
|
||||
|
||||
**5. Run the zmq example**
|
||||
```bash
|
||||
examples/zmq_example
|
||||
|
||||
#Will print the headers fof the frames received
|
||||
|
||||
```
|
||||
|
||||
|
||||
## Test the zmq processing replaying data
|
||||
|
||||
To be implemented
|
||||
|
||||
## generate documentation
|
||||
```bash
|
||||
# for doxygen documentation
|
||||
doxygen .doxygen.config
|
||||
|
||||
# for automatically generated plant uml diagrams
|
||||
clang-uml
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
```
|
10
aare-environment.yml
Normal file
10
aare-environment.yml
Normal file
@ -0,0 +1,10 @@
|
||||
name: aare
|
||||
channels:
|
||||
- conda-forge
|
||||
- defaults
|
||||
dependencies:
|
||||
- fmt
|
||||
- pybind11
|
||||
- nlohmann_json # should be removed
|
||||
- catch2
|
||||
- zeromq
|
1
cmake/.gitignore
vendored
Normal file
1
cmake/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
|
6
cmake/helpers.cmake
Normal file
6
cmake/helpers.cmake
Normal file
@ -0,0 +1,6 @@
|
||||
function(default_build_type val)
|
||||
if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
||||
message(STATUS "No build type selected, default to Release")
|
||||
set(CMAKE_BUILD_TYPE ${val} CACHE STRING "Build type (default ${val})" FORCE)
|
||||
endif()
|
||||
endfunction()
|
BIN
data/clusters/beam_En700eV_-40deg_300V_10us_d0_f0_100.clust
Executable file
BIN
data/clusters/beam_En700eV_-40deg_300V_10us_d0_f0_100.clust
Executable file
Binary file not shown.
BIN
data/clusters/single_frame_97_clustrers.clust
Executable file
BIN
data/clusters/single_frame_97_clustrers.clust
Executable file
Binary file not shown.
BIN
data/clusters/test_writing.clust
Normal file
BIN
data/clusters/test_writing.clust
Normal file
Binary file not shown.
BIN
data/eiger/eiger_500k_16bit_d0_f0_0.raw
Normal file
BIN
data/eiger/eiger_500k_16bit_d0_f0_0.raw
Normal file
Binary file not shown.
BIN
data/eiger/eiger_500k_16bit_d1_f0_0.raw
Normal file
BIN
data/eiger/eiger_500k_16bit_d1_f0_0.raw
Normal file
Binary file not shown.
BIN
data/eiger/eiger_500k_16bit_d2_f0_0.raw
Normal file
BIN
data/eiger/eiger_500k_16bit_d2_f0_0.raw
Normal file
Binary file not shown.
BIN
data/eiger/eiger_500k_16bit_d3_f0_0.raw
Normal file
BIN
data/eiger/eiger_500k_16bit_d3_f0_0.raw
Normal file
Binary file not shown.
53
data/eiger/eiger_500k_16bit_master_0.json
Normal file
53
data/eiger/eiger_500k_16bit_master_0.json
Normal file
@ -0,0 +1,53 @@
|
||||
{
|
||||
"Version": 7.2,
|
||||
"Timestamp": "Tue Mar 26 17:24:02 2024",
|
||||
"Detector Type": "Eiger",
|
||||
"Timing Mode": "auto",
|
||||
"Geometry": {
|
||||
"x": 2,
|
||||
"y": 2
|
||||
},
|
||||
"Image Size in bytes": 262144,
|
||||
"Pixels": {
|
||||
"x": 512,
|
||||
"y": 256
|
||||
},
|
||||
"Max Frames Per File": 10000,
|
||||
"Frame Discard Policy": "nodiscard",
|
||||
"Frame Padding": 1,
|
||||
"Scan Parameters": "[disabled]",
|
||||
"Total Frames": 3,
|
||||
"Receiver Roi": {
|
||||
"xmin": 4294967295,
|
||||
"xmax": 4294967295,
|
||||
"ymin": 4294967295,
|
||||
"ymax": 4294967295
|
||||
},
|
||||
"Dynamic Range": 16,
|
||||
"Ten Giga": 0,
|
||||
"Exptime": "5s",
|
||||
"Period": "1s",
|
||||
"Threshold Energy": -1,
|
||||
"Sub Exptime": "2.62144ms",
|
||||
"Sub Period": "2.62144ms",
|
||||
"Quad": 0,
|
||||
"Number of rows": 256,
|
||||
"Rate Corrections": "[0, 0]",
|
||||
"Frames in File": 3,
|
||||
"Frame Header Format": {
|
||||
"Frame Number": "8 bytes",
|
||||
"SubFrame Number/ExpLength": "4 bytes",
|
||||
"Packet Number": "4 bytes",
|
||||
"Bunch ID": "8 bytes",
|
||||
"Timestamp": "8 bytes",
|
||||
"Module Id": "2 bytes",
|
||||
"Row": "2 bytes",
|
||||
"Column": "2 bytes",
|
||||
"Reserved": "2 bytes",
|
||||
"Debug": "4 bytes",
|
||||
"Round Robin Number": "2 bytes",
|
||||
"Detector Type": "1 byte",
|
||||
"Header Version": "1 byte",
|
||||
"Packets Caught Mask": "64 bytes"
|
||||
}
|
||||
}
|
BIN
data/eiger/eiger_500k_32bit_d0_f0_0.raw
Normal file
BIN
data/eiger/eiger_500k_32bit_d0_f0_0.raw
Normal file
Binary file not shown.
BIN
data/eiger/eiger_500k_32bit_d1_f0_0.raw
Normal file
BIN
data/eiger/eiger_500k_32bit_d1_f0_0.raw
Normal file
Binary file not shown.
BIN
data/eiger/eiger_500k_32bit_d2_f0_0.raw
Normal file
BIN
data/eiger/eiger_500k_32bit_d2_f0_0.raw
Normal file
Binary file not shown.
BIN
data/eiger/eiger_500k_32bit_d3_f0_0.raw
Normal file
BIN
data/eiger/eiger_500k_32bit_d3_f0_0.raw
Normal file
Binary file not shown.
53
data/eiger/eiger_500k_32bit_master_0.json
Normal file
53
data/eiger/eiger_500k_32bit_master_0.json
Normal file
@ -0,0 +1,53 @@
|
||||
{
|
||||
"Version": 7.2,
|
||||
"Timestamp": "Tue Mar 26 17:24:34 2024",
|
||||
"Detector Type": "Eiger",
|
||||
"Timing Mode": "auto",
|
||||
"Geometry": {
|
||||
"x": 2,
|
||||
"y": 2
|
||||
},
|
||||
"Image Size in bytes": 524288,
|
||||
"Pixels": {
|
||||
"x": 512,
|
||||
"y": 256
|
||||
},
|
||||
"Max Frames Per File": 10000,
|
||||
"Frame Discard Policy": "nodiscard",
|
||||
"Frame Padding": 1,
|
||||
"Scan Parameters": "[disabled]",
|
||||
"Total Frames": 3,
|
||||
"Receiver Roi": {
|
||||
"xmin": 4294967295,
|
||||
"xmax": 4294967295,
|
||||
"ymin": 4294967295,
|
||||
"ymax": 4294967295
|
||||
},
|
||||
"Dynamic Range": 32,
|
||||
"Ten Giga": 0,
|
||||
"Exptime": "5s",
|
||||
"Period": "1s",
|
||||
"Threshold Energy": -1,
|
||||
"Sub Exptime": "2.62144ms",
|
||||
"Sub Period": "2.62144ms",
|
||||
"Quad": 0,
|
||||
"Number of rows": 256,
|
||||
"Rate Corrections": "[0, 0]",
|
||||
"Frames in File": 3,
|
||||
"Frame Header Format": {
|
||||
"Frame Number": "8 bytes",
|
||||
"SubFrame Number/ExpLength": "4 bytes",
|
||||
"Packet Number": "4 bytes",
|
||||
"Bunch ID": "8 bytes",
|
||||
"Timestamp": "8 bytes",
|
||||
"Module Id": "2 bytes",
|
||||
"Row": "2 bytes",
|
||||
"Column": "2 bytes",
|
||||
"Reserved": "2 bytes",
|
||||
"Debug": "4 bytes",
|
||||
"Round Robin Number": "2 bytes",
|
||||
"Detector Type": "1 byte",
|
||||
"Header Version": "1 byte",
|
||||
"Packets Caught Mask": "64 bytes"
|
||||
}
|
||||
}
|
BIN
data/jungfrau/jungfrau_double_d0_f0_0.raw
Normal file
BIN
data/jungfrau/jungfrau_double_d0_f0_0.raw
Normal file
Binary file not shown.
BIN
data/jungfrau/jungfrau_double_d0_f1_0.raw
Normal file
BIN
data/jungfrau/jungfrau_double_d0_f1_0.raw
Normal file
Binary file not shown.
BIN
data/jungfrau/jungfrau_double_d0_f2_0.raw
Normal file
BIN
data/jungfrau/jungfrau_double_d0_f2_0.raw
Normal file
Binary file not shown.
BIN
data/jungfrau/jungfrau_double_d0_f3_0.raw
Normal file
BIN
data/jungfrau/jungfrau_double_d0_f3_0.raw
Normal file
Binary file not shown.
BIN
data/jungfrau/jungfrau_double_d1_f0_0.raw
Normal file
BIN
data/jungfrau/jungfrau_double_d1_f0_0.raw
Normal file
Binary file not shown.
BIN
data/jungfrau/jungfrau_double_d1_f1_0.raw
Normal file
BIN
data/jungfrau/jungfrau_double_d1_f1_0.raw
Normal file
Binary file not shown.
BIN
data/jungfrau/jungfrau_double_d1_f2_0.raw
Normal file
BIN
data/jungfrau/jungfrau_double_d1_f2_0.raw
Normal file
Binary file not shown.
BIN
data/jungfrau/jungfrau_double_d1_f3_0.raw
Normal file
BIN
data/jungfrau/jungfrau_double_d1_f3_0.raw
Normal file
Binary file not shown.
47
data/jungfrau/jungfrau_double_master_0.json
Normal file
47
data/jungfrau/jungfrau_double_master_0.json
Normal file
@ -0,0 +1,47 @@
|
||||
{
|
||||
"Version": 7.2,
|
||||
"Timestamp": "Tue Feb 20 08:29:19 2024",
|
||||
"Detector Type": "Jungfrau",
|
||||
"Timing Mode": "auto",
|
||||
"Geometry": {
|
||||
"x": 1,
|
||||
"y": 2
|
||||
},
|
||||
"Image Size in bytes": 524288,
|
||||
"Pixels": {
|
||||
"x": 1024,
|
||||
"y": 256
|
||||
},
|
||||
"Max Frames Per File": 3,
|
||||
"Frame Discard Policy": "nodiscard",
|
||||
"Frame Padding": 1,
|
||||
"Scan Parameters": "[disabled]",
|
||||
"Total Frames": 10,
|
||||
"Receiver Roi": {
|
||||
"xmin": 4294967295,
|
||||
"xmax": 4294967295,
|
||||
"ymin": 4294967295,
|
||||
"ymax": 4294967295
|
||||
},
|
||||
"Exptime": "10us",
|
||||
"Period": "1ms",
|
||||
"Number of UDP Interfaces": 2,
|
||||
"Number of rows": 512,
|
||||
"Frames in File": 10,
|
||||
"Frame Header Format": {
|
||||
"Frame Number": "8 bytes",
|
||||
"SubFrame Number/ExpLength": "4 bytes",
|
||||
"Packet Number": "4 bytes",
|
||||
"Bunch ID": "8 bytes",
|
||||
"Timestamp": "8 bytes",
|
||||
"Module Id": "2 bytes",
|
||||
"Row": "2 bytes",
|
||||
"Column": "2 bytes",
|
||||
"Reserved": "2 bytes",
|
||||
"Debug": "4 bytes",
|
||||
"Round Robin Number": "2 bytes",
|
||||
"Detector Type": "1 byte",
|
||||
"Header Version": "1 byte",
|
||||
"Packets Caught Mask": "64 bytes"
|
||||
}
|
||||
}
|
BIN
data/jungfrau/jungfrau_single_0.npy
Normal file
BIN
data/jungfrau/jungfrau_single_0.npy
Normal file
Binary file not shown.
BIN
data/jungfrau/jungfrau_single_d0_f0_0.raw
Normal file
BIN
data/jungfrau/jungfrau_single_d0_f0_0.raw
Normal file
Binary file not shown.
BIN
data/jungfrau/jungfrau_single_d0_f1_0.raw
Normal file
BIN
data/jungfrau/jungfrau_single_d0_f1_0.raw
Normal file
Binary file not shown.
BIN
data/jungfrau/jungfrau_single_d0_f2_0.raw
Normal file
BIN
data/jungfrau/jungfrau_single_d0_f2_0.raw
Normal file
Binary file not shown.
BIN
data/jungfrau/jungfrau_single_d0_f3_0.raw
Normal file
BIN
data/jungfrau/jungfrau_single_d0_f3_0.raw
Normal file
Binary file not shown.
47
data/jungfrau/jungfrau_single_master_0.json
Normal file
47
data/jungfrau/jungfrau_single_master_0.json
Normal file
@ -0,0 +1,47 @@
|
||||
{
|
||||
"Version": 7.2,
|
||||
"Timestamp": "Tue Feb 20 08:28:24 2024",
|
||||
"Detector Type": "Jungfrau",
|
||||
"Timing Mode": "auto",
|
||||
"Geometry": {
|
||||
"x": 1,
|
||||
"y": 1
|
||||
},
|
||||
"Image Size in bytes": 1048576,
|
||||
"Pixels": {
|
||||
"x": 1024,
|
||||
"y": 512
|
||||
},
|
||||
"Max Frames Per File": 3,
|
||||
"Frame Discard Policy": "nodiscard",
|
||||
"Frame Padding": 1,
|
||||
"Scan Parameters": "[disabled]",
|
||||
"Total Frames": 10,
|
||||
"Receiver Roi": {
|
||||
"xmin": 4294967295,
|
||||
"xmax": 4294967295,
|
||||
"ymin": 4294967295,
|
||||
"ymax": 4294967295
|
||||
},
|
||||
"Exptime": "10us",
|
||||
"Period": "1ms",
|
||||
"Number of UDP Interfaces": 1,
|
||||
"Number of rows": 512,
|
||||
"Frames in File": 10,
|
||||
"Frame Header Format": {
|
||||
"Frame Number": "8 bytes",
|
||||
"SubFrame Number/ExpLength": "4 bytes",
|
||||
"Packet Number": "4 bytes",
|
||||
"Bunch ID": "8 bytes",
|
||||
"Timestamp": "8 bytes",
|
||||
"Module Id": "2 bytes",
|
||||
"Row": "2 bytes",
|
||||
"Column": "2 bytes",
|
||||
"Reserved": "2 bytes",
|
||||
"Debug": "4 bytes",
|
||||
"Round Robin Number": "2 bytes",
|
||||
"Detector Type": "1 byte",
|
||||
"Header Version": "1 byte",
|
||||
"Packets Caught Mask": "64 bytes"
|
||||
}
|
||||
}
|
50
data/jungfrau/read_frame.py
Normal file
50
data/jungfrau/read_frame.py
Normal file
@ -0,0 +1,50 @@
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
plt.ion()
|
||||
|
||||
header_dt = np.dtype(
|
||||
[
|
||||
("Frame Number", "u8"),
|
||||
("SubFrame Number/ExpLength", "u4"),
|
||||
("Packet Number", "u4"),
|
||||
("Bunch ID", "u8"),
|
||||
("Timestamp", "u8"),
|
||||
("Module Id", "u2"),
|
||||
("Row", "u2"),
|
||||
("Column", "u2"),
|
||||
("Reserved", "u2"),
|
||||
("Debug", "u4"),
|
||||
("Round Robin Number", "u2"),
|
||||
("Detector Type", "u1"),
|
||||
("Header Version", "u1"),
|
||||
("Packets caught mask", "8u8")
|
||||
]
|
||||
)
|
||||
|
||||
# Read three frames from a jungfrau file with a single interface
|
||||
rows = 1024
|
||||
cols = 512
|
||||
frames = 1
|
||||
|
||||
data = np.zeros((frames,rows,cols), dtype = np.uint16)
|
||||
header = np.zeros(frames, dtype = header_dt)
|
||||
for frame in range(frames):
|
||||
|
||||
file_name = '/tmp/raw_example_writing_master_'
|
||||
print("Reading file:", file_name)
|
||||
with open(file_name) as f:
|
||||
for i in range(3 if file_id != 3 else 1):
|
||||
header[i+file_id*3] = np.fromfile(f, dtype=header_dt, count = 1)
|
||||
data[i+file_id*3] = np.fromfile(f, dtype=np.uint16,count = rows*cols).reshape(rows,cols)
|
||||
|
||||
|
||||
# for i in range(frames if file_id != 3 else 1 ):
|
||||
# print("frame:",i)
|
||||
# print(header[i][0,0],data[i][0,1],data[i][1,0],data[i][rows-1,cols-1])
|
||||
# print("")
|
||||
|
||||
|
||||
print(header[1]["Frame Number"])
|
||||
#fig, ax = plt.subplots()
|
||||
#im = ax.imshow(data[0])
|
||||
#im.set_clim(2000,4000)
|
87
data/jungfrau/read_multiport.py
Normal file
87
data/jungfrau/read_multiport.py
Normal file
@ -0,0 +1,87 @@
|
||||
import numpy as np
|
||||
|
||||
header_dt = np.dtype(
|
||||
[
|
||||
("Frame Number", "u8"),
|
||||
("SubFrame Number/ExpLength", "u4"),
|
||||
("Packet Number", "u4"),
|
||||
("Bunch ID", "u8"),
|
||||
("Timestamp", "u8"),
|
||||
("Module Id", "u2"),
|
||||
("Row", "u2"),
|
||||
("Column", "u2"),
|
||||
("Reserved", "u2"),
|
||||
("Debug", "u4"),
|
||||
("Round Robin Number", "u2"),
|
||||
("Detector Type", "u1"),
|
||||
("Header Version", "u1"),
|
||||
("Packets caught mask", "8u8")
|
||||
]
|
||||
)
|
||||
|
||||
# Read three frames from a jungfrau file with a single interface
|
||||
|
||||
frames = 10
|
||||
parts = 2
|
||||
frame_per_file = 3
|
||||
bytes_per_pixel = 2
|
||||
frame_cols = 1024
|
||||
frame_rows = 512
|
||||
|
||||
part_cols = 1024
|
||||
part_rows = 256
|
||||
|
||||
|
||||
parts_data = np.zeros((frames,parts,part_rows,part_cols), dtype = np.uint16)
|
||||
data = np.zeros((frames,frame_rows,frame_cols), dtype = np.uint16)
|
||||
header = np.zeros((frames,parts), dtype = header_dt)
|
||||
|
||||
|
||||
|
||||
# verify that all parts have the same frame number
|
||||
for frame in range(frames):
|
||||
for part in range(parts):
|
||||
file_name = f'jungfrau_double_d{part}_f{frame//frame_per_file}_{0}.raw'
|
||||
with open(file_name) as f:
|
||||
offset = (frame%frame_per_file)*(header_dt.itemsize+part_rows*part_cols*bytes_per_pixel)
|
||||
# print(f"Reading file: {file_name} at offset {offset}")
|
||||
header[frame,part] = np.fromfile(f, dtype=header_dt, count = 1,offset=offset)
|
||||
# print(f"Frame {frame} part {part} frame number: {header[frame,part]['Frame Number']}")
|
||||
if part > 0:
|
||||
assert header[frame,part]['Frame Number'] == header[frame,0]['Frame Number']
|
||||
|
||||
print("[X] All parts have the same frame number\n")
|
||||
|
||||
|
||||
for frame in range(frames):
|
||||
|
||||
for part in range(parts):
|
||||
file_name = f'jungfrau_double_d{part}_f{frame//frame_per_file}_{0}.raw'
|
||||
# print("Reading file:", file_name)
|
||||
with open(file_name) as f:
|
||||
offset = (frame%frame_per_file)*(header_dt.itemsize+part_rows*part_cols*bytes_per_pixel)
|
||||
header[frame,part] = np.fromfile(f, dtype=header_dt, count = 1, offset=offset)
|
||||
parts_data[frame,part] = np.fromfile(f, dtype=np.uint16,count = part_rows*part_cols).reshape(part_rows,part_cols)
|
||||
|
||||
|
||||
data[frame] = np.concatenate((parts_data[frame,0],parts_data[frame,1]),axis=0)
|
||||
|
||||
|
||||
|
||||
pixel_0_0,pixel_0_1,pixel_1_0,pixel_255_1023,pixel_511_1023,= [],[],[],[],[]
|
||||
for frame in range(frames):
|
||||
pixel_0_0.append(data[frame,0,0])
|
||||
pixel_0_1.append(data[frame,0,1])
|
||||
pixel_1_0.append(data[frame,1,0])
|
||||
pixel_255_1023.append(data[frame,255,1023])
|
||||
pixel_511_1023.append(data[frame,511,1023])
|
||||
print("upper left corner of each frame (pixel_0_0)")
|
||||
print(pixel_0_0)
|
||||
print("first pixel on new line of each frame (pixel_1_0)")
|
||||
print(pixel_1_0)
|
||||
print("second pixel of the first line of each frame (pixel_0_1)")
|
||||
print(pixel_0_1)
|
||||
print("first pixel of the second part on the last line of each frame (pixel_255_1023)")
|
||||
print(pixel_255_1023)
|
||||
print("lower right corner of each frame (pixel_511_1023)")
|
||||
print(pixel_511_1023)
|
BIN
data/moench/moench04_noise_200V_sto_both_100us_no_light_thresh_900_d0_f0_0.raw
Executable file
BIN
data/moench/moench04_noise_200V_sto_both_100us_no_light_thresh_900_d0_f0_0.raw
Executable file
Binary file not shown.
@ -0,0 +1,40 @@
|
||||
Version : 6.4
|
||||
TimeStamp : Wed Aug 31 09:08:49 2022
|
||||
|
||||
Detector Type : ChipTestBoard
|
||||
Timing Mode : auto
|
||||
Geometry : [1, 1]
|
||||
Image Size : 360000 bytes
|
||||
Pixels : [96, 1]
|
||||
Max Frames Per File : 20000
|
||||
Frame Discard Policy : nodiscard
|
||||
Frame Padding : 1
|
||||
Scan Parameters : [disabled]
|
||||
Total Frames : 100
|
||||
Exptime : 100us
|
||||
Period : 4ms
|
||||
Ten Giga : 1
|
||||
ADC Mask : 0xffffffff
|
||||
Analog Flag : 1
|
||||
Analog Samples : 5000
|
||||
Digital Flag : 1
|
||||
Digital Samples : 5000
|
||||
Dbit Offset : 0
|
||||
Dbit Bitset : 0
|
||||
Frames in File : 100
|
||||
|
||||
#Frame Header
|
||||
Frame Number : 8 bytes
|
||||
SubFrame Number/ExpLength : 4 bytes
|
||||
Packet Number : 4 bytes
|
||||
Bunch ID : 8 bytes
|
||||
Timestamp : 8 bytes
|
||||
Module Id : 2 bytes
|
||||
Row : 2 bytes
|
||||
Column : 2 bytes
|
||||
Reserved : 2 bytes
|
||||
Debug : 4 bytes
|
||||
Round Robin Number : 2 bytes
|
||||
Detector Type : 1 byte
|
||||
Header Version : 1 byte
|
||||
Packets Caught Mask : 64 bytes
|
BIN
data/mythen/CORRECTED_scan242_d0_f0_3.raw
Normal file
BIN
data/mythen/CORRECTED_scan242_d0_f0_3.raw
Normal file
Binary file not shown.
BIN
data/mythen/CORRECTED_scan242_d1_f0_3.raw
Normal file
BIN
data/mythen/CORRECTED_scan242_d1_f0_3.raw
Normal file
Binary file not shown.
BIN
data/mythen/CORRECTED_scan242_d2_f0_3.raw
Normal file
BIN
data/mythen/CORRECTED_scan242_d2_f0_3.raw
Normal file
Binary file not shown.
BIN
data/mythen/CORRECTED_scan242_d3_f0_3.raw
Normal file
BIN
data/mythen/CORRECTED_scan242_d3_f0_3.raw
Normal file
Binary file not shown.
40
data/mythen/CORRECTED_scan242_master_3.raw
Executable file
40
data/mythen/CORRECTED_scan242_master_3.raw
Executable file
@ -0,0 +1,40 @@
|
||||
Version : 6.2
|
||||
TimeStamp : Mon Sep 14 16:21:09 2020
|
||||
|
||||
Detector Type : Mythen3
|
||||
Timing Mode : auto
|
||||
Geometry : [4, 1]
|
||||
Image Size : 5120 bytes
|
||||
Pixels : [1280, 1]
|
||||
Max Frames Per File : 10000
|
||||
Frame Discard Policy : nodiscard
|
||||
Frame Padding : 1
|
||||
Scan Parameters : [disabled]
|
||||
Total Frames : 1
|
||||
Dynamic Range : 32
|
||||
Ten Giga : 1
|
||||
Period : 0ns
|
||||
Counter Mask : 0x1
|
||||
Exptime1 : 0.2s
|
||||
Exptime2 : 0.2s
|
||||
Exptime3 : 0.2s
|
||||
GateDelay1 : 0.1s
|
||||
GateDelay2 : 0.1s
|
||||
GateDelay3 : 0.1s
|
||||
Gates : 1
|
||||
|
||||
#Frame Header
|
||||
Frame Number : 8 bytes
|
||||
SubFrame Number/ExpLength : 4 bytes
|
||||
Packet Number : 4 bytes
|
||||
Bunch ID : 8 bytes
|
||||
Timestamp : 8 bytes
|
||||
Module Id : 2 bytes
|
||||
Row : 2 bytes
|
||||
Column : 2 bytes
|
||||
Reserved : 2 bytes
|
||||
Debug : 4 bytes
|
||||
Round Robin Number : 2 bytes
|
||||
Detector Type : 1 byte
|
||||
Header Version : 1 byte
|
||||
Packets Caught Mask : 64 bytes
|
58
data/mythen/correct_frame_numbers.py
Normal file
58
data/mythen/correct_frame_numbers.py
Normal file
@ -0,0 +1,58 @@
|
||||
import numpy as np
|
||||
import shutil
|
||||
|
||||
header_dt = np.dtype(
|
||||
[
|
||||
("Frame Number", "u8"),
|
||||
("SubFrame Number/ExpLength", "u4"),
|
||||
("Packet Number", "u4"),
|
||||
("Bunch ID", "u8"),
|
||||
("Timestamp", "u8"),
|
||||
("Module Id", "u2"),
|
||||
("Row", "u2"),
|
||||
("Column", "u2"),
|
||||
("Reserved", "u2"),
|
||||
("Debug", "u4"),
|
||||
("Round Robin Number", "u2"),
|
||||
("Detector Type", "u1"),
|
||||
("Header Version", "u1"),
|
||||
("Packets caught mask", "8u8")
|
||||
]
|
||||
)
|
||||
|
||||
# Read three frames from a jungfrau file with a single interface
|
||||
|
||||
frames = 1
|
||||
parts = 4
|
||||
frame_per_file = 3
|
||||
bytes_per_pixel = 4
|
||||
frame_cols = 1
|
||||
frame_rows = 5120
|
||||
|
||||
part_cols = 1280
|
||||
part_rows = 1
|
||||
|
||||
header = np.zeros((frames,parts), dtype = header_dt)
|
||||
|
||||
|
||||
|
||||
# verify that all parts have the same frame number
|
||||
frame = 0
|
||||
i = 55
|
||||
for part in range(parts):
|
||||
file_name_r = f'scan242_d{part}_f{frame//frame_per_file}_{3}.raw'
|
||||
file_name_w = f'CORRECTED_scan242_d{part}_f{frame//frame_per_file}_{3}.raw'
|
||||
shutil.copyfile(file_name_r, file_name_w)
|
||||
|
||||
with open(file_name_r) as fr, open(file_name_w, 'r+b') as fw:
|
||||
# get frame
|
||||
offset = (frame%frame_per_file)*(header_dt.itemsize+part_rows*part_cols*bytes_per_pixel)
|
||||
header[frame,part] = np.fromfile(fr, dtype=header_dt, count = 1,offset=offset)
|
||||
# update frame number
|
||||
header[frame,part]['Frame Number'] = i
|
||||
fw.seek(offset)
|
||||
header[frame,part].tofile(fw)
|
||||
|
||||
|
||||
print("[X] Done\n")
|
||||
|
BIN
data/mythen/m3_d0_f0_0.raw
Normal file
BIN
data/mythen/m3_d0_f0_0.raw
Normal file
Binary file not shown.
55
data/mythen/m3_master_0.json
Normal file
55
data/mythen/m3_master_0.json
Normal file
@ -0,0 +1,55 @@
|
||||
{
|
||||
"Version": 7.1,
|
||||
"Timestamp": "Wed Sep 21 13:48:10 2022",
|
||||
"Detector Type": "Mythen3",
|
||||
"Timing Mode": "auto",
|
||||
"Geometry": {
|
||||
"x": 1,
|
||||
"y": 1
|
||||
},
|
||||
"Image Size in bytes": 15360,
|
||||
"Pixels": {
|
||||
"x": 3840,
|
||||
"y": 1
|
||||
},
|
||||
"Max Frames Per File": 10000,
|
||||
"Frame Discard Policy": "nodiscard",
|
||||
"Frame Padding": 1,
|
||||
"Scan Parameters": "[disabled]",
|
||||
"Total Frames": 1,
|
||||
"Receiver Roi": {
|
||||
"xmin": 4294967295,
|
||||
"xmax": 4294967295,
|
||||
"ymin": 4294967295,
|
||||
"ymax": 4294967295
|
||||
},
|
||||
"Dynamic Range": 32,
|
||||
"Ten Giga": 1,
|
||||
"Period": "2ms",
|
||||
"Counter Mask": "0x7",
|
||||
"Exptime1": "0.1s",
|
||||
"Exptime2": "0.1s",
|
||||
"Exptime3": "0.1s",
|
||||
"GateDelay1": "0ns",
|
||||
"GateDelay2": "0ns",
|
||||
"GateDelay3": "0ns",
|
||||
"Gates": 1,
|
||||
"Threshold Energies": "[-1, -1, -1]",
|
||||
"Frames in File": 1,
|
||||
"Frame Header Format": {
|
||||
"Frame Number": "8 bytes",
|
||||
"SubFrame Number/ExpLength": "4 bytes",
|
||||
"Packet Number": "4 bytes",
|
||||
"Bunch ID": "8 bytes",
|
||||
"Timestamp": "8 bytes",
|
||||
"Module Id": "2 bytes",
|
||||
"Row": "2 bytes",
|
||||
"Column": "2 bytes",
|
||||
"Reserved": "2 bytes",
|
||||
"Debug": "4 bytes",
|
||||
"Round Robin Number": "2 bytes",
|
||||
"Detector Type": "1 byte",
|
||||
"Header Version": "1 byte",
|
||||
"Packets Caught Mask": "64 bytes"
|
||||
}
|
||||
}
|
57
data/mythen/read_multiport.py
Normal file
57
data/mythen/read_multiport.py
Normal file
@ -0,0 +1,57 @@
|
||||
import numpy as np
|
||||
|
||||
header_dt = np.dtype(
|
||||
[
|
||||
("Frame Number", "u8"),
|
||||
("SubFrame Number/ExpLength", "u4"),
|
||||
("Packet Number", "u4"),
|
||||
("Bunch ID", "u8"),
|
||||
("Timestamp", "u8"),
|
||||
("Module Id", "u2"),
|
||||
("Row", "u2"),
|
||||
("Column", "u2"),
|
||||
("Reserved", "u2"),
|
||||
("Debug", "u4"),
|
||||
("Round Robin Number", "u2"),
|
||||
("Detector Type", "u1"),
|
||||
("Header Version", "u1"),
|
||||
("Packets caught mask", "8u8")
|
||||
]
|
||||
)
|
||||
|
||||
# Read three frames from a jungfrau file with a single interface
|
||||
|
||||
frames = 1
|
||||
parts = 4
|
||||
frame_per_file = 3
|
||||
bytes_per_pixel = 4
|
||||
frame_cols = 1
|
||||
frame_rows = 5120
|
||||
|
||||
part_cols = 1280
|
||||
part_rows = 1
|
||||
|
||||
header = np.zeros((frames,parts), dtype = header_dt)
|
||||
|
||||
|
||||
|
||||
# verify that all parts have the same frame number
|
||||
frame = 0
|
||||
sync = True
|
||||
for part in range(parts):
|
||||
file_name = f'scan242_d{part}_f{frame//frame_per_file}_{3}.raw'
|
||||
with open(file_name) as f:
|
||||
offset = (frame%frame_per_file)*(header_dt.itemsize+part_rows*part_cols*bytes_per_pixel)
|
||||
# print(f"Reading file: {file_name} at offset {offset}")
|
||||
header[frame,part] = np.fromfile(f, dtype=header_dt, count = 1,offset=offset)
|
||||
# print(f"Frame {frame} part {part} frame number: {header[frame,part]['Frame Number']}")
|
||||
print(f"part {part} frame number: {header[frame,part]['Frame Number']}")
|
||||
sync = sync and (header[frame,part]['Frame Number'] == header[frame,0]['Frame Number'])
|
||||
|
||||
|
||||
if sync:
|
||||
print("[X] subfiles have the same frame")
|
||||
else:
|
||||
print("[X] subfiles do not have the same frame\n")
|
||||
|
||||
|
BIN
data/mythen/scan242_d0_f0_3.raw
Executable file
BIN
data/mythen/scan242_d0_f0_3.raw
Executable file
Binary file not shown.
BIN
data/mythen/scan242_d1_f0_3.raw
Executable file
BIN
data/mythen/scan242_d1_f0_3.raw
Executable file
Binary file not shown.
BIN
data/mythen/scan242_d2_f0_3.raw
Executable file
BIN
data/mythen/scan242_d2_f0_3.raw
Executable file
Binary file not shown.
BIN
data/mythen/scan242_d3_f0_3.raw
Executable file
BIN
data/mythen/scan242_d3_f0_3.raw
Executable file
Binary file not shown.
40
data/mythen/scan242_master_3.raw
Executable file
40
data/mythen/scan242_master_3.raw
Executable file
@ -0,0 +1,40 @@
|
||||
Version : 6.2
|
||||
TimeStamp : Mon Sep 14 16:21:09 2020
|
||||
|
||||
Detector Type : Mythen3
|
||||
Timing Mode : auto
|
||||
Geometry : [4, 1]
|
||||
Image Size : 5120 bytes
|
||||
Pixels : [1280, 1]
|
||||
Max Frames Per File : 10000
|
||||
Frame Discard Policy : nodiscard
|
||||
Frame Padding : 1
|
||||
Scan Parameters : [disabled]
|
||||
Total Frames : 1
|
||||
Dynamic Range : 32
|
||||
Ten Giga : 1
|
||||
Period : 0ns
|
||||
Counter Mask : 0x1
|
||||
Exptime1 : 0.2s
|
||||
Exptime2 : 0.2s
|
||||
Exptime3 : 0.2s
|
||||
GateDelay1 : 0.1s
|
||||
GateDelay2 : 0.1s
|
||||
GateDelay3 : 0.1s
|
||||
Gates : 1
|
||||
|
||||
#Frame Header
|
||||
Frame Number : 8 bytes
|
||||
SubFrame Number/ExpLength : 4 bytes
|
||||
Packet Number : 4 bytes
|
||||
Bunch ID : 8 bytes
|
||||
Timestamp : 8 bytes
|
||||
Module Id : 2 bytes
|
||||
Row : 2 bytes
|
||||
Column : 2 bytes
|
||||
Reserved : 2 bytes
|
||||
Debug : 4 bytes
|
||||
Round Robin Number : 2 bytes
|
||||
Detector Type : 1 byte
|
||||
Header Version : 1 byte
|
||||
Packets Caught Mask : 64 bytes
|
BIN
data/numpy/test_1d_int32.npy
Normal file
BIN
data/numpy/test_1d_int32.npy
Normal file
Binary file not shown.
BIN
data/numpy/test_3d_double.npy
Normal file
BIN
data/numpy/test_3d_double.npy
Normal file
Binary file not shown.
BIN
data/numpy/test_numpy_file.npy
Normal file
BIN
data/numpy/test_numpy_file.npy
Normal file
Binary file not shown.
12
data/numpy/write_test_files.py
Normal file
12
data/numpy/write_test_files.py
Normal file
@ -0,0 +1,12 @@
|
||||
import numpy as np
|
||||
|
||||
|
||||
arr = np.arange(10, dtype = np.int32)
|
||||
np.save('test_1d_int32.npy', arr)
|
||||
|
||||
arr2 = np.zeros((3,2,5), dtype = np.float64)
|
||||
arr2[0,0,0] = 1.0
|
||||
arr2[0,0,1] = 2.0
|
||||
arr2[0,1,0] = 72.0
|
||||
arr2[2,0,4] = 63.0
|
||||
np.save('test_3d_double.npy', arr2)
|
62
data/scripts/verify_rawfile_writing.py
Normal file
62
data/scripts/verify_rawfile_writing.py
Normal file
@ -0,0 +1,62 @@
|
||||
###
|
||||
### Verify that the raw file written by the raw_example.cpp are correct
|
||||
###
|
||||
|
||||
|
||||
import numpy as np
|
||||
|
||||
header_dt = np.dtype(
|
||||
[
|
||||
("Frame Number", "u8"),
|
||||
("SubFrame Number/ExpLength", "u4"),
|
||||
("Packet Number", "u4"),
|
||||
("Bunch ID", "u8"),
|
||||
("Timestamp", "u8"),
|
||||
("Module Id", "u2"),
|
||||
("Row", "u2"),
|
||||
("Column", "u2"),
|
||||
("Reserved", "u2"),
|
||||
("Debug", "u4"),
|
||||
("Round Robin Number", "u2"),
|
||||
("Detector Type", "u1"),
|
||||
("Header Version", "u1"),
|
||||
("Packets caught mask", "8u8")
|
||||
]
|
||||
)
|
||||
|
||||
frames = 1
|
||||
parts = 1
|
||||
frame_per_file = 3
|
||||
bytes_per_pixel = 2
|
||||
frame_cols = 512
|
||||
frame_rows = 1024
|
||||
|
||||
part_cols = 512
|
||||
part_rows = 1024
|
||||
|
||||
|
||||
# parts_data = np.zeros((frames,parts,part_rows,part_cols), dtype = np.uint16)
|
||||
data = np.zeros((frames,frame_rows,frame_cols), dtype = np.uint16)
|
||||
header = np.zeros((frames,parts), dtype = header_dt)
|
||||
|
||||
|
||||
|
||||
# verify that all parts have the same frame number
|
||||
for frame in range(frames):
|
||||
for part in range(parts):
|
||||
file_name = f'/tmp/raw_example_writing_d{part}_f{frame//frame_per_file}_{0}.raw'
|
||||
with open(file_name) as f:
|
||||
offset = (frame%frame_per_file)*(header_dt.itemsize+part_rows*part_cols*bytes_per_pixel)
|
||||
# print(f"Reading file: {file_name} at offset {offset}")
|
||||
header[frame,part] = np.fromfile(f, dtype=header_dt, count = 1,offset=offset)
|
||||
# print(f"Frame {frame} part {part} frame number: {header[frame,part]['Frame Number']}")
|
||||
data[frame] = np.fromfile(f, dtype=np.uint16,count = frame_rows*frame_cols).reshape(frame_rows,frame_cols)
|
||||
|
||||
|
||||
for frame in range(frames):
|
||||
for i,j in np.ndindex(data[frame].shape):
|
||||
assert(data[frame][i,j] == i+j)
|
||||
|
||||
print("[X] frame data is correct")
|
||||
|
||||
|
8
docs/commands_multimodule.md
Normal file
8
docs/commands_multimodule.md
Normal file
@ -0,0 +1,8 @@
|
||||
# receive data from two zmqstreams
|
||||
```bash
|
||||
killall jungfrauDetectorServer_virtual
|
||||
jungfrauDetectorServer_virtual
|
||||
jungfrauDetectorServer_virtual -p 1956
|
||||
slsMultiReceiver 1980 2 0
|
||||
sls_detector_put config etc/multimodule_virtual_jf.config
|
||||
```
|
141
docs/diagrams/aare_class.puml
Normal file
141
docs/diagrams/aare_class.puml
Normal file
@ -0,0 +1,141 @@
|
||||
@startuml
|
||||
class "NDView<T,ssize_t Ndim=2>" as C_0000853339819629793090
|
||||
class C_0000853339819629793090 {
|
||||
__
|
||||
}
|
||||
class "NDView<unsigned short,2L>" as C_0000800815410987673815
|
||||
class C_0000800815410987673815 {
|
||||
__
|
||||
}
|
||||
class "NDView<T,Ndim>" as C_0001549403386232143110
|
||||
class C_0001549403386232143110 {
|
||||
__
|
||||
}
|
||||
class "NDArray<bool,Ndim>" as C_0000823076622246857026
|
||||
class C_0000823076622246857026 {
|
||||
__
|
||||
}
|
||||
class "NDArray<V,Ndim>" as C_0002198222861307321825
|
||||
class C_0002198222861307321825 {
|
||||
__
|
||||
}
|
||||
class "NDArray<T,ssize_t Ndim=2>" as C_0001181947618035129503
|
||||
class C_0001181947618035129503 {
|
||||
__
|
||||
}
|
||||
class "sls_detector_header" as C_0001674535970515942906
|
||||
class C_0001674535970515942906 {
|
||||
__
|
||||
}
|
||||
class "xy" as C_0000162230005032830360
|
||||
class C_0000162230005032830360 {
|
||||
__
|
||||
}
|
||||
class "RawFileConfig" as C_0000511537329021463656
|
||||
class C_0000511537329021463656 {
|
||||
__
|
||||
}
|
||||
class "Frame" as C_0001608703618093824988
|
||||
class C_0001608703618093824988 {
|
||||
__
|
||||
}
|
||||
class "logger::Logger" as C_0001861698262135249810
|
||||
class C_0001861698262135249810 {
|
||||
__
|
||||
}
|
||||
class "ZmqHeader" as C_0000690012646166089557
|
||||
class C_0000690012646166089557 {
|
||||
__
|
||||
}
|
||||
class "ZmqSocket" as C_0000575290120620432482
|
||||
class C_0000575290120620432482 {
|
||||
__
|
||||
}
|
||||
class "ZmqFrame" as C_0001018278375791869829
|
||||
class C_0001018278375791869829 {
|
||||
__
|
||||
}
|
||||
class "network_io::NetworkError" as C_0001290043041844945927
|
||||
class C_0001290043041844945927 {
|
||||
__
|
||||
}
|
||||
class "ZmqSocketReceiver" as C_0001017868003595712218
|
||||
class C_0001017868003595712218 {
|
||||
__
|
||||
}
|
||||
class "ZmqSocketSender" as C_0002178845803227443176
|
||||
class C_0002178845803227443176 {
|
||||
__
|
||||
}
|
||||
class "DType" as C_0000703695317535186100
|
||||
class C_0000703695317535186100 {
|
||||
__
|
||||
}
|
||||
class "FileConfig" as C_0001694843161451381081
|
||||
class C_0001694843161451381081 {
|
||||
__
|
||||
}
|
||||
class "FileInterface" as C_0002122346448923803234
|
||||
class C_0002122346448923803234 {
|
||||
__
|
||||
}
|
||||
class "File" as C_0002007196654403438648
|
||||
class C_0002007196654403438648 {
|
||||
__
|
||||
}
|
||||
class "NumpyHeader" as C_0002287674849990076068
|
||||
class C_0002287674849990076068 {
|
||||
__
|
||||
}
|
||||
class "NumpyFile" as C_0001470720024404954003
|
||||
class C_0001470720024404954003 {
|
||||
__
|
||||
}
|
||||
class "SubFile" as C_0001884494008888210849
|
||||
class C_0001884494008888210849 {
|
||||
__
|
||||
}
|
||||
class "RawFile" as C_0001505206538021535080
|
||||
class C_0001505206538021535080 {
|
||||
__
|
||||
}
|
||||
C_0000800815410987673815 ..|> C_0000853339819629793090
|
||||
C_0001549403386232143110 ..|> C_0000853339819629793090
|
||||
C_0000823076622246857026 ..|> C_0001181947618035129503
|
||||
C_0002198222861307321825 ..|> C_0001181947618035129503
|
||||
C_0001181947618035129503 ..> C_0001549403386232143110
|
||||
C_0001181947618035129503 ..> C_0000823076622246857026
|
||||
C_0001181947618035129503 ..> C_0002198222861307321825
|
||||
C_0001018278375791869829 o-- C_0000690012646166089557 : +header
|
||||
C_0001018278375791869829 o-- C_0001608703618093824988 : +frame
|
||||
C_0001017868003595712218 ..> C_0001018278375791869829
|
||||
C_0001017868003595712218 ..> C_0000690012646166089557
|
||||
C_0000575290120620432482 <|-- C_0001017868003595712218
|
||||
C_0002178845803227443176 ..> C_0000690012646166089557
|
||||
C_0002178845803227443176 ..> C_0001018278375791869829
|
||||
C_0000575290120620432482 <|-- C_0002178845803227443176
|
||||
C_0001694843161451381081 o-- C_0000703695317535186100 : +dtype
|
||||
C_0001694843161451381081 o-- C_0000162230005032830360 : +geometry
|
||||
C_0002122346448923803234 ..> C_0001608703618093824988
|
||||
C_0002007196654403438648 ..> C_0001694843161451381081
|
||||
C_0002007196654403438648 ..> C_0001608703618093824988
|
||||
C_0002007196654403438648 --> C_0002122346448923803234 : -file_impl
|
||||
C_0002287674849990076068 o-- C_0000703695317535186100 : +dtype
|
||||
C_0001470720024404954003 ..> C_0001694843161451381081
|
||||
C_0001470720024404954003 ..> C_0001608703618093824988
|
||||
C_0001470720024404954003 ..> C_0000703695317535186100
|
||||
C_0001470720024404954003 o-- C_0002287674849990076068 : -m_header
|
||||
C_0002122346448923803234 <|-- C_0001470720024404954003
|
||||
C_0001884494008888210849 o-- C_0001884494008888210849 : #read_impl_map
|
||||
C_0001505206538021535080 ..> C_0001694843161451381081
|
||||
C_0001505206538021535080 ..> C_0001608703618093824988
|
||||
C_0001505206538021535080 ..> C_0001674535970515942906
|
||||
C_0001505206538021535080 --> C_0001884494008888210849 : -subfiles
|
||||
C_0001505206538021535080 o-- C_0000162230005032830360 : -geometry
|
||||
C_0001505206538021535080 o-- C_0000162230005032830360 : -positions
|
||||
C_0001505206538021535080 o-- C_0000511537329021463656 : -cfg
|
||||
C_0002122346448923803234 <|-- C_0001505206538021535080
|
||||
|
||||
'Generated with clang-uml, version 0.5.1
|
||||
'LLVM version clang version 17.0.6 (Fedora 17.0.6-2.fc39)
|
||||
@enduml
|
1
docs/diagrams/aare_class.svg
Normal file
1
docs/diagrams/aare_class.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 63 KiB |
95
docs/diagrams/aare_class_simplified.puml
Normal file
95
docs/diagrams/aare_class_simplified.puml
Normal file
@ -0,0 +1,95 @@
|
||||
@startuml
|
||||
class "sls_detector_header" as C_0001674535970515942906
|
||||
class C_0001674535970515942906 {
|
||||
__
|
||||
}
|
||||
class "RawFileConfig" as C_0000511537329021463656
|
||||
class C_0000511537329021463656 {
|
||||
__
|
||||
}
|
||||
class "Frame" as C_0001608703618093824988
|
||||
class C_0001608703618093824988 {
|
||||
__
|
||||
}
|
||||
class "ZmqHeader" as C_0000690012646166089557
|
||||
class C_0000690012646166089557 {
|
||||
__
|
||||
}
|
||||
class "ZmqSocket" as C_0000575290120620432482
|
||||
class C_0000575290120620432482 {
|
||||
__
|
||||
}
|
||||
class "ZmqFrame" as C_0001018278375791869829
|
||||
class C_0001018278375791869829 {
|
||||
__
|
||||
}
|
||||
class "ZmqSocketReceiver" as C_0001017868003595712218
|
||||
class C_0001017868003595712218 {
|
||||
__
|
||||
}
|
||||
class "ZmqSocketSender" as C_0002178845803227443176
|
||||
class C_0002178845803227443176 {
|
||||
__
|
||||
}
|
||||
class "DType" as C_0000703695317535186100
|
||||
class C_0000703695317535186100 {
|
||||
__
|
||||
}
|
||||
class "FileConfig" as C_0001694843161451381081
|
||||
class C_0001694843161451381081 {
|
||||
__
|
||||
}
|
||||
class "FileInterface" as C_0002122346448923803234
|
||||
class C_0002122346448923803234 {
|
||||
__
|
||||
}
|
||||
class "File" as C_0002007196654403438648
|
||||
class C_0002007196654403438648 {
|
||||
__
|
||||
}
|
||||
class "NumpyHeader" as C_0002287674849990076068
|
||||
class C_0002287674849990076068 {
|
||||
__
|
||||
}
|
||||
class "NumpyFile" as C_0001470720024404954003
|
||||
class C_0001470720024404954003 {
|
||||
__
|
||||
}
|
||||
class "SubFile" as C_0001884494008888210849
|
||||
class C_0001884494008888210849 {
|
||||
__
|
||||
}
|
||||
class "RawFile" as C_0001505206538021535080
|
||||
class C_0001505206538021535080 {
|
||||
__
|
||||
}
|
||||
C_0001018278375791869829 o-- C_0000690012646166089557 : +header
|
||||
C_0001018278375791869829 o-- C_0001608703618093824988 : +frame
|
||||
C_0001017868003595712218 ..> C_0001018278375791869829
|
||||
C_0001017868003595712218 ..> C_0000690012646166089557
|
||||
C_0000575290120620432482 <|-- C_0001017868003595712218
|
||||
C_0002178845803227443176 ..> C_0000690012646166089557
|
||||
C_0002178845803227443176 ..> C_0001018278375791869829
|
||||
C_0000575290120620432482 <|-- C_0002178845803227443176
|
||||
C_0001694843161451381081 o-- C_0000703695317535186100 : +dtype
|
||||
C_0002122346448923803234 ..> C_0001608703618093824988
|
||||
C_0002007196654403438648 ..> C_0001694843161451381081
|
||||
C_0002007196654403438648 ..> C_0001608703618093824988
|
||||
C_0002007196654403438648 --> C_0002122346448923803234 : -file_impl
|
||||
C_0002287674849990076068 o-- C_0000703695317535186100 : +dtype
|
||||
C_0001470720024404954003 ..> C_0001694843161451381081
|
||||
C_0001470720024404954003 ..> C_0001608703618093824988
|
||||
C_0001470720024404954003 ..> C_0000703695317535186100
|
||||
C_0001470720024404954003 o-- C_0002287674849990076068 : -m_header
|
||||
C_0002122346448923803234 <|-- C_0001470720024404954003
|
||||
C_0001884494008888210849 o-- C_0001884494008888210849 : #read_impl_map
|
||||
C_0001505206538021535080 ..> C_0001694843161451381081
|
||||
C_0001505206538021535080 ..> C_0001608703618093824988
|
||||
C_0001505206538021535080 ..> C_0001674535970515942906
|
||||
C_0001505206538021535080 --> C_0001884494008888210849 : -subfiles
|
||||
C_0001505206538021535080 o-- C_0000511537329021463656 : -cfg
|
||||
C_0002122346448923803234 <|-- C_0001505206538021535080
|
||||
|
||||
'Generated with clang-uml, version 0.5.1
|
||||
'LLVM version clang version 17.0.6 (Fedora 17.0.6-2.fc39)
|
||||
@enduml
|
1
docs/diagrams/aare_class_simplified.svg
Normal file
1
docs/diagrams/aare_class_simplified.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 41 KiB |
267
docs/diagrams/core_class.puml
Normal file
267
docs/diagrams/core_class.puml
Normal file
@ -0,0 +1,267 @@
|
||||
@startuml
|
||||
class "aare::sls_detector_header" as C_0001674535970515942906
|
||||
class C_0001674535970515942906 {
|
||||
__
|
||||
+bunchId : uint64_t
|
||||
+column : uint16_t
|
||||
+debug : uint32_t
|
||||
+detType : uint8_t
|
||||
+expLength : uint32_t
|
||||
+frameNumber : uint64_t
|
||||
+modId : uint16_t
|
||||
+packetMask : uint8_t[64]
|
||||
+packetNumber : uint32_t
|
||||
+reserved : uint16_t
|
||||
+roundRNumber : uint16_t
|
||||
+row : uint16_t
|
||||
+timestamp : uint64_t
|
||||
+version : uint8_t
|
||||
}
|
||||
class "aare::xy" as C_0000162230005032830360
|
||||
class C_0000162230005032830360 {
|
||||
+operator!=(const xy & other) const : bool
|
||||
+operator==(const xy & other) const : bool
|
||||
__
|
||||
+col : int
|
||||
+row : int
|
||||
}
|
||||
enum "aare::DetectorType" as C_0000214432771357383463
|
||||
enum C_0000214432771357383463 {
|
||||
Jungfrau
|
||||
Eiger
|
||||
Mythen3
|
||||
Moench
|
||||
ChipTestBoard
|
||||
}
|
||||
enum "aare::TimingMode" as C_0000845115331155903292
|
||||
enum C_0000845115331155903292 {
|
||||
Auto
|
||||
Trigger
|
||||
}
|
||||
class "aare::RawFileConfig" as C_0000511537329021463656
|
||||
class C_0000511537329021463656 {
|
||||
+operator==(const RawFileConfig & other) const : bool
|
||||
__
|
||||
+module_gap_col : int
|
||||
+module_gap_row : int
|
||||
}
|
||||
enum "aare::endian" as C_0000190468130082798308
|
||||
enum C_0000190468130082798308 {
|
||||
little
|
||||
big
|
||||
native
|
||||
}
|
||||
class "aare::DType" as C_0000703695317535186100
|
||||
class C_0000703695317535186100 {
|
||||
+DType(const std::type_info & t) : void
|
||||
+DType(std::string_view sv) : void
|
||||
+DType(DType::TypeIndex ti) : void
|
||||
..
|
||||
+operator!=(const DType & other) const noexcept : bool
|
||||
+operator!=(const std::type_info & t) const : bool
|
||||
+operator==(const DType & other) const noexcept : bool
|
||||
+operator==(const std::type_info & t) const : bool
|
||||
..
|
||||
+bitdepth() const : uint8_t
|
||||
+str() const : std::string
|
||||
__
|
||||
-m_type : TypeIndex
|
||||
}
|
||||
enum "aare::DType::TypeIndex" as C_0000575426556754591775
|
||||
enum C_0000575426556754591775 {
|
||||
INT8
|
||||
UINT8
|
||||
INT16
|
||||
UINT16
|
||||
INT32
|
||||
UINT32
|
||||
INT64
|
||||
UINT64
|
||||
FLOAT
|
||||
DOUBLE
|
||||
ERROR
|
||||
}
|
||||
class "aare::NDView<T,ssize_t Ndim=2>" as C_0000853339819629793090
|
||||
class C_0000853339819629793090 {
|
||||
+NDView() : void
|
||||
+NDView(T * buffer, std::array<ssize_t,Ndim> shape) : void
|
||||
+NDView(T * buffer, const std::vector<ssize_t> & shape) : void
|
||||
+NDView(const NDView<T,Ndim> &) = default : void
|
||||
+NDView(NDView<T,Ndim> &&) = default : void
|
||||
..
|
||||
+operator=(const NDView<T,Ndim> & other) : NDView<T,Ndim> &
|
||||
..
|
||||
+operator()(ssize_t i) : T &
|
||||
+operator()<Ix...>(Ix... index) : typename std::enable_if<sizeof...(Ix) == Ndim, T &>::type
|
||||
+operator()<Ix...>(Ix... index) const : typename std::enable_if<sizeof...(Ix) == Ndim, T &>::type
|
||||
+operator*=(const T val) : NDView<T,Ndim> &
|
||||
+operator+=(const T val) : NDView<T,Ndim> &
|
||||
+operator-=(const T val) : NDView<T,Ndim> &
|
||||
+operator/=(const T val) : NDView<T,Ndim> &
|
||||
+operator/=(const NDView<T,Ndim> & other) : NDView<T,Ndim> &
|
||||
+operator=(const T val) : NDView<T,Ndim> &
|
||||
+operator==(const NDView<T,Ndim> & other) const : bool
|
||||
+operator[](ssize_t i) : T &
|
||||
..
|
||||
+begin() : T *
|
||||
+data() : T *
|
||||
-elemenwise<BinaryOperation>(T val, BinaryOperation op) : NDView<T, Ndim> &
|
||||
-elemenwise<BinaryOperation>(const NDView<T,Ndim> & other, BinaryOperation op) : NDView<T, Ndim> &
|
||||
+end() : T *
|
||||
+shape() : auto &
|
||||
+shape(ssize_t i) const : auto
|
||||
+size() const : ssize_t
|
||||
__
|
||||
-buffer_ : T *
|
||||
-shape_ : std::array<ssize_t,Ndim>
|
||||
-size_ : ssize_t
|
||||
-strides_ : std::array<ssize_t,Ndim>
|
||||
}
|
||||
class "aare::NDView<unsigned short,2L>" as C_0000800815410987673815
|
||||
class C_0000800815410987673815 {
|
||||
+NDView() : void
|
||||
+NDView(unsigned short * buffer, std::array<ssize_t,2L> shape) : void
|
||||
+NDView(unsigned short * buffer, const std::vector<ssize_t> & shape) : void
|
||||
+NDView(const aare::NDView<uint16_t,2> &) = default : void
|
||||
+NDView(aare::NDView<uint16_t,2> &&) = default : void
|
||||
..
|
||||
+operator=(const aare::NDView<uint16_t,2> & other) : aare::NDView<uint16_t,2> &
|
||||
..
|
||||
+operator()(ssize_t i) : unsigned short &
|
||||
+operator()<Ix...>(Ix... index) : typename std::enable_if<sizeof...(Ix) == 2L, unsigned short &>::type
|
||||
+operator()<Ix...>(Ix... index) const : typename std::enable_if<sizeof...(Ix) == 2L, unsigned short &>::type
|
||||
+operator*=(const unsigned short val) : aare::NDView<uint16_t,2> &
|
||||
+operator+=(const unsigned short val) : aare::NDView<uint16_t,2> &
|
||||
+operator-=(const unsigned short val) : aare::NDView<uint16_t,2> &
|
||||
+operator/=(const unsigned short val) : aare::NDView<uint16_t,2> &
|
||||
+operator/=(const aare::NDView<uint16_t,2> & other) : aare::NDView<uint16_t,2> &
|
||||
+operator=(const unsigned short val) : aare::NDView<uint16_t,2> &
|
||||
+operator==(const aare::NDView<uint16_t,2> & other) const : bool
|
||||
+operator[](ssize_t i) : unsigned short &
|
||||
..
|
||||
+begin() : unsigned short *
|
||||
+data() : unsigned short *
|
||||
-elemenwise<BinaryOperation>(unsigned short val, BinaryOperation op) : NDView<uint16_t, 2> &
|
||||
-elemenwise<BinaryOperation>(const aare::NDView<uint16_t,2> & other, BinaryOperation op) : NDView<uint16_t, 2> &
|
||||
+end() : unsigned short *
|
||||
+shape() : std::array<ssize_t,2L> &
|
||||
+shape(ssize_t i) const : value_type
|
||||
+size() const : ssize_t
|
||||
__
|
||||
-buffer_ : unsigned short *
|
||||
-shape_ : std::array<ssize_t,2L>
|
||||
-size_ : ssize_t
|
||||
-strides_ : std::array<ssize_t,2L>
|
||||
}
|
||||
class "aare::NDView<T,Ndim>" as C_0001549403386232143110
|
||||
class C_0001549403386232143110 {
|
||||
__
|
||||
}
|
||||
class "aare::NDArray<bool,Ndim>" as C_0000823076622246857026
|
||||
class C_0000823076622246857026 {
|
||||
__
|
||||
}
|
||||
class "aare::NDArray<V,Ndim>" as C_0002198222861307321825
|
||||
class C_0002198222861307321825 {
|
||||
__
|
||||
}
|
||||
class "aare::NDArray<T,ssize_t Ndim=2>" as C_0001181947618035129503
|
||||
class C_0001181947618035129503 {
|
||||
+NDArray() : void
|
||||
+NDArray(std::array<ssize_t,Ndim> shape) : void
|
||||
+NDArray(std::array<ssize_t,Ndim> shape, T value) : void
|
||||
+NDArray(NDView<T,Ndim> span) : void
|
||||
+NDArray(NDArray<T,Ndim> && other) : void
|
||||
+NDArray(const NDArray<T,Ndim> & other) : void
|
||||
+~NDArray() : void
|
||||
..
|
||||
+operator=(NDArray<T,Ndim> && other) : NDArray<T,Ndim> &
|
||||
+operator=(const NDArray<T,Ndim> & other) : NDArray<T,Ndim> &
|
||||
..
|
||||
+operator!=(const NDArray<T,Ndim> & other) const : bool
|
||||
+operator&=(const T &) : NDArray<T,Ndim> &
|
||||
+operator()<Ix...>(Ix... index) const : typename std::enable_if<sizeof...(Ix) == Ndim, T &>::type
|
||||
+operator()<Ix...>(Ix... index) : typename std::enable_if<sizeof...(Ix) == Ndim, T &>::type
|
||||
+operator()(int i) const : const T &
|
||||
+operator()(int i) : T &
|
||||
+operator*(const NDArray<T,Ndim> & other) : NDArray<T,Ndim>
|
||||
+operator*(const T &) : NDArray<T,Ndim>
|
||||
+operator*=(const NDArray<T,Ndim> & other) : NDArray<T,Ndim> &
|
||||
+operator*=(const T &) : NDArray<T,Ndim> &
|
||||
+operator+(const NDArray<T,Ndim> & other) : NDArray<T,Ndim>
|
||||
+operator+(const T &) : NDArray<T,Ndim>
|
||||
+operator++() : NDArray<T,Ndim> &
|
||||
+operator+=(const NDArray<T,Ndim> & other) : NDArray<T,Ndim> &
|
||||
+operator+=(const T &) : NDArray<T,Ndim> &
|
||||
+operator-(const T &) : NDArray<T,Ndim>
|
||||
+operator-(const NDArray<T,Ndim> & other) : NDArray<T,Ndim>
|
||||
+operator-=(const T &) : NDArray<T,Ndim> &
|
||||
+operator-=(const NDArray<T,Ndim> & other) : NDArray<T,Ndim> &
|
||||
+operator/(const T &) : NDArray<T,Ndim>
|
||||
+operator/(const NDArray<T,Ndim> & other) : NDArray<T,Ndim>
|
||||
+operator/=(const T &) : NDArray<T,Ndim> &
|
||||
+operator/=<V>(const NDArray<V,Ndim> & other) : NDArray<T, Ndim> &
|
||||
+operator=(const T &) : NDArray<T,Ndim> &
|
||||
+operator==(const NDArray<T,Ndim> & other) const : bool
|
||||
+operator>(const NDArray<T,Ndim> & other) : NDArray<bool,Ndim>
|
||||
..
|
||||
+Print() : void
|
||||
+Print_all() : void
|
||||
+Print_some() : void
|
||||
+begin() : auto
|
||||
+buffer() : std::byte *
|
||||
+byte_strides() const noexcept : std::array<ssize_t,Ndim>
|
||||
+data() : T *
|
||||
+end() : auto
|
||||
+reset() : void
|
||||
+shape(ssize_t i) const noexcept : ssize_t
|
||||
+shape() const noexcept : std::array<ssize_t,Ndim>
|
||||
+size() const : ssize_t
|
||||
+span() const : NDView<T,Ndim>
|
||||
+sqrt() : void
|
||||
+strides() const noexcept : std::array<ssize_t,Ndim>
|
||||
+total_bytes() const : size_t
|
||||
+value<Ix...>(Ix... index) : typename std::enable_if<sizeof...(Ix) == Ndim, T>::type
|
||||
__
|
||||
-data_ : T *
|
||||
-shape_ : std::array<ssize_t,Ndim>
|
||||
-size_ : ssize_t
|
||||
-strides_ : std::array<ssize_t,Ndim>
|
||||
}
|
||||
class "aare::Frame" as C_0001608703618093824988
|
||||
class C_0001608703618093824988 {
|
||||
+Frame(ssize_t rows, ssize_t cols, ssize_t m_bitdepth) : void
|
||||
+Frame(std::byte * fp, ssize_t rows, ssize_t cols, ssize_t m_bitdepth) : void
|
||||
+Frame(Frame && other) : void
|
||||
+Frame(const Frame & other) : void
|
||||
+~Frame() : void
|
||||
..
|
||||
+operator=(Frame & other) : Frame &
|
||||
..
|
||||
+bitdepth() const : ssize_t
|
||||
+cols() const : ssize_t
|
||||
+data() const : std::byte *
|
||||
+get(int row, int col) : std::byte *
|
||||
+image<T>() : NDArray<T>
|
||||
+rows() const : ssize_t
|
||||
+set<T>(int row, int col, T data) : void
|
||||
+size() const : ssize_t
|
||||
+view<T>() : NDView<T>
|
||||
__
|
||||
-m_bitdepth : ssize_t
|
||||
-m_cols : ssize_t
|
||||
-m_data : std::byte *
|
||||
-m_rows : ssize_t
|
||||
}
|
||||
C_0000575426556754591775 --+ C_0000703695317535186100
|
||||
C_0000800815410987673815 ..|> C_0000853339819629793090
|
||||
C_0001549403386232143110 ..|> C_0000853339819629793090
|
||||
C_0000823076622246857026 ..|> C_0001181947618035129503
|
||||
C_0002198222861307321825 ..|> C_0001181947618035129503
|
||||
C_0001181947618035129503 ..> C_0001549403386232143110
|
||||
C_0001181947618035129503 ..> C_0000823076622246857026
|
||||
C_0001181947618035129503 ..> C_0002198222861307321825
|
||||
|
||||
'Generated with clang-uml, version 0.5.1
|
||||
'LLVM version clang version 17.0.6 (Fedora 17.0.6-2.fc39)
|
||||
@enduml
|
1
docs/diagrams/core_class.svg
Normal file
1
docs/diagrams/core_class.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 80 KiB |
200
docs/diagrams/file_io_class.puml
Normal file
200
docs/diagrams/file_io_class.puml
Normal file
@ -0,0 +1,200 @@
|
||||
@startuml
|
||||
enum "aare::DetectorType" as C_0000214432771357383463
|
||||
enum C_0000214432771357383463 {
|
||||
Jungfrau
|
||||
Eiger
|
||||
Mythen3
|
||||
Moench
|
||||
ChipTestBoard
|
||||
}
|
||||
class "aare::Frame" as C_0001608703618093824988
|
||||
class C_0001608703618093824988 {
|
||||
+Frame(ssize_t rows, ssize_t cols, ssize_t m_bitdepth) : void
|
||||
+Frame(std::byte * fp, ssize_t rows, ssize_t cols, ssize_t m_bitdepth) : void
|
||||
+Frame(Frame && other) : void
|
||||
+Frame(const Frame & other) : void
|
||||
+~Frame() : void
|
||||
..
|
||||
+operator=(Frame & other) : Frame &
|
||||
..
|
||||
+bitdepth() const : ssize_t
|
||||
+cols() const : ssize_t
|
||||
+data() const : std::byte *
|
||||
+get(int row, int col) : std::byte *
|
||||
+image<T>() : NDArray<T>
|
||||
+rows() const : ssize_t
|
||||
+set<T>(int row, int col, T data) : void
|
||||
+size() const : ssize_t
|
||||
+view<T>() : NDView<T>
|
||||
__
|
||||
-m_bitdepth : ssize_t
|
||||
-m_cols : ssize_t
|
||||
-m_data : std::byte *
|
||||
-m_rows : ssize_t
|
||||
}
|
||||
class "aare::FileConfig" as C_0001694843161451381081
|
||||
class C_0001694843161451381081 {
|
||||
+operator!=(const FileConfig & other) const : bool
|
||||
+operator==(const FileConfig & other) const : bool
|
||||
__
|
||||
+cols : uint64_t
|
||||
+dtype : aare::DType
|
||||
+geometry : xy
|
||||
+rows : uint64_t
|
||||
}
|
||||
abstract "aare::FileInterface" as C_0002122346448923803234
|
||||
abstract C_0002122346448923803234 {
|
||||
+~FileInterface() : void
|
||||
..
|
||||
{abstract} +bitdepth() const = 0 : ssize_t
|
||||
{abstract} +bytes_per_frame() = 0 : size_t
|
||||
{abstract} +cols() const = 0 : ssize_t
|
||||
{abstract} +frame_number(size_t frame_index) = 0 : size_t
|
||||
+iread(size_t frame_number) : Frame
|
||||
+iread(size_t frame_number, size_t n_frames) : std::vector<Frame>
|
||||
{abstract} +pixels() = 0 : size_t
|
||||
{abstract} +read() = 0 : Frame
|
||||
{abstract} +read(size_t n_frames) = 0 : std::vector<Frame>
|
||||
{abstract} +read_into(std::byte * image_buf) = 0 : void
|
||||
{abstract} +read_into(std::byte * image_buf, size_t n_frames) = 0 : void
|
||||
{abstract} +rows() const = 0 : ssize_t
|
||||
{abstract} +seek(size_t frame_number) = 0 : void
|
||||
{abstract} +tell() = 0 : size_t
|
||||
{abstract} +total_frames() const = 0 : size_t
|
||||
{abstract} +write(Frame & frame) = 0 : void
|
||||
__
|
||||
+current_frame : size_t
|
||||
+m_base_name : std::string
|
||||
+m_base_path : std::filesystem::path
|
||||
+m_bitdepth : ssize_t
|
||||
+m_cols : ssize_t
|
||||
+m_ext : std::string
|
||||
+m_findex : int
|
||||
+m_fname : std::filesystem::path
|
||||
+m_mode : std::string
|
||||
+m_rows : ssize_t
|
||||
+m_total_frames : size_t
|
||||
+m_type : DetectorType
|
||||
+max_frames_per_file : size_t
|
||||
+version : std::string
|
||||
}
|
||||
class "aare::File" as C_0002007196654403438648
|
||||
class C_0002007196654403438648 {
|
||||
+File(std::filesystem::path fname, std::string mode, FileConfig cfg = {}) : void
|
||||
+File(File && other) : void
|
||||
+~File() : void
|
||||
..
|
||||
+bitdepth() const : ssize_t
|
||||
+bytes_per_frame() : size_t
|
||||
+cols() const : ssize_t
|
||||
+frame_number(size_t frame_index) : size_t
|
||||
+iread(size_t frame_number) : Frame
|
||||
+pixels() : size_t
|
||||
+read() : Frame
|
||||
+read(size_t n_frames) : std::vector<Frame>
|
||||
+read_into(std::byte * image_buf) : void
|
||||
+read_into(std::byte * image_buf, size_t n_frames) : void
|
||||
+rows() const : ssize_t
|
||||
+seek(size_t frame_number) : void
|
||||
+tell() const : size_t
|
||||
+total_frames() const : size_t
|
||||
+write(Frame & frame) : void
|
||||
__
|
||||
-file_impl : FileInterface *
|
||||
}
|
||||
class "aare::NumpyFile" as C_0001470720024404954003
|
||||
class C_0001470720024404954003 {
|
||||
+NumpyFile(const std::filesystem::path & fname, const std::string & mode = "r", FileConfig cfg = {}) : void
|
||||
+~NumpyFile() : void
|
||||
..
|
||||
+bitdepth() const : ssize_t
|
||||
+bytes_per_frame() : size_t
|
||||
+cols() const : ssize_t
|
||||
+dtype() const : DType
|
||||
+frame_number(size_t frame_index) : size_t
|
||||
-get_frame(size_t frame_number) : Frame
|
||||
-get_frame_into(size_t, std::byte *) : void
|
||||
+load<T,size_t NDim>() : NDArray<T, NDim>
|
||||
-load_metadata() : void
|
||||
+pixels() : size_t
|
||||
+read() : Frame
|
||||
+read(size_t n_frames) : std::vector<Frame>
|
||||
+read_into(std::byte * image_buf, size_t n_frames) : void
|
||||
+read_into(std::byte * image_buf) : void
|
||||
+rows() const : ssize_t
|
||||
+seek(size_t frame_number) : void
|
||||
+shape() const : std::vector<size_t>
|
||||
+tell() : size_t
|
||||
+total_frames() const : size_t
|
||||
+write(Frame & frame) : void
|
||||
__
|
||||
-current_frame : size_t
|
||||
-fp : FILE *
|
||||
-header_len : uint32_t
|
||||
-header_len_size : uint8_t
|
||||
-header_size : size_t
|
||||
-initial_header_len : size_t
|
||||
-m_header : NumpyHeader
|
||||
-major_ver_ : uint8_t
|
||||
-minor_ver_ : uint8_t
|
||||
}
|
||||
class "aare::RawFile" as C_0001505206538021535080
|
||||
class C_0001505206538021535080 {
|
||||
+RawFile(const std::filesystem::path & fname, const std::string & mode = "r", const FileConfig & cfg = {}) : void
|
||||
+~RawFile() : void
|
||||
..
|
||||
+bitdepth() const : ssize_t
|
||||
+bytes_per_frame() : size_t
|
||||
+cols() const : ssize_t
|
||||
+data_fname(int mod_id, int file_id) : std::filesystem::path
|
||||
-find_geometry() : void
|
||||
+find_number_of_subfiles() : void
|
||||
+frame_number(size_t frame_index) : size_t
|
||||
-get_frame(size_t frame_number) : Frame
|
||||
-get_frame_into(size_t frame_number, std::byte * image_buf) : void
|
||||
{static} +is_master_file(std::filesystem::path fpath) : bool
|
||||
+master_fname() : std::filesystem::path
|
||||
-open_subfiles() : void
|
||||
-parse_fname() : void
|
||||
-parse_json_metadata() : void
|
||||
-parse_metadata() : void
|
||||
-parse_raw_metadata() : void
|
||||
+pixels() : size_t
|
||||
+read(size_t n_frames) : std::vector<Frame>
|
||||
+read() : Frame
|
||||
-read_header(const std::filesystem::path & fname) : sls_detector_header
|
||||
+read_into(std::byte * image_buf, size_t n_frames) : void
|
||||
+read_into(std::byte * image_buf) : void
|
||||
+rows() const : ssize_t
|
||||
+seek(size_t frame_number) : void
|
||||
+set_config(int row, int col) : void
|
||||
+tell() : size_t
|
||||
+total_frames() const : size_t
|
||||
+write(Frame & frame) : void
|
||||
__
|
||||
-cfg : RawFileConfig
|
||||
-geometry : xy
|
||||
-n_subfile_parts : size_t
|
||||
-n_subfiles : size_t
|
||||
-positions : std::vector<xy>
|
||||
-quad : bool
|
||||
-subfile_cols : int
|
||||
-subfile_rows : int
|
||||
-subfiles : std::vector<std::vector<SubFile *>>
|
||||
-timing_mode : TimingMode
|
||||
}
|
||||
C_0002122346448923803234 ..> C_0001608703618093824988
|
||||
C_0002122346448923803234 o-- C_0000214432771357383463 : +m_type
|
||||
C_0002007196654403438648 ..> C_0001694843161451381081
|
||||
C_0002007196654403438648 ..> C_0001608703618093824988
|
||||
C_0002007196654403438648 --> C_0002122346448923803234 : -file_impl
|
||||
C_0001470720024404954003 ..> C_0001694843161451381081
|
||||
C_0001470720024404954003 ..> C_0001608703618093824988
|
||||
C_0002122346448923803234 <|-- C_0001470720024404954003
|
||||
C_0001505206538021535080 ..> C_0001694843161451381081
|
||||
C_0001505206538021535080 ..> C_0001608703618093824988
|
||||
C_0002122346448923803234 <|-- C_0001505206538021535080
|
||||
|
||||
'Generated with clang-uml, version 0.5.1
|
||||
'LLVM version clang version 17.0.6 (Fedora 17.0.6-2.fc39)
|
||||
@enduml
|
1
docs/diagrams/file_io_class.svg
Normal file
1
docs/diagrams/file_io_class.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 59 KiB |
136
docs/diagrams/network_io_class.puml
Normal file
136
docs/diagrams/network_io_class.puml
Normal file
@ -0,0 +1,136 @@
|
||||
@startuml
|
||||
class "aare::Frame" as C_0001608703618093824988
|
||||
class C_0001608703618093824988 {
|
||||
+Frame(ssize_t rows, ssize_t cols, ssize_t m_bitdepth) : void
|
||||
+Frame(std::byte * fp, ssize_t rows, ssize_t cols, ssize_t m_bitdepth) : void
|
||||
+Frame(Frame && other) : void
|
||||
+Frame(const Frame & other) : void
|
||||
+~Frame() : void
|
||||
..
|
||||
+operator=(Frame & other) : Frame &
|
||||
..
|
||||
+bitdepth() const : ssize_t
|
||||
+cols() const : ssize_t
|
||||
+data() const : std::byte *
|
||||
+get(int row, int col) : std::byte *
|
||||
+image<T>() : NDArray<T>
|
||||
+rows() const : ssize_t
|
||||
+set<T>(int row, int col, T data) : void
|
||||
+size() const : ssize_t
|
||||
+view<T>() : NDView<T>
|
||||
__
|
||||
-m_bitdepth : ssize_t
|
||||
-m_cols : ssize_t
|
||||
-m_data : std::byte *
|
||||
-m_rows : ssize_t
|
||||
}
|
||||
class "aare::ZmqHeader" as C_0000690012646166089557
|
||||
class C_0000690012646166089557 {
|
||||
+operator==(const ZmqHeader & other) const : bool
|
||||
..
|
||||
+from_string(std::string & s) : void
|
||||
+to_string() const : std::string
|
||||
__
|
||||
+acqIndex : uint64_t
|
||||
+addJsonHeader : std::map<std::string,std::string>
|
||||
+column : uint16_t
|
||||
+completeImage : bool
|
||||
+data : bool
|
||||
+detSpec1 : uint64_t
|
||||
+detSpec2 : uint16_t
|
||||
+detSpec3 : uint32_t
|
||||
+detSpec4 : uint16_t
|
||||
+detType : uint8_t
|
||||
+dynamicRange : uint32_t
|
||||
+expLength : uint32_t
|
||||
+fileIndex : uint64_t
|
||||
+flipRows : int
|
||||
+fname : std::string
|
||||
+frameIndex : uint64_t
|
||||
+frameNumber : uint64_t
|
||||
+imageSize : uint32_t
|
||||
+jsonversion : uint32_t
|
||||
+modId : uint16_t
|
||||
+ndetx : uint32_t
|
||||
+ndety : uint32_t
|
||||
+npixelsx : uint32_t
|
||||
+npixelsy : uint32_t
|
||||
+packetNumber : uint32_t
|
||||
+progress : double
|
||||
+quad : uint32_t
|
||||
+row : uint16_t
|
||||
+rx_roi : std::array<int,4>
|
||||
+timestamp : uint64_t
|
||||
+version : uint8_t
|
||||
}
|
||||
class "aare::ZmqSocket" as C_0000575290120620432482
|
||||
class C_0000575290120620432482 {
|
||||
+ZmqSocket() = default : void
|
||||
+ZmqSocket(const ZmqSocket &) = deleted : void
|
||||
+ZmqSocket(ZmqSocket &&) = deleted : void
|
||||
+~ZmqSocket() : void
|
||||
..
|
||||
+operator=(const ZmqSocket &) = deleted : ZmqSocket
|
||||
..
|
||||
+disconnect() : void
|
||||
+set_potential_frame_size(size_t size) : void
|
||||
+set_timeout_ms(int n) : void
|
||||
+set_zmq_hwm(int hwm) : void
|
||||
__
|
||||
#m_context : void *
|
||||
#m_endpoint : std::string
|
||||
#m_header_buffer : char *
|
||||
{static} #m_max_header_size : const size_t
|
||||
#m_potential_frame_size : size_t
|
||||
#m_socket : void *
|
||||
#m_timeout_ms : int
|
||||
#m_zmq_hwm : int
|
||||
}
|
||||
class "aare::ZmqFrame" as C_0001018278375791869829
|
||||
class C_0001018278375791869829 {
|
||||
__
|
||||
+frame : Frame
|
||||
+header : ZmqHeader
|
||||
}
|
||||
class "aare::network_io::NetworkError" as C_0001290043041844945927
|
||||
class C_0001290043041844945927 {
|
||||
+NetworkError(const char * msg) : void
|
||||
+NetworkError(const std::string msg) : void
|
||||
..
|
||||
+what() const noexcept : const char *
|
||||
__
|
||||
-m_msg : const char *
|
||||
}
|
||||
class "aare::ZmqSocketReceiver" as C_0001017868003595712218
|
||||
class C_0001017868003595712218 {
|
||||
+ZmqSocketReceiver(const std::string & endpoint) : void
|
||||
..
|
||||
+connect() : void
|
||||
-receive_data(std::byte * data, size_t size) : int
|
||||
-receive_header() : ZmqHeader
|
||||
+receive_n() : std::vector<ZmqFrame>
|
||||
-receive_zmqframe() : ZmqFrame
|
||||
__
|
||||
}
|
||||
class "aare::ZmqSocketSender" as C_0002178845803227443176
|
||||
class C_0002178845803227443176 {
|
||||
+ZmqSocketSender(const std::string & endpoint) : void
|
||||
..
|
||||
+bind() : void
|
||||
+send(const ZmqHeader & header, const std::byte * data, size_t size) : size_t
|
||||
+send(const ZmqFrame & zmq_frame) : size_t
|
||||
+send(const std::vector<ZmqFrame> & zmq_frames) : size_t
|
||||
__
|
||||
}
|
||||
C_0001018278375791869829 o-- C_0000690012646166089557 : +header
|
||||
C_0001018278375791869829 o-- C_0001608703618093824988 : +frame
|
||||
C_0001017868003595712218 ..> C_0001018278375791869829
|
||||
C_0001017868003595712218 ..> C_0000690012646166089557
|
||||
C_0000575290120620432482 <|-- C_0001017868003595712218
|
||||
C_0002178845803227443176 ..> C_0000690012646166089557
|
||||
C_0002178845803227443176 ..> C_0001018278375791869829
|
||||
C_0000575290120620432482 <|-- C_0002178845803227443176
|
||||
|
||||
'Generated with clang-uml, version 0.5.1
|
||||
'LLVM version clang version 17.0.6 (Fedora 17.0.6-2.fc39)
|
||||
@enduml
|
1
docs/diagrams/network_io_class.svg
Normal file
1
docs/diagrams/network_io_class.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 41 KiB |
109
docs/html/CircularFifo_8hpp.html
Normal file
109
docs/html/CircularFifo_8hpp.html
Normal file
@ -0,0 +1,109 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.7"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>AARE: core/include/aare/core/CircularFifo.hpp File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectalign">
|
||||
<div id="projectname">AARE
|
||||
</div>
|
||||
<div id="projectbrief">Data analysis library for PSI hybrid detectors</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.7 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_4270bfced15e0e73154b13468c7c9ad9.html">core</a></li><li class="navelem"><a class="el" href="dir_24d671cfcbc5d5238a6bd565a49d198f.html">include</a></li><li class="navelem"><a class="el" href="dir_2c69decb5c62900c73cbf4abc58a8693.html">aare</a></li><li class="navelem"><a class="el" href="dir_e51344b9c4a46f8ed8ec1e9a48398749.html">core</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Data Structures</a> |
|
||||
<a href="#namespaces">Namespaces</a> </div>
|
||||
<div class="headertitle"><div class="title">CircularFifo.hpp File Reference</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock"><code>#include <chrono></code><br />
|
||||
<code>#include <fmt/color.h></code><br />
|
||||
<code>#include <fmt/format.h></code><br />
|
||||
<code>#include <memory></code><br />
|
||||
<code>#include <thread></code><br />
|
||||
<code>#include "<a class="el" href="ProducerConsumerQueue_8hpp_source.html">aare/core/ProducerConsumerQueue.hpp</a>"</code><br />
|
||||
</div>
|
||||
<p><a href="CircularFifo_8hpp_source.html">Go to the source code of this file.</a></p>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
|
||||
Data Structures</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classaare_1_1CircularFifo.html">aare::CircularFifo< ItemType ></a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
|
||||
Namespaces</h2></td></tr>
|
||||
<tr class="memitem:namespaceaare"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceaare.html">aare</a></td></tr>
|
||||
<tr class="memdesc:namespaceaare"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classaare_1_1Frame.html">Frame</a> class to represent a single frame of data model class should be able to work with streams coming from files or network. <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
212
docs/html/CircularFifo_8hpp_source.html
Normal file
212
docs/html/CircularFifo_8hpp_source.html
Normal file
@ -0,0 +1,212 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.7"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>AARE: core/include/aare/core/CircularFifo.hpp Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectalign">
|
||||
<div id="projectname">AARE
|
||||
</div>
|
||||
<div id="projectbrief">Data analysis library for PSI hybrid detectors</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.7 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_4270bfced15e0e73154b13468c7c9ad9.html">core</a></li><li class="navelem"><a class="el" href="dir_24d671cfcbc5d5238a6bd565a49d198f.html">include</a></li><li class="navelem"><a class="el" href="dir_2c69decb5c62900c73cbf4abc58a8693.html">aare</a></li><li class="navelem"><a class="el" href="dir_e51344b9c4a46f8ed8ec1e9a48398749.html">core</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">CircularFifo.hpp</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<a href="CircularFifo_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#pragma once</span></div>
|
||||
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span> </div>
|
||||
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#include <chrono></span></div>
|
||||
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#include <fmt/color.h></span></div>
|
||||
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include <fmt/format.h></span></div>
|
||||
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include <memory></span></div>
|
||||
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#include <thread></span></div>
|
||||
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
|
||||
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include "<a class="code" href="ProducerConsumerQueue_8hpp.html">aare/core/ProducerConsumerQueue.hpp</a>"</span></div>
|
||||
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
|
||||
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"><a class="line" href="namespaceaare.html"> 11</a></span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceaare.html">aare</a> {</div>
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"><a class="line" href="classaare_1_1CircularFifo.html"> 13</a></span><span class="keyword">template</span> <<span class="keyword">class</span> ItemType> <span class="keyword">class </span><a class="code hl_class" href="classaare_1_1CircularFifo.html">CircularFifo</a> {</div>
|
||||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"><a class="line" href="classaare_1_1CircularFifo.html#af2c357b41296f0516b402feae91dc82d"> 14</a></span> uint32_t <a class="code hl_variable" href="classaare_1_1CircularFifo.html#af2c357b41296f0516b402feae91dc82d">fifo_size</a>;</div>
|
||||
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"><a class="line" href="classaare_1_1CircularFifo.html#ad08760281625cee96d79104c4321dbf4"> 15</a></span> <a class="code hl_struct" href="structfolly_1_1ProducerConsumerQueue.html">folly::ProducerConsumerQueue<ItemType></a> <a class="code hl_variable" href="classaare_1_1CircularFifo.html#ad08760281625cee96d79104c4321dbf4">free_slots</a>;</div>
|
||||
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"><a class="line" href="classaare_1_1CircularFifo.html#a28f5f6090b7812d18543b213c4d3177f"> 16</a></span> <a class="code hl_struct" href="structfolly_1_1ProducerConsumerQueue.html">folly::ProducerConsumerQueue<ItemType></a> <a class="code hl_variable" href="classaare_1_1CircularFifo.html#a28f5f6090b7812d18543b213c4d3177f">filled_slots</a>;</div>
|
||||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
|
||||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"><a class="line" href="classaare_1_1CircularFifo.html#a8579c56895285557b6029db73f5b2af3"> 19</a></span> <a class="code hl_function" href="classaare_1_1CircularFifo.html#a8579c56895285557b6029db73f5b2af3">CircularFifo</a>() : <a class="code hl_class" href="classaare_1_1CircularFifo.html">CircularFifo</a>(100){};</div>
|
||||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"><a class="line" href="classaare_1_1CircularFifo.html#abeda9cfed3526a9c4241fcc9ed4ba163"> 20</a></span> <a class="code hl_function" href="classaare_1_1CircularFifo.html#abeda9cfed3526a9c4241fcc9ed4ba163">CircularFifo</a>(uint32_t size) : <a class="code hl_variable" href="classaare_1_1CircularFifo.html#af2c357b41296f0516b402feae91dc82d">fifo_size</a>(size), <a class="code hl_variable" href="classaare_1_1CircularFifo.html#ad08760281625cee96d79104c4321dbf4">free_slots</a>(size + 1), <a class="code hl_variable" href="classaare_1_1CircularFifo.html#a28f5f6090b7812d18543b213c4d3177f">filled_slots</a>(size + 1) {</div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="comment">// TODO! how do we deal with alignment for writing? alignas???</span></div>
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <span class="comment">// Do we give the user a chance to provide memory locations?</span></div>
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="comment">// Templated allocator?</span></div>
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < <a class="code hl_variable" href="classaare_1_1CircularFifo.html#af2c357b41296f0516b402feae91dc82d">fifo_size</a>; ++i) {</div>
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <a class="code hl_variable" href="classaare_1_1CircularFifo.html#ad08760281625cee96d79104c4321dbf4">free_slots</a>.<a class="code hl_function" href="structfolly_1_1ProducerConsumerQueue.html#af849682c2351c5f2b3344e32c512a961">write</a>(ItemType{});</div>
|
||||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> }</div>
|
||||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> }</div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
|
||||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"><a class="line" href="classaare_1_1CircularFifo.html#af4e41499b0c82bb4264739a55fef2cdc"> 30</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classaare_1_1CircularFifo.html#af4e41499b0c82bb4264739a55fef2cdc">next</a>() {</div>
|
||||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="comment">// TODO! avoid default constructing ItemType</span></div>
|
||||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> ItemType it;</div>
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classaare_1_1CircularFifo.html#a28f5f6090b7812d18543b213c4d3177f">filled_slots</a>.<a class="code hl_function" href="structfolly_1_1ProducerConsumerQueue.html#a3288ef770695d676376c80ea41630b74">read</a>(it))</div>
|
||||
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classaare_1_1CircularFifo.html#ad08760281625cee96d79104c4321dbf4">free_slots</a>.<a class="code hl_function" href="structfolly_1_1ProducerConsumerQueue.html#af849682c2351c5f2b3344e32c512a961">write</a>(std::move(it)))</div>
|
||||
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> }</div>
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> </div>
|
||||
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="classaare_1_1CircularFifo.html#a2a2d8bb747eb3235b2bddd88216b1733"> 40</a></span> <a class="code hl_function" href="classaare_1_1CircularFifo.html#a2a2d8bb747eb3235b2bddd88216b1733">~CircularFifo</a>() {}</div>
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
|
||||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="classaare_1_1CircularFifo.html#a37b26e1fd9d6904cef2d1cafda316dc0"> 42</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="classaare_1_1CircularFifo.html#a37b26e1fd9d6904cef2d1cafda316dc0">value_type</a> = ItemType;</div>
|
||||
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> </div>
|
||||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="classaare_1_1CircularFifo.html#afbf8f710904794b3994363161fbb2cab"> 44</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="classaare_1_1CircularFifo.html#afbf8f710904794b3994363161fbb2cab">numFilledSlots</a>() const noexcept { <span class="keywordflow">return</span> <a class="code hl_variable" href="classaare_1_1CircularFifo.html#a28f5f6090b7812d18543b213c4d3177f">filled_slots</a>.<a class="code hl_function" href="structfolly_1_1ProducerConsumerQueue.html#adb384b6a25b755b627d04ff6f2ca9c95">sizeGuess</a>(); }</div>
|
||||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="classaare_1_1CircularFifo.html#a9190570892efabe5d2cb6fbdcd31c813"> 45</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="classaare_1_1CircularFifo.html#a9190570892efabe5d2cb6fbdcd31c813">numFreeSlots</a>() const noexcept { <span class="keywordflow">return</span> <a class="code hl_variable" href="classaare_1_1CircularFifo.html#ad08760281625cee96d79104c4321dbf4">free_slots</a>.<a class="code hl_function" href="structfolly_1_1ProducerConsumerQueue.html#adb384b6a25b755b627d04ff6f2ca9c95">sizeGuess</a>(); }</div>
|
||||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="classaare_1_1CircularFifo.html#ae7ef1972a9b372c36c048f358f3bc977"> 46</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="classaare_1_1CircularFifo.html#ae7ef1972a9b372c36c048f358f3bc977">isFull</a>() const noexcept { <span class="keywordflow">return</span> <a class="code hl_variable" href="classaare_1_1CircularFifo.html#a28f5f6090b7812d18543b213c4d3177f">filled_slots</a>.<a class="code hl_function" href="structfolly_1_1ProducerConsumerQueue.html#ad883c041917c2b7f10b0ecdaeaeb0577">isFull</a>(); }</div>
|
||||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div>
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="classaare_1_1CircularFifo.html#a7065cd5808ef6226fd36d0a522678b41"> 48</a></span> ItemType <a class="code hl_function" href="classaare_1_1CircularFifo.html#a7065cd5808ef6226fd36d0a522678b41">pop_free</a>() {</div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> ItemType v;</div>
|
||||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keywordflow">while</span> (!<a class="code hl_variable" href="classaare_1_1CircularFifo.html#ad08760281625cee96d79104c4321dbf4">free_slots</a>.<a class="code hl_function" href="structfolly_1_1ProducerConsumerQueue.html#a3288ef770695d676376c80ea41630b74">read</a>(v))</div>
|
||||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> ;</div>
|
||||
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordflow">return</span> std::move(v);</div>
|
||||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="comment">// return v;</span></div>
|
||||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> }</div>
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="classaare_1_1CircularFifo.html#a1ee728381a85f2105739db57b3a3c74d"> 56</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classaare_1_1CircularFifo.html#a1ee728381a85f2105739db57b3a3c74d">try_pop_free</a>(ItemType &v) { <span class="keywordflow">return</span> <a class="code hl_variable" href="classaare_1_1CircularFifo.html#ad08760281625cee96d79104c4321dbf4">free_slots</a>.<a class="code hl_function" href="structfolly_1_1ProducerConsumerQueue.html#a3288ef770695d676376c80ea41630b74">read</a>(v); }</div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> </div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="classaare_1_1CircularFifo.html#af10fb2772258ac5f3001a48f42ddc466"> 58</a></span> ItemType <a class="code hl_function" href="classaare_1_1CircularFifo.html#af10fb2772258ac5f3001a48f42ddc466">pop_value</a>(std::chrono::nanoseconds wait, std::atomic<bool> &stopped) {</div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> ItemType v;</div>
|
||||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordflow">while</span> (!<a class="code hl_variable" href="classaare_1_1CircularFifo.html#a28f5f6090b7812d18543b213c4d3177f">filled_slots</a>.<a class="code hl_function" href="structfolly_1_1ProducerConsumerQueue.html#a3288ef770695d676376c80ea41630b74">read</a>(v) && !stopped) {</div>
|
||||
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> std::this_thread::sleep_for(wait);</div>
|
||||
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> }</div>
|
||||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keywordflow">return</span> std::move(v);</div>
|
||||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> }</div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
|
||||
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"><a class="line" href="classaare_1_1CircularFifo.html#a3568e05982e05668593ebf5d033cb0f6"> 66</a></span> ItemType <a class="code hl_function" href="classaare_1_1CircularFifo.html#a3568e05982e05668593ebf5d033cb0f6">pop_value</a>() {</div>
|
||||
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> ItemType v;</div>
|
||||
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordflow">while</span> (!<a class="code hl_variable" href="classaare_1_1CircularFifo.html#a28f5f6090b7812d18543b213c4d3177f">filled_slots</a>.<a class="code hl_function" href="structfolly_1_1ProducerConsumerQueue.html#a3288ef770695d676376c80ea41630b74">read</a>(v))</div>
|
||||
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> ;</div>
|
||||
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="keywordflow">return</span> std::move(v);</div>
|
||||
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> }</div>
|
||||
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
|
||||
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="classaare_1_1CircularFifo.html#ace6570667d6859e219f3519812c5a24a"> 73</a></span> ItemType *<a class="code hl_function" href="classaare_1_1CircularFifo.html#ace6570667d6859e219f3519812c5a24a">frontPtr</a>() { <span class="keywordflow">return</span> <a class="code hl_variable" href="classaare_1_1CircularFifo.html#a28f5f6090b7812d18543b213c4d3177f">filled_slots</a>.<a class="code hl_function" href="structfolly_1_1ProducerConsumerQueue.html#a24474b670bc44f75f7c978087e401bd0">frontPtr</a>(); }</div>
|
||||
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> </div>
|
||||
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="comment">// TODO! Add function to move item from filled to free to be used</span></div>
|
||||
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="comment">// with the frontPtr function</span></div>
|
||||
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> </div>
|
||||
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="classaare_1_1CircularFifo.html#ae0637495a0c030ad77e78b14cbe619ad"> 78</a></span> <span class="keyword">template</span> <<span class="keyword">class</span>... Args> <span class="keywordtype">void</span> <a class="code hl_function" href="classaare_1_1CircularFifo.html#ae0637495a0c030ad77e78b14cbe619ad">push_value</a>(Args &&...recordArgs) {</div>
|
||||
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keywordflow">while</span> (!<a class="code hl_variable" href="classaare_1_1CircularFifo.html#a28f5f6090b7812d18543b213c4d3177f">filled_slots</a>.<a class="code hl_function" href="structfolly_1_1ProducerConsumerQueue.html#af849682c2351c5f2b3344e32c512a961">write</a>(std::forward<Args>(recordArgs)...))</div>
|
||||
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> ;</div>
|
||||
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> }</div>
|
||||
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
|
||||
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"><a class="line" href="classaare_1_1CircularFifo.html#aa16fd4ce93fb94b7214353cabfefc1e1"> 83</a></span> <span class="keyword">template</span> <<span class="keyword">class</span>... Args> <span class="keywordtype">bool</span> <a class="code hl_function" href="classaare_1_1CircularFifo.html#aa16fd4ce93fb94b7214353cabfefc1e1">try_push_value</a>(Args &&...recordArgs) {</div>
|
||||
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classaare_1_1CircularFifo.html#a28f5f6090b7812d18543b213c4d3177f">filled_slots</a>.<a class="code hl_function" href="structfolly_1_1ProducerConsumerQueue.html#af849682c2351c5f2b3344e32c512a961">write</a>(std::forward<Args>(recordArgs)...);</div>
|
||||
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> }</div>
|
||||
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> </div>
|
||||
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"><a class="line" href="classaare_1_1CircularFifo.html#a0d58312a721120580eb030c6524c35ec"> 87</a></span> <span class="keyword">template</span> <<span class="keyword">class</span>... Args> <span class="keywordtype">void</span> <a class="code hl_function" href="classaare_1_1CircularFifo.html#a0d58312a721120580eb030c6524c35ec">push_free</a>(Args &&...recordArgs) {</div>
|
||||
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="keywordflow">while</span> (!<a class="code hl_variable" href="classaare_1_1CircularFifo.html#ad08760281625cee96d79104c4321dbf4">free_slots</a>.<a class="code hl_function" href="structfolly_1_1ProducerConsumerQueue.html#af849682c2351c5f2b3344e32c512a961">write</a>(std::forward<Args>(recordArgs)...))</div>
|
||||
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> ;</div>
|
||||
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> }</div>
|
||||
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> </div>
|
||||
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"><a class="line" href="classaare_1_1CircularFifo.html#ae643565632229878f01a88f650ea5e3a"> 92</a></span> <span class="keyword">template</span> <<span class="keyword">class</span>... Args> <span class="keywordtype">bool</span> <a class="code hl_function" href="classaare_1_1CircularFifo.html#ae643565632229878f01a88f650ea5e3a">try_push_free</a>(Args &&...recordArgs) {</div>
|
||||
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classaare_1_1CircularFifo.html#ad08760281625cee96d79104c4321dbf4">free_slots</a>.<a class="code hl_function" href="structfolly_1_1ProducerConsumerQueue.html#af849682c2351c5f2b3344e32c512a961">write</a>(std::forward<Args>(recordArgs)...);</div>
|
||||
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> }</div>
|
||||
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span>};</div>
|
||||
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
|
||||
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span>} <span class="comment">// namespace aare</span></div>
|
||||
<div class="ttc" id="aProducerConsumerQueue_8hpp_html"><div class="ttname"><a href="ProducerConsumerQueue_8hpp.html">ProducerConsumerQueue.hpp</a></div></div>
|
||||
<div class="ttc" id="aclassaare_1_1CircularFifo_html"><div class="ttname"><a href="classaare_1_1CircularFifo.html">aare::CircularFifo</a></div><div class="ttdef"><b>Definition</b> CircularFifo.hpp:13</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1CircularFifo_html_a0d58312a721120580eb030c6524c35ec"><div class="ttname"><a href="classaare_1_1CircularFifo.html#a0d58312a721120580eb030c6524c35ec">aare::CircularFifo::push_free</a></div><div class="ttdeci">void push_free(Args &&...recordArgs)</div><div class="ttdef"><b>Definition</b> CircularFifo.hpp:87</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1CircularFifo_html_a1ee728381a85f2105739db57b3a3c74d"><div class="ttname"><a href="classaare_1_1CircularFifo.html#a1ee728381a85f2105739db57b3a3c74d">aare::CircularFifo::try_pop_free</a></div><div class="ttdeci">bool try_pop_free(ItemType &v)</div><div class="ttdef"><b>Definition</b> CircularFifo.hpp:56</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1CircularFifo_html_a28f5f6090b7812d18543b213c4d3177f"><div class="ttname"><a href="classaare_1_1CircularFifo.html#a28f5f6090b7812d18543b213c4d3177f">aare::CircularFifo::filled_slots</a></div><div class="ttdeci">folly::ProducerConsumerQueue< ItemType > filled_slots</div><div class="ttdef"><b>Definition</b> CircularFifo.hpp:16</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1CircularFifo_html_a2a2d8bb747eb3235b2bddd88216b1733"><div class="ttname"><a href="classaare_1_1CircularFifo.html#a2a2d8bb747eb3235b2bddd88216b1733">aare::CircularFifo::~CircularFifo</a></div><div class="ttdeci">~CircularFifo()</div><div class="ttdef"><b>Definition</b> CircularFifo.hpp:40</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1CircularFifo_html_a3568e05982e05668593ebf5d033cb0f6"><div class="ttname"><a href="classaare_1_1CircularFifo.html#a3568e05982e05668593ebf5d033cb0f6">aare::CircularFifo::pop_value</a></div><div class="ttdeci">ItemType pop_value()</div><div class="ttdef"><b>Definition</b> CircularFifo.hpp:66</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1CircularFifo_html_a37b26e1fd9d6904cef2d1cafda316dc0"><div class="ttname"><a href="classaare_1_1CircularFifo.html#a37b26e1fd9d6904cef2d1cafda316dc0">aare::CircularFifo::value_type</a></div><div class="ttdeci">ItemType value_type</div><div class="ttdef"><b>Definition</b> CircularFifo.hpp:42</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1CircularFifo_html_a7065cd5808ef6226fd36d0a522678b41"><div class="ttname"><a href="classaare_1_1CircularFifo.html#a7065cd5808ef6226fd36d0a522678b41">aare::CircularFifo::pop_free</a></div><div class="ttdeci">ItemType pop_free()</div><div class="ttdef"><b>Definition</b> CircularFifo.hpp:48</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1CircularFifo_html_a8579c56895285557b6029db73f5b2af3"><div class="ttname"><a href="classaare_1_1CircularFifo.html#a8579c56895285557b6029db73f5b2af3">aare::CircularFifo::CircularFifo</a></div><div class="ttdeci">CircularFifo()</div><div class="ttdef"><b>Definition</b> CircularFifo.hpp:19</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1CircularFifo_html_a9190570892efabe5d2cb6fbdcd31c813"><div class="ttname"><a href="classaare_1_1CircularFifo.html#a9190570892efabe5d2cb6fbdcd31c813">aare::CircularFifo::numFreeSlots</a></div><div class="ttdeci">auto numFreeSlots() const noexcept</div><div class="ttdef"><b>Definition</b> CircularFifo.hpp:45</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1CircularFifo_html_aa16fd4ce93fb94b7214353cabfefc1e1"><div class="ttname"><a href="classaare_1_1CircularFifo.html#aa16fd4ce93fb94b7214353cabfefc1e1">aare::CircularFifo::try_push_value</a></div><div class="ttdeci">bool try_push_value(Args &&...recordArgs)</div><div class="ttdef"><b>Definition</b> CircularFifo.hpp:83</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1CircularFifo_html_abeda9cfed3526a9c4241fcc9ed4ba163"><div class="ttname"><a href="classaare_1_1CircularFifo.html#abeda9cfed3526a9c4241fcc9ed4ba163">aare::CircularFifo::CircularFifo</a></div><div class="ttdeci">CircularFifo(uint32_t size)</div><div class="ttdef"><b>Definition</b> CircularFifo.hpp:20</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1CircularFifo_html_ace6570667d6859e219f3519812c5a24a"><div class="ttname"><a href="classaare_1_1CircularFifo.html#ace6570667d6859e219f3519812c5a24a">aare::CircularFifo::frontPtr</a></div><div class="ttdeci">ItemType * frontPtr()</div><div class="ttdef"><b>Definition</b> CircularFifo.hpp:73</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1CircularFifo_html_ad08760281625cee96d79104c4321dbf4"><div class="ttname"><a href="classaare_1_1CircularFifo.html#ad08760281625cee96d79104c4321dbf4">aare::CircularFifo::free_slots</a></div><div class="ttdeci">folly::ProducerConsumerQueue< ItemType > free_slots</div><div class="ttdef"><b>Definition</b> CircularFifo.hpp:15</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1CircularFifo_html_ae0637495a0c030ad77e78b14cbe619ad"><div class="ttname"><a href="classaare_1_1CircularFifo.html#ae0637495a0c030ad77e78b14cbe619ad">aare::CircularFifo::push_value</a></div><div class="ttdeci">void push_value(Args &&...recordArgs)</div><div class="ttdef"><b>Definition</b> CircularFifo.hpp:78</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1CircularFifo_html_ae643565632229878f01a88f650ea5e3a"><div class="ttname"><a href="classaare_1_1CircularFifo.html#ae643565632229878f01a88f650ea5e3a">aare::CircularFifo::try_push_free</a></div><div class="ttdeci">bool try_push_free(Args &&...recordArgs)</div><div class="ttdef"><b>Definition</b> CircularFifo.hpp:92</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1CircularFifo_html_ae7ef1972a9b372c36c048f358f3bc977"><div class="ttname"><a href="classaare_1_1CircularFifo.html#ae7ef1972a9b372c36c048f358f3bc977">aare::CircularFifo::isFull</a></div><div class="ttdeci">auto isFull() const noexcept</div><div class="ttdef"><b>Definition</b> CircularFifo.hpp:46</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1CircularFifo_html_af10fb2772258ac5f3001a48f42ddc466"><div class="ttname"><a href="classaare_1_1CircularFifo.html#af10fb2772258ac5f3001a48f42ddc466">aare::CircularFifo::pop_value</a></div><div class="ttdeci">ItemType pop_value(std::chrono::nanoseconds wait, std::atomic< bool > &stopped)</div><div class="ttdef"><b>Definition</b> CircularFifo.hpp:58</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1CircularFifo_html_af2c357b41296f0516b402feae91dc82d"><div class="ttname"><a href="classaare_1_1CircularFifo.html#af2c357b41296f0516b402feae91dc82d">aare::CircularFifo::fifo_size</a></div><div class="ttdeci">uint32_t fifo_size</div><div class="ttdef"><b>Definition</b> CircularFifo.hpp:14</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1CircularFifo_html_af4e41499b0c82bb4264739a55fef2cdc"><div class="ttname"><a href="classaare_1_1CircularFifo.html#af4e41499b0c82bb4264739a55fef2cdc">aare::CircularFifo::next</a></div><div class="ttdeci">bool next()</div><div class="ttdef"><b>Definition</b> CircularFifo.hpp:30</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1CircularFifo_html_afbf8f710904794b3994363161fbb2cab"><div class="ttname"><a href="classaare_1_1CircularFifo.html#afbf8f710904794b3994363161fbb2cab">aare::CircularFifo::numFilledSlots</a></div><div class="ttdeci">auto numFilledSlots() const noexcept</div><div class="ttdef"><b>Definition</b> CircularFifo.hpp:44</div></div>
|
||||
<div class="ttc" id="anamespaceaare_html"><div class="ttname"><a href="namespaceaare.html">aare</a></div><div class="ttdoc">Frame class to represent a single frame of data model class should be able to work with streams comin...</div><div class="ttdef"><b>Definition</b> CircularFifo.hpp:11</div></div>
|
||||
<div class="ttc" id="astructfolly_1_1ProducerConsumerQueue_html"><div class="ttname"><a href="structfolly_1_1ProducerConsumerQueue.html">folly::ProducerConsumerQueue</a></div><div class="ttdef"><b>Definition</b> ProducerConsumerQueue.hpp:41</div></div>
|
||||
<div class="ttc" id="astructfolly_1_1ProducerConsumerQueue_html_a24474b670bc44f75f7c978087e401bd0"><div class="ttname"><a href="structfolly_1_1ProducerConsumerQueue.html#a24474b670bc44f75f7c978087e401bd0">folly::ProducerConsumerQueue::frontPtr</a></div><div class="ttdeci">T * frontPtr()</div><div class="ttdef"><b>Definition</b> ProducerConsumerQueue.hpp:114</div></div>
|
||||
<div class="ttc" id="astructfolly_1_1ProducerConsumerQueue_html_a3288ef770695d676376c80ea41630b74"><div class="ttname"><a href="structfolly_1_1ProducerConsumerQueue.html#a3288ef770695d676376c80ea41630b74">folly::ProducerConsumerQueue::read</a></div><div class="ttdeci">bool read(T &record)</div><div class="ttdef"><b>Definition</b> ProducerConsumerQueue.hpp:95</div></div>
|
||||
<div class="ttc" id="astructfolly_1_1ProducerConsumerQueue_html_ad883c041917c2b7f10b0ecdaeaeb0577"><div class="ttname"><a href="structfolly_1_1ProducerConsumerQueue.html#ad883c041917c2b7f10b0ecdaeaeb0577">folly::ProducerConsumerQueue::isFull</a></div><div class="ttdeci">bool isFull() const</div><div class="ttdef"><b>Definition</b> ProducerConsumerQueue.hpp:140</div></div>
|
||||
<div class="ttc" id="astructfolly_1_1ProducerConsumerQueue_html_adb384b6a25b755b627d04ff6f2ca9c95"><div class="ttname"><a href="structfolly_1_1ProducerConsumerQueue.html#adb384b6a25b755b627d04ff6f2ca9c95">folly::ProducerConsumerQueue::sizeGuess</a></div><div class="ttdeci">size_t sizeGuess() const</div><div class="ttdef"><b>Definition</b> ProducerConsumerQueue.hpp:157</div></div>
|
||||
<div class="ttc" id="astructfolly_1_1ProducerConsumerQueue_html_af849682c2351c5f2b3344e32c512a961"><div class="ttname"><a href="structfolly_1_1ProducerConsumerQueue.html#af849682c2351c5f2b3344e32c512a961">folly::ProducerConsumerQueue::write</a></div><div class="ttdeci">bool write(Args &&...recordArgs)</div><div class="ttdef"><b>Definition</b> ProducerConsumerQueue.hpp:78</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
261
docs/html/CircularFifo_8test_8cpp.html
Normal file
261
docs/html/CircularFifo_8test_8cpp.html
Normal file
@ -0,0 +1,261 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.7"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>AARE: core/test/CircularFifo.test.cpp File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectalign">
|
||||
<div id="projectname">AARE
|
||||
</div>
|
||||
<div id="projectbrief">Data analysis library for PSI hybrid detectors</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.7 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_4270bfced15e0e73154b13468c7c9ad9.html">core</a></li><li class="navelem"><a class="el" href="dir_eda73d8bf8fbd45703b949ae88d46188.html">test</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Data Structures</a> |
|
||||
<a href="#func-members">Functions</a> </div>
|
||||
<div class="headertitle"><div class="title">CircularFifo.test.cpp File Reference</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock"><code>#include <catch2/catch_all.hpp></code><br />
|
||||
<code>#include "<a class="el" href="CircularFifo_8hpp_source.html">aare/core/CircularFifo.hpp</a>"</code><br />
|
||||
</div><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
|
||||
Data Structures</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structMoveOnlyInt.html">MoveOnlyInt</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr class="memitem:a1b8c212b4d5924f3e89b962865f3bdb9"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="CircularFifo_8test_8cpp.html#a1b8c212b4d5924f3e89b962865f3bdb9">TEST_CASE</a> ("CircularFifo can be default constructed")</td></tr>
|
||||
<tr class="separator:a1b8c212b4d5924f3e89b962865f3bdb9"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a4b1a907d65f3038d619c6384e3667475"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="CircularFifo_8test_8cpp.html#a4b1a907d65f3038d619c6384e3667475">TEST_CASE</a> ("Newly constructed fifo has the right size")</td></tr>
|
||||
<tr class="separator:a4b1a907d65f3038d619c6384e3667475"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ae6091590aba8aec03a95d8028dfa18cc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="CircularFifo_8test_8cpp.html#ae6091590aba8aec03a95d8028dfa18cc">TEST_CASE</a> ("Can fit size number of objects")</td></tr>
|
||||
<tr class="separator:ae6091590aba8aec03a95d8028dfa18cc"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab732da1983d607b1804e45cbb130e2cc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="CircularFifo_8test_8cpp.html#ab732da1983d607b1804e45cbb130e2cc">TEST_CASE</a> ("Push move only type")</td></tr>
|
||||
<tr class="separator:ab732da1983d607b1804e45cbb130e2cc"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab2201262beb92831c027637b6cfd06ac"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="CircularFifo_8test_8cpp.html#ab2201262beb92831c027637b6cfd06ac">TEST_CASE</a> ("Push pop")</td></tr>
|
||||
<tr class="separator:ab2201262beb92831c027637b6cfd06ac"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a4df422caab10b6bbb68a5e01c0e9b659"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="CircularFifo_8test_8cpp.html#a4df422caab10b6bbb68a5e01c0e9b659">TEST_CASE</a> ("Pop free and then push")</td></tr>
|
||||
<tr class="separator:a4df422caab10b6bbb68a5e01c0e9b659"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a6d240590401958a420199d04a65ff6b0"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="CircularFifo_8test_8cpp.html#a6d240590401958a420199d04a65ff6b0">TEST_CASE</a> ("Skip the first value")</td></tr>
|
||||
<tr class="separator:a6d240590401958a420199d04a65ff6b0"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab65aae5a6bc4e7f44728108ca0c2683d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="CircularFifo_8test_8cpp.html#ab65aae5a6bc4e7f44728108ca0c2683d">TEST_CASE</a> ("Use in place and move to free")</td></tr>
|
||||
<tr class="separator:ab65aae5a6bc4e7f44728108ca0c2683d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<h2 class="groupheader">Function Documentation</h2>
|
||||
<a id="ae6091590aba8aec03a95d8028dfa18cc" name="ae6091590aba8aec03a95d8028dfa18cc"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ae6091590aba8aec03a95d8028dfa18cc">◆ </a></span>TEST_CASE() <span class="overload">[1/8]</span></h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">TEST_CASE </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">"Can fit size number of objects" </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a1b8c212b4d5924f3e89b962865f3bdb9" name="a1b8c212b4d5924f3e89b962865f3bdb9"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a1b8c212b4d5924f3e89b962865f3bdb9">◆ </a></span>TEST_CASE() <span class="overload">[2/8]</span></h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">TEST_CASE </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">"CircularFifo can be default constructed" </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a4b1a907d65f3038d619c6384e3667475" name="a4b1a907d65f3038d619c6384e3667475"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a4b1a907d65f3038d619c6384e3667475">◆ </a></span>TEST_CASE() <span class="overload">[3/8]</span></h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">TEST_CASE </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">"Newly constructed fifo has the right size" </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a4df422caab10b6bbb68a5e01c0e9b659" name="a4df422caab10b6bbb68a5e01c0e9b659"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a4df422caab10b6bbb68a5e01c0e9b659">◆ </a></span>TEST_CASE() <span class="overload">[4/8]</span></h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">TEST_CASE </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">"Pop free and then push" </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ab732da1983d607b1804e45cbb130e2cc" name="ab732da1983d607b1804e45cbb130e2cc"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ab732da1983d607b1804e45cbb130e2cc">◆ </a></span>TEST_CASE() <span class="overload">[5/8]</span></h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">TEST_CASE </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">"Push move only type" </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ab2201262beb92831c027637b6cfd06ac" name="ab2201262beb92831c027637b6cfd06ac"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ab2201262beb92831c027637b6cfd06ac">◆ </a></span>TEST_CASE() <span class="overload">[6/8]</span></h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">TEST_CASE </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">"Push pop" </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a6d240590401958a420199d04a65ff6b0" name="a6d240590401958a420199d04a65ff6b0"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a6d240590401958a420199d04a65ff6b0">◆ </a></span>TEST_CASE() <span class="overload">[7/8]</span></h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">TEST_CASE </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">"Skip the first value" </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ab65aae5a6bc4e7f44728108ca0c2683d" name="ab65aae5a6bc4e7f44728108ca0c2683d"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ab65aae5a6bc4e7f44728108ca0c2683d">◆ </a></span>TEST_CASE() <span class="overload">[8/8]</span></h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">TEST_CASE </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">"Use in place and move to free" </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
98
docs/html/DType_8cpp.html
Normal file
98
docs/html/DType_8cpp.html
Normal file
@ -0,0 +1,98 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.7"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>AARE: core/src/DType.cpp File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectalign">
|
||||
<div id="projectname">AARE
|
||||
</div>
|
||||
<div id="projectbrief">Data analysis library for PSI hybrid detectors</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.7 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_4270bfced15e0e73154b13468c7c9ad9.html">core</a></li><li class="navelem"><a class="el" href="dir_90fd98a0ba30abf7a6068a44995d2d6b.html">src</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#namespaces">Namespaces</a> </div>
|
||||
<div class="headertitle"><div class="title">DType.cpp File Reference</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock"><code>#include "<a class="el" href="DType_8hpp_source.html">aare/core/DType.hpp</a>"</code><br />
|
||||
<code>#include "<a class="el" href="logger_8hpp_source.html">aare/utils/logger.hpp</a>"</code><br />
|
||||
<code>#include <fmt/format.h></code><br />
|
||||
</div><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
|
||||
Namespaces</h2></td></tr>
|
||||
<tr class="memitem:namespaceaare"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceaare.html">aare</a></td></tr>
|
||||
<tr class="memdesc:namespaceaare"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classaare_1_1Frame.html">Frame</a> class to represent a single frame of data model class should be able to work with streams coming from files or network. <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
115
docs/html/DType_8hpp.html
Normal file
115
docs/html/DType_8hpp.html
Normal file
@ -0,0 +1,115 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.7"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>AARE: core/include/aare/core/DType.hpp File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectalign">
|
||||
<div id="projectname">AARE
|
||||
</div>
|
||||
<div id="projectbrief">Data analysis library for PSI hybrid detectors</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.7 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_4270bfced15e0e73154b13468c7c9ad9.html">core</a></li><li class="navelem"><a class="el" href="dir_24d671cfcbc5d5238a6bd565a49d198f.html">include</a></li><li class="navelem"><a class="el" href="dir_2c69decb5c62900c73cbf4abc58a8693.html">aare</a></li><li class="navelem"><a class="el" href="dir_e51344b9c4a46f8ed8ec1e9a48398749.html">core</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Data Structures</a> |
|
||||
<a href="#namespaces">Namespaces</a> |
|
||||
<a href="#enum-members">Enumerations</a> </div>
|
||||
<div class="headertitle"><div class="title">DType.hpp File Reference</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock"><code>#include <cstdint></code><br />
|
||||
<code>#include <string></code><br />
|
||||
<code>#include <typeinfo></code><br />
|
||||
</div>
|
||||
<p><a href="DType_8hpp_source.html">Go to the source code of this file.</a></p>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
|
||||
Data Structures</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classaare_1_1DType.html">aare::DType</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
|
||||
Namespaces</h2></td></tr>
|
||||
<tr class="memitem:namespaceaare"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceaare.html">aare</a></td></tr>
|
||||
<tr class="memdesc:namespaceaare"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classaare_1_1Frame.html">Frame</a> class to represent a single frame of data model class should be able to work with streams coming from files or network. <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
|
||||
Enumerations</h2></td></tr>
|
||||
<tr class="memitem:a1e464b780b0133eabe398b58ff7d0aff"><td class="memItemLeft" align="right" valign="top">enum class  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceaare.html#a1e464b780b0133eabe398b58ff7d0aff">aare::endian</a> { <a class="el" href="namespaceaare.html#a1e464b780b0133eabe398b58ff7d0affaaae6635e044ac56046b2893a529b5114">aare::little</a> = __ORDER_LITTLE_ENDIAN__
|
||||
, <a class="el" href="namespaceaare.html#a1e464b780b0133eabe398b58ff7d0affad861877da56b8b4ceb35c8cbfdf65bb4">aare::big</a> = __ORDER_BIG_ENDIAN__
|
||||
, <a class="el" href="namespaceaare.html#a1e464b780b0133eabe398b58ff7d0affa8e5f3adee38c8fccc13c1f3be0143796">aare::native</a> = __BYTE_ORDER__
|
||||
}</td></tr>
|
||||
<tr class="separator:a1e464b780b0133eabe398b58ff7d0aff"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
157
docs/html/DType_8hpp_source.html
Normal file
157
docs/html/DType_8hpp_source.html
Normal file
@ -0,0 +1,157 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.7"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>AARE: core/include/aare/core/DType.hpp Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectalign">
|
||||
<div id="projectname">AARE
|
||||
</div>
|
||||
<div id="projectbrief">Data analysis library for PSI hybrid detectors</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.7 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_4270bfced15e0e73154b13468c7c9ad9.html">core</a></li><li class="navelem"><a class="el" href="dir_24d671cfcbc5d5238a6bd565a49d198f.html">include</a></li><li class="navelem"><a class="el" href="dir_2c69decb5c62900c73cbf4abc58a8693.html">aare</a></li><li class="navelem"><a class="el" href="dir_e51344b9c4a46f8ed8ec1e9a48398749.html">core</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">DType.hpp</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<a href="DType_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#pragma once</span></div>
|
||||
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#include <cstdint></span></div>
|
||||
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#include <typeinfo></span></div>
|
||||
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span> </div>
|
||||
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceaare.html">aare</a> {</div>
|
||||
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div>
|
||||
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"><a class="line" href="namespaceaare.html#a1e464b780b0133eabe398b58ff7d0aff"> 8</a></span><span class="keyword">enum class</span> <a class="code hl_enumeration" href="namespaceaare.html#a1e464b780b0133eabe398b58ff7d0aff">endian</a> {</div>
|
||||
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#ifdef _WIN32</span></div>
|
||||
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> <a class="code hl_enumvalue" href="namespaceaare.html#a1e464b780b0133eabe398b58ff7d0affaaae6635e044ac56046b2893a529b5114">little</a> = 0,</div>
|
||||
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> <a class="code hl_enumvalue" href="namespaceaare.html#a1e464b780b0133eabe398b58ff7d0affad861877da56b8b4ceb35c8cbfdf65bb4">big</a> = 1,</div>
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> <a class="code hl_enumvalue" href="namespaceaare.html#a1e464b780b0133eabe398b58ff7d0affa8e5f3adee38c8fccc13c1f3be0143796">native</a> = <a class="code hl_enumvalue" href="namespaceaare.html#a1e464b780b0133eabe398b58ff7d0affaaae6635e044ac56046b2893a529b5114">little</a></div>
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#else</span></div>
|
||||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> <a class="code hl_enumvalue" href="namespaceaare.html#a1e464b780b0133eabe398b58ff7d0affaaae6635e044ac56046b2893a529b5114">little</a> = __ORDER_LITTLE_ENDIAN__,</div>
|
||||
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> <a class="code hl_enumvalue" href="namespaceaare.html#a1e464b780b0133eabe398b58ff7d0affad861877da56b8b4ceb35c8cbfdf65bb4">big</a> = __ORDER_BIG_ENDIAN__,</div>
|
||||
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> <a class="code hl_enumvalue" href="namespaceaare.html#a1e464b780b0133eabe398b58ff7d0affa8e5f3adee38c8fccc13c1f3be0143796">native</a> = __BYTE_ORDER__</div>
|
||||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#endif</span></div>
|
||||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span>};</div>
|
||||
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
|
||||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"><a class="line" href="classaare_1_1DType.html"> 20</a></span><span class="keyword">class </span><a class="code hl_class" href="classaare_1_1DType.html">DType</a> {</div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="comment">// TODO! support for non native endianess?</span></div>
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">static_assert</span>(<span class="keyword">sizeof</span>(long) == <span class="keyword">sizeof</span>(int64_t), <span class="stringliteral">"long should be 64bits"</span>);</div>
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"><a class="line" href="classaare_1_1DType.html#af556f6d36fca6f3c555c08a1cc19611ca6371d710bd9a7297ca4878b661ddf07b"> 25</a></span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="classaare_1_1DType.html#af556f6d36fca6f3c555c08a1cc19611c">TypeIndex</a> { <a class="code hl_enumvalue" href="classaare_1_1DType.html#af556f6d36fca6f3c555c08a1cc19611cadbcf6ad40b9ebfcebead7c2e02ede4fc">INT8</a>, <a class="code hl_enumvalue" href="classaare_1_1DType.html#af556f6d36fca6f3c555c08a1cc19611ca39bed0512dff6efdd29ad8180940b431">UINT8</a>, <a class="code hl_enumvalue" href="classaare_1_1DType.html#af556f6d36fca6f3c555c08a1cc19611ca9c4f21df66c74163b09a2adcd855da40">INT16</a>, <a class="code hl_enumvalue" href="classaare_1_1DType.html#af556f6d36fca6f3c555c08a1cc19611ca359189b12cd95a59c0feeba7cdbf4625">UINT16</a>, <a class="code hl_enumvalue" href="classaare_1_1DType.html#af556f6d36fca6f3c555c08a1cc19611ca85ac1b748eb9b8d6c12cf6b3c8ef5543">INT32</a>, <a class="code hl_enumvalue" href="classaare_1_1DType.html#af556f6d36fca6f3c555c08a1cc19611cacd2ee958be34e3fefcf8f3dc3d935caf">UINT32</a>, <a class="code hl_enumvalue" href="classaare_1_1DType.html#af556f6d36fca6f3c555c08a1cc19611caf2642ad7946c063c5b4d0a5d2f723957">INT64</a>, <a class="code hl_enumvalue" href="classaare_1_1DType.html#af556f6d36fca6f3c555c08a1cc19611ca62199831e85b359a70f9bed0690aa079">UINT64</a>, <a class="code hl_enumvalue" href="classaare_1_1DType.html#af556f6d36fca6f3c555c08a1cc19611ca44e73e5741c6e0cb456e177badce218e">FLOAT</a>, <a class="code hl_enumvalue" href="classaare_1_1DType.html#af556f6d36fca6f3c555c08a1cc19611ca6371d710bd9a7297ca4878b661ddf07b">DOUBLE</a>, <a class="code hl_enumvalue" href="classaare_1_1DType.html#af556f6d36fca6f3c555c08a1cc19611ca31f898431fe733a5154366a0eedbf1e9">ERROR</a> };</div>
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
|
||||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> uint8_t <a class="code hl_function" href="classaare_1_1DType.html#ab097410b8d43b58061b1d64682ff8ac4">bitdepth</a>() <span class="keyword">const</span>;</div>
|
||||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">explicit</span> <a class="code hl_class" href="classaare_1_1DType.html">DType</a>(<span class="keyword">const</span> std::type_info &t);</div>
|
||||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">explicit</span> <a class="code hl_class" href="classaare_1_1DType.html">DType</a>(std::string_view sv);</div>
|
||||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
|
||||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="comment">// not explicit to allow conversions form enum to DType</span></div>
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <a class="code hl_class" href="classaare_1_1DType.html">DType</a>(<a class="code hl_enumeration" href="classaare_1_1DType.html#af556f6d36fca6f3c555c08a1cc19611c">DType::TypeIndex</a> ti);</div>
|
||||
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
|
||||
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classaare_1_1DType.html#a9e5f23c134cf9f11787c10e5b3cc3e4e">operator==</a>(<span class="keyword">const</span> <a class="code hl_class" href="classaare_1_1DType.html">DType</a> &other) <span class="keyword">const</span> <span class="keyword">noexcept</span>;</div>
|
||||
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classaare_1_1DType.html#af47e1fd8989195c38df4ef1b5d797a70">operator!=</a>(<span class="keyword">const</span> <a class="code hl_class" href="classaare_1_1DType.html">DType</a> &other) <span class="keyword">const</span> <span class="keyword">noexcept</span>;</div>
|
||||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classaare_1_1DType.html#a9e5f23c134cf9f11787c10e5b3cc3e4e">operator==</a>(<span class="keyword">const</span> std::type_info &t) <span class="keyword">const</span>;</div>
|
||||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classaare_1_1DType.html#af47e1fd8989195c38df4ef1b5d797a70">operator!=</a>(<span class="keyword">const</span> std::type_info &t) <span class="keyword">const</span>;</div>
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> </div>
|
||||
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="comment">// bool operator==(DType::TypeIndex ti) const;</span></div>
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="comment">// bool operator!=(DType::TypeIndex ti) const;</span></div>
|
||||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> std::string <a class="code hl_function" href="classaare_1_1DType.html#a87461d7de8fea6cee34761ef67040a69">str</a>() <span class="keyword">const</span>;</div>
|
||||
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> </div>
|
||||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="classaare_1_1DType.html#a61529ea1e39bab2a222229fdcda8b1c0"> 45</a></span> <a class="code hl_enumeration" href="classaare_1_1DType.html#af556f6d36fca6f3c555c08a1cc19611c">TypeIndex</a> <a class="code hl_variable" href="classaare_1_1DType.html#a61529ea1e39bab2a222229fdcda8b1c0">m_type</a>{<a class="code hl_enumvalue" href="classaare_1_1DType.html#af556f6d36fca6f3c555c08a1cc19611ca31f898431fe733a5154366a0eedbf1e9">TypeIndex::ERROR</a>};</div>
|
||||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span>};</div>
|
||||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div>
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span>} <span class="comment">// namespace aare</span></div>
|
||||
<div class="ttc" id="aclassaare_1_1DType_html"><div class="ttname"><a href="classaare_1_1DType.html">aare::DType</a></div><div class="ttdef"><b>Definition</b> DType.hpp:20</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1DType_html_a61529ea1e39bab2a222229fdcda8b1c0"><div class="ttname"><a href="classaare_1_1DType.html#a61529ea1e39bab2a222229fdcda8b1c0">aare::DType::m_type</a></div><div class="ttdeci">TypeIndex m_type</div><div class="ttdef"><b>Definition</b> DType.hpp:45</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1DType_html_a87461d7de8fea6cee34761ef67040a69"><div class="ttname"><a href="classaare_1_1DType.html#a87461d7de8fea6cee34761ef67040a69">aare::DType::str</a></div><div class="ttdeci">std::string str() const</div><div class="ttdef"><b>Definition</b> DType.cpp:104</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1DType_html_a9e5f23c134cf9f11787c10e5b3cc3e4e"><div class="ttname"><a href="classaare_1_1DType.html#a9e5f23c134cf9f11787c10e5b3cc3e4e">aare::DType::operator==</a></div><div class="ttdeci">bool operator==(const DType &other) const noexcept</div><div class="ttdef"><b>Definition</b> DType.cpp:139</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1DType_html_ab097410b8d43b58061b1d64682ff8ac4"><div class="ttname"><a href="classaare_1_1DType.html#ab097410b8d43b58061b1d64682ff8ac4">aare::DType::bitdepth</a></div><div class="ttdeci">uint8_t bitdepth() const</div><div class="ttdef"><b>Definition</b> DType.cpp:36</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1DType_html_af47e1fd8989195c38df4ef1b5d797a70"><div class="ttname"><a href="classaare_1_1DType.html#af47e1fd8989195c38df4ef1b5d797a70">aare::DType::operator!=</a></div><div class="ttdeci">bool operator!=(const DType &other) const noexcept</div><div class="ttdef"><b>Definition</b> DType.cpp:140</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1DType_html_af556f6d36fca6f3c555c08a1cc19611c"><div class="ttname"><a href="classaare_1_1DType.html#af556f6d36fca6f3c555c08a1cc19611c">aare::DType::TypeIndex</a></div><div class="ttdeci">TypeIndex</div><div class="ttdef"><b>Definition</b> DType.hpp:25</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1DType_html_af556f6d36fca6f3c555c08a1cc19611ca31f898431fe733a5154366a0eedbf1e9"><div class="ttname"><a href="classaare_1_1DType.html#af556f6d36fca6f3c555c08a1cc19611ca31f898431fe733a5154366a0eedbf1e9">aare::DType::ERROR</a></div><div class="ttdeci">@ ERROR</div><div class="ttdef"><b>Definition</b> DType.hpp:25</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1DType_html_af556f6d36fca6f3c555c08a1cc19611ca359189b12cd95a59c0feeba7cdbf4625"><div class="ttname"><a href="classaare_1_1DType.html#af556f6d36fca6f3c555c08a1cc19611ca359189b12cd95a59c0feeba7cdbf4625">aare::DType::UINT16</a></div><div class="ttdeci">@ UINT16</div><div class="ttdef"><b>Definition</b> DType.hpp:25</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1DType_html_af556f6d36fca6f3c555c08a1cc19611ca39bed0512dff6efdd29ad8180940b431"><div class="ttname"><a href="classaare_1_1DType.html#af556f6d36fca6f3c555c08a1cc19611ca39bed0512dff6efdd29ad8180940b431">aare::DType::UINT8</a></div><div class="ttdeci">@ UINT8</div><div class="ttdef"><b>Definition</b> DType.hpp:25</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1DType_html_af556f6d36fca6f3c555c08a1cc19611ca44e73e5741c6e0cb456e177badce218e"><div class="ttname"><a href="classaare_1_1DType.html#af556f6d36fca6f3c555c08a1cc19611ca44e73e5741c6e0cb456e177badce218e">aare::DType::FLOAT</a></div><div class="ttdeci">@ FLOAT</div><div class="ttdef"><b>Definition</b> DType.hpp:25</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1DType_html_af556f6d36fca6f3c555c08a1cc19611ca62199831e85b359a70f9bed0690aa079"><div class="ttname"><a href="classaare_1_1DType.html#af556f6d36fca6f3c555c08a1cc19611ca62199831e85b359a70f9bed0690aa079">aare::DType::UINT64</a></div><div class="ttdeci">@ UINT64</div><div class="ttdef"><b>Definition</b> DType.hpp:25</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1DType_html_af556f6d36fca6f3c555c08a1cc19611ca6371d710bd9a7297ca4878b661ddf07b"><div class="ttname"><a href="classaare_1_1DType.html#af556f6d36fca6f3c555c08a1cc19611ca6371d710bd9a7297ca4878b661ddf07b">aare::DType::DOUBLE</a></div><div class="ttdeci">@ DOUBLE</div><div class="ttdef"><b>Definition</b> DType.hpp:25</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1DType_html_af556f6d36fca6f3c555c08a1cc19611ca85ac1b748eb9b8d6c12cf6b3c8ef5543"><div class="ttname"><a href="classaare_1_1DType.html#af556f6d36fca6f3c555c08a1cc19611ca85ac1b748eb9b8d6c12cf6b3c8ef5543">aare::DType::INT32</a></div><div class="ttdeci">@ INT32</div><div class="ttdef"><b>Definition</b> DType.hpp:25</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1DType_html_af556f6d36fca6f3c555c08a1cc19611ca9c4f21df66c74163b09a2adcd855da40"><div class="ttname"><a href="classaare_1_1DType.html#af556f6d36fca6f3c555c08a1cc19611ca9c4f21df66c74163b09a2adcd855da40">aare::DType::INT16</a></div><div class="ttdeci">@ INT16</div><div class="ttdef"><b>Definition</b> DType.hpp:25</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1DType_html_af556f6d36fca6f3c555c08a1cc19611cacd2ee958be34e3fefcf8f3dc3d935caf"><div class="ttname"><a href="classaare_1_1DType.html#af556f6d36fca6f3c555c08a1cc19611cacd2ee958be34e3fefcf8f3dc3d935caf">aare::DType::UINT32</a></div><div class="ttdeci">@ UINT32</div><div class="ttdef"><b>Definition</b> DType.hpp:25</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1DType_html_af556f6d36fca6f3c555c08a1cc19611cadbcf6ad40b9ebfcebead7c2e02ede4fc"><div class="ttname"><a href="classaare_1_1DType.html#af556f6d36fca6f3c555c08a1cc19611cadbcf6ad40b9ebfcebead7c2e02ede4fc">aare::DType::INT8</a></div><div class="ttdeci">@ INT8</div><div class="ttdef"><b>Definition</b> DType.hpp:25</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1DType_html_af556f6d36fca6f3c555c08a1cc19611caf2642ad7946c063c5b4d0a5d2f723957"><div class="ttname"><a href="classaare_1_1DType.html#af556f6d36fca6f3c555c08a1cc19611caf2642ad7946c063c5b4d0a5d2f723957">aare::DType::INT64</a></div><div class="ttdeci">@ INT64</div><div class="ttdef"><b>Definition</b> DType.hpp:25</div></div>
|
||||
<div class="ttc" id="anamespaceaare_html"><div class="ttname"><a href="namespaceaare.html">aare</a></div><div class="ttdoc">Frame class to represent a single frame of data model class should be able to work with streams comin...</div><div class="ttdef"><b>Definition</b> CircularFifo.hpp:11</div></div>
|
||||
<div class="ttc" id="anamespaceaare_html_a1e464b780b0133eabe398b58ff7d0aff"><div class="ttname"><a href="namespaceaare.html#a1e464b780b0133eabe398b58ff7d0aff">aare::endian</a></div><div class="ttdeci">endian</div><div class="ttdef"><b>Definition</b> DType.hpp:8</div></div>
|
||||
<div class="ttc" id="anamespaceaare_html_a1e464b780b0133eabe398b58ff7d0affa8e5f3adee38c8fccc13c1f3be0143796"><div class="ttname"><a href="namespaceaare.html#a1e464b780b0133eabe398b58ff7d0affa8e5f3adee38c8fccc13c1f3be0143796">aare::endian::native</a></div><div class="ttdeci">@ native</div></div>
|
||||
<div class="ttc" id="anamespaceaare_html_a1e464b780b0133eabe398b58ff7d0affaaae6635e044ac56046b2893a529b5114"><div class="ttname"><a href="namespaceaare.html#a1e464b780b0133eabe398b58ff7d0affaaae6635e044ac56046b2893a529b5114">aare::endian::little</a></div><div class="ttdeci">@ little</div></div>
|
||||
<div class="ttc" id="anamespaceaare_html_a1e464b780b0133eabe398b58ff7d0affad861877da56b8b4ceb35c8cbfdf65bb4"><div class="ttname"><a href="namespaceaare.html#a1e464b780b0133eabe398b58ff7d0affad861877da56b8b4ceb35c8cbfdf65bb4">aare::endian::big</a></div><div class="ttdeci">@ big</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
175
docs/html/DType_8test_8cpp.html
Normal file
175
docs/html/DType_8test_8cpp.html
Normal file
@ -0,0 +1,175 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.7"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>AARE: core/test/DType.test.cpp File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectalign">
|
||||
<div id="projectname">AARE
|
||||
</div>
|
||||
<div id="projectbrief">Data analysis library for PSI hybrid detectors</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.7 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_4270bfced15e0e73154b13468c7c9ad9.html">core</a></li><li class="navelem"><a class="el" href="dir_eda73d8bf8fbd45703b949ae88d46188.html">test</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#func-members">Functions</a> </div>
|
||||
<div class="headertitle"><div class="title">DType.test.cpp File Reference</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock"><code>#include "<a class="el" href="DType_8hpp_source.html">aare/core/DType.hpp</a>"</code><br />
|
||||
<code>#include <catch2/catch_test_macros.hpp></code><br />
|
||||
</div><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr class="memitem:a32e0ca69423832023bbf8c20a12538c9"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="DType_8test_8cpp.html#a32e0ca69423832023bbf8c20a12538c9">TEST_CASE</a> ("Construct from typeid")</td></tr>
|
||||
<tr class="separator:a32e0ca69423832023bbf8c20a12538c9"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ae535e1c9a42c192e70c9e3c39f64d9da"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="DType_8test_8cpp.html#ae535e1c9a42c192e70c9e3c39f64d9da">TEST_CASE</a> ("Construct from string")</td></tr>
|
||||
<tr class="separator:ae535e1c9a42c192e70c9e3c39f64d9da"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:adb8f39aae7012d01cf187d27cf7b1ff3"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="DType_8test_8cpp.html#adb8f39aae7012d01cf187d27cf7b1ff3">TEST_CASE</a> ("Construct from string with endianess")</td></tr>
|
||||
<tr class="separator:adb8f39aae7012d01cf187d27cf7b1ff3"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a3bf10bced4fa8b5bc836e2727a0436d1"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="DType_8test_8cpp.html#a3bf10bced4fa8b5bc836e2727a0436d1">TEST_CASE</a> ("Convert to string")</td></tr>
|
||||
<tr class="separator:a3bf10bced4fa8b5bc836e2727a0436d1"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<h2 class="groupheader">Function Documentation</h2>
|
||||
<a id="adb8f39aae7012d01cf187d27cf7b1ff3" name="adb8f39aae7012d01cf187d27cf7b1ff3"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#adb8f39aae7012d01cf187d27cf7b1ff3">◆ </a></span>TEST_CASE() <span class="overload">[1/4]</span></h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">TEST_CASE </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">"Construct from string with endianess" </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ae535e1c9a42c192e70c9e3c39f64d9da" name="ae535e1c9a42c192e70c9e3c39f64d9da"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ae535e1c9a42c192e70c9e3c39f64d9da">◆ </a></span>TEST_CASE() <span class="overload">[2/4]</span></h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">TEST_CASE </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">"Construct from string" </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a32e0ca69423832023bbf8c20a12538c9" name="a32e0ca69423832023bbf8c20a12538c9"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a32e0ca69423832023bbf8c20a12538c9">◆ </a></span>TEST_CASE() <span class="overload">[3/4]</span></h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">TEST_CASE </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">"Construct from typeid" </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a3bf10bced4fa8b5bc836e2727a0436d1" name="a3bf10bced4fa8b5bc836e2727a0436d1"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a3bf10bced4fa8b5bc836e2727a0436d1">◆ </a></span>TEST_CASE() <span class="overload">[4/4]</span></h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">TEST_CASE </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">"Convert to string" </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
112
docs/html/FileInterface_8hpp.html
Normal file
112
docs/html/FileInterface_8hpp.html
Normal file
@ -0,0 +1,112 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.7"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>AARE: file_io/include/aare/file_io/FileInterface.hpp File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectalign">
|
||||
<div id="projectname">AARE
|
||||
</div>
|
||||
<div id="projectbrief">Data analysis library for PSI hybrid detectors</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.7 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_0ce636e8c1612c01b4adc36e9f99479e.html">file_io</a></li><li class="navelem"><a class="el" href="dir_2733b21e9cf715002e4461cf940612ab.html">include</a></li><li class="navelem"><a class="el" href="dir_56c484f2481f20c268fc1a2a400ac49c.html">aare</a></li><li class="navelem"><a class="el" href="dir_a6e413f7e41fd82cd7ee315cdd32e0e9.html">file_io</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Data Structures</a> |
|
||||
<a href="#namespaces">Namespaces</a> </div>
|
||||
<div class="headertitle"><div class="title">FileInterface.hpp File Reference</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock"><code>#include "<a class="el" href="DType_8hpp_source.html">aare/core/DType.hpp</a>"</code><br />
|
||||
<code>#include "<a class="el" href="Frame_8hpp_source.html">aare/core/Frame.hpp</a>"</code><br />
|
||||
<code>#include "<a class="el" href="core_2include_2aare_2core_2defs_8hpp_source.html">aare/core/defs.hpp</a>"</code><br />
|
||||
<code>#include <filesystem></code><br />
|
||||
<code>#include <vector></code><br />
|
||||
</div>
|
||||
<p><a href="FileInterface_8hpp_source.html">Go to the source code of this file.</a></p>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
|
||||
Data Structures</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structaare_1_1FileConfig.html">aare::FileConfig</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="structaare_1_1FileConfig.html" title="FileConfig structure to store the configuration of a file dtype: data type of the file rows: number o...">FileConfig</a> structure to store the configuration of a file dtype: data type of the file rows: number of rows in the file cols: number of columns in the file geometry: geometry of the file. <a href="structaare_1_1FileConfig.html#details">More...</a><br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classaare_1_1FileInterface.html">aare::FileInterface</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classaare_1_1FileInterface.html" title="FileInterface class to define the interface for file operations.">FileInterface</a> class to define the interface for file operations. <a href="classaare_1_1FileInterface.html#details">More...</a><br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
|
||||
Namespaces</h2></td></tr>
|
||||
<tr class="memitem:namespaceaare"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceaare.html">aare</a></td></tr>
|
||||
<tr class="memdesc:namespaceaare"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classaare_1_1Frame.html">Frame</a> class to represent a single frame of data model class should be able to work with streams coming from files or network. <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
222
docs/html/FileInterface_8hpp_source.html
Normal file
222
docs/html/FileInterface_8hpp_source.html
Normal file
@ -0,0 +1,222 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.7"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>AARE: file_io/include/aare/file_io/FileInterface.hpp Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectalign">
|
||||
<div id="projectname">AARE
|
||||
</div>
|
||||
<div id="projectbrief">Data analysis library for PSI hybrid detectors</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.7 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_0ce636e8c1612c01b4adc36e9f99479e.html">file_io</a></li><li class="navelem"><a class="el" href="dir_2733b21e9cf715002e4461cf940612ab.html">include</a></li><li class="navelem"><a class="el" href="dir_56c484f2481f20c268fc1a2a400ac49c.html">aare</a></li><li class="navelem"><a class="el" href="dir_a6e413f7e41fd82cd7ee315cdd32e0e9.html">file_io</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">FileInterface.hpp</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<a href="FileInterface_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#pragma once</span></div>
|
||||
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#include "<a class="code" href="DType_8hpp.html">aare/core/DType.hpp</a>"</span></div>
|
||||
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#include "<a class="code" href="Frame_8hpp.html">aare/core/Frame.hpp</a>"</span></div>
|
||||
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#include "<a class="code" href="core_2include_2aare_2core_2defs_8hpp.html">aare/core/defs.hpp</a>"</span></div>
|
||||
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include <filesystem></span></div>
|
||||
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include <vector></span></div>
|
||||
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div>
|
||||
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceaare.html">aare</a> {</div>
|
||||
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
|
||||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"><a class="line" href="structaare_1_1FileConfig.html"> 17</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structaare_1_1FileConfig.html">FileConfig</a> {</div>
|
||||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"><a class="line" href="structaare_1_1FileConfig.html#a45520457ebc4d6e918f25e7263b5ee73"> 18</a></span> <a class="code hl_class" href="classaare_1_1DType.html">aare::DType</a> <a class="code hl_variable" href="structaare_1_1FileConfig.html#a45520457ebc4d6e918f25e7263b5ee73">dtype</a> = <a class="code hl_class" href="classaare_1_1DType.html">aare::DType</a>(<span class="keyword">typeid</span>(uint16_t));</div>
|
||||
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"><a class="line" href="structaare_1_1FileConfig.html#aa132aaa25c237d8a5e264edaf604f7e5"> 19</a></span> uint64_t <a class="code hl_variable" href="structaare_1_1FileConfig.html#aa132aaa25c237d8a5e264edaf604f7e5">rows</a>;</div>
|
||||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"><a class="line" href="structaare_1_1FileConfig.html#a22da62fb09da30e52a555886119f4449"> 20</a></span> uint64_t <a class="code hl_variable" href="structaare_1_1FileConfig.html#a22da62fb09da30e52a555886119f4449">cols</a>;</div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"><a class="line" href="structaare_1_1FileConfig.html#a23f634204a24ff0af342412dfea3dd93"> 21</a></span> <a class="code hl_struct" href="structaare_1_1xy.html">xy</a> <a class="code hl_variable" href="structaare_1_1FileConfig.html#a23f634204a24ff0af342412dfea3dd93">geometry</a>{1, 1};</div>
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="structaare_1_1FileConfig.html#ad25cc3e8a6edd711549dcef250a6e378"> 22</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structaare_1_1FileConfig.html#ad25cc3e8a6edd711549dcef250a6e378">operator==</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structaare_1_1FileConfig.html">FileConfig</a> &other)<span class="keyword"> const </span>{</div>
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="structaare_1_1FileConfig.html#a45520457ebc4d6e918f25e7263b5ee73">dtype</a> == other.<a class="code hl_variable" href="structaare_1_1FileConfig.html#a45520457ebc4d6e918f25e7263b5ee73">dtype</a> && <a class="code hl_variable" href="structaare_1_1FileConfig.html#aa132aaa25c237d8a5e264edaf604f7e5">rows</a> == other.<a class="code hl_variable" href="structaare_1_1FileConfig.html#aa132aaa25c237d8a5e264edaf604f7e5">rows</a> && <a class="code hl_variable" href="structaare_1_1FileConfig.html#a22da62fb09da30e52a555886119f4449">cols</a> == other.<a class="code hl_variable" href="structaare_1_1FileConfig.html#a22da62fb09da30e52a555886119f4449">cols</a> && <a class="code hl_variable" href="structaare_1_1FileConfig.html#a23f634204a24ff0af342412dfea3dd93">geometry</a> == other.<a class="code hl_variable" href="structaare_1_1FileConfig.html#a23f634204a24ff0af342412dfea3dd93">geometry</a>;</div>
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> }</div>
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"><a class="line" href="structaare_1_1FileConfig.html#ac348b8c97ab8395069f5f9bc9040c67e"> 25</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structaare_1_1FileConfig.html#ac348b8c97ab8395069f5f9bc9040c67e">operator!=</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structaare_1_1FileConfig.html">FileConfig</a> &other)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !(*<span class="keyword">this</span> == other); }</div>
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span>};</div>
|
||||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html"> 33</a></span><span class="keyword">class </span><a class="code hl_class" href="classaare_1_1FileInterface.html">FileInterface</a> {</div>
|
||||
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#a5d39033c9d218d53d51413b99bf7d1f4"> 41</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classaare_1_1FileInterface.html#a5d39033c9d218d53d51413b99bf7d1f4">write</a>(<a class="code hl_class" href="classaare_1_1Frame.html">Frame</a> &frame) = 0;</div>
|
||||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div>
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="comment">// virtual void write(std::vector<Frame> &frames) = 0;</span></div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> </div>
|
||||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#a9cb196de2bee8638578e4ba3ce46532e"> 54</a></span> <span class="keyword">virtual</span> <a class="code hl_class" href="classaare_1_1Frame.html">Frame</a> <a class="code hl_function" href="classaare_1_1FileInterface.html#a9cb196de2bee8638578e4ba3ce46532e">read</a>() = 0;</div>
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
|
||||
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#a1624d72f0feb1c19d507cc91c4cb414a"> 61</a></span> <span class="keyword">virtual</span> std::vector<Frame> <a class="code hl_function" href="classaare_1_1FileInterface.html#a1624d72f0feb1c19d507cc91c4cb414a">read</a>(<span class="keywordtype">size_t</span> n_frames) = 0; <span class="comment">// Is this the right interface?</span></div>
|
||||
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
|
||||
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#a4ac0f4e63ccf90af9f0d5b9b44db856c"> 68</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classaare_1_1FileInterface.html#a4ac0f4e63ccf90af9f0d5b9b44db856c">read_into</a>(std::byte *image_buf) = 0;</div>
|
||||
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
|
||||
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#a580c71b3eecf45ce2140cd65103cfd43"> 76</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classaare_1_1FileInterface.html#a580c71b3eecf45ce2140cd65103cfd43">read_into</a>(std::byte *image_buf, <span class="keywordtype">size_t</span> n_frames) = 0;</div>
|
||||
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> </div>
|
||||
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#ac6d10d468f79e855a3334cd1347c1178"> 83</a></span> <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classaare_1_1FileInterface.html#ac6d10d468f79e855a3334cd1347c1178">frame_number</a>(<span class="keywordtype">size_t</span> frame_index) = 0;</div>
|
||||
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> </div>
|
||||
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#aab236d5b808f2acc44266281274ed93a"> 89</a></span> <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classaare_1_1FileInterface.html#aab236d5b808f2acc44266281274ed93a">bytes_per_frame</a>() = 0;</div>
|
||||
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> </div>
|
||||
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#a99da51594609984efe62bb64a88a3fa6"> 95</a></span> <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classaare_1_1FileInterface.html#a99da51594609984efe62bb64a88a3fa6">pixels</a>() = 0;</div>
|
||||
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
|
||||
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#a49510fb96eaa245fd5d2be7f25a40b74"> 102</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classaare_1_1FileInterface.html#a49510fb96eaa245fd5d2be7f25a40b74">seek</a>(<span class="keywordtype">size_t</span> <a class="code hl_function" href="classaare_1_1FileInterface.html#ac6d10d468f79e855a3334cd1347c1178">frame_number</a>) = 0;</div>
|
||||
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> </div>
|
||||
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#abd01811dcf904625b4dbd78dd9188de4"> 108</a></span> <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classaare_1_1FileInterface.html#abd01811dcf904625b4dbd78dd9188de4">tell</a>() = 0;</div>
|
||||
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div>
|
||||
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#ad4391bafd11f77f807114ba5108071d3"> 114</a></span> <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classaare_1_1FileInterface.html#ad4391bafd11f77f807114ba5108071d3">total_frames</a>() <span class="keyword">const</span> = 0;</div>
|
||||
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#a8a5bc2d9b7b9ec1a9a100bf8a114d909"> 119</a></span> <span class="keyword">virtual</span> ssize_t <a class="code hl_function" href="classaare_1_1FileInterface.html#a8a5bc2d9b7b9ec1a9a100bf8a114d909">rows</a>() <span class="keyword">const</span> = 0;</div>
|
||||
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#a2927ba0e6a564bcd0da139a552c09b76"> 124</a></span> <span class="keyword">virtual</span> ssize_t <a class="code hl_function" href="classaare_1_1FileInterface.html#a2927ba0e6a564bcd0da139a552c09b76">cols</a>() <span class="keyword">const</span> = 0;</div>
|
||||
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#a8bfd7abf4271210000b2ef8d1c0d6149"> 129</a></span> <span class="keyword">virtual</span> ssize_t <a class="code hl_function" href="classaare_1_1FileInterface.html#a8bfd7abf4271210000b2ef8d1c0d6149">bitdepth</a>() <span class="keyword">const</span> = 0;</div>
|
||||
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> </div>
|
||||
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#aad0827f2dad4403cebdce417243d842c"> 136</a></span> <a class="code hl_class" href="classaare_1_1Frame.html">Frame</a> <a class="code hl_function" href="classaare_1_1FileInterface.html#aad0827f2dad4403cebdce417243d842c">iread</a>(<span class="keywordtype">size_t</span> <a class="code hl_function" href="classaare_1_1FileInterface.html#ac6d10d468f79e855a3334cd1347c1178">frame_number</a>) {</div>
|
||||
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keyword">auto</span> old_pos = <a class="code hl_function" href="classaare_1_1FileInterface.html#abd01811dcf904625b4dbd78dd9188de4">tell</a>();</div>
|
||||
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <a class="code hl_function" href="classaare_1_1FileInterface.html#a49510fb96eaa245fd5d2be7f25a40b74">seek</a>(<a class="code hl_function" href="classaare_1_1FileInterface.html#ac6d10d468f79e855a3334cd1347c1178">frame_number</a>);</div>
|
||||
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <a class="code hl_class" href="classaare_1_1Frame.html">Frame</a> tmp = <a class="code hl_function" href="classaare_1_1FileInterface.html#a9cb196de2bee8638578e4ba3ce46532e">read</a>();</div>
|
||||
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> <a class="code hl_function" href="classaare_1_1FileInterface.html#a49510fb96eaa245fd5d2be7f25a40b74">seek</a>(old_pos);</div>
|
||||
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="keywordflow">return</span> tmp;</div>
|
||||
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> };</div>
|
||||
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> </div>
|
||||
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#a1a304e356f3c1d100544d6ceeb35c0fb"> 150</a></span> std::vector<Frame> <a class="code hl_function" href="classaare_1_1FileInterface.html#a1a304e356f3c1d100544d6ceeb35c0fb">iread</a>(<span class="keywordtype">size_t</span> <a class="code hl_function" href="classaare_1_1FileInterface.html#ac6d10d468f79e855a3334cd1347c1178">frame_number</a>, <span class="keywordtype">size_t</span> n_frames) {</div>
|
||||
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <span class="keyword">auto</span> old_pos = <a class="code hl_function" href="classaare_1_1FileInterface.html#abd01811dcf904625b4dbd78dd9188de4">tell</a>();</div>
|
||||
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <a class="code hl_function" href="classaare_1_1FileInterface.html#a49510fb96eaa245fd5d2be7f25a40b74">seek</a>(<a class="code hl_function" href="classaare_1_1FileInterface.html#ac6d10d468f79e855a3334cd1347c1178">frame_number</a>);</div>
|
||||
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> std::vector<Frame> tmp = <a class="code hl_function" href="classaare_1_1FileInterface.html#a9cb196de2bee8638578e4ba3ce46532e">read</a>(n_frames);</div>
|
||||
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <a class="code hl_function" href="classaare_1_1FileInterface.html#a49510fb96eaa245fd5d2be7f25a40b74">seek</a>(old_pos);</div>
|
||||
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="keywordflow">return</span> tmp;</div>
|
||||
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> }</div>
|
||||
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> </div>
|
||||
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="comment">// function to query the data type of the file</span></div>
|
||||
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <span class="comment">/*virtual DataType dtype = 0; */</span></div>
|
||||
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> </div>
|
||||
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#a7546e2d2dec365bee91cbf5607278e80"> 161</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classaare_1_1FileInterface.html#a7546e2d2dec365bee91cbf5607278e80">~FileInterface</a>(){</div>
|
||||
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> </div>
|
||||
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> };</div>
|
||||
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> </div>
|
||||
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#ab1d0e6de947affd5af9740eb06888fc6"> 166</a></span> std::string <a class="code hl_variable" href="classaare_1_1FileInterface.html#ab1d0e6de947affd5af9740eb06888fc6">m_mode</a>;</div>
|
||||
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#a325f6603f564fb42f8f28f1136b5e329"> 167</a></span> std::filesystem::path <a class="code hl_variable" href="classaare_1_1FileInterface.html#a325f6603f564fb42f8f28f1136b5e329">m_fname</a>;</div>
|
||||
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#afdd0a1a75618ad5db2f4794e0900b2f4"> 168</a></span> std::filesystem::path <a class="code hl_variable" href="classaare_1_1FileInterface.html#afdd0a1a75618ad5db2f4794e0900b2f4">m_base_path</a>;</div>
|
||||
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#adae2b35fc6a3f185e9eb263c97bc024b"> 169</a></span> std::string <a class="code hl_variable" href="classaare_1_1FileInterface.html#adae2b35fc6a3f185e9eb263c97bc024b">m_base_name</a>, <a class="code hl_variable" href="classaare_1_1FileInterface.html#a5fffaf9a7c8ae2b3a2ebe89b9c94ed34">m_ext</a>;</div>
|
||||
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#a30e926a897b534ab9a327d40594ff191"> 170</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classaare_1_1FileInterface.html#a30e926a897b534ab9a327d40594ff191">m_findex</a>;</div>
|
||||
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#a91551fada444b231294c095f3f5fb768"> 171</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="classaare_1_1FileInterface.html#a91551fada444b231294c095f3f5fb768">m_total_frames</a>{};</div>
|
||||
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#ab0762d7652c9a4e1afe6dbb7d7325ac9"> 172</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="classaare_1_1FileInterface.html#ab0762d7652c9a4e1afe6dbb7d7325ac9">max_frames_per_file</a>{};</div>
|
||||
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#a44cbe933bbd2cae1f48213121d15bce2"> 173</a></span> std::string <a class="code hl_variable" href="classaare_1_1FileInterface.html#a44cbe933bbd2cae1f48213121d15bce2">version</a>;</div>
|
||||
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#a9476a299cea6b4e97605135a28d0cb60"> 174</a></span> <a class="code hl_enumeration" href="namespaceaare.html#a5b95afba95553c1e118e1478c69042f7">DetectorType</a> <a class="code hl_variable" href="classaare_1_1FileInterface.html#a9476a299cea6b4e97605135a28d0cb60">m_type</a>;</div>
|
||||
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#ae29d98625cf56989e2c5237ace0d0f4c"> 175</a></span> ssize_t <a class="code hl_variable" href="classaare_1_1FileInterface.html#ae29d98625cf56989e2c5237ace0d0f4c">m_rows</a>{};</div>
|
||||
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#ad4c9991c30a71ba83cbaab283bc756b5"> 176</a></span> ssize_t <a class="code hl_variable" href="classaare_1_1FileInterface.html#ad4c9991c30a71ba83cbaab283bc756b5">m_cols</a>{};</div>
|
||||
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#a252d27cbbfcdfc528b86925eaac55bb7"> 177</a></span> ssize_t <a class="code hl_variable" href="classaare_1_1FileInterface.html#a252d27cbbfcdfc528b86925eaac55bb7">m_bitdepth</a>{};</div>
|
||||
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"><a class="line" href="classaare_1_1FileInterface.html#ab96f5dd0c99fb7b5a527da812368d736"> 178</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="classaare_1_1FileInterface.html#ab96f5dd0c99fb7b5a527da812368d736">current_frame</a>{};</div>
|
||||
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span>};</div>
|
||||
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> </div>
|
||||
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span>} <span class="comment">// namespace aare</span></div>
|
||||
<div class="ttc" id="aDType_8hpp_html"><div class="ttname"><a href="DType_8hpp.html">DType.hpp</a></div></div>
|
||||
<div class="ttc" id="aFrame_8hpp_html"><div class="ttname"><a href="Frame_8hpp.html">Frame.hpp</a></div></div>
|
||||
<div class="ttc" id="aclassaare_1_1DType_html"><div class="ttname"><a href="classaare_1_1DType.html">aare::DType</a></div><div class="ttdef"><b>Definition</b> DType.hpp:20</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html"><div class="ttname"><a href="classaare_1_1FileInterface.html">aare::FileInterface</a></div><div class="ttdoc">FileInterface class to define the interface for file operations.</div><div class="ttdef"><b>Definition</b> FileInterface.hpp:33</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_a1624d72f0feb1c19d507cc91c4cb414a"><div class="ttname"><a href="classaare_1_1FileInterface.html#a1624d72f0feb1c19d507cc91c4cb414a">aare::FileInterface::read</a></div><div class="ttdeci">virtual std::vector< Frame > read(size_t n_frames)=0</div><div class="ttdoc">read n_frames from the file at the current position</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_a1a304e356f3c1d100544d6ceeb35c0fb"><div class="ttname"><a href="classaare_1_1FileInterface.html#a1a304e356f3c1d100544d6ceeb35c0fb">aare::FileInterface::iread</a></div><div class="ttdeci">std::vector< Frame > iread(size_t frame_number, size_t n_frames)</div><div class="ttdoc">read n_frames from the file starting at the given frame number</div><div class="ttdef"><b>Definition</b> FileInterface.hpp:150</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_a252d27cbbfcdfc528b86925eaac55bb7"><div class="ttname"><a href="classaare_1_1FileInterface.html#a252d27cbbfcdfc528b86925eaac55bb7">aare::FileInterface::m_bitdepth</a></div><div class="ttdeci">ssize_t m_bitdepth</div><div class="ttdef"><b>Definition</b> FileInterface.hpp:177</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_a2927ba0e6a564bcd0da139a552c09b76"><div class="ttname"><a href="classaare_1_1FileInterface.html#a2927ba0e6a564bcd0da139a552c09b76">aare::FileInterface::cols</a></div><div class="ttdeci">virtual ssize_t cols() const =0</div><div class="ttdoc">get the number of columns in the file</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_a30e926a897b534ab9a327d40594ff191"><div class="ttname"><a href="classaare_1_1FileInterface.html#a30e926a897b534ab9a327d40594ff191">aare::FileInterface::m_findex</a></div><div class="ttdeci">int m_findex</div><div class="ttdef"><b>Definition</b> FileInterface.hpp:170</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_a325f6603f564fb42f8f28f1136b5e329"><div class="ttname"><a href="classaare_1_1FileInterface.html#a325f6603f564fb42f8f28f1136b5e329">aare::FileInterface::m_fname</a></div><div class="ttdeci">std::filesystem::path m_fname</div><div class="ttdef"><b>Definition</b> FileInterface.hpp:167</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_a44cbe933bbd2cae1f48213121d15bce2"><div class="ttname"><a href="classaare_1_1FileInterface.html#a44cbe933bbd2cae1f48213121d15bce2">aare::FileInterface::version</a></div><div class="ttdeci">std::string version</div><div class="ttdef"><b>Definition</b> FileInterface.hpp:173</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_a49510fb96eaa245fd5d2be7f25a40b74"><div class="ttname"><a href="classaare_1_1FileInterface.html#a49510fb96eaa245fd5d2be7f25a40b74">aare::FileInterface::seek</a></div><div class="ttdeci">virtual void seek(size_t frame_number)=0</div><div class="ttdoc">seek to the given frame number</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_a4ac0f4e63ccf90af9f0d5b9b44db856c"><div class="ttname"><a href="classaare_1_1FileInterface.html#a4ac0f4e63ccf90af9f0d5b9b44db856c">aare::FileInterface::read_into</a></div><div class="ttdeci">virtual void read_into(std::byte *image_buf)=0</div><div class="ttdoc">read one frame from the file at the current position and store it in the provided buffer</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_a580c71b3eecf45ce2140cd65103cfd43"><div class="ttname"><a href="classaare_1_1FileInterface.html#a580c71b3eecf45ce2140cd65103cfd43">aare::FileInterface::read_into</a></div><div class="ttdeci">virtual void read_into(std::byte *image_buf, size_t n_frames)=0</div><div class="ttdoc">read n_frames from the file at the current position and store them in the provided buffer</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_a5d39033c9d218d53d51413b99bf7d1f4"><div class="ttname"><a href="classaare_1_1FileInterface.html#a5d39033c9d218d53d51413b99bf7d1f4">aare::FileInterface::write</a></div><div class="ttdeci">virtual void write(Frame &frame)=0</div><div class="ttdoc">write a frame to the file</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_a5fffaf9a7c8ae2b3a2ebe89b9c94ed34"><div class="ttname"><a href="classaare_1_1FileInterface.html#a5fffaf9a7c8ae2b3a2ebe89b9c94ed34">aare::FileInterface::m_ext</a></div><div class="ttdeci">std::string m_ext</div><div class="ttdef"><b>Definition</b> FileInterface.hpp:169</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_a7546e2d2dec365bee91cbf5607278e80"><div class="ttname"><a href="classaare_1_1FileInterface.html#a7546e2d2dec365bee91cbf5607278e80">aare::FileInterface::~FileInterface</a></div><div class="ttdeci">virtual ~FileInterface()</div><div class="ttdef"><b>Definition</b> FileInterface.hpp:161</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_a8a5bc2d9b7b9ec1a9a100bf8a114d909"><div class="ttname"><a href="classaare_1_1FileInterface.html#a8a5bc2d9b7b9ec1a9a100bf8a114d909">aare::FileInterface::rows</a></div><div class="ttdeci">virtual ssize_t rows() const =0</div><div class="ttdoc">get the number of rows in the file</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_a8bfd7abf4271210000b2ef8d1c0d6149"><div class="ttname"><a href="classaare_1_1FileInterface.html#a8bfd7abf4271210000b2ef8d1c0d6149">aare::FileInterface::bitdepth</a></div><div class="ttdeci">virtual ssize_t bitdepth() const =0</div><div class="ttdoc">get the bitdepth of the file</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_a91551fada444b231294c095f3f5fb768"><div class="ttname"><a href="classaare_1_1FileInterface.html#a91551fada444b231294c095f3f5fb768">aare::FileInterface::m_total_frames</a></div><div class="ttdeci">size_t m_total_frames</div><div class="ttdef"><b>Definition</b> FileInterface.hpp:171</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_a9476a299cea6b4e97605135a28d0cb60"><div class="ttname"><a href="classaare_1_1FileInterface.html#a9476a299cea6b4e97605135a28d0cb60">aare::FileInterface::m_type</a></div><div class="ttdeci">DetectorType m_type</div><div class="ttdef"><b>Definition</b> FileInterface.hpp:174</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_a99da51594609984efe62bb64a88a3fa6"><div class="ttname"><a href="classaare_1_1FileInterface.html#a99da51594609984efe62bb64a88a3fa6">aare::FileInterface::pixels</a></div><div class="ttdeci">virtual size_t pixels()=0</div><div class="ttdoc">get the number of pixels in one frame</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_a9cb196de2bee8638578e4ba3ce46532e"><div class="ttname"><a href="classaare_1_1FileInterface.html#a9cb196de2bee8638578e4ba3ce46532e">aare::FileInterface::read</a></div><div class="ttdeci">virtual Frame read()=0</div><div class="ttdoc">write a vector of frames to the file</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_aab236d5b808f2acc44266281274ed93a"><div class="ttname"><a href="classaare_1_1FileInterface.html#aab236d5b808f2acc44266281274ed93a">aare::FileInterface::bytes_per_frame</a></div><div class="ttdeci">virtual size_t bytes_per_frame()=0</div><div class="ttdoc">get the size of one frame in bytes</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_aad0827f2dad4403cebdce417243d842c"><div class="ttname"><a href="classaare_1_1FileInterface.html#aad0827f2dad4403cebdce417243d842c">aare::FileInterface::iread</a></div><div class="ttdeci">Frame iread(size_t frame_number)</div><div class="ttdoc">read one frame from the file at the given frame number</div><div class="ttdef"><b>Definition</b> FileInterface.hpp:136</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_ab0762d7652c9a4e1afe6dbb7d7325ac9"><div class="ttname"><a href="classaare_1_1FileInterface.html#ab0762d7652c9a4e1afe6dbb7d7325ac9">aare::FileInterface::max_frames_per_file</a></div><div class="ttdeci">size_t max_frames_per_file</div><div class="ttdef"><b>Definition</b> FileInterface.hpp:172</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_ab1d0e6de947affd5af9740eb06888fc6"><div class="ttname"><a href="classaare_1_1FileInterface.html#ab1d0e6de947affd5af9740eb06888fc6">aare::FileInterface::m_mode</a></div><div class="ttdeci">std::string m_mode</div><div class="ttdef"><b>Definition</b> FileInterface.hpp:166</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_ab96f5dd0c99fb7b5a527da812368d736"><div class="ttname"><a href="classaare_1_1FileInterface.html#ab96f5dd0c99fb7b5a527da812368d736">aare::FileInterface::current_frame</a></div><div class="ttdeci">size_t current_frame</div><div class="ttdef"><b>Definition</b> FileInterface.hpp:178</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_abd01811dcf904625b4dbd78dd9188de4"><div class="ttname"><a href="classaare_1_1FileInterface.html#abd01811dcf904625b4dbd78dd9188de4">aare::FileInterface::tell</a></div><div class="ttdeci">virtual size_t tell()=0</div><div class="ttdoc">get the current position of the file pointer</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_ac6d10d468f79e855a3334cd1347c1178"><div class="ttname"><a href="classaare_1_1FileInterface.html#ac6d10d468f79e855a3334cd1347c1178">aare::FileInterface::frame_number</a></div><div class="ttdeci">virtual size_t frame_number(size_t frame_index)=0</div><div class="ttdoc">get the frame number at the given frame index</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_ad4391bafd11f77f807114ba5108071d3"><div class="ttname"><a href="classaare_1_1FileInterface.html#ad4391bafd11f77f807114ba5108071d3">aare::FileInterface::total_frames</a></div><div class="ttdeci">virtual size_t total_frames() const =0</div><div class="ttdoc">get the total number of frames in the file</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_ad4c9991c30a71ba83cbaab283bc756b5"><div class="ttname"><a href="classaare_1_1FileInterface.html#ad4c9991c30a71ba83cbaab283bc756b5">aare::FileInterface::m_cols</a></div><div class="ttdeci">ssize_t m_cols</div><div class="ttdef"><b>Definition</b> FileInterface.hpp:176</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_adae2b35fc6a3f185e9eb263c97bc024b"><div class="ttname"><a href="classaare_1_1FileInterface.html#adae2b35fc6a3f185e9eb263c97bc024b">aare::FileInterface::m_base_name</a></div><div class="ttdeci">std::string m_base_name</div><div class="ttdef"><b>Definition</b> FileInterface.hpp:169</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_ae29d98625cf56989e2c5237ace0d0f4c"><div class="ttname"><a href="classaare_1_1FileInterface.html#ae29d98625cf56989e2c5237ace0d0f4c">aare::FileInterface::m_rows</a></div><div class="ttdeci">ssize_t m_rows</div><div class="ttdef"><b>Definition</b> FileInterface.hpp:175</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html_afdd0a1a75618ad5db2f4794e0900b2f4"><div class="ttname"><a href="classaare_1_1FileInterface.html#afdd0a1a75618ad5db2f4794e0900b2f4">aare::FileInterface::m_base_path</a></div><div class="ttdeci">std::filesystem::path m_base_path</div><div class="ttdef"><b>Definition</b> FileInterface.hpp:168</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1Frame_html"><div class="ttname"><a href="classaare_1_1Frame.html">aare::Frame</a></div><div class="ttdef"><b>Definition</b> Frame.hpp:18</div></div>
|
||||
<div class="ttc" id="acore_2include_2aare_2core_2defs_8hpp_html"><div class="ttname"><a href="core_2include_2aare_2core_2defs_8hpp.html">defs.hpp</a></div></div>
|
||||
<div class="ttc" id="anamespaceaare_html"><div class="ttname"><a href="namespaceaare.html">aare</a></div><div class="ttdoc">Frame class to represent a single frame of data model class should be able to work with streams comin...</div><div class="ttdef"><b>Definition</b> CircularFifo.hpp:11</div></div>
|
||||
<div class="ttc" id="anamespaceaare_html_a5b95afba95553c1e118e1478c69042f7"><div class="ttname"><a href="namespaceaare.html#a5b95afba95553c1e118e1478c69042f7">aare::DetectorType</a></div><div class="ttdeci">DetectorType</div><div class="ttdef"><b>Definition</b> defs.hpp:41</div></div>
|
||||
<div class="ttc" id="astructaare_1_1FileConfig_html"><div class="ttname"><a href="structaare_1_1FileConfig.html">aare::FileConfig</a></div><div class="ttdoc">FileConfig structure to store the configuration of a file dtype: data type of the file rows: number o...</div><div class="ttdef"><b>Definition</b> FileInterface.hpp:17</div></div>
|
||||
<div class="ttc" id="astructaare_1_1FileConfig_html_a22da62fb09da30e52a555886119f4449"><div class="ttname"><a href="structaare_1_1FileConfig.html#a22da62fb09da30e52a555886119f4449">aare::FileConfig::cols</a></div><div class="ttdeci">uint64_t cols</div><div class="ttdef"><b>Definition</b> FileInterface.hpp:20</div></div>
|
||||
<div class="ttc" id="astructaare_1_1FileConfig_html_a23f634204a24ff0af342412dfea3dd93"><div class="ttname"><a href="structaare_1_1FileConfig.html#a23f634204a24ff0af342412dfea3dd93">aare::FileConfig::geometry</a></div><div class="ttdeci">xy geometry</div><div class="ttdef"><b>Definition</b> FileInterface.hpp:21</div></div>
|
||||
<div class="ttc" id="astructaare_1_1FileConfig_html_a45520457ebc4d6e918f25e7263b5ee73"><div class="ttname"><a href="structaare_1_1FileConfig.html#a45520457ebc4d6e918f25e7263b5ee73">aare::FileConfig::dtype</a></div><div class="ttdeci">aare::DType dtype</div><div class="ttdef"><b>Definition</b> FileInterface.hpp:18</div></div>
|
||||
<div class="ttc" id="astructaare_1_1FileConfig_html_aa132aaa25c237d8a5e264edaf604f7e5"><div class="ttname"><a href="structaare_1_1FileConfig.html#aa132aaa25c237d8a5e264edaf604f7e5">aare::FileConfig::rows</a></div><div class="ttdeci">uint64_t rows</div><div class="ttdef"><b>Definition</b> FileInterface.hpp:19</div></div>
|
||||
<div class="ttc" id="astructaare_1_1FileConfig_html_ac348b8c97ab8395069f5f9bc9040c67e"><div class="ttname"><a href="structaare_1_1FileConfig.html#ac348b8c97ab8395069f5f9bc9040c67e">aare::FileConfig::operator!=</a></div><div class="ttdeci">bool operator!=(const FileConfig &other) const</div><div class="ttdef"><b>Definition</b> FileInterface.hpp:25</div></div>
|
||||
<div class="ttc" id="astructaare_1_1FileConfig_html_ad25cc3e8a6edd711549dcef250a6e378"><div class="ttname"><a href="structaare_1_1FileConfig.html#ad25cc3e8a6edd711549dcef250a6e378">aare::FileConfig::operator==</a></div><div class="ttdeci">bool operator==(const FileConfig &other) const</div><div class="ttdef"><b>Definition</b> FileInterface.hpp:22</div></div>
|
||||
<div class="ttc" id="astructaare_1_1xy_html"><div class="ttname"><a href="structaare_1_1xy.html">aare::xy</a></div><div class="ttdef"><b>Definition</b> defs.hpp:31</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
100
docs/html/File_8cpp.html
Normal file
100
docs/html/File_8cpp.html
Normal file
@ -0,0 +1,100 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.7"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>AARE: file_io/src/File.cpp File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectalign">
|
||||
<div id="projectname">AARE
|
||||
</div>
|
||||
<div id="projectbrief">Data analysis library for PSI hybrid detectors</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.7 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_0ce636e8c1612c01b4adc36e9f99479e.html">file_io</a></li><li class="navelem"><a class="el" href="dir_a9d3ea075dff3358e4ba4ff12618bb57.html">src</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#namespaces">Namespaces</a> </div>
|
||||
<div class="headertitle"><div class="title">File.cpp File Reference</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock"><code>#include "<a class="el" href="File_8hpp_source.html">aare/file_io/File.hpp</a>"</code><br />
|
||||
<code>#include "<a class="el" href="NumpyFile_8hpp_source.html">aare/file_io/NumpyFile.hpp</a>"</code><br />
|
||||
<code>#include "<a class="el" href="RawFile_8hpp_source.html">aare/file_io/RawFile.hpp</a>"</code><br />
|
||||
<code>#include "<a class="el" href="logger_8hpp_source.html">aare/utils/logger.hpp</a>"</code><br />
|
||||
<code>#include <fmt/format.h></code><br />
|
||||
</div><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
|
||||
Namespaces</h2></td></tr>
|
||||
<tr class="memitem:namespaceaare"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceaare.html">aare</a></td></tr>
|
||||
<tr class="memdesc:namespaceaare"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classaare_1_1Frame.html">Frame</a> class to represent a single frame of data model class should be able to work with streams coming from files or network. <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
105
docs/html/File_8hpp.html
Normal file
105
docs/html/File_8hpp.html
Normal file
@ -0,0 +1,105 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.7"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>AARE: file_io/include/aare/file_io/File.hpp File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectalign">
|
||||
<div id="projectname">AARE
|
||||
</div>
|
||||
<div id="projectbrief">Data analysis library for PSI hybrid detectors</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.7 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_0ce636e8c1612c01b4adc36e9f99479e.html">file_io</a></li><li class="navelem"><a class="el" href="dir_2733b21e9cf715002e4461cf940612ab.html">include</a></li><li class="navelem"><a class="el" href="dir_56c484f2481f20c268fc1a2a400ac49c.html">aare</a></li><li class="navelem"><a class="el" href="dir_a6e413f7e41fd82cd7ee315cdd32e0e9.html">file_io</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Data Structures</a> |
|
||||
<a href="#namespaces">Namespaces</a> </div>
|
||||
<div class="headertitle"><div class="title">File.hpp File Reference</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock"><code>#include "<a class="el" href="FileInterface_8hpp_source.html">aare/file_io/FileInterface.hpp</a>"</code><br />
|
||||
</div>
|
||||
<p><a href="File_8hpp_source.html">Go to the source code of this file.</a></p>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
|
||||
Data Structures</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classaare_1_1File.html">aare::File</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">RAII <a class="el" href="classaare_1_1File_1_1File.html">File</a> class for reading and writing image files in various formats wrapper on a <a class="el" href="classaare_1_1FileInterface.html" title="FileInterface class to define the interface for file operations.">FileInterface</a> to abstract the underlying file format. <a href="classaare_1_1File.html#details">More...</a><br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
|
||||
Namespaces</h2></td></tr>
|
||||
<tr class="memitem:namespaceaare"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceaare.html">aare</a></td></tr>
|
||||
<tr class="memdesc:namespaceaare"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classaare_1_1Frame.html">Frame</a> class to represent a single frame of data model class should be able to work with streams coming from files or network. <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
126
docs/html/File_8hpp_source.html
Normal file
126
docs/html/File_8hpp_source.html
Normal file
@ -0,0 +1,126 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.7"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>AARE: file_io/include/aare/file_io/File.hpp Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectalign">
|
||||
<div id="projectname">AARE
|
||||
</div>
|
||||
<div id="projectbrief">Data analysis library for PSI hybrid detectors</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.7 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_0ce636e8c1612c01b4adc36e9f99479e.html">file_io</a></li><li class="navelem"><a class="el" href="dir_2733b21e9cf715002e4461cf940612ab.html">include</a></li><li class="navelem"><a class="el" href="dir_56c484f2481f20c268fc1a2a400ac49c.html">aare</a></li><li class="navelem"><a class="el" href="dir_a6e413f7e41fd82cd7ee315cdd32e0e9.html">file_io</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">File.hpp</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<a href="File_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#pragma once</span></div>
|
||||
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#include "<a class="code" href="FileInterface_8hpp.html">aare/file_io/FileInterface.hpp</a>"</span></div>
|
||||
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
|
||||
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceaare.html">aare</a> {</div>
|
||||
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span> </div>
|
||||
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"><a class="line" href="classaare_1_1File.html"> 11</a></span><span class="keyword">class </span><a class="code hl_class" href="classaare_1_1File.html">File</a> {</div>
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"><a class="line" href="classaare_1_1File.html#ac2c569dfd6c15c1f5b19f5f1a5e38abf"> 13</a></span> <a class="code hl_class" href="classaare_1_1FileInterface.html">FileInterface</a> *<a class="code hl_variable" href="classaare_1_1File.html#ac2c569dfd6c15c1f5b19f5f1a5e38abf">file_impl</a>;</div>
|
||||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
|
||||
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <a class="code hl_class" href="classaare_1_1File.html">File</a>(std::filesystem::path fname, std::string mode, <a class="code hl_struct" href="structaare_1_1FileConfig.html">FileConfig</a> cfg = {});</div>
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keywordtype">void</span> write(<a class="code hl_class" href="classaare_1_1Frame.html">Frame</a> &frame);</div>
|
||||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <a class="code hl_class" href="classaare_1_1Frame.html">Frame</a> read();</div>
|
||||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <a class="code hl_class" href="classaare_1_1Frame.html">Frame</a> iread(<span class="keywordtype">size_t</span> frame_number);</div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> std::vector<Frame> read(<span class="keywordtype">size_t</span> n_frames);</div>
|
||||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keywordtype">void</span> read_into(std::byte *image_buf);</div>
|
||||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keywordtype">void</span> read_into(std::byte *image_buf, <span class="keywordtype">size_t</span> n_frames);</div>
|
||||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keywordtype">size_t</span> frame_number(<span class="keywordtype">size_t</span> frame_index);</div>
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordtype">size_t</span> bytes_per_frame();</div>
|
||||
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keywordtype">size_t</span> pixels();</div>
|
||||
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keywordtype">void</span> seek(<span class="keywordtype">size_t</span> frame_number);</div>
|
||||
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keywordtype">size_t</span> tell() <span class="keyword">const</span>;</div>
|
||||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordtype">size_t</span> total_frames() <span class="keyword">const</span>;</div>
|
||||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> ssize_t rows() <span class="keyword">const</span>;</div>
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> ssize_t cols() <span class="keyword">const</span>;</div>
|
||||
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> ssize_t bitdepth() <span class="keyword">const</span>;</div>
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
|
||||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <a class="code hl_class" href="classaare_1_1File.html">File</a>(<a class="code hl_class" href="classaare_1_1File.html">File</a> &&other);</div>
|
||||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div>
|
||||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <a class="code hl_class" href="classaare_1_1File.html">~File</a>();</div>
|
||||
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span>};</div>
|
||||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
|
||||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span>} <span class="comment">// namespace aare</span></div>
|
||||
<div class="ttc" id="aFileInterface_8hpp_html"><div class="ttname"><a href="FileInterface_8hpp.html">FileInterface.hpp</a></div></div>
|
||||
<div class="ttc" id="aclassaare_1_1FileInterface_html"><div class="ttname"><a href="classaare_1_1FileInterface.html">aare::FileInterface</a></div><div class="ttdoc">FileInterface class to define the interface for file operations.</div><div class="ttdef"><b>Definition</b> FileInterface.hpp:33</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1File_html"><div class="ttname"><a href="classaare_1_1File.html">aare::File</a></div><div class="ttdoc">RAII File class for reading and writing image files in various formats wrapper on a FileInterface to ...</div><div class="ttdef"><b>Definition</b> File.hpp:11</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1File_html_ac2c569dfd6c15c1f5b19f5f1a5e38abf"><div class="ttname"><a href="classaare_1_1File.html#ac2c569dfd6c15c1f5b19f5f1a5e38abf">aare::File::file_impl</a></div><div class="ttdeci">FileInterface * file_impl</div><div class="ttdef"><b>Definition</b> File.hpp:13</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1Frame_html"><div class="ttname"><a href="classaare_1_1Frame.html">aare::Frame</a></div><div class="ttdef"><b>Definition</b> Frame.hpp:18</div></div>
|
||||
<div class="ttc" id="anamespaceaare_html"><div class="ttname"><a href="namespaceaare.html">aare</a></div><div class="ttdoc">Frame class to represent a single frame of data model class should be able to work with streams comin...</div><div class="ttdef"><b>Definition</b> CircularFifo.hpp:11</div></div>
|
||||
<div class="ttc" id="astructaare_1_1FileConfig_html"><div class="ttname"><a href="structaare_1_1FileConfig.html">aare::FileConfig</a></div><div class="ttdoc">FileConfig structure to store the configuration of a file dtype: data type of the file rows: number o...</div><div class="ttdef"><b>Definition</b> FileInterface.hpp:17</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
103
docs/html/File_8py.html
Normal file
103
docs/html/File_8py.html
Normal file
@ -0,0 +1,103 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.7"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>AARE: python/aare/File.py File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectalign">
|
||||
<div id="projectname">AARE
|
||||
</div>
|
||||
<div id="projectbrief">Data analysis library for PSI hybrid detectors</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.7 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_7837fde3ab9c1fb2fc5be7b717af8d79.html">python</a></li><li class="navelem"><a class="el" href="dir_c3d836bc3a3b6c6155ea71ab908e36e4.html">aare</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Data Structures</a> |
|
||||
<a href="#namespaces">Namespaces</a> </div>
|
||||
<div class="headertitle"><div class="title">File.py File Reference</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
|
||||
Data Structures</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classaare_1_1File_1_1File.html">aare.File.File</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
|
||||
Namespaces</h2></td></tr>
|
||||
<tr class="memitem:namespaceaare"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceaare.html">aare</a></td></tr>
|
||||
<tr class="memdesc:namespaceaare"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classaare_1_1Frame.html">Frame</a> class to represent a single frame of data model class should be able to work with streams coming from files or network. <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:namespaceaare_1_1File"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceaare_1_1File.html">aare.File</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
99
docs/html/Frame_8cpp.html
Normal file
99
docs/html/Frame_8cpp.html
Normal file
@ -0,0 +1,99 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.7"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>AARE: core/src/Frame.cpp File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectalign">
|
||||
<div id="projectname">AARE
|
||||
</div>
|
||||
<div id="projectbrief">Data analysis library for PSI hybrid detectors</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.7 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_4270bfced15e0e73154b13468c7c9ad9.html">core</a></li><li class="navelem"><a class="el" href="dir_90fd98a0ba30abf7a6068a44995d2d6b.html">src</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#namespaces">Namespaces</a> </div>
|
||||
<div class="headertitle"><div class="title">Frame.cpp File Reference</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock"><code>#include "<a class="el" href="Frame_8hpp_source.html">aare/core/Frame.hpp</a>"</code><br />
|
||||
<code>#include "<a class="el" href="logger_8hpp_source.html">aare/utils/logger.hpp</a>"</code><br />
|
||||
<code>#include <cassert></code><br />
|
||||
<code>#include <iostream></code><br />
|
||||
</div><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
|
||||
Namespaces</h2></td></tr>
|
||||
<tr class="memitem:namespaceaare"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceaare.html">aare</a></td></tr>
|
||||
<tr class="memdesc:namespaceaare"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classaare_1_1Frame.html">Frame</a> class to represent a single frame of data model class should be able to work with streams coming from files or network. <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
110
docs/html/Frame_8hpp.html
Normal file
110
docs/html/Frame_8hpp.html
Normal file
@ -0,0 +1,110 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.7"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>AARE: core/include/aare/core/Frame.hpp File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectalign">
|
||||
<div id="projectname">AARE
|
||||
</div>
|
||||
<div id="projectbrief">Data analysis library for PSI hybrid detectors</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.7 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_4270bfced15e0e73154b13468c7c9ad9.html">core</a></li><li class="navelem"><a class="el" href="dir_24d671cfcbc5d5238a6bd565a49d198f.html">include</a></li><li class="navelem"><a class="el" href="dir_2c69decb5c62900c73cbf4abc58a8693.html">aare</a></li><li class="navelem"><a class="el" href="dir_e51344b9c4a46f8ed8ec1e9a48398749.html">core</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Data Structures</a> |
|
||||
<a href="#namespaces">Namespaces</a> </div>
|
||||
<div class="headertitle"><div class="title">Frame.hpp File Reference</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock"><code>#include "<a class="el" href="NDArray_8hpp_source.html">aare/core/NDArray.hpp</a>"</code><br />
|
||||
<code>#include "<a class="el" href="core_2include_2aare_2core_2defs_8hpp_source.html">aare/core/defs.hpp</a>"</code><br />
|
||||
<code>#include <cstddef></code><br />
|
||||
<code>#include <cstdint></code><br />
|
||||
<code>#include <memory></code><br />
|
||||
<code>#include <sys/types.h></code><br />
|
||||
<code>#include <vector></code><br />
|
||||
</div>
|
||||
<p><a href="Frame_8hpp_source.html">Go to the source code of this file.</a></p>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
|
||||
Data Structures</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classaare_1_1Frame.html">aare::Frame</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
|
||||
Namespaces</h2></td></tr>
|
||||
<tr class="memitem:namespaceaare"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceaare.html">aare</a></td></tr>
|
||||
<tr class="memdesc:namespaceaare"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classaare_1_1Frame.html">Frame</a> class to represent a single frame of data model class should be able to work with streams coming from files or network. <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
184
docs/html/Frame_8hpp_source.html
Normal file
184
docs/html/Frame_8hpp_source.html
Normal file
@ -0,0 +1,184 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.7"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>AARE: core/include/aare/core/Frame.hpp Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectalign">
|
||||
<div id="projectname">AARE
|
||||
</div>
|
||||
<div id="projectbrief">Data analysis library for PSI hybrid detectors</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.7 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_4270bfced15e0e73154b13468c7c9ad9.html">core</a></li><li class="navelem"><a class="el" href="dir_24d671cfcbc5d5238a6bd565a49d198f.html">include</a></li><li class="navelem"><a class="el" href="dir_2c69decb5c62900c73cbf4abc58a8693.html">aare</a></li><li class="navelem"><a class="el" href="dir_e51344b9c4a46f8ed8ec1e9a48398749.html">core</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">Frame.hpp</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<a href="Frame_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#pragma once</span></div>
|
||||
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#include "<a class="code" href="NDArray_8hpp.html">aare/core/NDArray.hpp</a>"</span></div>
|
||||
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#include "<a class="code" href="core_2include_2aare_2core_2defs_8hpp.html">aare/core/defs.hpp</a>"</span></div>
|
||||
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#include <cstddef></span></div>
|
||||
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include <cstdint></span></div>
|
||||
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include <memory></span></div>
|
||||
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#include <sys/types.h></span></div>
|
||||
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include <vector></span></div>
|
||||
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
|
||||
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceaare.html">aare</a> {</div>
|
||||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
|
||||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"><a class="line" href="classaare_1_1Frame.html"> 18</a></span><span class="keyword">class </span><a class="code hl_class" href="classaare_1_1Frame.html">Frame</a> {</div>
|
||||
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"><a class="line" href="classaare_1_1Frame.html#a21c0feaf422c4ffdd479328f2fdaefec"> 19</a></span> ssize_t <a class="code hl_variable" href="classaare_1_1Frame.html#a21c0feaf422c4ffdd479328f2fdaefec">m_rows</a>;</div>
|
||||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"><a class="line" href="classaare_1_1Frame.html#a3edb3a0e0ed32c3837ad5ad95e537aed"> 20</a></span> ssize_t <a class="code hl_variable" href="classaare_1_1Frame.html#a3edb3a0e0ed32c3837ad5ad95e537aed">m_cols</a>;</div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"><a class="line" href="classaare_1_1Frame.html#a17ccc92b87bc2b4c3d3a500759269cab"> 21</a></span> ssize_t <a class="code hl_variable" href="classaare_1_1Frame.html#a17ccc92b87bc2b4c3d3a500759269cab">m_bitdepth</a>;</div>
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="classaare_1_1Frame.html#afa6172a742a35734ad5148786697d197"> 22</a></span> std::byte *<a class="code hl_variable" href="classaare_1_1Frame.html#afa6172a742a35734ad5148786697d197">m_data</a>;</div>
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <a class="code hl_class" href="classaare_1_1Frame.html">Frame</a>(ssize_t rows, ssize_t cols, ssize_t m_bitdepth);</div>
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <a class="code hl_class" href="classaare_1_1Frame.html">Frame</a>(std::byte *fp, ssize_t rows, ssize_t cols, ssize_t m_bitdepth);</div>
|
||||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> std::byte *<a class="code hl_function" href="classaare_1_1Frame.html#a6ace52fdcdf3d87921c1a56ca1781f32">get</a>(<span class="keywordtype">int</span> row, <span class="keywordtype">int</span> col);</div>
|
||||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="comment">// TODO! can we, or even want to remove the template?</span></div>
|
||||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"><a class="line" href="classaare_1_1Frame.html#addd6b73bbb426aafe834e261360eb2d8"> 30</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T> <span class="keywordtype">void</span> <a class="code hl_function" href="classaare_1_1Frame.html#addd6b73bbb426aafe834e261360eb2d8">set</a>(<span class="keywordtype">int</span> row, <span class="keywordtype">int</span> col, T data) {</div>
|
||||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> assert(<span class="keyword">sizeof</span>(T) == m_bitdepth / 8);</div>
|
||||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keywordflow">if</span> (row < 0 || row >= m_rows || col < 0 || col >= m_cols) {</div>
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordflow">throw</span> std::out_of_range(<span class="stringliteral">"Invalid row or column index"</span>);</div>
|
||||
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> }</div>
|
||||
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> std::memcpy(m_data + (row * m_cols + col) * (m_bitdepth / 8), &data, m_bitdepth / 8);</div>
|
||||
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> }</div>
|
||||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
|
||||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="classaare_1_1Frame.html#a5cc556f6b13efb17b3635adb436d816c"> 38</a></span> ssize_t <a class="code hl_function" href="classaare_1_1Frame.html#a5cc556f6b13efb17b3635adb436d816c">rows</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rows; }</div>
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="classaare_1_1Frame.html#a658566623e47c1fa88a08f5e8fe1957f"> 39</a></span> ssize_t <a class="code hl_function" href="classaare_1_1Frame.html#a658566623e47c1fa88a08f5e8fe1957f">cols</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_cols; }</div>
|
||||
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="classaare_1_1Frame.html#ae1fbb96ec971ddcd76ecf3cd91dc5890"> 40</a></span> ssize_t <a class="code hl_function" href="classaare_1_1Frame.html#ae1fbb96ec971ddcd76ecf3cd91dc5890">bitdepth</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_bitdepth; }</div>
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="classaare_1_1Frame.html#a094683d38cac2461c18ed7cc776221c2"> 41</a></span> ssize_t <a class="code hl_function" href="classaare_1_1Frame.html#a094683d38cac2461c18ed7cc776221c2">size</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rows * m_cols * m_bitdepth / 8; }</div>
|
||||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="classaare_1_1Frame.html#a635a1ff8db457c20fcbc2b2b5601bc1d"> 42</a></span> std::byte *<a class="code hl_function" href="classaare_1_1Frame.html#a635a1ff8db457c20fcbc2b2b5601bc1d">data</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_data; }</div>
|
||||
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> </div>
|
||||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="classaare_1_1Frame.html#ad153902f7332be45aa5441196c3aad64"> 44</a></span> <a class="code hl_class" href="classaare_1_1Frame.html">Frame</a> &<a class="code hl_function" href="classaare_1_1Frame.html#ad153902f7332be45aa5441196c3aad64">operator=</a>(<a class="code hl_class" href="classaare_1_1Frame.html">Frame</a> &other) {</div>
|
||||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> m_rows = other.<a class="code hl_function" href="classaare_1_1Frame.html#a5cc556f6b13efb17b3635adb436d816c">rows</a>();</div>
|
||||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> m_cols = other.<a class="code hl_function" href="classaare_1_1Frame.html#a658566623e47c1fa88a08f5e8fe1957f">cols</a>();</div>
|
||||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> m_bitdepth = other.<a class="code hl_function" href="classaare_1_1Frame.html#ae1fbb96ec971ddcd76ecf3cd91dc5890">bitdepth</a>();</div>
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> m_data = <span class="keyword">new</span> std::byte[m_rows * m_cols * m_bitdepth / 8];</div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> std::memcpy(m_data, other.<a class="code hl_variable" href="classaare_1_1Frame.html#afa6172a742a35734ad5148786697d197">m_data</a>, m_rows * m_cols * m_bitdepth / 8);</div>
|
||||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
||||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> }</div>
|
||||
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="comment">// add move constructor</span></div>
|
||||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"><a class="line" href="classaare_1_1Frame.html#a2986002a7d6c161dcc592cea1162a5bb"> 53</a></span> <a class="code hl_function" href="classaare_1_1Frame.html#a2986002a7d6c161dcc592cea1162a5bb">Frame</a>(<a class="code hl_class" href="classaare_1_1Frame.html">Frame</a> &&other) {</div>
|
||||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> m_rows = other.rows();</div>
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> m_cols = other.cols();</div>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> m_bitdepth = other.bitdepth();</div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> m_data = other.m_data;</div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> other.m_data = <span class="keyword">nullptr</span>;</div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> other.m_rows = other.m_cols = other.m_bitdepth = 0;</div>
|
||||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> }</div>
|
||||
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="comment">// copy constructor</span></div>
|
||||
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="classaare_1_1Frame.html#a82f7c09b244a295e2cc13e199a198448"> 62</a></span> <a class="code hl_function" href="classaare_1_1Frame.html#a82f7c09b244a295e2cc13e199a198448">Frame</a>(<span class="keyword">const</span> <a class="code hl_class" href="classaare_1_1Frame.html">Frame</a> &other) {</div>
|
||||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> m_rows = other.<a class="code hl_function" href="classaare_1_1Frame.html#a5cc556f6b13efb17b3635adb436d816c">rows</a>();</div>
|
||||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> m_cols = other.<a class="code hl_function" href="classaare_1_1Frame.html#a658566623e47c1fa88a08f5e8fe1957f">cols</a>();</div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> m_bitdepth = other.<a class="code hl_function" href="classaare_1_1Frame.html#ae1fbb96ec971ddcd76ecf3cd91dc5890">bitdepth</a>();</div>
|
||||
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> m_data = <span class="keyword">new</span> std::byte[m_rows * m_cols * m_bitdepth / 8];</div>
|
||||
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> std::memcpy(m_data, other.<a class="code hl_variable" href="classaare_1_1Frame.html#afa6172a742a35734ad5148786697d197">m_data</a>, m_rows * m_cols * m_bitdepth / 8);</div>
|
||||
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> }</div>
|
||||
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
|
||||
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="classaare_1_1Frame.html#af6fbc8eaa1f00062431edf118caebe0f"> 70</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T> <a class="code hl_class" href="classaare_1_1NDView.html">NDView<T></a> <a class="code hl_function" href="classaare_1_1Frame.html#af6fbc8eaa1f00062431edf118caebe0f">view</a>() {</div>
|
||||
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> std::vector<ssize_t> shape = {m_rows, m_cols};</div>
|
||||
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> T *<a class="code hl_function" href="classaare_1_1Frame.html#a635a1ff8db457c20fcbc2b2b5601bc1d">data</a> = <span class="keyword">reinterpret_cast<</span>T *<span class="keyword">></span>(m_data);</div>
|
||||
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classaare_1_1NDView.html">NDView<T></a>(data, shape);</div>
|
||||
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> }</div>
|
||||
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> </div>
|
||||
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="classaare_1_1Frame.html#aac3f666d8f5fdb30861459c2f639d40a"> 76</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T> <a class="code hl_class" href="classaare_1_1NDArray.html">NDArray<T></a> <a class="code hl_function" href="classaare_1_1Frame.html#aac3f666d8f5fdb30861459c2f639d40a">image</a>() { <span class="keywordflow">return</span> <a class="code hl_class" href="classaare_1_1NDArray.html">NDArray<T></a>(this->view<T>()); }</div>
|
||||
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> </div>
|
||||
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="classaare_1_1Frame.html#a6bd29a7d2219e3dde03d4c9bd4298c60"> 78</a></span> <a class="code hl_function" href="classaare_1_1Frame.html#a6bd29a7d2219e3dde03d4c9bd4298c60">~Frame</a>() { <span class="keyword">delete</span>[] m_data; }</div>
|
||||
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span>};</div>
|
||||
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> </div>
|
||||
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span>} <span class="comment">// namespace aare</span></div>
|
||||
<div class="ttc" id="aNDArray_8hpp_html"><div class="ttname"><a href="NDArray_8hpp.html">NDArray.hpp</a></div></div>
|
||||
<div class="ttc" id="aclassaare_1_1Frame_html"><div class="ttname"><a href="classaare_1_1Frame.html">aare::Frame</a></div><div class="ttdef"><b>Definition</b> Frame.hpp:18</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1Frame_html_a094683d38cac2461c18ed7cc776221c2"><div class="ttname"><a href="classaare_1_1Frame.html#a094683d38cac2461c18ed7cc776221c2">aare::Frame::size</a></div><div class="ttdeci">ssize_t size() const</div><div class="ttdef"><b>Definition</b> Frame.hpp:41</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1Frame_html_a17ccc92b87bc2b4c3d3a500759269cab"><div class="ttname"><a href="classaare_1_1Frame.html#a17ccc92b87bc2b4c3d3a500759269cab">aare::Frame::m_bitdepth</a></div><div class="ttdeci">ssize_t m_bitdepth</div><div class="ttdef"><b>Definition</b> Frame.hpp:21</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1Frame_html_a21c0feaf422c4ffdd479328f2fdaefec"><div class="ttname"><a href="classaare_1_1Frame.html#a21c0feaf422c4ffdd479328f2fdaefec">aare::Frame::m_rows</a></div><div class="ttdeci">ssize_t m_rows</div><div class="ttdef"><b>Definition</b> Frame.hpp:19</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1Frame_html_a2986002a7d6c161dcc592cea1162a5bb"><div class="ttname"><a href="classaare_1_1Frame.html#a2986002a7d6c161dcc592cea1162a5bb">aare::Frame::Frame</a></div><div class="ttdeci">Frame(Frame &&other)</div><div class="ttdef"><b>Definition</b> Frame.hpp:53</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1Frame_html_a3edb3a0e0ed32c3837ad5ad95e537aed"><div class="ttname"><a href="classaare_1_1Frame.html#a3edb3a0e0ed32c3837ad5ad95e537aed">aare::Frame::m_cols</a></div><div class="ttdeci">ssize_t m_cols</div><div class="ttdef"><b>Definition</b> Frame.hpp:20</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1Frame_html_a5cc556f6b13efb17b3635adb436d816c"><div class="ttname"><a href="classaare_1_1Frame.html#a5cc556f6b13efb17b3635adb436d816c">aare::Frame::rows</a></div><div class="ttdeci">ssize_t rows() const</div><div class="ttdef"><b>Definition</b> Frame.hpp:38</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1Frame_html_a635a1ff8db457c20fcbc2b2b5601bc1d"><div class="ttname"><a href="classaare_1_1Frame.html#a635a1ff8db457c20fcbc2b2b5601bc1d">aare::Frame::data</a></div><div class="ttdeci">std::byte * data() const</div><div class="ttdef"><b>Definition</b> Frame.hpp:42</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1Frame_html_a658566623e47c1fa88a08f5e8fe1957f"><div class="ttname"><a href="classaare_1_1Frame.html#a658566623e47c1fa88a08f5e8fe1957f">aare::Frame::cols</a></div><div class="ttdeci">ssize_t cols() const</div><div class="ttdef"><b>Definition</b> Frame.hpp:39</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1Frame_html_a6ace52fdcdf3d87921c1a56ca1781f32"><div class="ttname"><a href="classaare_1_1Frame.html#a6ace52fdcdf3d87921c1a56ca1781f32">aare::Frame::get</a></div><div class="ttdeci">std::byte * get(int row, int col)</div><div class="ttdef"><b>Definition</b> Frame.cpp:19</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1Frame_html_a6bd29a7d2219e3dde03d4c9bd4298c60"><div class="ttname"><a href="classaare_1_1Frame.html#a6bd29a7d2219e3dde03d4c9bd4298c60">aare::Frame::~Frame</a></div><div class="ttdeci">~Frame()</div><div class="ttdef"><b>Definition</b> Frame.hpp:78</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1Frame_html_a82f7c09b244a295e2cc13e199a198448"><div class="ttname"><a href="classaare_1_1Frame.html#a82f7c09b244a295e2cc13e199a198448">aare::Frame::Frame</a></div><div class="ttdeci">Frame(const Frame &other)</div><div class="ttdef"><b>Definition</b> Frame.hpp:62</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1Frame_html_aac3f666d8f5fdb30861459c2f639d40a"><div class="ttname"><a href="classaare_1_1Frame.html#aac3f666d8f5fdb30861459c2f639d40a">aare::Frame::image</a></div><div class="ttdeci">NDArray< T > image()</div><div class="ttdef"><b>Definition</b> Frame.hpp:76</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1Frame_html_ad153902f7332be45aa5441196c3aad64"><div class="ttname"><a href="classaare_1_1Frame.html#ad153902f7332be45aa5441196c3aad64">aare::Frame::operator=</a></div><div class="ttdeci">Frame & operator=(Frame &other)</div><div class="ttdef"><b>Definition</b> Frame.hpp:44</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1Frame_html_addd6b73bbb426aafe834e261360eb2d8"><div class="ttname"><a href="classaare_1_1Frame.html#addd6b73bbb426aafe834e261360eb2d8">aare::Frame::set</a></div><div class="ttdeci">void set(int row, int col, T data)</div><div class="ttdef"><b>Definition</b> Frame.hpp:30</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1Frame_html_ae1fbb96ec971ddcd76ecf3cd91dc5890"><div class="ttname"><a href="classaare_1_1Frame.html#ae1fbb96ec971ddcd76ecf3cd91dc5890">aare::Frame::bitdepth</a></div><div class="ttdeci">ssize_t bitdepth() const</div><div class="ttdef"><b>Definition</b> Frame.hpp:40</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1Frame_html_af6fbc8eaa1f00062431edf118caebe0f"><div class="ttname"><a href="classaare_1_1Frame.html#af6fbc8eaa1f00062431edf118caebe0f">aare::Frame::view</a></div><div class="ttdeci">NDView< T > view()</div><div class="ttdef"><b>Definition</b> Frame.hpp:70</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1Frame_html_afa6172a742a35734ad5148786697d197"><div class="ttname"><a href="classaare_1_1Frame.html#afa6172a742a35734ad5148786697d197">aare::Frame::m_data</a></div><div class="ttdeci">std::byte * m_data</div><div class="ttdef"><b>Definition</b> Frame.hpp:22</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1NDArray_html"><div class="ttname"><a href="classaare_1_1NDArray.html">aare::NDArray</a></div><div class="ttdef"><b>Definition</b> NDArray.hpp:23</div></div>
|
||||
<div class="ttc" id="aclassaare_1_1NDView_html"><div class="ttname"><a href="classaare_1_1NDView.html">aare::NDView</a></div><div class="ttdef"><b>Definition</b> NDView.hpp:46</div></div>
|
||||
<div class="ttc" id="acore_2include_2aare_2core_2defs_8hpp_html"><div class="ttname"><a href="core_2include_2aare_2core_2defs_8hpp.html">defs.hpp</a></div></div>
|
||||
<div class="ttc" id="anamespaceaare_html"><div class="ttname"><a href="namespaceaare.html">aare</a></div><div class="ttdoc">Frame class to represent a single frame of data model class should be able to work with streams comin...</div><div class="ttdef"><b>Definition</b> CircularFifo.hpp:11</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
103
docs/html/Frame_8py.html
Normal file
103
docs/html/Frame_8py.html
Normal file
@ -0,0 +1,103 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.7"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>AARE: python/aare/Frame.py File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectalign">
|
||||
<div id="projectname">AARE
|
||||
</div>
|
||||
<div id="projectbrief">Data analysis library for PSI hybrid detectors</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.7 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_7837fde3ab9c1fb2fc5be7b717af8d79.html">python</a></li><li class="navelem"><a class="el" href="dir_c3d836bc3a3b6c6155ea71ab908e36e4.html">aare</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Data Structures</a> |
|
||||
<a href="#namespaces">Namespaces</a> </div>
|
||||
<div class="headertitle"><div class="title">Frame.py File Reference</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
|
||||
Data Structures</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classaare_1_1Frame_1_1Frame.html">aare.Frame.Frame</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
|
||||
Namespaces</h2></td></tr>
|
||||
<tr class="memitem:namespaceaare"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceaare.html">aare</a></td></tr>
|
||||
<tr class="memdesc:namespaceaare"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classaare_1_1Frame.html">Frame</a> class to represent a single frame of data model class should be able to work with streams coming from files or network. <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:namespaceaare_1_1Frame"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceaare_1_1Frame.html">aare.Frame</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
175
docs/html/Frame_8test_8cpp.html
Normal file
175
docs/html/Frame_8test_8cpp.html
Normal file
@ -0,0 +1,175 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.7"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>AARE: core/test/Frame.test.cpp File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<td id="projectalign">
|
||||
<div id="projectname">AARE
|
||||
</div>
|
||||
<div id="projectbrief">Data analysis library for PSI hybrid detectors</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.7 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<div id="MSearchResults">
|
||||
<div class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div id="SRResults"></div>
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_4270bfced15e0e73154b13468c7c9ad9.html">core</a></li><li class="navelem"><a class="el" href="dir_eda73d8bf8fbd45703b949ae88d46188.html">test</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#func-members">Functions</a> </div>
|
||||
<div class="headertitle"><div class="title">Frame.test.cpp File Reference</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock"><code>#include "<a class="el" href="Frame_8hpp_source.html">aare/core/Frame.hpp</a>"</code><br />
|
||||
<code>#include <catch2/catch_test_macros.hpp></code><br />
|
||||
</div><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr class="memitem:a2332c9864e680b7de99ff8c4c6e67182"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="Frame_8test_8cpp.html#a2332c9864e680b7de99ff8c4c6e67182">TEST_CASE</a> ("Construct a frame")</td></tr>
|
||||
<tr class="separator:a2332c9864e680b7de99ff8c4c6e67182"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a599eb5f201faca7a23eb5f701503ba30"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="Frame_8test_8cpp.html#a599eb5f201faca7a23eb5f701503ba30">TEST_CASE</a> ("Set a value in a 8 bit frame")</td></tr>
|
||||
<tr class="separator:a599eb5f201faca7a23eb5f701503ba30"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a6c66ad08a1ddd0fb56361aabfe88a90b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="Frame_8test_8cpp.html#a6c66ad08a1ddd0fb56361aabfe88a90b">TEST_CASE</a> ("Set a value in a 64 bit frame")</td></tr>
|
||||
<tr class="separator:a6c66ad08a1ddd0fb56361aabfe88a90b"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a16cf09450b7ed51d4eacf51e7ca9b318"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="Frame_8test_8cpp.html#a16cf09450b7ed51d4eacf51e7ca9b318">TEST_CASE</a> ("Move construct a frame")</td></tr>
|
||||
<tr class="separator:a16cf09450b7ed51d4eacf51e7ca9b318"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<h2 class="groupheader">Function Documentation</h2>
|
||||
<a id="a2332c9864e680b7de99ff8c4c6e67182" name="a2332c9864e680b7de99ff8c4c6e67182"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a2332c9864e680b7de99ff8c4c6e67182">◆ </a></span>TEST_CASE() <span class="overload">[1/4]</span></h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">TEST_CASE </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">"Construct a frame" </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a16cf09450b7ed51d4eacf51e7ca9b318" name="a16cf09450b7ed51d4eacf51e7ca9b318"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a16cf09450b7ed51d4eacf51e7ca9b318">◆ </a></span>TEST_CASE() <span class="overload">[2/4]</span></h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">TEST_CASE </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">"Move construct a frame" </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a6c66ad08a1ddd0fb56361aabfe88a90b" name="a6c66ad08a1ddd0fb56361aabfe88a90b"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a6c66ad08a1ddd0fb56361aabfe88a90b">◆ </a></span>TEST_CASE() <span class="overload">[3/4]</span></h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">TEST_CASE </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">"Set a value in a 64 bit frame" </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a599eb5f201faca7a23eb5f701503ba30" name="a599eb5f201faca7a23eb5f701503ba30"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a599eb5f201faca7a23eb5f701503ba30">◆ </a></span>TEST_CASE() <span class="overload">[4/4]</span></h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">TEST_CASE </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">"Set a value in a 8 bit frame" </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user