setup doxygen and clang-uml files

This commit is contained in:
Bechir Braham
2024-04-11 17:20:34 +02:00
parent 111b421476
commit 2ebbd0d7cd
640 changed files with 77235 additions and 4 deletions

View File

@ -0,0 +1,18 @@
\doxysection{core/include/aare/core/\+Circular\+Fifo.hpp File Reference}
\hypertarget{CircularFifo_8hpp}{}\label{CircularFifo_8hpp}\index{core/include/aare/core/CircularFifo.hpp@{core/include/aare/core/CircularFifo.hpp}}
{\ttfamily \#include $<$chrono$>$}\newline
{\ttfamily \#include $<$fmt/color.\+h$>$}\newline
{\ttfamily \#include $<$fmt/format.\+h$>$}\newline
{\ttfamily \#include $<$memory$>$}\newline
{\ttfamily \#include $<$thread$>$}\newline
{\ttfamily \#include \"{}aare/core/\+Producer\+Consumer\+Queue.\+hpp\"{}}\newline
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item
class \mbox{\hyperlink{classaare_1_1CircularFifo}{aare\+::\+Circular\+Fifo$<$ Item\+Type $>$}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\end{DoxyCompactItemize}

View File

@ -0,0 +1,103 @@
\doxysection{Circular\+Fifo.\+hpp}
\hypertarget{CircularFifo_8hpp_source}{}\label{CircularFifo_8hpp_source}\index{core/include/aare/core/CircularFifo.hpp@{core/include/aare/core/CircularFifo.hpp}}
\mbox{\hyperlink{CircularFifo_8hpp}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#pragma\ once}}
\DoxyCodeLine{00002\ }
\DoxyCodeLine{00003\ \textcolor{preprocessor}{\#include\ <chrono>}}
\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ <fmt/color.h>}}
\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ <fmt/format.h>}}
\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ <memory>}}
\DoxyCodeLine{00007\ \textcolor{preprocessor}{\#include\ <thread>}}
\DoxyCodeLine{00008\ }
\DoxyCodeLine{00009\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{ProducerConsumerQueue_8hpp}{aare/core/ProducerConsumerQueue.hpp}}"{}}}
\DoxyCodeLine{00010\ }
\DoxyCodeLine{00011\ \textcolor{keyword}{namespace\ }\mbox{\hyperlink{namespaceaare}{aare}}\ \{}
\DoxyCodeLine{00012\ }
\DoxyCodeLine{00013\ \textcolor{keyword}{template}\ <\textcolor{keyword}{class}\ ItemType>\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classaare_1_1CircularFifo}{CircularFifo}}\ \{}
\DoxyCodeLine{00014\ \ \ \ \ uint32\_t\ \mbox{\hyperlink{classaare_1_1CircularFifo_af2c357b41296f0516b402feae91dc82d}{fifo\_size}};}
\DoxyCodeLine{00015\ \ \ \ \ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue}{folly::ProducerConsumerQueue<ItemType>}}\ \mbox{\hyperlink{classaare_1_1CircularFifo_ad08760281625cee96d79104c4321dbf4}{free\_slots}};}
\DoxyCodeLine{00016\ \ \ \ \ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue}{folly::ProducerConsumerQueue<ItemType>}}\ \mbox{\hyperlink{classaare_1_1CircularFifo_a28f5f6090b7812d18543b213c4d3177f}{filled\_slots}};}
\DoxyCodeLine{00017\ }
\DoxyCodeLine{00018\ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{00019\ \ \ \ \ \mbox{\hyperlink{classaare_1_1CircularFifo_a8579c56895285557b6029db73f5b2af3}{CircularFifo}}()\ :\ \mbox{\hyperlink{classaare_1_1CircularFifo}{CircularFifo}}(100)\{\};}
\DoxyCodeLine{00020\ \ \ \ \ \mbox{\hyperlink{classaare_1_1CircularFifo_abeda9cfed3526a9c4241fcc9ed4ba163}{CircularFifo}}(uint32\_t\ size)\ :\ \mbox{\hyperlink{classaare_1_1CircularFifo_af2c357b41296f0516b402feae91dc82d}{fifo\_size}}(size),\ \mbox{\hyperlink{classaare_1_1CircularFifo_ad08760281625cee96d79104c4321dbf4}{free\_slots}}(size\ +\ 1),\ \mbox{\hyperlink{classaare_1_1CircularFifo_a28f5f6090b7812d18543b213c4d3177f}{filled\_slots}}(size\ +\ 1)\ \{}
\DoxyCodeLine{00021\ }
\DoxyCodeLine{00022\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ TODO!\ how\ do\ we\ deal\ with\ alignment\ for\ writing?\ alignas???}}
\DoxyCodeLine{00023\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Do\ we\ give\ the\ user\ a\ chance\ to\ provide\ memory\ locations?}}
\DoxyCodeLine{00024\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Templated\ allocator?}}
\DoxyCodeLine{00025\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{size\_t}\ i\ =\ 0;\ i\ <\ \mbox{\hyperlink{classaare_1_1CircularFifo_af2c357b41296f0516b402feae91dc82d}{fifo\_size}};\ ++i)\ \{}
\DoxyCodeLine{00026\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1CircularFifo_ad08760281625cee96d79104c4321dbf4}{free\_slots}}.\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_af849682c2351c5f2b3344e32c512a961}{write}}(ItemType\{\});}
\DoxyCodeLine{00027\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00028\ \ \ \ \ \}}
\DoxyCodeLine{00029\ }
\DoxyCodeLine{00030\ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classaare_1_1CircularFifo_af4e41499b0c82bb4264739a55fef2cdc}{next}}()\ \{}
\DoxyCodeLine{00031\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ TODO!\ avoid\ default\ constructing\ ItemType}}
\DoxyCodeLine{00032\ \ \ \ \ \ \ \ \ ItemType\ it;}
\DoxyCodeLine{00033\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!\mbox{\hyperlink{classaare_1_1CircularFifo_a28f5f6090b7812d18543b213c4d3177f}{filled\_slots}}.\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a3288ef770695d676376c80ea41630b74}{read}}(it))}
\DoxyCodeLine{00034\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{false};}
\DoxyCodeLine{00035\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!\mbox{\hyperlink{classaare_1_1CircularFifo_ad08760281625cee96d79104c4321dbf4}{free\_slots}}.\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_af849682c2351c5f2b3344e32c512a961}{write}}(std::move(it)))}
\DoxyCodeLine{00036\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{false};}
\DoxyCodeLine{00037\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{true};}
\DoxyCodeLine{00038\ \ \ \ \ \}}
\DoxyCodeLine{00039\ }
\DoxyCodeLine{00040\ \ \ \ \ \mbox{\hyperlink{classaare_1_1CircularFifo_a2a2d8bb747eb3235b2bddd88216b1733}{\string~CircularFifo}}()\ \{\}}
\DoxyCodeLine{00041\ }
\DoxyCodeLine{00042\ \ \ \ \ \textcolor{keyword}{using\ }\mbox{\hyperlink{classaare_1_1CircularFifo_a37b26e1fd9d6904cef2d1cafda316dc0}{value\_type}}\ =\ ItemType;}
\DoxyCodeLine{00043\ }
\DoxyCodeLine{00044\ \ \ \ \ \textcolor{keyword}{auto}\ \mbox{\hyperlink{classaare_1_1CircularFifo_afbf8f710904794b3994363161fbb2cab}{numFilledSlots}}()\ const\ noexcept\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1CircularFifo_a28f5f6090b7812d18543b213c4d3177f}{filled\_slots}}.\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_adb384b6a25b755b627d04ff6f2ca9c95}{sizeGuess}}();\ \}}
\DoxyCodeLine{00045\ \ \ \ \ \textcolor{keyword}{auto}\ \mbox{\hyperlink{classaare_1_1CircularFifo_a9190570892efabe5d2cb6fbdcd31c813}{numFreeSlots}}()\ const\ noexcept\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1CircularFifo_ad08760281625cee96d79104c4321dbf4}{free\_slots}}.\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_adb384b6a25b755b627d04ff6f2ca9c95}{sizeGuess}}();\ \}}
\DoxyCodeLine{00046\ \ \ \ \ \textcolor{keyword}{auto}\ \mbox{\hyperlink{classaare_1_1CircularFifo_ae7ef1972a9b372c36c048f358f3bc977}{isFull}}()\ const\ noexcept\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1CircularFifo_a28f5f6090b7812d18543b213c4d3177f}{filled\_slots}}.\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_ad883c041917c2b7f10b0ecdaeaeb0577}{isFull}}();\ \}}
\DoxyCodeLine{00047\ }
\DoxyCodeLine{00048\ \ \ \ \ ItemType\ \mbox{\hyperlink{classaare_1_1CircularFifo_a7065cd5808ef6226fd36d0a522678b41}{pop\_free}}()\ \{}
\DoxyCodeLine{00049\ \ \ \ \ \ \ \ \ ItemType\ v;}
\DoxyCodeLine{00050\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}\ (!\mbox{\hyperlink{classaare_1_1CircularFifo_ad08760281625cee96d79104c4321dbf4}{free\_slots}}.\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a3288ef770695d676376c80ea41630b74}{read}}(v))}
\DoxyCodeLine{00051\ \ \ \ \ \ \ \ \ \ \ \ \ ;}
\DoxyCodeLine{00052\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ std::move(v);}
\DoxyCodeLine{00053\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ return\ v;}}
\DoxyCodeLine{00054\ \ \ \ \ \}}
\DoxyCodeLine{00055\ }
\DoxyCodeLine{00056\ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classaare_1_1CircularFifo_a1ee728381a85f2105739db57b3a3c74d}{try\_pop\_free}}(ItemType\ \&v)\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1CircularFifo_ad08760281625cee96d79104c4321dbf4}{free\_slots}}.\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a3288ef770695d676376c80ea41630b74}{read}}(v);\ \}}
\DoxyCodeLine{00057\ }
\DoxyCodeLine{00058\ \ \ \ \ ItemType\ \mbox{\hyperlink{classaare_1_1CircularFifo_af10fb2772258ac5f3001a48f42ddc466}{pop\_value}}(std::chrono::nanoseconds\ wait,\ std::atomic<bool>\ \&stopped)\ \{}
\DoxyCodeLine{00059\ \ \ \ \ \ \ \ \ ItemType\ v;}
\DoxyCodeLine{00060\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}\ (!\mbox{\hyperlink{classaare_1_1CircularFifo_a28f5f6090b7812d18543b213c4d3177f}{filled\_slots}}.\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a3288ef770695d676376c80ea41630b74}{read}}(v)\ \&\&\ !stopped)\ \{}
\DoxyCodeLine{00061\ \ \ \ \ \ \ \ \ \ \ \ \ std::this\_thread::sleep\_for(wait);}
\DoxyCodeLine{00062\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00063\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ std::move(v);}
\DoxyCodeLine{00064\ \ \ \ \ \}}
\DoxyCodeLine{00065\ }
\DoxyCodeLine{00066\ \ \ \ \ ItemType\ \mbox{\hyperlink{classaare_1_1CircularFifo_a3568e05982e05668593ebf5d033cb0f6}{pop\_value}}()\ \{}
\DoxyCodeLine{00067\ \ \ \ \ \ \ \ \ ItemType\ v;}
\DoxyCodeLine{00068\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}\ (!\mbox{\hyperlink{classaare_1_1CircularFifo_a28f5f6090b7812d18543b213c4d3177f}{filled\_slots}}.\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a3288ef770695d676376c80ea41630b74}{read}}(v))}
\DoxyCodeLine{00069\ \ \ \ \ \ \ \ \ \ \ \ \ ;}
\DoxyCodeLine{00070\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ std::move(v);}
\DoxyCodeLine{00071\ \ \ \ \ \}}
\DoxyCodeLine{00072\ }
\DoxyCodeLine{00073\ \ \ \ \ ItemType\ *\mbox{\hyperlink{classaare_1_1CircularFifo_ace6570667d6859e219f3519812c5a24a}{frontPtr}}()\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1CircularFifo_a28f5f6090b7812d18543b213c4d3177f}{filled\_slots}}.\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a24474b670bc44f75f7c978087e401bd0}{frontPtr}}();\ \}}
\DoxyCodeLine{00074\ }
\DoxyCodeLine{00075\ \ \ \ \ \textcolor{comment}{//\ TODO!\ Add\ function\ to\ move\ item\ from\ filled\ to\ free\ to\ be\ used}}
\DoxyCodeLine{00076\ \ \ \ \ \textcolor{comment}{//\ with\ the\ frontPtr\ function}}
\DoxyCodeLine{00077\ }
\DoxyCodeLine{00078\ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{class}...\ Args>\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1CircularFifo_ae0637495a0c030ad77e78b14cbe619ad}{push\_value}}(Args\ \&\&...recordArgs)\ \{}
\DoxyCodeLine{00079\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}\ (!\mbox{\hyperlink{classaare_1_1CircularFifo_a28f5f6090b7812d18543b213c4d3177f}{filled\_slots}}.\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_af849682c2351c5f2b3344e32c512a961}{write}}(std::forward<Args>(recordArgs)...))}
\DoxyCodeLine{00080\ \ \ \ \ \ \ \ \ \ \ \ \ ;}
\DoxyCodeLine{00081\ \ \ \ \ \}}
\DoxyCodeLine{00082\ }
\DoxyCodeLine{00083\ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{class}...\ Args>\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classaare_1_1CircularFifo_aa16fd4ce93fb94b7214353cabfefc1e1}{try\_push\_value}}(Args\ \&\&...recordArgs)\ \{}
\DoxyCodeLine{00084\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1CircularFifo_a28f5f6090b7812d18543b213c4d3177f}{filled\_slots}}.\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_af849682c2351c5f2b3344e32c512a961}{write}}(std::forward<Args>(recordArgs)...);}
\DoxyCodeLine{00085\ \ \ \ \ \}}
\DoxyCodeLine{00086\ }
\DoxyCodeLine{00087\ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{class}...\ Args>\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1CircularFifo_a0d58312a721120580eb030c6524c35ec}{push\_free}}(Args\ \&\&...recordArgs)\ \{}
\DoxyCodeLine{00088\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}\ (!\mbox{\hyperlink{classaare_1_1CircularFifo_ad08760281625cee96d79104c4321dbf4}{free\_slots}}.\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_af849682c2351c5f2b3344e32c512a961}{write}}(std::forward<Args>(recordArgs)...))}
\DoxyCodeLine{00089\ \ \ \ \ \ \ \ \ \ \ \ \ ;}
\DoxyCodeLine{00090\ \ \ \ \ \}}
\DoxyCodeLine{00091\ }
\DoxyCodeLine{00092\ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{class}...\ Args>\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classaare_1_1CircularFifo_ae643565632229878f01a88f650ea5e3a}{try\_push\_free}}(Args\ \&\&...recordArgs)\ \{}
\DoxyCodeLine{00093\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1CircularFifo_ad08760281625cee96d79104c4321dbf4}{free\_slots}}.\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_af849682c2351c5f2b3344e32c512a961}{write}}(std::forward<Args>(recordArgs)...);}
\DoxyCodeLine{00094\ \ \ \ \ \}}
\DoxyCodeLine{00095\ \};}
\DoxyCodeLine{00096\ }
\DoxyCodeLine{00097\ \}\ \textcolor{comment}{//\ namespace\ aare}}
\end{DoxyCode}

View File

@ -0,0 +1,79 @@
\doxysection{core/test/\+Circular\+Fifo.test.\+cpp File Reference}
\hypertarget{CircularFifo_8test_8cpp}{}\label{CircularFifo_8test_8cpp}\index{core/test/CircularFifo.test.cpp@{core/test/CircularFifo.test.cpp}}
{\ttfamily \#include $<$catch2/catch\+\_\+all.\+hpp$>$}\newline
{\ttfamily \#include \"{}aare/core/\+Circular\+Fifo.\+hpp\"{}}\newline
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item
struct \mbox{\hyperlink{structMoveOnlyInt}{Move\+Only\+Int}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{CircularFifo_8test_8cpp_a1b8c212b4d5924f3e89b962865f3bdb9}{TEST\+\_\+\+CASE}} (\"{}Circular\+Fifo can be default constructed\"{})
\item
\mbox{\hyperlink{CircularFifo_8test_8cpp_a4b1a907d65f3038d619c6384e3667475}{TEST\+\_\+\+CASE}} (\"{}Newly constructed fifo has the right size\"{})
\item
\mbox{\hyperlink{CircularFifo_8test_8cpp_ae6091590aba8aec03a95d8028dfa18cc}{TEST\+\_\+\+CASE}} (\"{}Can fit size number of objects\"{})
\item
\mbox{\hyperlink{CircularFifo_8test_8cpp_ab732da1983d607b1804e45cbb130e2cc}{TEST\+\_\+\+CASE}} (\"{}Push move only type\"{})
\item
\mbox{\hyperlink{CircularFifo_8test_8cpp_ab2201262beb92831c027637b6cfd06ac}{TEST\+\_\+\+CASE}} (\"{}Push pop\"{})
\item
\mbox{\hyperlink{CircularFifo_8test_8cpp_a4df422caab10b6bbb68a5e01c0e9b659}{TEST\+\_\+\+CASE}} (\"{}Pop free and then push\"{})
\item
\mbox{\hyperlink{CircularFifo_8test_8cpp_a6d240590401958a420199d04a65ff6b0}{TEST\+\_\+\+CASE}} (\"{}Skip the first value\"{})
\item
\mbox{\hyperlink{CircularFifo_8test_8cpp_ab65aae5a6bc4e7f44728108ca0c2683d}{TEST\+\_\+\+CASE}} (\"{}Use in place and move to free\"{})
\end{DoxyCompactItemize}
\doxysubsection{Function Documentation}
\Hypertarget{CircularFifo_8test_8cpp_ae6091590aba8aec03a95d8028dfa18cc}\label{CircularFifo_8test_8cpp_ae6091590aba8aec03a95d8028dfa18cc}
\index{CircularFifo.test.cpp@{CircularFifo.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!CircularFifo.test.cpp@{CircularFifo.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [1/8]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Can fit size number of objects\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{CircularFifo_8test_8cpp_a1b8c212b4d5924f3e89b962865f3bdb9}\label{CircularFifo_8test_8cpp_a1b8c212b4d5924f3e89b962865f3bdb9}
\index{CircularFifo.test.cpp@{CircularFifo.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!CircularFifo.test.cpp@{CircularFifo.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [2/8]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Circular\+Fifo can be default constructed\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{CircularFifo_8test_8cpp_a4b1a907d65f3038d619c6384e3667475}\label{CircularFifo_8test_8cpp_a4b1a907d65f3038d619c6384e3667475}
\index{CircularFifo.test.cpp@{CircularFifo.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!CircularFifo.test.cpp@{CircularFifo.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [3/8]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Newly constructed fifo has the right size\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{CircularFifo_8test_8cpp_a4df422caab10b6bbb68a5e01c0e9b659}\label{CircularFifo_8test_8cpp_a4df422caab10b6bbb68a5e01c0e9b659}
\index{CircularFifo.test.cpp@{CircularFifo.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!CircularFifo.test.cpp@{CircularFifo.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [4/8]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Pop free and then push\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{CircularFifo_8test_8cpp_ab732da1983d607b1804e45cbb130e2cc}\label{CircularFifo_8test_8cpp_ab732da1983d607b1804e45cbb130e2cc}
\index{CircularFifo.test.cpp@{CircularFifo.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!CircularFifo.test.cpp@{CircularFifo.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [5/8]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Push move only type\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{CircularFifo_8test_8cpp_ab2201262beb92831c027637b6cfd06ac}\label{CircularFifo_8test_8cpp_ab2201262beb92831c027637b6cfd06ac}
\index{CircularFifo.test.cpp@{CircularFifo.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!CircularFifo.test.cpp@{CircularFifo.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [6/8]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Push pop\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{CircularFifo_8test_8cpp_a6d240590401958a420199d04a65ff6b0}\label{CircularFifo_8test_8cpp_a6d240590401958a420199d04a65ff6b0}
\index{CircularFifo.test.cpp@{CircularFifo.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!CircularFifo.test.cpp@{CircularFifo.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [7/8]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Skip the first value\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{CircularFifo_8test_8cpp_ab65aae5a6bc4e7f44728108ca0c2683d}\label{CircularFifo_8test_8cpp_ab65aae5a6bc4e7f44728108ca0c2683d}
\index{CircularFifo.test.cpp@{CircularFifo.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!CircularFifo.test.cpp@{CircularFifo.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [8/8]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Use in place and move to free\"{}}]{ }\end{DoxyParamCaption})}

10
docs/latex/DType_8cpp.tex Normal file
View File

@ -0,0 +1,10 @@
\doxysection{core/src/\+DType.cpp File Reference}
\hypertarget{DType_8cpp}{}\label{DType_8cpp}\index{core/src/DType.cpp@{core/src/DType.cpp}}
{\ttfamily \#include \"{}aare/core/\+DType.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/utils/logger.\+hpp\"{}}\newline
{\ttfamily \#include $<$fmt/format.\+h$>$}\newline
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\end{DoxyCompactItemize}

23
docs/latex/DType_8hpp.tex Normal file
View File

@ -0,0 +1,23 @@
\doxysection{core/include/aare/core/\+DType.hpp File Reference}
\hypertarget{DType_8hpp}{}\label{DType_8hpp}\index{core/include/aare/core/DType.hpp@{core/include/aare/core/DType.hpp}}
{\ttfamily \#include $<$cstdint$>$}\newline
{\ttfamily \#include $<$string$>$}\newline
{\ttfamily \#include $<$typeinfo$>$}\newline
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item
class \mbox{\hyperlink{classaare_1_1DType}{aare\+::\+DType}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item
enum class \mbox{\hyperlink{namespaceaare_a1e464b780b0133eabe398b58ff7d0aff}{aare\+::endian}} \{ \mbox{\hyperlink{namespaceaare_a1e464b780b0133eabe398b58ff7d0affaaae6635e044ac56046b2893a529b5114}{aare\+::little}} = \+\_\+\+\_\+\+ORDER\+\_\+\+LITTLE\+\_\+\+ENDIAN\+\_\+\+\_\+
, \mbox{\hyperlink{namespaceaare_a1e464b780b0133eabe398b58ff7d0affad861877da56b8b4ceb35c8cbfdf65bb4}{aare\+::big}} = \+\_\+\+\_\+\+ORDER\+\_\+\+BIG\+\_\+\+ENDIAN\+\_\+\+\_\+
, \mbox{\hyperlink{namespaceaare_a1e464b780b0133eabe398b58ff7d0affa8e5f3adee38c8fccc13c1f3be0143796}{aare\+::native}} = \+\_\+\+\_\+\+BYTE\+\_\+\+ORDER\+\_\+\+\_\+
\}
\end{DoxyCompactItemize}

View File

@ -0,0 +1,54 @@
\doxysection{DType.\+hpp}
\hypertarget{DType_8hpp_source}{}\label{DType_8hpp_source}\index{core/include/aare/core/DType.hpp@{core/include/aare/core/DType.hpp}}
\mbox{\hyperlink{DType_8hpp}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#pragma\ once}}
\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#include\ <cstdint>}}
\DoxyCodeLine{00003\ \textcolor{preprocessor}{\#include\ <string>}}
\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ <typeinfo>}}
\DoxyCodeLine{00005\ }
\DoxyCodeLine{00006\ \textcolor{keyword}{namespace\ }\mbox{\hyperlink{namespaceaare}{aare}}\ \{}
\DoxyCodeLine{00007\ }
\DoxyCodeLine{00008\ \textcolor{keyword}{enum\ class}\ \mbox{\hyperlink{namespaceaare_a1e464b780b0133eabe398b58ff7d0aff}{endian}}\ \{}
\DoxyCodeLine{00009\ \textcolor{preprocessor}{\#ifdef\ \_WIN32}}
\DoxyCodeLine{00010\ \ \ \ \ \mbox{\hyperlink{namespaceaare_a1e464b780b0133eabe398b58ff7d0affaaae6635e044ac56046b2893a529b5114}{little}}\ =\ 0,}
\DoxyCodeLine{00011\ \ \ \ \ \mbox{\hyperlink{namespaceaare_a1e464b780b0133eabe398b58ff7d0affad861877da56b8b4ceb35c8cbfdf65bb4}{big}}\ =\ 1,}
\DoxyCodeLine{00012\ \ \ \ \ \mbox{\hyperlink{namespaceaare_a1e464b780b0133eabe398b58ff7d0affa8e5f3adee38c8fccc13c1f3be0143796}{native}}\ =\ \mbox{\hyperlink{namespaceaare_a1e464b780b0133eabe398b58ff7d0affaaae6635e044ac56046b2893a529b5114}{little}}}
\DoxyCodeLine{00013\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00014\ \ \ \ \ \mbox{\hyperlink{namespaceaare_a1e464b780b0133eabe398b58ff7d0affaaae6635e044ac56046b2893a529b5114}{little}}\ =\ \_\_ORDER\_LITTLE\_ENDIAN\_\_,}
\DoxyCodeLine{00015\ \ \ \ \ \mbox{\hyperlink{namespaceaare_a1e464b780b0133eabe398b58ff7d0affad861877da56b8b4ceb35c8cbfdf65bb4}{big}}\ =\ \_\_ORDER\_BIG\_ENDIAN\_\_,}
\DoxyCodeLine{00016\ \ \ \ \ \mbox{\hyperlink{namespaceaare_a1e464b780b0133eabe398b58ff7d0affa8e5f3adee38c8fccc13c1f3be0143796}{native}}\ =\ \_\_BYTE\_ORDER\_\_}
\DoxyCodeLine{00017\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00018\ \};}
\DoxyCodeLine{00019\ }
\DoxyCodeLine{00020\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classaare_1_1DType}{DType}}\ \{}
\DoxyCodeLine{00021\ \ \ \ \ \textcolor{comment}{//\ TODO!\ support\ for\ non\ native\ endianess?}}
\DoxyCodeLine{00022\ \ \ \ \ \textcolor{keyword}{static\_assert}(\textcolor{keyword}{sizeof}(long)\ ==\ \textcolor{keyword}{sizeof}(int64\_t),\ \textcolor{stringliteral}{"{}long\ should\ be\ 64bits"{}});}
\DoxyCodeLine{00023\ }
\DoxyCodeLine{00024\ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{00025\ \ \ \ \ \textcolor{keyword}{enum}\ \mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611c}{TypeIndex}}\ \{\ \mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611cadbcf6ad40b9ebfcebead7c2e02ede4fc}{INT8}},\ \mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca39bed0512dff6efdd29ad8180940b431}{UINT8}},\ \mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca9c4f21df66c74163b09a2adcd855da40}{INT16}},\ \mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca359189b12cd95a59c0feeba7cdbf4625}{UINT16}},\ \mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca85ac1b748eb9b8d6c12cf6b3c8ef5543}{INT32}},\ \mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611cacd2ee958be34e3fefcf8f3dc3d935caf}{UINT32}},\ \mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611caf2642ad7946c063c5b4d0a5d2f723957}{INT64}},\ \mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca62199831e85b359a70f9bed0690aa079}{UINT64}},\ \mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca44e73e5741c6e0cb456e177badce218e}{FLOAT}},\ \mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca6371d710bd9a7297ca4878b661ddf07b}{DOUBLE}},\ \mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca31f898431fe733a5154366a0eedbf1e9}{ERROR}}\ \};}
\DoxyCodeLine{00026\ }
\DoxyCodeLine{00027\ \ \ \ \ uint8\_t\ \mbox{\hyperlink{classaare_1_1DType_ab097410b8d43b58061b1d64682ff8ac4}{bitdepth}}()\ \textcolor{keyword}{const};}
\DoxyCodeLine{00028\ }
\DoxyCodeLine{00029\ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{classaare_1_1DType}{DType}}(\textcolor{keyword}{const}\ std::type\_info\ \&t);}
\DoxyCodeLine{00030\ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{classaare_1_1DType}{DType}}(std::string\_view\ sv);}
\DoxyCodeLine{00031\ }
\DoxyCodeLine{00032\ \ \ \ \ \textcolor{comment}{//\ not\ explicit\ to\ allow\ conversions\ form\ enum\ to\ DType}}
\DoxyCodeLine{00033\ \ \ \ \ \mbox{\hyperlink{classaare_1_1DType}{DType}}(\mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611c}{DType::TypeIndex}}\ ti);}
\DoxyCodeLine{00034\ }
\DoxyCodeLine{00035\ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classaare_1_1DType_a9e5f23c134cf9f11787c10e5b3cc3e4e}{operator==}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1DType}{DType}}\ \&other)\ \textcolor{keyword}{const}\ \textcolor{keyword}{noexcept};}
\DoxyCodeLine{00036\ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classaare_1_1DType_af47e1fd8989195c38df4ef1b5d797a70}{operator!=}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1DType}{DType}}\ \&other)\ \textcolor{keyword}{const}\ \textcolor{keyword}{noexcept};}
\DoxyCodeLine{00037\ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classaare_1_1DType_a9e5f23c134cf9f11787c10e5b3cc3e4e}{operator==}}(\textcolor{keyword}{const}\ std::type\_info\ \&t)\ \textcolor{keyword}{const};}
\DoxyCodeLine{00038\ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classaare_1_1DType_af47e1fd8989195c38df4ef1b5d797a70}{operator!=}}(\textcolor{keyword}{const}\ std::type\_info\ \&t)\ \textcolor{keyword}{const};}
\DoxyCodeLine{00039\ }
\DoxyCodeLine{00040\ \ \ \ \ \textcolor{comment}{//\ bool\ operator==(DType::TypeIndex\ ti)\ const;}}
\DoxyCodeLine{00041\ \ \ \ \ \textcolor{comment}{//\ bool\ operator!=(DType::TypeIndex\ ti)\ const;}}
\DoxyCodeLine{00042\ \ \ \ \ std::string\ \mbox{\hyperlink{classaare_1_1DType_a87461d7de8fea6cee34761ef67040a69}{str}}()\ \textcolor{keyword}{const};}
\DoxyCodeLine{00043\ }
\DoxyCodeLine{00044\ \ \ \textcolor{keyword}{private}:}
\DoxyCodeLine{00045\ \ \ \ \ \mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611c}{TypeIndex}}\ \mbox{\hyperlink{classaare_1_1DType_a61529ea1e39bab2a222229fdcda8b1c0}{m\_type}}\{\mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca31f898431fe733a5154366a0eedbf1e9}{TypeIndex::ERROR}}\};}
\DoxyCodeLine{00046\ \};}
\DoxyCodeLine{00047\ }
\DoxyCodeLine{00048\ \}\ \textcolor{comment}{//\ namespace\ aare}}
\end{DoxyCode}

View File

@ -0,0 +1,42 @@
\doxysection{core/test/\+DType.test.\+cpp File Reference}
\hypertarget{DType_8test_8cpp}{}\label{DType_8test_8cpp}\index{core/test/DType.test.cpp@{core/test/DType.test.cpp}}
{\ttfamily \#include \"{}aare/core/\+DType.\+hpp\"{}}\newline
{\ttfamily \#include $<$catch2/catch\+\_\+test\+\_\+macros.\+hpp$>$}\newline
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{DType_8test_8cpp_a32e0ca69423832023bbf8c20a12538c9}{TEST\+\_\+\+CASE}} (\"{}Construct from typeid\"{})
\item
\mbox{\hyperlink{DType_8test_8cpp_ae535e1c9a42c192e70c9e3c39f64d9da}{TEST\+\_\+\+CASE}} (\"{}Construct from string\"{})
\item
\mbox{\hyperlink{DType_8test_8cpp_adb8f39aae7012d01cf187d27cf7b1ff3}{TEST\+\_\+\+CASE}} (\"{}Construct from string with endianess\"{})
\item
\mbox{\hyperlink{DType_8test_8cpp_a3bf10bced4fa8b5bc836e2727a0436d1}{TEST\+\_\+\+CASE}} (\"{}Convert to string\"{})
\end{DoxyCompactItemize}
\doxysubsection{Function Documentation}
\Hypertarget{DType_8test_8cpp_adb8f39aae7012d01cf187d27cf7b1ff3}\label{DType_8test_8cpp_adb8f39aae7012d01cf187d27cf7b1ff3}
\index{DType.test.cpp@{DType.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!DType.test.cpp@{DType.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Construct from string with endianess\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{DType_8test_8cpp_ae535e1c9a42c192e70c9e3c39f64d9da}\label{DType_8test_8cpp_ae535e1c9a42c192e70c9e3c39f64d9da}
\index{DType.test.cpp@{DType.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!DType.test.cpp@{DType.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Construct from string\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{DType_8test_8cpp_a32e0ca69423832023bbf8c20a12538c9}\label{DType_8test_8cpp_a32e0ca69423832023bbf8c20a12538c9}
\index{DType.test.cpp@{DType.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!DType.test.cpp@{DType.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Construct from typeid\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{DType_8test_8cpp_a3bf10bced4fa8b5bc836e2727a0436d1}\label{DType_8test_8cpp_a3bf10bced4fa8b5bc836e2727a0436d1}
\index{DType.test.cpp@{DType.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!DType.test.cpp@{DType.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Convert to string\"{}}]{ }\end{DoxyParamCaption})}

View File

@ -0,0 +1,19 @@
\doxysection{file\+\_\+io/include/aare/file\+\_\+io/\+File\+Interface.hpp File Reference}
\hypertarget{FileInterface_8hpp}{}\label{FileInterface_8hpp}\index{file\_io/include/aare/file\_io/FileInterface.hpp@{file\_io/include/aare/file\_io/FileInterface.hpp}}
{\ttfamily \#include \"{}aare/core/\+DType.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/core/\+Frame.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/core/defs.\+hpp\"{}}\newline
{\ttfamily \#include $<$filesystem$>$}\newline
{\ttfamily \#include $<$vector$>$}\newline
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item
struct \mbox{\hyperlink{structaare_1_1FileConfig}{aare\+::\+File\+Config}}
\begin{DoxyCompactList}\small\item\em \doxylink{structaare_1_1FileConfig}{File\+Config} 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. \end{DoxyCompactList}\item
class \mbox{\hyperlink{classaare_1_1FileInterface}{aare\+::\+File\+Interface}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1FileInterface}{File\+Interface} class to define the interface for file operations. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\end{DoxyCompactItemize}

View File

@ -0,0 +1,95 @@
\doxysection{File\+Interface.\+hpp}
\hypertarget{FileInterface_8hpp_source}{}\label{FileInterface_8hpp_source}\index{file\_io/include/aare/file\_io/FileInterface.hpp@{file\_io/include/aare/file\_io/FileInterface.hpp}}
\mbox{\hyperlink{FileInterface_8hpp}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#pragma\ once}}
\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{DType_8hpp}{aare/core/DType.hpp}}"{}}}
\DoxyCodeLine{00003\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{Frame_8hpp}{aare/core/Frame.hpp}}"{}}}
\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{core_2include_2aare_2core_2defs_8hpp}{aare/core/defs.hpp}}"{}}}
\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ <filesystem>}}
\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ <vector>}}
\DoxyCodeLine{00007\ }
\DoxyCodeLine{00008\ \textcolor{keyword}{namespace\ }\mbox{\hyperlink{namespaceaare}{aare}}\ \{}
\DoxyCodeLine{00009\ }
\DoxyCodeLine{00017\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structaare_1_1FileConfig}{FileConfig}}\ \{}
\DoxyCodeLine{00018\ \ \ \ \ \mbox{\hyperlink{classaare_1_1DType}{aare::DType}}\ \mbox{\hyperlink{structaare_1_1FileConfig_a45520457ebc4d6e918f25e7263b5ee73}{dtype}}\ =\ \mbox{\hyperlink{classaare_1_1DType}{aare::DType}}(\textcolor{keyword}{typeid}(uint16\_t));}
\DoxyCodeLine{00019\ \ \ \ \ uint64\_t\ \mbox{\hyperlink{structaare_1_1FileConfig_aa132aaa25c237d8a5e264edaf604f7e5}{rows}};}
\DoxyCodeLine{00020\ \ \ \ \ uint64\_t\ \mbox{\hyperlink{structaare_1_1FileConfig_a22da62fb09da30e52a555886119f4449}{cols}};}
\DoxyCodeLine{00021\ \ \ \ \ \mbox{\hyperlink{structaare_1_1xy}{xy}}\ \mbox{\hyperlink{structaare_1_1FileConfig_a23f634204a24ff0af342412dfea3dd93}{geometry}}\{1,\ 1\};}
\DoxyCodeLine{00022\ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{structaare_1_1FileConfig_ad25cc3e8a6edd711549dcef250a6e378}{operator==}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structaare_1_1FileConfig}{FileConfig}}\ \&other)\textcolor{keyword}{\ const\ }\{}
\DoxyCodeLine{00023\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{structaare_1_1FileConfig_a45520457ebc4d6e918f25e7263b5ee73}{dtype}}\ ==\ other.\mbox{\hyperlink{structaare_1_1FileConfig_a45520457ebc4d6e918f25e7263b5ee73}{dtype}}\ \&\&\ \mbox{\hyperlink{structaare_1_1FileConfig_aa132aaa25c237d8a5e264edaf604f7e5}{rows}}\ ==\ other.\mbox{\hyperlink{structaare_1_1FileConfig_aa132aaa25c237d8a5e264edaf604f7e5}{rows}}\ \&\&\ \mbox{\hyperlink{structaare_1_1FileConfig_a22da62fb09da30e52a555886119f4449}{cols}}\ ==\ other.\mbox{\hyperlink{structaare_1_1FileConfig_a22da62fb09da30e52a555886119f4449}{cols}}\ \&\&\ \mbox{\hyperlink{structaare_1_1FileConfig_a23f634204a24ff0af342412dfea3dd93}{geometry}}\ ==\ other.\mbox{\hyperlink{structaare_1_1FileConfig_a23f634204a24ff0af342412dfea3dd93}{geometry}};}
\DoxyCodeLine{00024\ \ \ \ \ \}}
\DoxyCodeLine{00025\ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{structaare_1_1FileConfig_ac348b8c97ab8395069f5f9bc9040c67e}{operator!=}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structaare_1_1FileConfig}{FileConfig}}\ \&other)\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ !(*\textcolor{keyword}{this}\ ==\ other);\ \}}
\DoxyCodeLine{00026\ \};}
\DoxyCodeLine{00027\ }
\DoxyCodeLine{00033\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classaare_1_1FileInterface}{FileInterface}}\ \{}
\DoxyCodeLine{00034\ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{00041\ \ \ \ \ \textcolor{keyword}{virtual}\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1FileInterface_a5d39033c9d218d53d51413b99bf7d1f4}{write}}(\mbox{\hyperlink{classaare_1_1Frame}{Frame}}\ \&frame)\ =\ 0;}
\DoxyCodeLine{00042\ }
\DoxyCodeLine{00048\ \ \ \ \ \textcolor{comment}{//\ virtual\ void\ write(std::vector<Frame>\ \&frames)\ =\ 0;}}
\DoxyCodeLine{00049\ }
\DoxyCodeLine{00054\ \ \ \ \ \textcolor{keyword}{virtual}\ \mbox{\hyperlink{classaare_1_1Frame}{Frame}}\ \mbox{\hyperlink{classaare_1_1FileInterface_a9cb196de2bee8638578e4ba3ce46532e}{read}}()\ =\ 0;}
\DoxyCodeLine{00055\ }
\DoxyCodeLine{00061\ \ \ \ \ \textcolor{keyword}{virtual}\ std::vector<Frame>\ \mbox{\hyperlink{classaare_1_1FileInterface_a1624d72f0feb1c19d507cc91c4cb414a}{read}}(\textcolor{keywordtype}{size\_t}\ n\_frames)\ =\ 0;\ \textcolor{comment}{//\ Is\ this\ the\ right\ interface?}}
\DoxyCodeLine{00062\ }
\DoxyCodeLine{00068\ \ \ \ \ \textcolor{keyword}{virtual}\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1FileInterface_a4ac0f4e63ccf90af9f0d5b9b44db856c}{read\_into}}(std::byte\ *image\_buf)\ =\ 0;}
\DoxyCodeLine{00069\ }
\DoxyCodeLine{00076\ \ \ \ \ \textcolor{keyword}{virtual}\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1FileInterface_a580c71b3eecf45ce2140cd65103cfd43}{read\_into}}(std::byte\ *image\_buf,\ \textcolor{keywordtype}{size\_t}\ n\_frames)\ =\ 0;}
\DoxyCodeLine{00077\ }
\DoxyCodeLine{00083\ \ \ \ \ \textcolor{keyword}{virtual}\ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1FileInterface_ac6d10d468f79e855a3334cd1347c1178}{frame\_number}}(\textcolor{keywordtype}{size\_t}\ frame\_index)\ =\ 0;}
\DoxyCodeLine{00084\ }
\DoxyCodeLine{00089\ \ \ \ \ \textcolor{keyword}{virtual}\ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1FileInterface_aab236d5b808f2acc44266281274ed93a}{bytes\_per\_frame}}()\ =\ 0;}
\DoxyCodeLine{00090\ }
\DoxyCodeLine{00095\ \ \ \ \ \textcolor{keyword}{virtual}\ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1FileInterface_a99da51594609984efe62bb64a88a3fa6}{pixels}}()\ =\ 0;}
\DoxyCodeLine{00096\ }
\DoxyCodeLine{00102\ \ \ \ \ \textcolor{keyword}{virtual}\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1FileInterface_a49510fb96eaa245fd5d2be7f25a40b74}{seek}}(\textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1FileInterface_ac6d10d468f79e855a3334cd1347c1178}{frame\_number}})\ =\ 0;}
\DoxyCodeLine{00103\ }
\DoxyCodeLine{00108\ \ \ \ \ \textcolor{keyword}{virtual}\ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1FileInterface_abd01811dcf904625b4dbd78dd9188de4}{tell}}()\ =\ 0;}
\DoxyCodeLine{00109\ }
\DoxyCodeLine{00114\ \ \ \ \ \textcolor{keyword}{virtual}\ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1FileInterface_ad4391bafd11f77f807114ba5108071d3}{total\_frames}}()\ \textcolor{keyword}{const}\ =\ 0;}
\DoxyCodeLine{00119\ \ \ \ \ \textcolor{keyword}{virtual}\ ssize\_t\ \mbox{\hyperlink{classaare_1_1FileInterface_a8a5bc2d9b7b9ec1a9a100bf8a114d909}{rows}}()\ \textcolor{keyword}{const}\ =\ 0;}
\DoxyCodeLine{00124\ \ \ \ \ \textcolor{keyword}{virtual}\ ssize\_t\ \mbox{\hyperlink{classaare_1_1FileInterface_a2927ba0e6a564bcd0da139a552c09b76}{cols}}()\ \textcolor{keyword}{const}\ =\ 0;}
\DoxyCodeLine{00129\ \ \ \ \ \textcolor{keyword}{virtual}\ ssize\_t\ \mbox{\hyperlink{classaare_1_1FileInterface_a8bfd7abf4271210000b2ef8d1c0d6149}{bitdepth}}()\ \textcolor{keyword}{const}\ =\ 0;}
\DoxyCodeLine{00130\ }
\DoxyCodeLine{00136\ \ \ \ \ \mbox{\hyperlink{classaare_1_1Frame}{Frame}}\ \mbox{\hyperlink{classaare_1_1FileInterface_aad0827f2dad4403cebdce417243d842c}{iread}}(\textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1FileInterface_ac6d10d468f79e855a3334cd1347c1178}{frame\_number}})\ \{}
\DoxyCodeLine{00137\ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ old\_pos\ =\ \mbox{\hyperlink{classaare_1_1FileInterface_abd01811dcf904625b4dbd78dd9188de4}{tell}}();}
\DoxyCodeLine{00138\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1FileInterface_a49510fb96eaa245fd5d2be7f25a40b74}{seek}}(\mbox{\hyperlink{classaare_1_1FileInterface_ac6d10d468f79e855a3334cd1347c1178}{frame\_number}});}
\DoxyCodeLine{00139\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1Frame}{Frame}}\ tmp\ =\ \mbox{\hyperlink{classaare_1_1FileInterface_a9cb196de2bee8638578e4ba3ce46532e}{read}}();}
\DoxyCodeLine{00140\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1FileInterface_a49510fb96eaa245fd5d2be7f25a40b74}{seek}}(old\_pos);}
\DoxyCodeLine{00141\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ tmp;}
\DoxyCodeLine{00142\ \ \ \ \ \};}
\DoxyCodeLine{00143\ }
\DoxyCodeLine{00150\ \ \ \ \ std::vector<Frame>\ \mbox{\hyperlink{classaare_1_1FileInterface_a1a304e356f3c1d100544d6ceeb35c0fb}{iread}}(\textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1FileInterface_ac6d10d468f79e855a3334cd1347c1178}{frame\_number}},\ \textcolor{keywordtype}{size\_t}\ n\_frames)\ \{}
\DoxyCodeLine{00151\ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ old\_pos\ =\ \mbox{\hyperlink{classaare_1_1FileInterface_abd01811dcf904625b4dbd78dd9188de4}{tell}}();}
\DoxyCodeLine{00152\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1FileInterface_a49510fb96eaa245fd5d2be7f25a40b74}{seek}}(\mbox{\hyperlink{classaare_1_1FileInterface_ac6d10d468f79e855a3334cd1347c1178}{frame\_number}});}
\DoxyCodeLine{00153\ \ \ \ \ \ \ \ \ std::vector<Frame>\ tmp\ =\ \mbox{\hyperlink{classaare_1_1FileInterface_a9cb196de2bee8638578e4ba3ce46532e}{read}}(n\_frames);}
\DoxyCodeLine{00154\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1FileInterface_a49510fb96eaa245fd5d2be7f25a40b74}{seek}}(old\_pos);}
\DoxyCodeLine{00155\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ tmp;}
\DoxyCodeLine{00156\ \ \ \ \ \}}
\DoxyCodeLine{00157\ }
\DoxyCodeLine{00158\ \ \ \ \ \textcolor{comment}{//\ function\ to\ query\ the\ data\ type\ of\ the\ file}}
\DoxyCodeLine{00159\ \ \ \ \ \textcolor{comment}{/*virtual\ DataType\ dtype\ =\ 0;\ */}}
\DoxyCodeLine{00160\ }
\DoxyCodeLine{00161\ \ \ \ \ \textcolor{keyword}{virtual}\ \mbox{\hyperlink{classaare_1_1FileInterface_a7546e2d2dec365bee91cbf5607278e80}{\string~FileInterface}}()\{}
\DoxyCodeLine{00162\ }
\DoxyCodeLine{00163\ \ \ \ \ \};}
\DoxyCodeLine{00164\ }
\DoxyCodeLine{00165\ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{00166\ \ \ \ \ std::string\ \mbox{\hyperlink{classaare_1_1FileInterface_ab1d0e6de947affd5af9740eb06888fc6}{m\_mode}};}
\DoxyCodeLine{00167\ \ \ \ \ std::filesystem::path\ \mbox{\hyperlink{classaare_1_1FileInterface_a325f6603f564fb42f8f28f1136b5e329}{m\_fname}};}
\DoxyCodeLine{00168\ \ \ \ \ std::filesystem::path\ \mbox{\hyperlink{classaare_1_1FileInterface_afdd0a1a75618ad5db2f4794e0900b2f4}{m\_base\_path}};}
\DoxyCodeLine{00169\ \ \ \ \ std::string\ \mbox{\hyperlink{classaare_1_1FileInterface_adae2b35fc6a3f185e9eb263c97bc024b}{m\_base\_name}},\ \mbox{\hyperlink{classaare_1_1FileInterface_a5fffaf9a7c8ae2b3a2ebe89b9c94ed34}{m\_ext}};}
\DoxyCodeLine{00170\ \ \ \ \ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{classaare_1_1FileInterface_a30e926a897b534ab9a327d40594ff191}{m\_findex}};}
\DoxyCodeLine{00171\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1FileInterface_a91551fada444b231294c095f3f5fb768}{m\_total\_frames}}\{\};}
\DoxyCodeLine{00172\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1FileInterface_ab0762d7652c9a4e1afe6dbb7d7325ac9}{max\_frames\_per\_file}}\{\};}
\DoxyCodeLine{00173\ \ \ \ \ std::string\ \mbox{\hyperlink{classaare_1_1FileInterface_a44cbe933bbd2cae1f48213121d15bce2}{version}};}
\DoxyCodeLine{00174\ \ \ \ \ \mbox{\hyperlink{namespaceaare_a5b95afba95553c1e118e1478c69042f7}{DetectorType}}\ \mbox{\hyperlink{classaare_1_1FileInterface_a9476a299cea6b4e97605135a28d0cb60}{m\_type}};}
\DoxyCodeLine{00175\ \ \ \ \ ssize\_t\ \mbox{\hyperlink{classaare_1_1FileInterface_ae29d98625cf56989e2c5237ace0d0f4c}{m\_rows}}\{\};}
\DoxyCodeLine{00176\ \ \ \ \ ssize\_t\ \mbox{\hyperlink{classaare_1_1FileInterface_ad4c9991c30a71ba83cbaab283bc756b5}{m\_cols}}\{\};}
\DoxyCodeLine{00177\ \ \ \ \ ssize\_t\ \mbox{\hyperlink{classaare_1_1FileInterface_a252d27cbbfcdfc528b86925eaac55bb7}{m\_bitdepth}}\{\};}
\DoxyCodeLine{00178\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1FileInterface_ab96f5dd0c99fb7b5a527da812368d736}{current\_frame}}\{\};}
\DoxyCodeLine{00179\ \};}
\DoxyCodeLine{00180\ }
\DoxyCodeLine{00181\ \}\ \textcolor{comment}{//\ namespace\ aare}}
\end{DoxyCode}

12
docs/latex/File_8cpp.tex Normal file
View File

@ -0,0 +1,12 @@
\doxysection{file\+\_\+io/src/\+File.cpp File Reference}
\hypertarget{File_8cpp}{}\label{File_8cpp}\index{file\_io/src/File.cpp@{file\_io/src/File.cpp}}
{\ttfamily \#include \"{}aare/file\+\_\+io/\+File.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/file\+\_\+io/\+Numpy\+File.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/file\+\_\+io/\+Raw\+File.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/utils/logger.\+hpp\"{}}\newline
{\ttfamily \#include $<$fmt/format.\+h$>$}\newline
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\end{DoxyCompactItemize}

13
docs/latex/File_8hpp.tex Normal file
View File

@ -0,0 +1,13 @@
\doxysection{file\+\_\+io/include/aare/file\+\_\+io/\+File.hpp File Reference}
\hypertarget{File_8hpp}{}\label{File_8hpp}\index{file\_io/include/aare/file\_io/File.hpp@{file\_io/include/aare/file\_io/File.hpp}}
{\ttfamily \#include \"{}aare/file\+\_\+io/\+File\+Interface.\+hpp\"{}}\newline
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item
class \mbox{\hyperlink{classaare_1_1File}{aare\+::\+File}}
\begin{DoxyCompactList}\small\item\em RAII \doxylink{classaare_1_1File_1_1File}{File} class for reading and writing image files in various formats wrapper on a \doxylink{classaare_1_1FileInterface}{File\+Interface} to abstract the underlying file format. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\end{DoxyCompactItemize}

View File

@ -0,0 +1,39 @@
\doxysection{File.\+hpp}
\hypertarget{File_8hpp_source}{}\label{File_8hpp_source}\index{file\_io/include/aare/file\_io/File.hpp@{file\_io/include/aare/file\_io/File.hpp}}
\mbox{\hyperlink{File_8hpp}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#pragma\ once}}
\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{FileInterface_8hpp}{aare/file\_io/FileInterface.hpp}}"{}}}
\DoxyCodeLine{00003\ }
\DoxyCodeLine{00004\ \textcolor{keyword}{namespace\ }\mbox{\hyperlink{namespaceaare}{aare}}\ \{}
\DoxyCodeLine{00005\ }
\DoxyCodeLine{00011\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classaare_1_1File}{File}}\ \{}
\DoxyCodeLine{00012\ \ \ \textcolor{keyword}{private}:}
\DoxyCodeLine{00013\ \ \ \ \ \mbox{\hyperlink{classaare_1_1FileInterface}{FileInterface}}\ *\mbox{\hyperlink{classaare_1_1File_ac2c569dfd6c15c1f5b19f5f1a5e38abf}{file\_impl}};}
\DoxyCodeLine{00014\ }
\DoxyCodeLine{00015\ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{00025\ \ \ \ \ \mbox{\hyperlink{classaare_1_1File}{File}}(std::filesystem::path\ fname,\ std::string\ mode,\ \mbox{\hyperlink{structaare_1_1FileConfig}{FileConfig}}\ cfg\ =\ \{\});}
\DoxyCodeLine{00026\ \ \ \ \ \textcolor{keywordtype}{void}\ write(\mbox{\hyperlink{classaare_1_1Frame}{Frame}}\ \&frame);}
\DoxyCodeLine{00027\ \ \ \ \ \mbox{\hyperlink{classaare_1_1Frame}{Frame}}\ read();}
\DoxyCodeLine{00028\ \ \ \ \ \mbox{\hyperlink{classaare_1_1Frame}{Frame}}\ iread(\textcolor{keywordtype}{size\_t}\ frame\_number);}
\DoxyCodeLine{00029\ \ \ \ \ std::vector<Frame>\ read(\textcolor{keywordtype}{size\_t}\ n\_frames);}
\DoxyCodeLine{00030\ \ \ \ \ \textcolor{keywordtype}{void}\ read\_into(std::byte\ *image\_buf);}
\DoxyCodeLine{00031\ \ \ \ \ \textcolor{keywordtype}{void}\ read\_into(std::byte\ *image\_buf,\ \textcolor{keywordtype}{size\_t}\ n\_frames);}
\DoxyCodeLine{00032\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ frame\_number(\textcolor{keywordtype}{size\_t}\ frame\_index);}
\DoxyCodeLine{00033\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ bytes\_per\_frame();}
\DoxyCodeLine{00034\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ pixels();}
\DoxyCodeLine{00035\ \ \ \ \ \textcolor{keywordtype}{void}\ seek(\textcolor{keywordtype}{size\_t}\ frame\_number);}
\DoxyCodeLine{00036\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ tell()\ \textcolor{keyword}{const};}
\DoxyCodeLine{00037\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ total\_frames()\ \textcolor{keyword}{const};}
\DoxyCodeLine{00038\ \ \ \ \ ssize\_t\ rows()\ \textcolor{keyword}{const};}
\DoxyCodeLine{00039\ \ \ \ \ ssize\_t\ cols()\ \textcolor{keyword}{const};}
\DoxyCodeLine{00040\ \ \ \ \ ssize\_t\ bitdepth()\ \textcolor{keyword}{const};}
\DoxyCodeLine{00041\ }
\DoxyCodeLine{00046\ \ \ \ \ \mbox{\hyperlink{classaare_1_1File}{File}}(\mbox{\hyperlink{classaare_1_1File}{File}}\ \&\&other);}
\DoxyCodeLine{00047\ }
\DoxyCodeLine{00051\ \ \ \ \ \mbox{\hyperlink{classaare_1_1File}{\string~File}}();}
\DoxyCodeLine{00052\ \};}
\DoxyCodeLine{00053\ }
\DoxyCodeLine{00054\ \}\ \textcolor{comment}{//\ namespace\ aare}}
\end{DoxyCode}

14
docs/latex/File_8py.tex Normal file
View File

@ -0,0 +1,14 @@
\doxysection{python/aare/\+File.py File Reference}
\hypertarget{File_8py}{}\label{File_8py}\index{python/aare/File.py@{python/aare/File.py}}
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item
class \mbox{\hyperlink{classaare_1_1File_1_1File}{aare.\+File.\+File}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\item
namespace \mbox{\hyperlink{namespaceaare_1_1File}{aare.\+File}}
\end{DoxyCompactItemize}

11
docs/latex/Frame_8cpp.tex Normal file
View File

@ -0,0 +1,11 @@
\doxysection{core/src/\+Frame.cpp File Reference}
\hypertarget{Frame_8cpp}{}\label{Frame_8cpp}\index{core/src/Frame.cpp@{core/src/Frame.cpp}}
{\ttfamily \#include \"{}aare/core/\+Frame.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/utils/logger.\+hpp\"{}}\newline
{\ttfamily \#include $<$cassert$>$}\newline
{\ttfamily \#include $<$iostream$>$}\newline
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\end{DoxyCompactItemize}

19
docs/latex/Frame_8hpp.tex Normal file
View File

@ -0,0 +1,19 @@
\doxysection{core/include/aare/core/\+Frame.hpp File Reference}
\hypertarget{Frame_8hpp}{}\label{Frame_8hpp}\index{core/include/aare/core/Frame.hpp@{core/include/aare/core/Frame.hpp}}
{\ttfamily \#include \"{}aare/core/\+NDArray.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/core/defs.\+hpp\"{}}\newline
{\ttfamily \#include $<$cstddef$>$}\newline
{\ttfamily \#include $<$cstdint$>$}\newline
{\ttfamily \#include $<$memory$>$}\newline
{\ttfamily \#include $<$sys/types.\+h$>$}\newline
{\ttfamily \#include $<$vector$>$}\newline
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item
class \mbox{\hyperlink{classaare_1_1Frame}{aare\+::\+Frame}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\end{DoxyCompactItemize}

View File

@ -0,0 +1,81 @@
\doxysection{Frame.\+hpp}
\hypertarget{Frame_8hpp_source}{}\label{Frame_8hpp_source}\index{core/include/aare/core/Frame.hpp@{core/include/aare/core/Frame.hpp}}
\mbox{\hyperlink{Frame_8hpp}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#pragma\ once}}
\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{NDArray_8hpp}{aare/core/NDArray.hpp}}"{}}}
\DoxyCodeLine{00003\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{core_2include_2aare_2core_2defs_8hpp}{aare/core/defs.hpp}}"{}}}
\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ <cstddef>}}
\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ <cstdint>}}
\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ <memory>}}
\DoxyCodeLine{00007\ \textcolor{preprocessor}{\#include\ <sys/types.h>}}
\DoxyCodeLine{00008\ \textcolor{preprocessor}{\#include\ <vector>}}
\DoxyCodeLine{00009\ }
\DoxyCodeLine{00016\ \textcolor{keyword}{namespace\ }\mbox{\hyperlink{namespaceaare}{aare}}\ \{}
\DoxyCodeLine{00017\ }
\DoxyCodeLine{00018\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classaare_1_1Frame}{Frame}}\ \{}
\DoxyCodeLine{00019\ \ \ \ \ ssize\_t\ \mbox{\hyperlink{classaare_1_1Frame_a21c0feaf422c4ffdd479328f2fdaefec}{m\_rows}};}
\DoxyCodeLine{00020\ \ \ \ \ ssize\_t\ \mbox{\hyperlink{classaare_1_1Frame_a3edb3a0e0ed32c3837ad5ad95e537aed}{m\_cols}};}
\DoxyCodeLine{00021\ \ \ \ \ ssize\_t\ \mbox{\hyperlink{classaare_1_1Frame_a17ccc92b87bc2b4c3d3a500759269cab}{m\_bitdepth}};}
\DoxyCodeLine{00022\ \ \ \ \ std::byte\ *\mbox{\hyperlink{classaare_1_1Frame_afa6172a742a35734ad5148786697d197}{m\_data}};}
\DoxyCodeLine{00023\ }
\DoxyCodeLine{00024\ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{00025\ \ \ \ \ \mbox{\hyperlink{classaare_1_1Frame}{Frame}}(ssize\_t\ rows,\ ssize\_t\ cols,\ ssize\_t\ m\_bitdepth);}
\DoxyCodeLine{00026\ \ \ \ \ \mbox{\hyperlink{classaare_1_1Frame}{Frame}}(std::byte\ *fp,\ ssize\_t\ rows,\ ssize\_t\ cols,\ ssize\_t\ m\_bitdepth);}
\DoxyCodeLine{00027\ \ \ \ \ std::byte\ *\mbox{\hyperlink{classaare_1_1Frame_a6ace52fdcdf3d87921c1a56ca1781f32}{get}}(\textcolor{keywordtype}{int}\ row,\ \textcolor{keywordtype}{int}\ col);}
\DoxyCodeLine{00028\ }
\DoxyCodeLine{00029\ \ \ \ \ \textcolor{comment}{//\ TODO!\ can\ we,\ or\ even\ want\ to\ remove\ the\ template?}}
\DoxyCodeLine{00030\ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T>\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1Frame_addd6b73bbb426aafe834e261360eb2d8}{set}}(\textcolor{keywordtype}{int}\ row,\ \textcolor{keywordtype}{int}\ col,\ T\ data)\ \{}
\DoxyCodeLine{00031\ \ \ \ \ \ \ \ \ assert(\textcolor{keyword}{sizeof}(T)\ ==\ m\_bitdepth\ /\ 8);}
\DoxyCodeLine{00032\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (row\ <\ 0\ ||\ row\ >=\ m\_rows\ ||\ col\ <\ 0\ ||\ col\ >=\ m\_cols)\ \{}
\DoxyCodeLine{00033\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{throw}\ std::out\_of\_range(\textcolor{stringliteral}{"{}Invalid\ row\ or\ column\ index"{}});}
\DoxyCodeLine{00034\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00035\ \ \ \ \ \ \ \ \ std::memcpy(m\_data\ +\ (row\ *\ m\_cols\ +\ col)\ *\ (m\_bitdepth\ /\ 8),\ \&data,\ m\_bitdepth\ /\ 8);}
\DoxyCodeLine{00036\ \ \ \ \ \}}
\DoxyCodeLine{00037\ }
\DoxyCodeLine{00038\ \ \ \ \ ssize\_t\ \mbox{\hyperlink{classaare_1_1Frame_a5cc556f6b13efb17b3635adb436d816c}{rows}}()\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ m\_rows;\ \}}
\DoxyCodeLine{00039\ \ \ \ \ ssize\_t\ \mbox{\hyperlink{classaare_1_1Frame_a658566623e47c1fa88a08f5e8fe1957f}{cols}}()\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ m\_cols;\ \}}
\DoxyCodeLine{00040\ \ \ \ \ ssize\_t\ \mbox{\hyperlink{classaare_1_1Frame_ae1fbb96ec971ddcd76ecf3cd91dc5890}{bitdepth}}()\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ m\_bitdepth;\ \}}
\DoxyCodeLine{00041\ \ \ \ \ ssize\_t\ \mbox{\hyperlink{classaare_1_1Frame_a094683d38cac2461c18ed7cc776221c2}{size}}()\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ m\_rows\ *\ m\_cols\ *\ m\_bitdepth\ /\ 8;\ \}}
\DoxyCodeLine{00042\ \ \ \ \ std::byte\ *\mbox{\hyperlink{classaare_1_1Frame_a635a1ff8db457c20fcbc2b2b5601bc1d}{data}}()\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ m\_data;\ \}}
\DoxyCodeLine{00043\ }
\DoxyCodeLine{00044\ \ \ \ \ \mbox{\hyperlink{classaare_1_1Frame}{Frame}}\ \&\mbox{\hyperlink{classaare_1_1Frame_ad153902f7332be45aa5441196c3aad64}{operator=}}(\mbox{\hyperlink{classaare_1_1Frame}{Frame}}\ \&other)\ \{}
\DoxyCodeLine{00045\ \ \ \ \ \ \ \ \ m\_rows\ =\ other.\mbox{\hyperlink{classaare_1_1Frame_a5cc556f6b13efb17b3635adb436d816c}{rows}}();}
\DoxyCodeLine{00046\ \ \ \ \ \ \ \ \ m\_cols\ =\ other.\mbox{\hyperlink{classaare_1_1Frame_a658566623e47c1fa88a08f5e8fe1957f}{cols}}();}
\DoxyCodeLine{00047\ \ \ \ \ \ \ \ \ m\_bitdepth\ =\ other.\mbox{\hyperlink{classaare_1_1Frame_ae1fbb96ec971ddcd76ecf3cd91dc5890}{bitdepth}}();}
\DoxyCodeLine{00048\ \ \ \ \ \ \ \ \ m\_data\ =\ \textcolor{keyword}{new}\ std::byte[m\_rows\ *\ m\_cols\ *\ m\_bitdepth\ /\ 8];}
\DoxyCodeLine{00049\ \ \ \ \ \ \ \ \ std::memcpy(m\_data,\ other.\mbox{\hyperlink{classaare_1_1Frame_afa6172a742a35734ad5148786697d197}{m\_data}},\ m\_rows\ *\ m\_cols\ *\ m\_bitdepth\ /\ 8);}
\DoxyCodeLine{00050\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};}
\DoxyCodeLine{00051\ \ \ \ \ \}}
\DoxyCodeLine{00052\ \ \ \ \ \textcolor{comment}{//\ add\ move\ constructor}}
\DoxyCodeLine{00053\ \ \ \ \ \mbox{\hyperlink{classaare_1_1Frame_a2986002a7d6c161dcc592cea1162a5bb}{Frame}}(\mbox{\hyperlink{classaare_1_1Frame}{Frame}}\ \&\&other)\ \{}
\DoxyCodeLine{00054\ \ \ \ \ \ \ \ \ m\_rows\ =\ other.rows();}
\DoxyCodeLine{00055\ \ \ \ \ \ \ \ \ m\_cols\ =\ other.cols();}
\DoxyCodeLine{00056\ \ \ \ \ \ \ \ \ m\_bitdepth\ =\ other.bitdepth();}
\DoxyCodeLine{00057\ \ \ \ \ \ \ \ \ m\_data\ =\ other.m\_data;}
\DoxyCodeLine{00058\ \ \ \ \ \ \ \ \ other.m\_data\ =\ \textcolor{keyword}{nullptr};}
\DoxyCodeLine{00059\ \ \ \ \ \ \ \ \ other.m\_rows\ =\ other.m\_cols\ =\ other.m\_bitdepth\ =\ 0;}
\DoxyCodeLine{00060\ \ \ \ \ \}}
\DoxyCodeLine{00061\ \ \ \ \ \textcolor{comment}{//\ copy\ constructor}}
\DoxyCodeLine{00062\ \ \ \ \ \mbox{\hyperlink{classaare_1_1Frame_a82f7c09b244a295e2cc13e199a198448}{Frame}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1Frame}{Frame}}\ \&other)\ \{}
\DoxyCodeLine{00063\ \ \ \ \ \ \ \ \ m\_rows\ =\ other.\mbox{\hyperlink{classaare_1_1Frame_a5cc556f6b13efb17b3635adb436d816c}{rows}}();}
\DoxyCodeLine{00064\ \ \ \ \ \ \ \ \ m\_cols\ =\ other.\mbox{\hyperlink{classaare_1_1Frame_a658566623e47c1fa88a08f5e8fe1957f}{cols}}();}
\DoxyCodeLine{00065\ \ \ \ \ \ \ \ \ m\_bitdepth\ =\ other.\mbox{\hyperlink{classaare_1_1Frame_ae1fbb96ec971ddcd76ecf3cd91dc5890}{bitdepth}}();}
\DoxyCodeLine{00066\ \ \ \ \ \ \ \ \ m\_data\ =\ \textcolor{keyword}{new}\ std::byte[m\_rows\ *\ m\_cols\ *\ m\_bitdepth\ /\ 8];}
\DoxyCodeLine{00067\ \ \ \ \ \ \ \ \ std::memcpy(m\_data,\ other.\mbox{\hyperlink{classaare_1_1Frame_afa6172a742a35734ad5148786697d197}{m\_data}},\ m\_rows\ *\ m\_cols\ *\ m\_bitdepth\ /\ 8);}
\DoxyCodeLine{00068\ \ \ \ \ \}}
\DoxyCodeLine{00069\ }
\DoxyCodeLine{00070\ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T>\ \mbox{\hyperlink{classaare_1_1NDView}{NDView<T>}}\ \mbox{\hyperlink{classaare_1_1Frame_af6fbc8eaa1f00062431edf118caebe0f}{view}}()\ \{}
\DoxyCodeLine{00071\ \ \ \ \ \ \ \ \ std::vector<ssize\_t>\ shape\ =\ \{m\_rows,\ m\_cols\};}
\DoxyCodeLine{00072\ \ \ \ \ \ \ \ \ T\ *\mbox{\hyperlink{classaare_1_1Frame_a635a1ff8db457c20fcbc2b2b5601bc1d}{data}}\ =\ \textcolor{keyword}{reinterpret\_cast<}T\ *\textcolor{keyword}{>}(m\_data);}
\DoxyCodeLine{00073\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDView}{NDView<T>}}(data,\ shape);}
\DoxyCodeLine{00074\ \ \ \ \ \}}
\DoxyCodeLine{00075\ }
\DoxyCodeLine{00076\ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T>}}\ \mbox{\hyperlink{classaare_1_1Frame_aac3f666d8f5fdb30861459c2f639d40a}{image}}()\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T>}}(this-\/>view<T>());\ \}}
\DoxyCodeLine{00077\ }
\DoxyCodeLine{00078\ \ \ \ \ \mbox{\hyperlink{classaare_1_1Frame_a6bd29a7d2219e3dde03d4c9bd4298c60}{\string~Frame}}()\ \{\ \textcolor{keyword}{delete}[]\ m\_data;\ \}}
\DoxyCodeLine{00079\ \};}
\DoxyCodeLine{00080\ }
\DoxyCodeLine{00081\ \}\ \textcolor{comment}{//\ namespace\ aare}}
\end{DoxyCode}

14
docs/latex/Frame_8py.tex Normal file
View File

@ -0,0 +1,14 @@
\doxysection{python/aare/\+Frame.py File Reference}
\hypertarget{Frame_8py}{}\label{Frame_8py}\index{python/aare/Frame.py@{python/aare/Frame.py}}
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item
class \mbox{\hyperlink{classaare_1_1Frame_1_1Frame}{aare.\+Frame.\+Frame}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\item
namespace \mbox{\hyperlink{namespaceaare_1_1Frame}{aare.\+Frame}}
\end{DoxyCompactItemize}

View File

@ -0,0 +1,42 @@
\doxysection{core/test/\+Frame.test.\+cpp File Reference}
\hypertarget{Frame_8test_8cpp}{}\label{Frame_8test_8cpp}\index{core/test/Frame.test.cpp@{core/test/Frame.test.cpp}}
{\ttfamily \#include \"{}aare/core/\+Frame.\+hpp\"{}}\newline
{\ttfamily \#include $<$catch2/catch\+\_\+test\+\_\+macros.\+hpp$>$}\newline
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{Frame_8test_8cpp_a2332c9864e680b7de99ff8c4c6e67182}{TEST\+\_\+\+CASE}} (\"{}Construct a frame\"{})
\item
\mbox{\hyperlink{Frame_8test_8cpp_a599eb5f201faca7a23eb5f701503ba30}{TEST\+\_\+\+CASE}} (\"{}Set a value in a 8 bit frame\"{})
\item
\mbox{\hyperlink{Frame_8test_8cpp_a6c66ad08a1ddd0fb56361aabfe88a90b}{TEST\+\_\+\+CASE}} (\"{}Set a value in a 64 bit frame\"{})
\item
\mbox{\hyperlink{Frame_8test_8cpp_a16cf09450b7ed51d4eacf51e7ca9b318}{TEST\+\_\+\+CASE}} (\"{}Move construct a frame\"{})
\end{DoxyCompactItemize}
\doxysubsection{Function Documentation}
\Hypertarget{Frame_8test_8cpp_a2332c9864e680b7de99ff8c4c6e67182}\label{Frame_8test_8cpp_a2332c9864e680b7de99ff8c4c6e67182}
\index{Frame.test.cpp@{Frame.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!Frame.test.cpp@{Frame.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Construct a frame\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{Frame_8test_8cpp_a16cf09450b7ed51d4eacf51e7ca9b318}\label{Frame_8test_8cpp_a16cf09450b7ed51d4eacf51e7ca9b318}
\index{Frame.test.cpp@{Frame.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!Frame.test.cpp@{Frame.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Move construct a frame\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{Frame_8test_8cpp_a6c66ad08a1ddd0fb56361aabfe88a90b}\label{Frame_8test_8cpp_a6c66ad08a1ddd0fb56361aabfe88a90b}
\index{Frame.test.cpp@{Frame.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!Frame.test.cpp@{Frame.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Set a value in a 64 bit frame\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{Frame_8test_8cpp_a599eb5f201faca7a23eb5f701503ba30}\label{Frame_8test_8cpp_a599eb5f201faca7a23eb5f701503ba30}
\index{Frame.test.cpp@{Frame.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!Frame.test.cpp@{Frame.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Set a value in a 8 bit frame\"{}}]{ }\end{DoxyParamCaption})}

27
docs/latex/Makefile Normal file
View File

@ -0,0 +1,27 @@
LATEX_CMD?=pdflatex
MKIDX_CMD?=makeindex
BIBTEX_CMD?=bibtex
LATEX_COUNT?=8
MANUAL_FILE?=refman
all: $(MANUAL_FILE).pdf
pdf: $(MANUAL_FILE).pdf
$(MANUAL_FILE).pdf: clean $(MANUAL_FILE).tex
$(LATEX_CMD) $(MANUAL_FILE)
$(MKIDX_CMD) $(MANUAL_FILE).idx
$(LATEX_CMD) $(MANUAL_FILE)
latex_count=$(LATEX_COUNT) ; \
while grep -E -s 'Rerun (LaTeX|to get cross-references right|to get bibliographical references right)' $(MANUAL_FILE).log && [ $$latex_count -gt 0 ] ;\
do \
echo "Rerunning latex...." ;\
$(LATEX_CMD) $(MANUAL_FILE) ;\
latex_count=`expr $$latex_count - 1` ;\
done
$(MKIDX_CMD) $(MANUAL_FILE).idx
$(LATEX_CMD) $(MANUAL_FILE)
clean:
rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl $(MANUAL_FILE).pdf

View File

@ -0,0 +1,28 @@
\doxysection{core/include/aare/core/\+NDArray.hpp File Reference}
\hypertarget{NDArray_8hpp}{}\label{NDArray_8hpp}\index{core/include/aare/core/NDArray.hpp@{core/include/aare/core/NDArray.hpp}}
{\ttfamily \#include \"{}aare/core/\+NDView.\+hpp\"{}}\newline
{\ttfamily \#include $<$algorithm$>$}\newline
{\ttfamily \#include $<$array$>$}\newline
{\ttfamily \#include $<$cmath$>$}\newline
{\ttfamily \#include $<$fmt/format.\+h$>$}\newline
{\ttfamily \#include $<$fstream$>$}\newline
{\ttfamily \#include $<$iomanip$>$}\newline
{\ttfamily \#include $<$iostream$>$}\newline
{\ttfamily \#include $<$numeric$>$}\newline
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item
class \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray$<$ T, Ndim $>$}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item
{\footnotesize template$<$typename T , ssize\+\_\+t Ndim$>$ }\\void \mbox{\hyperlink{namespaceaare_aac5d322f266bccdc416bcd66098eae33}{aare\+::save}} (\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \&img, std\+::string pathname)
\item
{\footnotesize template$<$typename T , ssize\+\_\+t Ndim$>$ }\\\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \mbox{\hyperlink{namespaceaare_a2868d09c334b1aa09be4da1979100ec5}{aare\+::load}} (const std\+::string \&pathname, std\+::array$<$ ssize\+\_\+t, Ndim $>$ shape)
\end{DoxyCompactItemize}

View File

@ -0,0 +1,390 @@
\doxysection{NDArray.\+hpp}
\hypertarget{NDArray_8hpp_source}{}\label{NDArray_8hpp_source}\index{core/include/aare/core/NDArray.hpp@{core/include/aare/core/NDArray.hpp}}
\mbox{\hyperlink{NDArray_8hpp}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#pragma\ once}}
\DoxyCodeLine{00002\ \textcolor{comment}{/*}}
\DoxyCodeLine{00003\ \textcolor{comment}{Container\ holding\ image\ data,\ or\ a\ time\ series\ of\ image\ data\ in\ contigious}}
\DoxyCodeLine{00004\ \textcolor{comment}{memory.}}
\DoxyCodeLine{00005\ \textcolor{comment}{}}
\DoxyCodeLine{00006\ \textcolor{comment}{}}
\DoxyCodeLine{00007\ \textcolor{comment}{TODO!\ Add\ expression\ templates\ for\ operators}}
\DoxyCodeLine{00008\ \textcolor{comment}{}}
\DoxyCodeLine{00009\ \textcolor{comment}{*/}}
\DoxyCodeLine{00010\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{NDView_8hpp}{aare/core/NDView.hpp}}"{}}}
\DoxyCodeLine{00011\ }
\DoxyCodeLine{00012\ \textcolor{preprocessor}{\#include\ <algorithm>}}
\DoxyCodeLine{00013\ \textcolor{preprocessor}{\#include\ <array>}}
\DoxyCodeLine{00014\ \textcolor{preprocessor}{\#include\ <cmath>}}
\DoxyCodeLine{00015\ \textcolor{preprocessor}{\#include\ <fmt/format.h>}}
\DoxyCodeLine{00016\ \textcolor{preprocessor}{\#include\ <fstream>}}
\DoxyCodeLine{00017\ \textcolor{preprocessor}{\#include\ <iomanip>}}
\DoxyCodeLine{00018\ \textcolor{preprocessor}{\#include\ <iostream>}}
\DoxyCodeLine{00019\ \textcolor{preprocessor}{\#include\ <numeric>}}
\DoxyCodeLine{00020\ }
\DoxyCodeLine{00021\ \textcolor{keyword}{namespace\ }\mbox{\hyperlink{namespaceaare}{aare}}\ \{}
\DoxyCodeLine{00022\ }
\DoxyCodeLine{00023\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim\ =\ 2>\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \{}
\DoxyCodeLine{00024\ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{00025\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray_a41d9f4d28c02f18b60a1fa297249559d}{NDArray}}()\ :\ \mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}}(),\ \mbox{\hyperlink{classaare_1_1NDArray_a5275d4999e7422458d472620f792573a}{strides\_}}(\mbox{\hyperlink{namespaceaare_a737039de5f8de78a691a40b9ceb47b64}{c\_strides}}<Ndim>(\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}})),\ \mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}}(0),\ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}(nullptr)\{\};}
\DoxyCodeLine{00026\ }
\DoxyCodeLine{00027\ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{classaare_1_1NDArray_a2e965c4b7501e355b3cbd2bd3b33f32f}{NDArray}}(std::array<ssize\_t,\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray_a6dfa3b12cb66147effe2a42435dd346d}{shape}})}
\DoxyCodeLine{00028\ \ \ \ \ \ \ \ \ :\ \mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}}(\mbox{\hyperlink{classaare_1_1NDArray_a6dfa3b12cb66147effe2a42435dd346d}{shape}}),\ \mbox{\hyperlink{classaare_1_1NDArray_a5275d4999e7422458d472620f792573a}{strides\_}}(\mbox{\hyperlink{namespaceaare_a737039de5f8de78a691a40b9ceb47b64}{c\_strides}}<Ndim>(\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}})),}
\DoxyCodeLine{00029\ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}}(std::accumulate(\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}}.\mbox{\hyperlink{classaare_1_1NDArray_a3241eee2a316d350390c3b9a2e3ba091}{begin}}(),\ \mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}}.\mbox{\hyperlink{classaare_1_1NDArray_aeac1405793b07e8433b53f1e04740ec8}{end}}(),\ 1,\ std::multiplies<ssize\_t>())),\ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}(new\ T[\mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}}])\{\};}
\DoxyCodeLine{00030\ }
\DoxyCodeLine{00031\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray_a5f2e568908401ef19e82f63379e80d97}{NDArray}}(std::array<ssize\_t,\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray_a6dfa3b12cb66147effe2a42435dd346d}{shape}},\ T\ \mbox{\hyperlink{classaare_1_1NDArray_ad8f804893325ae1553d33accec070e92}{value}})\ :\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}(\mbox{\hyperlink{classaare_1_1NDArray_a6dfa3b12cb66147effe2a42435dd346d}{shape}})\ \{\ this-\/>\mbox{\hyperlink{classaare_1_1NDArray_a06c658e8a6490c74fb9878b14a4faf1d}{operator=}}(value);\ \}}
\DoxyCodeLine{00032\ }
\DoxyCodeLine{00033\ \ \ \ \ \textcolor{comment}{/*\ When\ constructing\ from\ a\ NDView\ we\ need\ to\ copy\ the\ data\ since}}
\DoxyCodeLine{00034\ \textcolor{comment}{\ \ \ \ NDArray\ expect\ to\ own\ its\ data,\ and\ span\ is\ just\ a\ view*/}}
\DoxyCodeLine{00035\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray_a04cbc1cc0ba2aaac434b43674b0f820e}{NDArray}}(\mbox{\hyperlink{classaare_1_1NDView}{NDView<T,\ Ndim>}}\ \mbox{\hyperlink{classaare_1_1NDArray_ac5ffe1a4b9dde8f2ec6dba021951c922}{span}})\ :\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}(\mbox{\hyperlink{classaare_1_1NDArray_ac5ffe1a4b9dde8f2ec6dba021951c922}{span}}.\mbox{\hyperlink{classaare_1_1NDArray_a6dfa3b12cb66147effe2a42435dd346d}{shape}}())\ \{}
\DoxyCodeLine{00036\ \ \ \ \ \ \ \ \ std::copy(\mbox{\hyperlink{classaare_1_1NDArray_ac5ffe1a4b9dde8f2ec6dba021951c922}{span}}.begin(),\ \mbox{\hyperlink{classaare_1_1NDArray_ac5ffe1a4b9dde8f2ec6dba021951c922}{span}}.end(),\ \mbox{\hyperlink{classaare_1_1NDArray_a3241eee2a316d350390c3b9a2e3ba091}{begin}}());}
\DoxyCodeLine{00037\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ fmt::print("{}NDArray(NDView<T,\ Ndim>\ span)\(\backslash\)n"{});}}
\DoxyCodeLine{00038\ \ \ \ \ \}}
\DoxyCodeLine{00039\ }
\DoxyCodeLine{00040\ \ \ \ \ \textcolor{comment}{//\ Move\ constructor}}
\DoxyCodeLine{00041\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray_a804d1971ae1fc08375ec4bad36a42fe7}{NDArray}}(\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\&other)}
\DoxyCodeLine{00042\ \ \ \ \ \ \ \ \ :\ \mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}}(other.\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}}),\ \mbox{\hyperlink{classaare_1_1NDArray_a5275d4999e7422458d472620f792573a}{strides\_}}(\mbox{\hyperlink{namespaceaare_a737039de5f8de78a691a40b9ceb47b64}{c\_strides}}<Ndim>(\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}})),\ \mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}}(other.\mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}}),\ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}(nullptr)\ \{}
\DoxyCodeLine{00043\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}\ =\ other.data\_;}
\DoxyCodeLine{00044\ \ \ \ \ \ \ \ \ other.reset();}
\DoxyCodeLine{00045\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ fmt::print("{}NDArray(NDArray\ \&\&other)\(\backslash\)n"{});}}
\DoxyCodeLine{00046\ \ \ \ \ \}}
\DoxyCodeLine{00047\ }
\DoxyCodeLine{00048\ \ \ \ \ \textcolor{comment}{//\ Copy\ constructor}}
\DoxyCodeLine{00049\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray_a1485287520ba5919ebb4fa2bc84b3a67}{NDArray}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other)}
\DoxyCodeLine{00050\ \ \ \ \ \ \ \ \ :\ \mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}}(other.\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}}),\ \mbox{\hyperlink{classaare_1_1NDArray_a5275d4999e7422458d472620f792573a}{strides\_}}(\mbox{\hyperlink{namespaceaare_a737039de5f8de78a691a40b9ceb47b64}{c\_strides}}<Ndim>(\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}})),\ \mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}}(other.\mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}}),\ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}(new\ T[\mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}}])\ \{}
\DoxyCodeLine{00051\ \ \ \ \ \ \ \ \ std::copy(other.\mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}},\ other.\mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}\ +\ \mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}},\ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}});}
\DoxyCodeLine{00052\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ fmt::print("{}NDArray(const\ NDArray\ \&other)\(\backslash\)n"{});}}
\DoxyCodeLine{00053\ \ \ \ \ \}}
\DoxyCodeLine{00054\ }
\DoxyCodeLine{00055\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray_a702d2a7566dd9796eb891d043159fd41}{\string~NDArray}}()\ \{\ \textcolor{keyword}{delete}[]\ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}};\ \}}
\DoxyCodeLine{00056\ }
\DoxyCodeLine{00057\ \ \ \ \ \textcolor{keyword}{auto}\ \mbox{\hyperlink{classaare_1_1NDArray_a3241eee2a316d350390c3b9a2e3ba091}{begin}}()\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}};\ \}}
\DoxyCodeLine{00058\ \ \ \ \ \textcolor{keyword}{auto}\ \mbox{\hyperlink{classaare_1_1NDArray_aeac1405793b07e8433b53f1e04740ec8}{end}}()\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}\ +\ \mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}};\ \}}
\DoxyCodeLine{00059\ }
\DoxyCodeLine{00060\ \ \ \ \ \textcolor{keyword}{using\ }\mbox{\hyperlink{classaare_1_1NDArray_a0574380e6b0f3d77a8364c942123c24a}{value\_type}}\ =\ T;}
\DoxyCodeLine{00061\ }
\DoxyCodeLine{00062\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a06c658e8a6490c74fb9878b14a4faf1d}{operator=}}(\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\&other);\ \ \ \ \ \ \textcolor{comment}{//\ Move\ assign}}
\DoxyCodeLine{00063\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a713fff54cdec54f27ec92c1f317a46c7}{operator=}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other);\ \textcolor{comment}{//\ Copy\ assign}}
\DoxyCodeLine{00064\ }
\DoxyCodeLine{00065\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \mbox{\hyperlink{classaare_1_1NDArray_afcc5f259b1bd0cadcadbf2b52795babc}{operator+}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other);}
\DoxyCodeLine{00066\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a27eb7b3599cb62297832d4a3d8022f32}{operator+=}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other);}
\DoxyCodeLine{00067\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \mbox{\hyperlink{classaare_1_1NDArray_aac96eb2ce76cd90d44eb3b19408d2434}{operator-\/}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other);}
\DoxyCodeLine{00068\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_aad602fc6734cb85112f2a8edf91d1c70}{operator-\/=}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other);}
\DoxyCodeLine{00069\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \mbox{\hyperlink{classaare_1_1NDArray_ae67f899470bc9f8c8df8b54d544f9171}{operator*}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other);}
\DoxyCodeLine{00070\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a54edf15f9669a1e4601fa4aa936a2d92}{operator*=}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other);}
\DoxyCodeLine{00071\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \mbox{\hyperlink{classaare_1_1NDArray_a59dc47216852c36191e0cecc869131e1}{operator/}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other);}
\DoxyCodeLine{00072\ \ \ \ \ \textcolor{comment}{//\ NDArray\&\ operator/=(const\ NDArray\&\ other);}}
\DoxyCodeLine{00073\ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ V>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a2a6260113ca73c86d37d0444b5148c49}{operator/=}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<V,\ Ndim>}}\ \&other)\ \{}
\DoxyCodeLine{00074\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ check\ shape}}
\DoxyCodeLine{00075\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}}\ ==\ other.\mbox{\hyperlink{classaare_1_1NDArray_a6dfa3b12cb66147effe2a42435dd346d}{shape}}())\ \{}
\DoxyCodeLine{00076\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ \mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}};\ ++i)\ \{}
\DoxyCodeLine{00077\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}[i]\ /=\ other(i);}
\DoxyCodeLine{00078\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00079\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};}
\DoxyCodeLine{00080\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00081\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{throw}(std::runtime\_error(\textcolor{stringliteral}{"{}Shape\ of\ NDArray\ must\ match"{}}));}
\DoxyCodeLine{00082\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00083\ \ \ \ \ \}}
\DoxyCodeLine{00084\ }
\DoxyCodeLine{00085\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<bool,\ Ndim>}}\ \mbox{\hyperlink{classaare_1_1NDArray_a569e8de85121a4a6315c556870b48931}{operator>}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other);}
\DoxyCodeLine{00086\ }
\DoxyCodeLine{00087\ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classaare_1_1NDArray_ad20b30f1abea56b82196f030b1492027}{operator==}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other)\ \textcolor{keyword}{const};}
\DoxyCodeLine{00088\ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classaare_1_1NDArray_a90408ebad72f63d0288b869b3e32e50b}{operator!=}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other)\ \textcolor{keyword}{const};}
\DoxyCodeLine{00089\ }
\DoxyCodeLine{00090\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a5f249dd42235efcf858caca096300d02}{operator=}}(\textcolor{keyword}{const}\ T\ \&);}
\DoxyCodeLine{00091\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_aa15fe27ef06f8a230345161990ce8381}{operator+=}}(\textcolor{keyword}{const}\ T\ \&);}
\DoxyCodeLine{00092\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \mbox{\hyperlink{classaare_1_1NDArray_a86042f9185412e1d68422765d56ce769}{operator+}}(\textcolor{keyword}{const}\ T\ \&);}
\DoxyCodeLine{00093\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_ad65261a50424d112852f046426c66267}{operator-\/=}}(\textcolor{keyword}{const}\ T\ \&);}
\DoxyCodeLine{00094\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \mbox{\hyperlink{classaare_1_1NDArray_ae8fcc0b6cb14d353286ffdf2c914200f}{operator-\/}}(\textcolor{keyword}{const}\ T\ \&);}
\DoxyCodeLine{00095\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_afe950d8cf1bdc97d450f912d1d903c09}{operator*=}}(\textcolor{keyword}{const}\ T\ \&);}
\DoxyCodeLine{00096\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \mbox{\hyperlink{classaare_1_1NDArray_a2d6d56700f622c3175b9b82f043c3b94}{operator*}}(\textcolor{keyword}{const}\ T\ \&);}
\DoxyCodeLine{00097\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a8658f5217fcd0ac6f6900b4f013aed16}{operator/=}}(\textcolor{keyword}{const}\ T\ \&);}
\DoxyCodeLine{00098\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \mbox{\hyperlink{classaare_1_1NDArray_a6a69a2fce0631e9ef9b1587e75cf1568}{operator/}}(\textcolor{keyword}{const}\ T\ \&);}
\DoxyCodeLine{00099\ }
\DoxyCodeLine{00100\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_ab01fdad1a92b1629996f15ff0cf79ac3}{operator\&=}}(\textcolor{keyword}{const}\ T\ \&);}
\DoxyCodeLine{00101\ }
\DoxyCodeLine{00102\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1NDArray_af36c03e7a91fe932d60739d5ea30f1f2}{sqrt}}()\ \{}
\DoxyCodeLine{00103\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ \mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}};\ ++i)\ \{}
\DoxyCodeLine{00104\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}[i]\ =\ std::sqrt(\mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}[i]);}
\DoxyCodeLine{00105\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00106\ \ \ \ \ \}}
\DoxyCodeLine{00107\ }
\DoxyCodeLine{00108\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a040dd143e6dc040703b33d91ba929271}{operator++}}();\ \textcolor{comment}{//\ pre\ inc}}
\DoxyCodeLine{00109\ }
\DoxyCodeLine{00110\ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}...\ Ix>\ \textcolor{keyword}{typename}\ std::enable\_if<\textcolor{keyword}{sizeof}...(Ix)\ ==\ Ndim,\ T\ \&>::type\ \textcolor{keyword}{operator}()(Ix...\ index)\ \{}
\DoxyCodeLine{00111\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}[\mbox{\hyperlink{namespaceaare_a45ca88f1c8c15d6e4d08b14e21a3e579}{element\_offset}}(\mbox{\hyperlink{classaare_1_1NDArray_a5275d4999e7422458d472620f792573a}{strides\_}},\ index...)];}
\DoxyCodeLine{00112\ \ \ \ \ \}}
\DoxyCodeLine{00113\ }
\DoxyCodeLine{00114\ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}...\ Ix>\ \textcolor{keyword}{typename}\ std::enable\_if<\textcolor{keyword}{sizeof}...(Ix)\ ==\ Ndim,\ T\ \&>::type\ \textcolor{keyword}{operator}()(Ix...\ index)\ \textcolor{keyword}{const}\ \{}
\DoxyCodeLine{00115\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}[\mbox{\hyperlink{namespaceaare_a45ca88f1c8c15d6e4d08b14e21a3e579}{element\_offset}}(\mbox{\hyperlink{classaare_1_1NDArray_a5275d4999e7422458d472620f792573a}{strides\_}},\ index...)];}
\DoxyCodeLine{00116\ \ \ \ \ \}}
\DoxyCodeLine{00117\ }
\DoxyCodeLine{00118\ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}...\ Ix>\ \textcolor{keyword}{typename}\ std::enable\_if<\textcolor{keyword}{sizeof}...(Ix)\ ==\ Ndim,\ T>::type\ \mbox{\hyperlink{classaare_1_1NDArray_ad8f804893325ae1553d33accec070e92}{value}}(Ix...\ index)\ \{}
\DoxyCodeLine{00119\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}[\mbox{\hyperlink{namespaceaare_a45ca88f1c8c15d6e4d08b14e21a3e579}{element\_offset}}(\mbox{\hyperlink{classaare_1_1NDArray_a5275d4999e7422458d472620f792573a}{strides\_}},\ index...)];}
\DoxyCodeLine{00120\ \ \ \ \ \}}
\DoxyCodeLine{00121\ }
\DoxyCodeLine{00122\ \ \ \ \ T\ \&\mbox{\hyperlink{classaare_1_1NDArray_a8d75984e7f384c4c9d25bc04c6c14983}{operator()}}(\textcolor{keywordtype}{int}\ i)\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}[i];\ \}}
\DoxyCodeLine{00123\ \ \ \ \ \textcolor{keyword}{const}\ T\ \&\mbox{\hyperlink{classaare_1_1NDArray_adf800cbb478a4f24ae24026034bafd43}{operator()}}(\textcolor{keywordtype}{int}\ i)\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}[i];\ \}}
\DoxyCodeLine{00124\ }
\DoxyCodeLine{00125\ \ \ \ \ T\ *\mbox{\hyperlink{classaare_1_1NDArray_a77b3ca3e85d5a3e394248fdaab01c5a5}{data}}()\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}};\ \}}
\DoxyCodeLine{00126\ \ \ \ \ std::byte\ *\mbox{\hyperlink{classaare_1_1NDArray_af289b6a162612ed74ad2fd0606a479a9}{buffer}}()\ \{\ \textcolor{keywordflow}{return}\ \textcolor{keyword}{reinterpret\_cast<}std::byte\ *\textcolor{keyword}{>}(\mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}});\ \}}
\DoxyCodeLine{00127\ \ \ \ \ ssize\_t\ \mbox{\hyperlink{classaare_1_1NDArray_a86632c60ddbdf7af8cfd3939df472127}{size}}()\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}};\ \}}
\DoxyCodeLine{00128\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1NDArray_ab1f9c68ddce8440f1fc220cbc1d865fc}{total\_bytes}}()\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}}\ *\ \textcolor{keyword}{sizeof}(T);\ \}}
\DoxyCodeLine{00129\ \ \ \ \ std::array<ssize\_t,\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray_a6dfa3b12cb66147effe2a42435dd346d}{shape}}()\ const\ noexcept\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}};\ \}}
\DoxyCodeLine{00130\ \ \ \ \ ssize\_t\ \mbox{\hyperlink{classaare_1_1NDArray_af765f5cb619ed79d44a000572b265589}{shape}}(ssize\_t\ i)\ \textcolor{keyword}{const}\ \textcolor{keyword}{noexcept}\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}}[i];\ \}}
\DoxyCodeLine{00131\ \ \ \ \ std::array<ssize\_t,\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray_a07369722ffea061203bfbfd4479c05e9}{strides}}()\ const\ noexcept\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDArray_a5275d4999e7422458d472620f792573a}{strides\_}};\ \}}
\DoxyCodeLine{00132\ \ \ \ \ std::array<ssize\_t,\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray_a2ab19fc488009d3fce95fcf5bff6b10a}{byte\_strides}}()\ const\ noexcept\ \{}
\DoxyCodeLine{00133\ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ \mbox{\hyperlink{classaare_1_1NDArray_a2ab19fc488009d3fce95fcf5bff6b10a}{byte\_strides}}\ =\ \mbox{\hyperlink{classaare_1_1NDArray_a5275d4999e7422458d472620f792573a}{strides\_}};}
\DoxyCodeLine{00134\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keyword}{auto}\ \&val\ :\ \mbox{\hyperlink{classaare_1_1NDArray_a2ab19fc488009d3fce95fcf5bff6b10a}{byte\_strides}})}
\DoxyCodeLine{00135\ \ \ \ \ \ \ \ \ \ \ \ \ val\ *=\ \textcolor{keyword}{sizeof}(T);}
\DoxyCodeLine{00136\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDArray_a2ab19fc488009d3fce95fcf5bff6b10a}{byte\_strides}};}
\DoxyCodeLine{00137\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ return\ strides\_;}}
\DoxyCodeLine{00138\ \ \ \ \ \}}
\DoxyCodeLine{00139\ }
\DoxyCodeLine{00140\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView}{NDView<T,\ Ndim>}}\ \mbox{\hyperlink{classaare_1_1NDArray_ac5ffe1a4b9dde8f2ec6dba021951c922}{span}}()\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDView}{NDView<T,\ Ndim>}}\{\mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}},\ \mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}}\};\ \}}
\DoxyCodeLine{00141\ }
\DoxyCodeLine{00142\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1NDArray_ad49628442cc054b7c0b56b3104d9ef20}{Print}}();}
\DoxyCodeLine{00143\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1NDArray_a6084445eed769b89387b4aca53306513}{Print\_all}}();}
\DoxyCodeLine{00144\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1NDArray_a5dec49e82ec3abfa28bddfc328b1c4e9}{Print\_some}}();}
\DoxyCodeLine{00145\ }
\DoxyCodeLine{00146\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1NDArray_a98d5740082a649135587590dbbaa42e2}{reset}}()\ \{}
\DoxyCodeLine{00147\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}\ =\ \textcolor{keyword}{nullptr};}
\DoxyCodeLine{00148\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}}\ =\ 0;}
\DoxyCodeLine{00149\ \ \ \ \ \ \ \ \ std::fill(\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}}.begin(),\ \mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}}.end(),\ 0);}
\DoxyCodeLine{00150\ \ \ \ \ \ \ \ \ std::fill(\mbox{\hyperlink{classaare_1_1NDArray_a5275d4999e7422458d472620f792573a}{strides\_}}.begin(),\ \mbox{\hyperlink{classaare_1_1NDArray_a5275d4999e7422458d472620f792573a}{strides\_}}.end(),\ 0);}
\DoxyCodeLine{00151\ \ \ \ \ \}}
\DoxyCodeLine{00152\ }
\DoxyCodeLine{00153\ \ \ \textcolor{keyword}{private}:}
\DoxyCodeLine{00154\ \ \ \ \ std::array<ssize\_t,\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}};}
\DoxyCodeLine{00155\ \ \ \ \ std::array<ssize\_t,\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray_a5275d4999e7422458d472620f792573a}{strides\_}};}
\DoxyCodeLine{00156\ \ \ \ \ ssize\_t\ \mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}};}
\DoxyCodeLine{00157\ \ \ \ \ T\ *\mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}};}
\DoxyCodeLine{00158\ \};}
\DoxyCodeLine{00159\ }
\DoxyCodeLine{00160\ \textcolor{comment}{//\ Move\ assign}}
\DoxyCodeLine{00161\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a06c658e8a6490c74fb9878b14a4faf1d}{NDArray<T,\ Ndim>::operator=}}(\mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ \&\&other)\ \{}
\DoxyCodeLine{00162\ \ \ \ \ \textcolor{keywordflow}{if}\ (\textcolor{keyword}{this}\ !=\ \&other)\ \{}
\DoxyCodeLine{00163\ \ \ \ \ \ \ \ \ \textcolor{keyword}{delete}[]\ data\_;}
\DoxyCodeLine{00164\ \ \ \ \ \ \ \ \ data\_\ =\ other.\mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}};}
\DoxyCodeLine{00165\ \ \ \ \ \ \ \ \ shape\_\ =\ other.shape\_;}
\DoxyCodeLine{00166\ \ \ \ \ \ \ \ \ size\_\ =\ other.size\_;}
\DoxyCodeLine{00167\ \ \ \ \ \ \ \ \ strides\_\ =\ other.strides\_;}
\DoxyCodeLine{00168\ \ \ \ \ \ \ \ \ other.reset();}
\DoxyCodeLine{00169\ \ \ \ \ \}}
\DoxyCodeLine{00170\ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};}
\DoxyCodeLine{00171\ \}}
\DoxyCodeLine{00172\ }
\DoxyCodeLine{00173\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ \mbox{\hyperlink{classaare_1_1NDArray_afcc5f259b1bd0cadcadbf2b52795babc}{NDArray<T,\ Ndim>::operator+}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other)\ \{}
\DoxyCodeLine{00174\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ result(*\textcolor{keyword}{this});}
\DoxyCodeLine{00175\ \ \ \ \ result\ +=\ other;}
\DoxyCodeLine{00176\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{00177\ \}}
\DoxyCodeLine{00178\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a27eb7b3599cb62297832d4a3d8022f32}{NDArray<T,\ Ndim>::operator+=}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ \&other)\ \{}
\DoxyCodeLine{00179\ \ \ \ \ \textcolor{comment}{//\ check\ shape}}
\DoxyCodeLine{00180\ \ \ \ \ \textcolor{keywordflow}{if}\ (shape\_\ ==\ other.\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}})\ \{}
\DoxyCodeLine{00181\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ size\_;\ ++i)\ \{}
\DoxyCodeLine{00182\ \ \ \ \ \ \ \ \ \ \ \ \ data\_[i]\ +=\ other.\mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}[i];}
\DoxyCodeLine{00183\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00184\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};}
\DoxyCodeLine{00185\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00186\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{throw}(std::runtime\_error(\textcolor{stringliteral}{"{}Shape\ of\ ImageDatas\ must\ match"{}}));}
\DoxyCodeLine{00187\ \ \ \ \ \}}
\DoxyCodeLine{00188\ \}}
\DoxyCodeLine{00189\ }
\DoxyCodeLine{00190\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ \mbox{\hyperlink{classaare_1_1NDArray_aac96eb2ce76cd90d44eb3b19408d2434}{NDArray<T,\ Ndim>::operator-\/}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other)\ \{}
\DoxyCodeLine{00191\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ result\{*\textcolor{keyword}{this}\};}
\DoxyCodeLine{00192\ \ \ \ \ result\ -\/=\ other;}
\DoxyCodeLine{00193\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{00194\ \}}
\DoxyCodeLine{00195\ }
\DoxyCodeLine{00196\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_aad602fc6734cb85112f2a8edf91d1c70}{NDArray<T,\ Ndim>::operator-\/=}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ \&other)\ \{}
\DoxyCodeLine{00197\ \ \ \ \ \textcolor{comment}{//\ check\ shape}}
\DoxyCodeLine{00198\ \ \ \ \ \textcolor{keywordflow}{if}\ (shape\_\ ==\ other.\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}})\ \{}
\DoxyCodeLine{00199\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ size\_;\ ++i)\ \{}
\DoxyCodeLine{00200\ \ \ \ \ \ \ \ \ \ \ \ \ data\_[i]\ -\/=\ other.\mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}[i];}
\DoxyCodeLine{00201\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00202\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};}
\DoxyCodeLine{00203\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00204\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{throw}(std::runtime\_error(\textcolor{stringliteral}{"{}Shape\ of\ ImageDatas\ must\ match"{}}));}
\DoxyCodeLine{00205\ \ \ \ \ \}}
\DoxyCodeLine{00206\ \}}
\DoxyCodeLine{00207\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ \mbox{\hyperlink{classaare_1_1NDArray_ae67f899470bc9f8c8df8b54d544f9171}{NDArray<T,\ Ndim>::operator*}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other)\ \{}
\DoxyCodeLine{00208\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ result\ =\ *\textcolor{keyword}{this};}
\DoxyCodeLine{00209\ \ \ \ \ result\ *=\ other;}
\DoxyCodeLine{00210\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{00211\ \}}
\DoxyCodeLine{00212\ }
\DoxyCodeLine{00213\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a54edf15f9669a1e4601fa4aa936a2d92}{NDArray<T,\ Ndim>::operator*=}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ \&other)\ \{}
\DoxyCodeLine{00214\ \ \ \ \ \textcolor{comment}{//\ check\ shape}}
\DoxyCodeLine{00215\ \ \ \ \ \textcolor{keywordflow}{if}\ (shape\_\ ==\ other.\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}})\ \{}
\DoxyCodeLine{00216\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ size\_;\ ++i)\ \{}
\DoxyCodeLine{00217\ \ \ \ \ \ \ \ \ \ \ \ \ data\_[i]\ *=\ other.\mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}[i];}
\DoxyCodeLine{00218\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00219\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};}
\DoxyCodeLine{00220\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00221\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{throw}(std::runtime\_error(\textcolor{stringliteral}{"{}Shape\ of\ ImageDatas\ must\ match"{}}));}
\DoxyCodeLine{00222\ \ \ \ \ \}}
\DoxyCodeLine{00223\ \}}
\DoxyCodeLine{00224\ }
\DoxyCodeLine{00225\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ \mbox{\hyperlink{classaare_1_1NDArray_a59dc47216852c36191e0cecc869131e1}{NDArray<T,\ Ndim>::operator/}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other)\ \{}
\DoxyCodeLine{00226\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ result\ =\ *\textcolor{keyword}{this};}
\DoxyCodeLine{00227\ \ \ \ \ result\ /=\ other;}
\DoxyCodeLine{00228\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{00229\ \}}
\DoxyCodeLine{00230\ }
\DoxyCodeLine{00231\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_ab01fdad1a92b1629996f15ff0cf79ac3}{NDArray<T,\ Ndim>::operator\&=}}(\textcolor{keyword}{const}\ T\ \&mask)\ \{}
\DoxyCodeLine{00232\ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keyword}{auto}\ it\ =\ begin();\ it\ !=\ end();\ ++it)}
\DoxyCodeLine{00233\ \ \ \ \ \ \ \ \ *it\ \&=\ mask;}
\DoxyCodeLine{00234\ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};}
\DoxyCodeLine{00235\ \}}
\DoxyCodeLine{00236\ }
\DoxyCodeLine{00237\ \textcolor{comment}{//\ template\ <typename\ T,\ ssize\_t\ Ndim>}}
\DoxyCodeLine{00238\ \textcolor{comment}{//\ NDArray<T,\ Ndim>\&\ NDArray<T,\ Ndim>::operator/=(const\ NDArray<T,\ Ndim>\&}}
\DoxyCodeLine{00239\ \textcolor{comment}{//\ other)}}
\DoxyCodeLine{00240\ \textcolor{comment}{//\ \{}}
\DoxyCodeLine{00241\ \textcolor{comment}{//\ \ \ \ \ //check\ shape}}
\DoxyCodeLine{00242\ \textcolor{comment}{//\ \ \ \ \ if\ (shape\_\ ==\ other.shape\_)\ \{}}
\DoxyCodeLine{00243\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ for\ (int\ i\ =\ 0;\ i\ <\ size\_;\ ++i)\ \{}}
\DoxyCodeLine{00244\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \ \ \ \ data\_[i]\ /=\ other.data\_[i];}}
\DoxyCodeLine{00245\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \}}}
\DoxyCodeLine{00246\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ return\ *this;}}
\DoxyCodeLine{00247\ \textcolor{comment}{//\ \ \ \ \ \}\ else\ \{}}
\DoxyCodeLine{00248\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ throw(std::runtime\_error("{}Shape\ of\ ImageDatas\ must\ match"{}));}}
\DoxyCodeLine{00249\ \textcolor{comment}{//\ \ \ \ \ \}}}
\DoxyCodeLine{00250\ \textcolor{comment}{//\ \}}}
\DoxyCodeLine{00251\ }
\DoxyCodeLine{00252\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<bool,\ Ndim>}}\ \mbox{\hyperlink{classaare_1_1NDArray_a569e8de85121a4a6315c556870b48931}{NDArray<T,\ Ndim>::operator>}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other)\ \{}
\DoxyCodeLine{00253\ \ \ \ \ \textcolor{keywordflow}{if}\ (shape\_\ ==\ other.\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}})\ \{}
\DoxyCodeLine{00254\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<bool>}}\ result\{shape\_\};}
\DoxyCodeLine{00255\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ size\_;\ ++i)\ \{}
\DoxyCodeLine{00256\ \ \ \ \ \ \ \ \ \ \ \ \ result(i)\ =\ (data\_[i]\ >\ other.\mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}[i]);}
\DoxyCodeLine{00257\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00258\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{00259\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00260\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{throw}(std::runtime\_error(\textcolor{stringliteral}{"{}Shape\ of\ ImageDatas\ must\ match"{}}));}
\DoxyCodeLine{00261\ \ \ \ \ \}}
\DoxyCodeLine{00262\ \}}
\DoxyCodeLine{00263\ }
\DoxyCodeLine{00264\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a06c658e8a6490c74fb9878b14a4faf1d}{NDArray<T,\ Ndim>::operator=}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ \&other)\ \{}
\DoxyCodeLine{00265\ \ \ \ \ \textcolor{keywordflow}{if}\ (\textcolor{keyword}{this}\ !=\ \&other)\ \{}
\DoxyCodeLine{00266\ \ \ \ \ \ \ \ \ \textcolor{keyword}{delete}[]\ data\_;}
\DoxyCodeLine{00267\ \ \ \ \ \ \ \ \ shape\_\ =\ other.\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}};}
\DoxyCodeLine{00268\ \ \ \ \ \ \ \ \ strides\_\ =\ other.\mbox{\hyperlink{classaare_1_1NDArray_a5275d4999e7422458d472620f792573a}{strides\_}};}
\DoxyCodeLine{00269\ \ \ \ \ \ \ \ \ size\_\ =\ other.\mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}};}
\DoxyCodeLine{00270\ \ \ \ \ \ \ \ \ data\_\ =\ \textcolor{keyword}{new}\ T[size\_];}
\DoxyCodeLine{00271\ \ \ \ \ \ \ \ \ std::copy(other.\mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}},\ other.\mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}\ +\ size\_,\ data\_);}
\DoxyCodeLine{00272\ \ \ \ \ \}}
\DoxyCodeLine{00273\ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};}
\DoxyCodeLine{00274\ \}}
\DoxyCodeLine{00275\ }
\DoxyCodeLine{00276\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classaare_1_1NDArray_ad20b30f1abea56b82196f030b1492027}{NDArray<T,\ Ndim>::operator==}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ \&other)\textcolor{keyword}{\ const\ }\{}
\DoxyCodeLine{00277\ \ \ \ \ \textcolor{keywordflow}{if}\ (shape\_\ !=\ other.\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}})}
\DoxyCodeLine{00278\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{false};}
\DoxyCodeLine{00279\ }
\DoxyCodeLine{00280\ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ !=\ size\_;\ ++i)}
\DoxyCodeLine{00281\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (data\_[i]\ !=\ other.\mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}[i])}
\DoxyCodeLine{00282\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{false};}
\DoxyCodeLine{00283\ }
\DoxyCodeLine{00284\ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{true};}
\DoxyCodeLine{00285\ \}}
\DoxyCodeLine{00286\ }
\DoxyCodeLine{00287\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classaare_1_1NDArray_a90408ebad72f63d0288b869b3e32e50b}{NDArray<T,\ Ndim>::operator!=}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ \&other)\textcolor{keyword}{\ const\ }\{}
\DoxyCodeLine{00288\ \ \ \ \ \textcolor{keywordflow}{return}\ !((*this)\ ==\ other);}
\DoxyCodeLine{00289\ \}}
\DoxyCodeLine{00290\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a040dd143e6dc040703b33d91ba929271}{NDArray<T,\ Ndim>::operator++}}()\ \{}
\DoxyCodeLine{00291\ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ size\_;\ ++i)}
\DoxyCodeLine{00292\ \ \ \ \ \ \ \ \ data\_[i]\ +=\ 1;}
\DoxyCodeLine{00293\ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};}
\DoxyCodeLine{00294\ \}}
\DoxyCodeLine{00295\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a06c658e8a6490c74fb9878b14a4faf1d}{NDArray<T,\ Ndim>::operator=}}(\textcolor{keyword}{const}\ T\ \&value)\ \{}
\DoxyCodeLine{00296\ \ \ \ \ std::fill\_n(data\_,\ size\_,\ value);}
\DoxyCodeLine{00297\ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};}
\DoxyCodeLine{00298\ \}}
\DoxyCodeLine{00299\ }
\DoxyCodeLine{00300\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a27eb7b3599cb62297832d4a3d8022f32}{NDArray<T,\ Ndim>::operator+=}}(\textcolor{keyword}{const}\ T\ \&value)\ \{}
\DoxyCodeLine{00301\ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ size\_;\ ++i)}
\DoxyCodeLine{00302\ \ \ \ \ \ \ \ \ data\_[i]\ +=\ value;}
\DoxyCodeLine{00303\ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};}
\DoxyCodeLine{00304\ \}}
\DoxyCodeLine{00305\ }
\DoxyCodeLine{00306\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ \mbox{\hyperlink{classaare_1_1NDArray_afcc5f259b1bd0cadcadbf2b52795babc}{NDArray<T,\ Ndim>::operator+}}(\textcolor{keyword}{const}\ T\ \&value)\ \{}
\DoxyCodeLine{00307\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ result\ =\ *\textcolor{keyword}{this};}
\DoxyCodeLine{00308\ \ \ \ \ result\ +=\ value;}
\DoxyCodeLine{00309\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{00310\ \}}
\DoxyCodeLine{00311\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_aad602fc6734cb85112f2a8edf91d1c70}{NDArray<T,\ Ndim>::operator-\/=}}(\textcolor{keyword}{const}\ T\ \&value)\ \{}
\DoxyCodeLine{00312\ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ size\_;\ ++i)}
\DoxyCodeLine{00313\ \ \ \ \ \ \ \ \ data\_[i]\ -\/=\ value;}
\DoxyCodeLine{00314\ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};}
\DoxyCodeLine{00315\ \}}
\DoxyCodeLine{00316\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ \mbox{\hyperlink{classaare_1_1NDArray_aac96eb2ce76cd90d44eb3b19408d2434}{NDArray<T,\ Ndim>::operator-\/}}(\textcolor{keyword}{const}\ T\ \&value)\ \{}
\DoxyCodeLine{00317\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ result\ =\ *\textcolor{keyword}{this};}
\DoxyCodeLine{00318\ \ \ \ \ result\ -\/=\ value;}
\DoxyCodeLine{00319\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{00320\ \}}
\DoxyCodeLine{00321\ }
\DoxyCodeLine{00322\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a2a6260113ca73c86d37d0444b5148c49}{NDArray<T,\ Ndim>::operator/=}}(\textcolor{keyword}{const}\ T\ \&value)\ \{}
\DoxyCodeLine{00323\ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ size\_;\ ++i)}
\DoxyCodeLine{00324\ \ \ \ \ \ \ \ \ data\_[i]\ /=\ value;}
\DoxyCodeLine{00325\ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};}
\DoxyCodeLine{00326\ \}}
\DoxyCodeLine{00327\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ \mbox{\hyperlink{classaare_1_1NDArray_a59dc47216852c36191e0cecc869131e1}{NDArray<T,\ Ndim>::operator/}}(\textcolor{keyword}{const}\ T\ \&value)\ \{}
\DoxyCodeLine{00328\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ result\ =\ *\textcolor{keyword}{this};}
\DoxyCodeLine{00329\ \ \ \ \ result\ /=\ value;}
\DoxyCodeLine{00330\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{00331\ \}}
\DoxyCodeLine{00332\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a54edf15f9669a1e4601fa4aa936a2d92}{NDArray<T,\ Ndim>::operator*=}}(\textcolor{keyword}{const}\ T\ \&value)\ \{}
\DoxyCodeLine{00333\ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ size\_;\ ++i)}
\DoxyCodeLine{00334\ \ \ \ \ \ \ \ \ data\_[i]\ *=\ value;}
\DoxyCodeLine{00335\ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};}
\DoxyCodeLine{00336\ \}}
\DoxyCodeLine{00337\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ \mbox{\hyperlink{classaare_1_1NDArray_ae67f899470bc9f8c8df8b54d544f9171}{NDArray<T,\ Ndim>::operator*}}(\textcolor{keyword}{const}\ T\ \&value)\ \{}
\DoxyCodeLine{00338\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ result\ =\ *\textcolor{keyword}{this};}
\DoxyCodeLine{00339\ \ \ \ \ result\ *=\ value;}
\DoxyCodeLine{00340\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{00341\ \}}
\DoxyCodeLine{00342\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1NDArray_ad49628442cc054b7c0b56b3104d9ef20}{NDArray<T,\ Ndim>::Print}}()\ \{}
\DoxyCodeLine{00343\ \ \ \ \ \textcolor{keywordflow}{if}\ (shape\_[0]\ <\ 20\ \&\&\ shape\_[1]\ <\ 20)}
\DoxyCodeLine{00344\ \ \ \ \ \ \ \ \ Print\_all();}
\DoxyCodeLine{00345\ \ \ \ \ \textcolor{keywordflow}{else}}
\DoxyCodeLine{00346\ \ \ \ \ \ \ \ \ Print\_some();}
\DoxyCodeLine{00347\ \}}
\DoxyCodeLine{00348\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1NDArray_a6084445eed769b89387b4aca53306513}{NDArray<T,\ Ndim>::Print\_all}}()\ \{}
\DoxyCodeLine{00349\ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keyword}{auto}\ row\ =\ 0;\ row\ <\ shape\_[0];\ ++row)\ \{}
\DoxyCodeLine{00350\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keyword}{auto}\ col\ =\ 0;\ col\ <\ shape\_[1];\ ++col)\ \{}
\DoxyCodeLine{00351\ \ \ \ \ \ \ \ \ \ \ \ \ std::cout\ <<\ std::setw(3);}
\DoxyCodeLine{00352\ \ \ \ \ \ \ \ \ \ \ \ \ std::cout\ <<\ (*this)(row,\ col)\ <<\ \textcolor{stringliteral}{"{}\ "{}};}
\DoxyCodeLine{00353\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00354\ \ \ \ \ \ \ \ \ std::cout\ <<\ \textcolor{stringliteral}{"{}\(\backslash\)n"{}};}
\DoxyCodeLine{00355\ \ \ \ \ \}}
\DoxyCodeLine{00356\ \}}
\DoxyCodeLine{00357\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1NDArray_a5dec49e82ec3abfa28bddfc328b1c4e9}{NDArray<T,\ Ndim>::Print\_some}}()\ \{}
\DoxyCodeLine{00358\ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keyword}{auto}\ row\ =\ 0;\ row\ <\ 5;\ ++row)\ \{}
\DoxyCodeLine{00359\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keyword}{auto}\ col\ =\ 0;\ col\ <\ 5;\ ++col)\ \{}
\DoxyCodeLine{00360\ \ \ \ \ \ \ \ \ \ \ \ \ std::cout\ <<\ std::setw(7);}
\DoxyCodeLine{00361\ \ \ \ \ \ \ \ \ \ \ \ \ std::cout\ <<\ (*this)(row,\ col)\ <<\ \textcolor{stringliteral}{"{}\ "{}};}
\DoxyCodeLine{00362\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00363\ \ \ \ \ \ \ \ \ std::cout\ <<\ \textcolor{stringliteral}{"{}\(\backslash\)n"{}};}
\DoxyCodeLine{00364\ \ \ \ \ \}}
\DoxyCodeLine{00365\ \}}
\DoxyCodeLine{00366\ }
\DoxyCodeLine{00367\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{namespaceaare_aac5d322f266bccdc416bcd66098eae33}{save}}(\mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ \&img,\ std::string\ pathname)\ \{}
\DoxyCodeLine{00368\ \ \ \ \ std::ofstream\ f;}
\DoxyCodeLine{00369\ \ \ \ \ f.open(pathname,\ std::ios::binary);}
\DoxyCodeLine{00370\ \ \ \ \ f.write(img.\mbox{\hyperlink{classaare_1_1NDArray_af289b6a162612ed74ad2fd0606a479a9}{buffer}}(),\ img.\mbox{\hyperlink{classaare_1_1NDArray_a86632c60ddbdf7af8cfd3939df472127}{size}}()\ *\ \textcolor{keyword}{sizeof}(T));}
\DoxyCodeLine{00371\ \ \ \ \ f.close();}
\DoxyCodeLine{00372\ \}}
\DoxyCodeLine{00373\ }
\DoxyCodeLine{00374\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>}
\DoxyCodeLine{00375\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ \mbox{\hyperlink{namespaceaare_a2868d09c334b1aa09be4da1979100ec5}{load}}(\textcolor{keyword}{const}\ std::string\ \&pathname,\ std::array<ssize\_t,\ Ndim>\ shape)\ \{}
\DoxyCodeLine{00376\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ Ndim>}}\ img\{shape\};}
\DoxyCodeLine{00377\ \ \ \ \ std::ifstream\ f;}
\DoxyCodeLine{00378\ \ \ \ \ f.open(pathname,\ std::ios::binary);}
\DoxyCodeLine{00379\ \ \ \ \ f.read(img.buffer(),\ img.size()\ *\ \textcolor{keyword}{sizeof}(T));}
\DoxyCodeLine{00380\ \ \ \ \ f.close();}
\DoxyCodeLine{00381\ \ \ \ \ \textcolor{keywordflow}{return}\ img;}
\DoxyCodeLine{00382\ \}}
\DoxyCodeLine{00383\ }
\DoxyCodeLine{00384\ \}\ \textcolor{comment}{//\ namespace\ aare}}
\end{DoxyCode}

View File

@ -0,0 +1,123 @@
\doxysection{core/test/\+NDArray.test.\+cpp File Reference}
\hypertarget{NDArray_8test_8cpp}{}\label{NDArray_8test_8cpp}\index{core/test/NDArray.test.cpp@{core/test/NDArray.test.cpp}}
{\ttfamily \#include \"{}aare/core/\+NDArray.\+hpp\"{}}\newline
{\ttfamily \#include $<$array$>$}\newline
{\ttfamily \#include $<$catch2/catch\+\_\+test\+\_\+macros.\+hpp$>$}\newline
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{NDArray_8test_8cpp_a706076cb6a6f8c87f13156d0e06f0560}{TEST\+\_\+\+CASE}} (\"{}Initial size is zero if no size is specified\"{})
\item
\mbox{\hyperlink{NDArray_8test_8cpp_ae5d43750d6201bdb5aff783631ebfaf7}{TEST\+\_\+\+CASE}} (\"{}Construct from a Data\+Span\"{})
\item
\mbox{\hyperlink{NDArray_8test_8cpp_a03f588d9d68e7e396b87b30ebff75887}{TEST\+\_\+\+CASE}} (\"{}1D image\"{})
\item
\mbox{\hyperlink{NDArray_8test_8cpp_ae53f567850abf1db336976b253abcca2}{TEST\+\_\+\+CASE}} (\"{}Accessing a const object\"{})
\item
\mbox{\hyperlink{NDArray_8test_8cpp_a304785e3d5c0d192b7f5356c4ca28f82}{TEST\+\_\+\+CASE}} (\"{}Indexing of a 2D image\"{})
\item
\mbox{\hyperlink{NDArray_8test_8cpp_a42aac6c66ce7372f4fbeb23cdc01fba4}{TEST\+\_\+\+CASE}} (\"{}Indexing of a 3D image\"{})
\item
\mbox{\hyperlink{NDArray_8test_8cpp_abaf3df3492fd29a369d1baf11e3bdbc5}{TEST\+\_\+\+CASE}} (\"{}Divide double by int\"{})
\item
\mbox{\hyperlink{NDArray_8test_8cpp_a236a5e0031a7f8ed34071a4ee94024a9}{TEST\+\_\+\+CASE}} (\"{}Elementwise multiplication of 3D image\"{})
\item
\mbox{\hyperlink{NDArray_8test_8cpp_ab22676de767d5f1ba3a09543bb66084c}{TEST\+\_\+\+CASE}} (\"{}Compare two images\"{})
\item
\mbox{\hyperlink{NDArray_8test_8cpp_a64db248306777f6b2f7ef6a77ff77d6e}{TEST\+\_\+\+CASE}} (\"{}Size and shape matches\"{})
\item
\mbox{\hyperlink{NDArray_8test_8cpp_aa5e54f6fe2b54a43194e05bebda0cb2c}{TEST\+\_\+\+CASE}} (\"{}Initial value matches for all elements\"{})
\item
\mbox{\hyperlink{NDArray_8test_8cpp_aae2694bb812379ef93c7c07b5e3959b7}{TEST\+\_\+\+CASE}} (\"{}Data layout of 3D image, fast index last\"{})
\item
\mbox{\hyperlink{NDArray_8test_8cpp_a717d9c9320722e455da5aa291d288865}{TEST\+\_\+\+CASE}} (\"{}Bitwise and on data\"{})
\item
\mbox{\hyperlink{NDArray_8test_8cpp_a3a450e7f04b11cc5b32ce2135aa27123}{TEST\+\_\+\+CASE}} (\"{}Elementwise operatios on images\"{})
\end{DoxyCompactItemize}
\doxysubsection{Function Documentation}
\Hypertarget{NDArray_8test_8cpp_a03f588d9d68e7e396b87b30ebff75887}\label{NDArray_8test_8cpp_a03f588d9d68e7e396b87b30ebff75887}
\index{NDArray.test.cpp@{NDArray.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NDArray.test.cpp@{NDArray.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [1/14]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}1D image\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NDArray_8test_8cpp_ae53f567850abf1db336976b253abcca2}\label{NDArray_8test_8cpp_ae53f567850abf1db336976b253abcca2}
\index{NDArray.test.cpp@{NDArray.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NDArray.test.cpp@{NDArray.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [2/14]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Accessing a const object\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NDArray_8test_8cpp_a717d9c9320722e455da5aa291d288865}\label{NDArray_8test_8cpp_a717d9c9320722e455da5aa291d288865}
\index{NDArray.test.cpp@{NDArray.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NDArray.test.cpp@{NDArray.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [3/14]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Bitwise and on data\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NDArray_8test_8cpp_ab22676de767d5f1ba3a09543bb66084c}\label{NDArray_8test_8cpp_ab22676de767d5f1ba3a09543bb66084c}
\index{NDArray.test.cpp@{NDArray.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NDArray.test.cpp@{NDArray.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [4/14]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Compare two images\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NDArray_8test_8cpp_ae5d43750d6201bdb5aff783631ebfaf7}\label{NDArray_8test_8cpp_ae5d43750d6201bdb5aff783631ebfaf7}
\index{NDArray.test.cpp@{NDArray.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NDArray.test.cpp@{NDArray.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [5/14]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Construct from a Data\+Span\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NDArray_8test_8cpp_aae2694bb812379ef93c7c07b5e3959b7}\label{NDArray_8test_8cpp_aae2694bb812379ef93c7c07b5e3959b7}
\index{NDArray.test.cpp@{NDArray.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NDArray.test.cpp@{NDArray.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [6/14]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Data layout of 3D}]{image, }\item[{fast index last\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NDArray_8test_8cpp_abaf3df3492fd29a369d1baf11e3bdbc5}\label{NDArray_8test_8cpp_abaf3df3492fd29a369d1baf11e3bdbc5}
\index{NDArray.test.cpp@{NDArray.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NDArray.test.cpp@{NDArray.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [7/14]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Divide double by int\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NDArray_8test_8cpp_a236a5e0031a7f8ed34071a4ee94024a9}\label{NDArray_8test_8cpp_a236a5e0031a7f8ed34071a4ee94024a9}
\index{NDArray.test.cpp@{NDArray.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NDArray.test.cpp@{NDArray.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [8/14]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Elementwise multiplication of 3D image\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NDArray_8test_8cpp_a3a450e7f04b11cc5b32ce2135aa27123}\label{NDArray_8test_8cpp_a3a450e7f04b11cc5b32ce2135aa27123}
\index{NDArray.test.cpp@{NDArray.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NDArray.test.cpp@{NDArray.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [9/14]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Elementwise operatios on images\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NDArray_8test_8cpp_a304785e3d5c0d192b7f5356c4ca28f82}\label{NDArray_8test_8cpp_a304785e3d5c0d192b7f5356c4ca28f82}
\index{NDArray.test.cpp@{NDArray.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NDArray.test.cpp@{NDArray.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [10/14]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Indexing of a 2D image\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NDArray_8test_8cpp_a42aac6c66ce7372f4fbeb23cdc01fba4}\label{NDArray_8test_8cpp_a42aac6c66ce7372f4fbeb23cdc01fba4}
\index{NDArray.test.cpp@{NDArray.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NDArray.test.cpp@{NDArray.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [11/14]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Indexing of a 3D image\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NDArray_8test_8cpp_a706076cb6a6f8c87f13156d0e06f0560}\label{NDArray_8test_8cpp_a706076cb6a6f8c87f13156d0e06f0560}
\index{NDArray.test.cpp@{NDArray.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NDArray.test.cpp@{NDArray.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [12/14]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Initial size is zero if no size is specified\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NDArray_8test_8cpp_aa5e54f6fe2b54a43194e05bebda0cb2c}\label{NDArray_8test_8cpp_aa5e54f6fe2b54a43194e05bebda0cb2c}
\index{NDArray.test.cpp@{NDArray.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NDArray.test.cpp@{NDArray.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [13/14]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Initial value matches for all elements\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NDArray_8test_8cpp_a64db248306777f6b2f7ef6a77ff77d6e}\label{NDArray_8test_8cpp_a64db248306777f6b2f7ef6a77ff77d6e}
\index{NDArray.test.cpp@{NDArray.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NDArray.test.cpp@{NDArray.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [14/14]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Size and shape matches\"{}}]{ }\end{DoxyParamCaption})}

View File

@ -0,0 +1,37 @@
\doxysection{core/include/aare/core/\+NDView.hpp File Reference}
\hypertarget{NDView_8hpp}{}\label{NDView_8hpp}\index{core/include/aare/core/NDView.hpp@{core/include/aare/core/NDView.hpp}}
{\ttfamily \#include $<$algorithm$>$}\newline
{\ttfamily \#include $<$array$>$}\newline
{\ttfamily \#include $<$cassert$>$}\newline
{\ttfamily \#include $<$cstdint$>$}\newline
{\ttfamily \#include $<$numeric$>$}\newline
{\ttfamily \#include $<$stdexcept$>$}\newline
{\ttfamily \#include $<$vector$>$}\newline
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item
class \mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView$<$ T, Ndim $>$}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item
{\footnotesize template$<$ssize\+\_\+t Ndim$>$ }\\using \mbox{\hyperlink{namespaceaare_a3e7aced06ae41952428121c25c4d54d4}{aare\+::\+Shape}} = std\+::array$<$ ssize\+\_\+t, Ndim $>$
\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item
{\footnotesize template$<$ssize\+\_\+t Ndim$>$ }\\\mbox{\hyperlink{namespaceaare_a3e7aced06ae41952428121c25c4d54d4}{Shape}}$<$ Ndim $>$ \mbox{\hyperlink{namespaceaare_a3ebdc3c557843d49b065a15ff833e2a2}{aare\+::make\+\_\+shape}} (const std\+::vector$<$ size\+\_\+t $>$ \&shape)
\item
{\footnotesize template$<$ssize\+\_\+t Dim = 0, typename Strides $>$ }\\ssize\+\_\+t \mbox{\hyperlink{namespaceaare_a45ca88f1c8c15d6e4d08b14e21a3e579}{aare\+::element\+\_\+offset}} (const Strides \&)
\item
{\footnotesize template$<$ssize\+\_\+t Dim = 0, typename Strides , typename... Ix$>$ }\\ssize\+\_\+t \mbox{\hyperlink{namespaceaare_a8d8ef7169db0fb9c771c24f8bb640950}{aare\+::element\+\_\+offset}} (const Strides \&strides, ssize\+\_\+t i, Ix... index)
\item
{\footnotesize template$<$ssize\+\_\+t Ndim$>$ }\\std\+::array$<$ ssize\+\_\+t, Ndim $>$ \mbox{\hyperlink{namespaceaare_a737039de5f8de78a691a40b9ceb47b64}{aare\+::c\+\_\+strides}} (const std\+::array$<$ ssize\+\_\+t, Ndim $>$ \&shape)
\item
{\footnotesize template$<$ssize\+\_\+t Ndim$>$ }\\std\+::array$<$ ssize\+\_\+t, Ndim $>$ \mbox{\hyperlink{namespaceaare_a2fecee4bfadd26c1cd61d316e16cc060}{aare\+::make\+\_\+array}} (const std\+::vector$<$ ssize\+\_\+t $>$ \&vec)
\end{DoxyCompactItemize}

View File

@ -0,0 +1,145 @@
\doxysection{NDView.\+hpp}
\hypertarget{NDView_8hpp_source}{}\label{NDView_8hpp_source}\index{core/include/aare/core/NDView.hpp@{core/include/aare/core/NDView.hpp}}
\mbox{\hyperlink{NDView_8hpp}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#pragma\ once}}
\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#include\ <algorithm>}}
\DoxyCodeLine{00003\ \textcolor{preprocessor}{\#include\ <array>}}
\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ <cassert>}}
\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ <cstdint>}}
\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ <numeric>}}
\DoxyCodeLine{00007\ \textcolor{preprocessor}{\#include\ <stdexcept>}}
\DoxyCodeLine{00008\ \textcolor{preprocessor}{\#include\ <vector>}}
\DoxyCodeLine{00009\ }
\DoxyCodeLine{00010\ \textcolor{keyword}{namespace\ }\mbox{\hyperlink{namespaceaare}{aare}}\ \{}
\DoxyCodeLine{00011\ }
\DoxyCodeLine{00012\ \textcolor{keyword}{template}\ <s\textcolor{keywordtype}{size\_t}\ Ndim>\ \textcolor{keyword}{using\ }\mbox{\hyperlink{namespaceaare_a3e7aced06ae41952428121c25c4d54d4}{Shape}}\ =\ std::array<ssize\_t,\ Ndim>;}
\DoxyCodeLine{00013\ }
\DoxyCodeLine{00014\ \textcolor{comment}{//\ TODO!\ fix\ mismatch\ between\ signed\ and\ unsigned}}
\DoxyCodeLine{00015\ \textcolor{keyword}{template}\ <s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{namespaceaare_a3e7aced06ae41952428121c25c4d54d4}{Shape<Ndim>}}\ \mbox{\hyperlink{namespaceaare_a3ebdc3c557843d49b065a15ff833e2a2}{make\_shape}}(\textcolor{keyword}{const}\ std::vector<size\_t>\ \&shape)\ \{}
\DoxyCodeLine{00016\ \ \ \ \ \textcolor{keywordflow}{if}\ (shape.size()\ !=\ Ndim)}
\DoxyCodeLine{00017\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{throw}\ std::runtime\_error(\textcolor{stringliteral}{"{}Shape\ size\ mismatch"{}});}
\DoxyCodeLine{00018\ \ \ \ \ \mbox{\hyperlink{namespaceaare_a3e7aced06ae41952428121c25c4d54d4}{Shape<Ndim>}}\ arr;}
\DoxyCodeLine{00019\ \ \ \ \ std::copy\_n(shape.begin(),\ Ndim,\ arr.begin());}
\DoxyCodeLine{00020\ \ \ \ \ \textcolor{keywordflow}{return}\ arr;}
\DoxyCodeLine{00021\ \}}
\DoxyCodeLine{00022\ }
\DoxyCodeLine{00023\ \textcolor{keyword}{template}\ <s\textcolor{keywordtype}{size\_t}\ Dim\ =\ 0,\ \textcolor{keyword}{typename}\ Str\textcolor{keywordtype}{id}es>\ ssize\_t\ \mbox{\hyperlink{namespaceaare_a45ca88f1c8c15d6e4d08b14e21a3e579}{element\_offset}}(\textcolor{keyword}{const}\ Strides\ \&)\ \{\ \textcolor{keywordflow}{return}\ 0;\ \}}
\DoxyCodeLine{00024\ }
\DoxyCodeLine{00025\ \textcolor{keyword}{template}\ <ssize\_t\ Dim\ =\ 0,\ \textcolor{keyword}{typename}\ Strides,\ \textcolor{keyword}{typename}...\ Ix>}
\DoxyCodeLine{00026\ ssize\_t\ \mbox{\hyperlink{namespaceaare_a45ca88f1c8c15d6e4d08b14e21a3e579}{element\_offset}}(\textcolor{keyword}{const}\ Strides\ \&strides,\ ssize\_t\ i,\ Ix...\ index)\ \{}
\DoxyCodeLine{00027\ \ \ \ \ \textcolor{keywordflow}{return}\ i\ *\ strides[Dim]\ +\ element\_offset<Dim\ +\ 1>(strides,\ index...);}
\DoxyCodeLine{00028\ \}}
\DoxyCodeLine{00029\ }
\DoxyCodeLine{00030\ \textcolor{keyword}{template}\ <s\textcolor{keywordtype}{size\_t}\ Ndim>\ std::array<ssize\_t,\ Ndim>\ \mbox{\hyperlink{namespaceaare_a737039de5f8de78a691a40b9ceb47b64}{c\_strides}}(\textcolor{keyword}{const}\ std::array<ssize\_t,\ Ndim>\ \&shape)\ \{}
\DoxyCodeLine{00031\ \ \ \ \ std::array<ssize\_t,\ Ndim>\ strides;}
\DoxyCodeLine{00032\ \ \ \ \ std::fill(strides.begin(),\ strides.end(),\ 1);}
\DoxyCodeLine{00033\ \ \ \ \ \textcolor{keywordflow}{for}\ (ssize\_t\ i\ =\ Ndim\ -\/\ 1;\ i\ >\ 0;\ -\/-\/i)\ \{}
\DoxyCodeLine{00034\ \ \ \ \ \ \ \ \ strides[i\ -\/\ 1]\ =\ strides[i]\ *\ shape[i];}
\DoxyCodeLine{00035\ \ \ \ \ \}}
\DoxyCodeLine{00036\ \ \ \ \ \textcolor{keywordflow}{return}\ strides;}
\DoxyCodeLine{00037\ \}}
\DoxyCodeLine{00038\ }
\DoxyCodeLine{00039\ \textcolor{keyword}{template}\ <s\textcolor{keywordtype}{size\_t}\ Ndim>\ std::array<ssize\_t,\ Ndim>\ \mbox{\hyperlink{namespaceaare_a2fecee4bfadd26c1cd61d316e16cc060}{make\_array}}(\textcolor{keyword}{const}\ std::vector<ssize\_t>\ \&vec)\ \{}
\DoxyCodeLine{00040\ \ \ \ \ assert(vec.size()\ ==\ Ndim);}
\DoxyCodeLine{00041\ \ \ \ \ std::array<ssize\_t,\ Ndim>\ arr;}
\DoxyCodeLine{00042\ \ \ \ \ std::copy\_n(vec.begin(),\ Ndim,\ arr.begin());}
\DoxyCodeLine{00043\ \ \ \ \ \textcolor{keywordflow}{return}\ arr;}
\DoxyCodeLine{00044\ \}}
\DoxyCodeLine{00045\ }
\DoxyCodeLine{00046\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim\ =\ 2>\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classaare_1_1NDView}{NDView}}\ \{}
\DoxyCodeLine{00047\ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{00048\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView_a34ce222de6f687c226117116fea52777}{NDView}}()\{\};}
\DoxyCodeLine{00049\ }
\DoxyCodeLine{00050\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView_a2c5589c5060377025399230601b4e554}{NDView}}(T\ *buffer,\ std::array<ssize\_t,\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDView_a273904b889c29e2ce253da3f920db1c1}{shape}})\ \{}
\DoxyCodeLine{00051\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView_aaedcfb2c15d7335aae5f75646d182732}{buffer\_}}\ =\ buffer;}
\DoxyCodeLine{00052\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView_a32ff10f10d0efcdc0abb9d1f2121d505}{strides\_}}\ =\ c\_strides<Ndim>(\mbox{\hyperlink{classaare_1_1NDView_a273904b889c29e2ce253da3f920db1c1}{shape}});}
\DoxyCodeLine{00053\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView_a1ebe6ccd25a47781e2bc9f1365b1f2ba}{shape\_}}\ =\ \mbox{\hyperlink{classaare_1_1NDView_a273904b889c29e2ce253da3f920db1c1}{shape}};}
\DoxyCodeLine{00054\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView_a53af97aeef3fb68f82b5913c4fa99fa7}{size\_}}\ =\ std::accumulate(std::begin(\mbox{\hyperlink{classaare_1_1NDView_a273904b889c29e2ce253da3f920db1c1}{shape}}),\ std::end(\mbox{\hyperlink{classaare_1_1NDView_a273904b889c29e2ce253da3f920db1c1}{shape}}),\ 1,\ std::multiplies<ssize\_t>());}
\DoxyCodeLine{00055\ \ \ \ \ \}}
\DoxyCodeLine{00056\ }
\DoxyCodeLine{00057\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView_a43053d8295448ef85af8ab5511e70b9d}{NDView}}(T\ *buffer,\ \textcolor{keyword}{const}\ std::vector<ssize\_t>\ \&\mbox{\hyperlink{classaare_1_1NDView_a273904b889c29e2ce253da3f920db1c1}{shape}})\ \{}
\DoxyCodeLine{00058\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView_aaedcfb2c15d7335aae5f75646d182732}{buffer\_}}\ =\ buffer;}
\DoxyCodeLine{00059\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView_a32ff10f10d0efcdc0abb9d1f2121d505}{strides\_}}\ =\ c\_strides<Ndim>(make\_array<Ndim>(\mbox{\hyperlink{classaare_1_1NDView_a273904b889c29e2ce253da3f920db1c1}{shape}}));}
\DoxyCodeLine{00060\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView_a1ebe6ccd25a47781e2bc9f1365b1f2ba}{shape\_}}\ =\ make\_array<Ndim>(\mbox{\hyperlink{classaare_1_1NDView_a273904b889c29e2ce253da3f920db1c1}{shape}});}
\DoxyCodeLine{00061\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView_a53af97aeef3fb68f82b5913c4fa99fa7}{size\_}}\ =\ std::accumulate(std::begin(\mbox{\hyperlink{classaare_1_1NDView_a273904b889c29e2ce253da3f920db1c1}{shape}}),\ std::end(\mbox{\hyperlink{classaare_1_1NDView_a273904b889c29e2ce253da3f920db1c1}{shape}}),\ 1,\ std::multiplies<ssize\_t>());}
\DoxyCodeLine{00062\ \ \ \ \ \}}
\DoxyCodeLine{00063\ }
\DoxyCodeLine{00064\ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}...\ Ix>\ \textcolor{keyword}{typename}\ std::enable\_if<\textcolor{keyword}{sizeof}...(Ix)\ ==\ Ndim,\ T\ \&>::type\ \textcolor{keyword}{operator}()(Ix...\ index)\ \{}
\DoxyCodeLine{00065\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDView_aaedcfb2c15d7335aae5f75646d182732}{buffer\_}}[\mbox{\hyperlink{namespaceaare_a45ca88f1c8c15d6e4d08b14e21a3e579}{element\_offset}}(\mbox{\hyperlink{classaare_1_1NDView_a32ff10f10d0efcdc0abb9d1f2121d505}{strides\_}},\ index...)];}
\DoxyCodeLine{00066\ \ \ \ \ \}}
\DoxyCodeLine{00067\ }
\DoxyCodeLine{00068\ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}...\ Ix>\ \textcolor{keyword}{typename}\ std::enable\_if<\textcolor{keyword}{sizeof}...(Ix)\ ==\ Ndim,\ T\ \&>::type\ \textcolor{keyword}{operator}()(Ix...\ index)\ \textcolor{keyword}{const}\ \{}
\DoxyCodeLine{00069\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDView_aaedcfb2c15d7335aae5f75646d182732}{buffer\_}}[\mbox{\hyperlink{namespaceaare_a45ca88f1c8c15d6e4d08b14e21a3e579}{element\_offset}}(\mbox{\hyperlink{classaare_1_1NDView_a32ff10f10d0efcdc0abb9d1f2121d505}{strides\_}},\ index...)];}
\DoxyCodeLine{00070\ \ \ \ \ \}}
\DoxyCodeLine{00071\ }
\DoxyCodeLine{00072\ \ \ \ \ ssize\_t\ \mbox{\hyperlink{classaare_1_1NDView_a0ef23651982b606952225026c6a9f8d6}{size}}()\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDView_a53af97aeef3fb68f82b5913c4fa99fa7}{size\_}};\ \}}
\DoxyCodeLine{00073\ }
\DoxyCodeLine{00074\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView_a14e2e819279f5d97e1d526ca6133adf2}{NDView}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDView}{NDView}}\ \&)\ =\ \textcolor{keywordflow}{default};}
\DoxyCodeLine{00075\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView_ab66865dacfd69328dbacbbe5719c4ce0}{NDView}}(\mbox{\hyperlink{classaare_1_1NDView}{NDView}}\ \&\&)\ =\ \textcolor{keywordflow}{default};}
\DoxyCodeLine{00076\ }
\DoxyCodeLine{00077\ \ \ \ \ T\ *\mbox{\hyperlink{classaare_1_1NDView_ae83cfabd1885669ef03d17d2637d0842}{begin}}()\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDView_aaedcfb2c15d7335aae5f75646d182732}{buffer\_}};\ \}}
\DoxyCodeLine{00078\ \ \ \ \ T\ *\mbox{\hyperlink{classaare_1_1NDView_a91833343d6c3fe58035e41ff68ab807e}{end}}()\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDView_aaedcfb2c15d7335aae5f75646d182732}{buffer\_}}\ +\ \mbox{\hyperlink{classaare_1_1NDView_a53af97aeef3fb68f82b5913c4fa99fa7}{size\_}};\ \}}
\DoxyCodeLine{00079\ \ \ \ \ T\ \&\mbox{\hyperlink{classaare_1_1NDView_a0879971dbc9ae3ea5eb363c736cfe465}{operator()}}(ssize\_t\ i)\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDView_aaedcfb2c15d7335aae5f75646d182732}{buffer\_}}[i];\ \}}
\DoxyCodeLine{00080\ \ \ \ \ T\ \&\mbox{\hyperlink{classaare_1_1NDView_ac70c65b158a631fee3e9f3768997c67c}{operator[]}}(ssize\_t\ i)\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDView_aaedcfb2c15d7335aae5f75646d182732}{buffer\_}}[i];\ \}}
\DoxyCodeLine{00081\ }
\DoxyCodeLine{00082\ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classaare_1_1NDView_a357d05b259ce08438eade05f50ba4776}{operator==}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDView}{NDView}}\ \&other)\textcolor{keyword}{\ const\ }\{}
\DoxyCodeLine{00083\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\mbox{\hyperlink{classaare_1_1NDView_a53af97aeef3fb68f82b5913c4fa99fa7}{size\_}}\ !=\ other.\mbox{\hyperlink{classaare_1_1NDView_a53af97aeef3fb68f82b5913c4fa99fa7}{size\_}})}
\DoxyCodeLine{00084\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{false};}
\DoxyCodeLine{00085\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (ssize\_t\ i\ =\ 0;\ i\ !=\ \mbox{\hyperlink{classaare_1_1NDView_a53af97aeef3fb68f82b5913c4fa99fa7}{size\_}};\ ++i)\ \{}
\DoxyCodeLine{00086\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\mbox{\hyperlink{classaare_1_1NDView_aaedcfb2c15d7335aae5f75646d182732}{buffer\_}}[i]\ !=\ other.\mbox{\hyperlink{classaare_1_1NDView_aaedcfb2c15d7335aae5f75646d182732}{buffer\_}}[i])}
\DoxyCodeLine{00087\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{false};}
\DoxyCodeLine{00088\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00089\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{true};}
\DoxyCodeLine{00090\ \ \ \ \ \}}
\DoxyCodeLine{00091\ }
\DoxyCodeLine{00092\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView}{NDView}}\ \&\mbox{\hyperlink{classaare_1_1NDView_a126d485d7b671c1511192c6d077e4823}{operator+=}}(\textcolor{keyword}{const}\ T\ val)\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDView_aa36026a1c222c33f72ddb79ed228136d}{elemenwise}}(val,\ std::plus<T>());\ \}}
\DoxyCodeLine{00093\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView}{NDView}}\ \&\mbox{\hyperlink{classaare_1_1NDView_a1a6502a34c94d4f3c50b3f95c38de792}{operator-\/=}}(\textcolor{keyword}{const}\ T\ val)\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDView_aa36026a1c222c33f72ddb79ed228136d}{elemenwise}}(val,\ std::minus<T>());\ \}}
\DoxyCodeLine{00094\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView}{NDView}}\ \&\mbox{\hyperlink{classaare_1_1NDView_a533077f53d9c7f19f94e94f97711dc10}{operator*=}}(\textcolor{keyword}{const}\ T\ val)\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDView_aa36026a1c222c33f72ddb79ed228136d}{elemenwise}}(val,\ std::multiplies<T>());\ \}}
\DoxyCodeLine{00095\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView}{NDView}}\ \&\mbox{\hyperlink{classaare_1_1NDView_a3d553c8b66ec074ed7339fec0f5d0982}{operator/=}}(\textcolor{keyword}{const}\ T\ val)\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDView_aa36026a1c222c33f72ddb79ed228136d}{elemenwise}}(val,\ std::divides<T>());\ \}}
\DoxyCodeLine{00096\ }
\DoxyCodeLine{00097\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView}{NDView}}\ \&\mbox{\hyperlink{classaare_1_1NDView_a772b8b9221ba7fc424fc551633cd9cc9}{operator/=}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDView}{NDView}}\ \&other)\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDView_aa36026a1c222c33f72ddb79ed228136d}{elemenwise}}(other,\ std::divides<T>());\ \}}
\DoxyCodeLine{00098\ }
\DoxyCodeLine{00099\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView}{NDView}}\ \&\mbox{\hyperlink{classaare_1_1NDView_a8131bcea5ee6a9ed0f6e3832a3734dda}{operator=}}(\textcolor{keyword}{const}\ T\ val)\ \{}
\DoxyCodeLine{00100\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keyword}{auto}\ it\ =\ \mbox{\hyperlink{classaare_1_1NDView_ae83cfabd1885669ef03d17d2637d0842}{begin}}();\ it\ !=\ \mbox{\hyperlink{classaare_1_1NDView_a91833343d6c3fe58035e41ff68ab807e}{end}}();\ ++it)}
\DoxyCodeLine{00101\ \ \ \ \ \ \ \ \ \ \ \ \ *it\ =\ val;}
\DoxyCodeLine{00102\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};}
\DoxyCodeLine{00103\ \ \ \ \ \}}
\DoxyCodeLine{00104\ }
\DoxyCodeLine{00105\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView}{NDView}}\ \&\mbox{\hyperlink{classaare_1_1NDView_a1bfb67419c1ab347038b5afa9f556bb4}{operator=}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDView}{NDView}}\ \&other)\ \{}
\DoxyCodeLine{00106\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView_a1ebe6ccd25a47781e2bc9f1365b1f2ba}{shape\_}}\ =\ other.\mbox{\hyperlink{classaare_1_1NDView_a1ebe6ccd25a47781e2bc9f1365b1f2ba}{shape\_}};}
\DoxyCodeLine{00107\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView_a32ff10f10d0efcdc0abb9d1f2121d505}{strides\_}}\ =\ other.\mbox{\hyperlink{classaare_1_1NDView_a32ff10f10d0efcdc0abb9d1f2121d505}{strides\_}};}
\DoxyCodeLine{00108\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView_a53af97aeef3fb68f82b5913c4fa99fa7}{size\_}}\ =\ other.\mbox{\hyperlink{classaare_1_1NDView_a53af97aeef3fb68f82b5913c4fa99fa7}{size\_}};}
\DoxyCodeLine{00109\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView_aaedcfb2c15d7335aae5f75646d182732}{buffer\_}}\ =\ other.\mbox{\hyperlink{classaare_1_1NDView_aaedcfb2c15d7335aae5f75646d182732}{buffer\_}};}
\DoxyCodeLine{00110\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};}
\DoxyCodeLine{00111\ \ \ \ \ \}}
\DoxyCodeLine{00112\ \ \ \ \ \textcolor{keyword}{auto}\ \&\mbox{\hyperlink{classaare_1_1NDView_a273904b889c29e2ce253da3f920db1c1}{shape}}()\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDView_a1ebe6ccd25a47781e2bc9f1365b1f2ba}{shape\_}};\ \}}
\DoxyCodeLine{00113\ \ \ \ \ \textcolor{keyword}{auto}\ \mbox{\hyperlink{classaare_1_1NDView_accf33eba4264f201ffd06cab26b60f3c}{shape}}(ssize\_t\ i)\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDView_a1ebe6ccd25a47781e2bc9f1365b1f2ba}{shape\_}}[i];\ \}}
\DoxyCodeLine{00114\ }
\DoxyCodeLine{00115\ \ \ \ \ T\ *\mbox{\hyperlink{classaare_1_1NDView_a265ec46d178b53d164d0634f61c51030}{data}}()\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDView_aaedcfb2c15d7335aae5f75646d182732}{buffer\_}};\ \}}
\DoxyCodeLine{00116\ }
\DoxyCodeLine{00117\ \ \ \textcolor{keyword}{private}:}
\DoxyCodeLine{00118\ \ \ \ \ T\ *\mbox{\hyperlink{classaare_1_1NDView_aaedcfb2c15d7335aae5f75646d182732}{buffer\_}}\{\textcolor{keyword}{nullptr}\};}
\DoxyCodeLine{00119\ \ \ \ \ std::array<ssize\_t,\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDView_a32ff10f10d0efcdc0abb9d1f2121d505}{strides\_}}\{\};}
\DoxyCodeLine{00120\ \ \ \ \ std::array<ssize\_t,\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDView_a1ebe6ccd25a47781e2bc9f1365b1f2ba}{shape\_}}\{\};}
\DoxyCodeLine{00121\ \ \ \ \ ssize\_t\ \mbox{\hyperlink{classaare_1_1NDView_a53af97aeef3fb68f82b5913c4fa99fa7}{size\_}}\{\};}
\DoxyCodeLine{00122\ }
\DoxyCodeLine{00123\ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{class}\ BinaryOperation>\ \mbox{\hyperlink{classaare_1_1NDView}{NDView}}\ \&\mbox{\hyperlink{classaare_1_1NDView_aa36026a1c222c33f72ddb79ed228136d}{elemenwise}}(T\ val,\ BinaryOperation\ op)\ \{}
\DoxyCodeLine{00124\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (ssize\_t\ i\ =\ 0;\ i\ !=\ \mbox{\hyperlink{classaare_1_1NDView_a53af97aeef3fb68f82b5913c4fa99fa7}{size\_}};\ ++i)\ \{}
\DoxyCodeLine{00125\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView_aaedcfb2c15d7335aae5f75646d182732}{buffer\_}}[i]\ =\ op(\mbox{\hyperlink{classaare_1_1NDView_aaedcfb2c15d7335aae5f75646d182732}{buffer\_}}[i],\ val);}
\DoxyCodeLine{00126\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00127\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};}
\DoxyCodeLine{00128\ \ \ \ \ \}}
\DoxyCodeLine{00129\ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{class}\ BinaryOperation>\ \mbox{\hyperlink{classaare_1_1NDView}{NDView}}\ \&\mbox{\hyperlink{classaare_1_1NDView_acae51d9008a98daeb40e4779cf2e6053}{elemenwise}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDView}{NDView}}\ \&other,\ BinaryOperation\ op)\ \{}
\DoxyCodeLine{00130\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (ssize\_t\ i\ =\ 0;\ i\ !=\ \mbox{\hyperlink{classaare_1_1NDView_a53af97aeef3fb68f82b5913c4fa99fa7}{size\_}};\ ++i)\ \{}
\DoxyCodeLine{00131\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView_aaedcfb2c15d7335aae5f75646d182732}{buffer\_}}[i]\ =\ op(\mbox{\hyperlink{classaare_1_1NDView_aaedcfb2c15d7335aae5f75646d182732}{buffer\_}}[i],\ other.\mbox{\hyperlink{classaare_1_1NDView_aaedcfb2c15d7335aae5f75646d182732}{buffer\_}}[i]);}
\DoxyCodeLine{00132\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00133\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};}
\DoxyCodeLine{00134\ \ \ \ \ \}}
\DoxyCodeLine{00135\ \};}
\DoxyCodeLine{00136\ }
\DoxyCodeLine{00137\ \textcolor{keyword}{template}\ \textcolor{keyword}{class\ }NDView<uint16\_t,\ 2>;}
\DoxyCodeLine{00138\ }
\DoxyCodeLine{00139\ \}\ \textcolor{comment}{//\ namespace\ aare}}
\end{DoxyCode}

View File

@ -0,0 +1,100 @@
\doxysection{core/test/\+NDView.test.\+cpp File Reference}
\hypertarget{NDView_8test_8cpp}{}\label{NDView_8test_8cpp}\index{core/test/NDView.test.cpp@{core/test/NDView.test.cpp}}
{\ttfamily \#include \"{}aare/core/\+NDView.\+hpp\"{}}\newline
{\ttfamily \#include $<$catch2/catch\+\_\+test\+\_\+macros.\+hpp$>$}\newline
{\ttfamily \#include $<$iostream$>$}\newline
{\ttfamily \#include $<$vector$>$}\newline
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{NDView_8test_8cpp_af98d2fac2fb65802d26ef1da790a4bc2}{TEST\+\_\+\+CASE}} (\"{}Element reference 1D\"{})
\item
\mbox{\hyperlink{NDView_8test_8cpp_ad8cc8c292016f2c309f7b0a57b1d537f}{TEST\+\_\+\+CASE}} (\"{}Element reference 2D\"{})
\item
\mbox{\hyperlink{NDView_8test_8cpp_a6819aa0bdb98b157a5e807db1bd6638d}{TEST\+\_\+\+CASE}} (\"{}Element reference 3D\"{})
\item
\mbox{\hyperlink{NDView_8test_8cpp_aa395288bbc4fb5b8055b31121e085012}{TEST\+\_\+\+CASE}} (\"{}Plus and miuns with single value\"{})
\item
\mbox{\hyperlink{NDView_8test_8cpp_a56bc1074d4399729d00569a281c5bb93}{TEST\+\_\+\+CASE}} (\"{}Multiply and divide with single value\"{})
\item
\mbox{\hyperlink{NDView_8test_8cpp_a5840a6557832ca6f9e11ccb682c35ada}{TEST\+\_\+\+CASE}} (\"{}elementwise assign\"{})
\item
\mbox{\hyperlink{NDView_8test_8cpp_a9037188ae56d78863adce8315395f7ed}{TEST\+\_\+\+CASE}} (\"{}iterators\"{})
\item
\mbox{\hyperlink{NDView_8test_8cpp_aac4554b7c1d66846cfd86324c614f410}{TEST\+\_\+\+CASE}} (\"{}shape from vector\"{})
\item
\mbox{\hyperlink{NDView_8test_8cpp_a7fa47c0024c4b61a1625540718620238}{TEST\+\_\+\+CASE}} (\"{}divide with another span\"{})
\item
\mbox{\hyperlink{NDView_8test_8cpp_a3c186954c87760e33ac4e1114a1a485c}{TEST\+\_\+\+CASE}} (\"{}Retrieve shape\"{})
\item
\mbox{\hyperlink{NDView_8test_8cpp_a55f701238e22a9dc27b41f45e5e981b7}{TEST\+\_\+\+CASE}} (\"{}compare two views\"{})
\end{DoxyCompactItemize}
\doxysubsection{Function Documentation}
\Hypertarget{NDView_8test_8cpp_a55f701238e22a9dc27b41f45e5e981b7}\label{NDView_8test_8cpp_a55f701238e22a9dc27b41f45e5e981b7}
\index{NDView.test.cpp@{NDView.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NDView.test.cpp@{NDView.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [1/11]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}compare two views\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NDView_8test_8cpp_a7fa47c0024c4b61a1625540718620238}\label{NDView_8test_8cpp_a7fa47c0024c4b61a1625540718620238}
\index{NDView.test.cpp@{NDView.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NDView.test.cpp@{NDView.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [2/11]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}divide with another span\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NDView_8test_8cpp_af98d2fac2fb65802d26ef1da790a4bc2}\label{NDView_8test_8cpp_af98d2fac2fb65802d26ef1da790a4bc2}
\index{NDView.test.cpp@{NDView.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NDView.test.cpp@{NDView.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [3/11]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Element reference 1D\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NDView_8test_8cpp_ad8cc8c292016f2c309f7b0a57b1d537f}\label{NDView_8test_8cpp_ad8cc8c292016f2c309f7b0a57b1d537f}
\index{NDView.test.cpp@{NDView.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NDView.test.cpp@{NDView.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [4/11]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Element reference 2D\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NDView_8test_8cpp_a6819aa0bdb98b157a5e807db1bd6638d}\label{NDView_8test_8cpp_a6819aa0bdb98b157a5e807db1bd6638d}
\index{NDView.test.cpp@{NDView.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NDView.test.cpp@{NDView.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [5/11]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Element reference 3D\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NDView_8test_8cpp_a5840a6557832ca6f9e11ccb682c35ada}\label{NDView_8test_8cpp_a5840a6557832ca6f9e11ccb682c35ada}
\index{NDView.test.cpp@{NDView.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NDView.test.cpp@{NDView.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [6/11]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}elementwise assign\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NDView_8test_8cpp_a9037188ae56d78863adce8315395f7ed}\label{NDView_8test_8cpp_a9037188ae56d78863adce8315395f7ed}
\index{NDView.test.cpp@{NDView.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NDView.test.cpp@{NDView.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [7/11]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}iterators\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NDView_8test_8cpp_a56bc1074d4399729d00569a281c5bb93}\label{NDView_8test_8cpp_a56bc1074d4399729d00569a281c5bb93}
\index{NDView.test.cpp@{NDView.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NDView.test.cpp@{NDView.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [8/11]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Multiply and divide with single value\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NDView_8test_8cpp_aa395288bbc4fb5b8055b31121e085012}\label{NDView_8test_8cpp_aa395288bbc4fb5b8055b31121e085012}
\index{NDView.test.cpp@{NDView.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NDView.test.cpp@{NDView.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [9/11]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Plus and miuns with single value\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NDView_8test_8cpp_a3c186954c87760e33ac4e1114a1a485c}\label{NDView_8test_8cpp_a3c186954c87760e33ac4e1114a1a485c}
\index{NDView.test.cpp@{NDView.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NDView.test.cpp@{NDView.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [10/11]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Retrieve shape\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NDView_8test_8cpp_aac4554b7c1d66846cfd86324c614f410}\label{NDView_8test_8cpp_aac4554b7c1d66846cfd86324c614f410}
\index{NDView.test.cpp@{NDView.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NDView.test.cpp@{NDView.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [11/11]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}shape from vector\"{}}]{ }\end{DoxyParamCaption})}

View File

@ -0,0 +1,9 @@
\doxysection{file\+\_\+io/src/\+Numpy\+File.cpp File Reference}
\hypertarget{NumpyFile_8cpp}{}\label{NumpyFile_8cpp}\index{file\_io/src/NumpyFile.cpp@{file\_io/src/NumpyFile.cpp}}
{\ttfamily \#include \"{}aare/file\+\_\+io/\+Numpy\+File.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/utils/logger.\+hpp\"{}}\newline
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\end{DoxyCompactItemize}

View File

@ -0,0 +1,19 @@
\doxysection{file\+\_\+io/include/aare/file\+\_\+io/\+Numpy\+File.hpp File Reference}
\hypertarget{NumpyFile_8hpp}{}\label{NumpyFile_8hpp}\index{file\_io/include/aare/file\_io/NumpyFile.hpp@{file\_io/include/aare/file\_io/NumpyFile.hpp}}
{\ttfamily \#include \"{}aare/core/\+DType.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/core/defs.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/file\+\_\+io/\+File\+Interface.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/file\+\_\+io/\+Numpy\+Helpers.\+hpp\"{}}\newline
{\ttfamily \#include $<$filesystem$>$}\newline
{\ttfamily \#include $<$iostream$>$}\newline
{\ttfamily \#include $<$numeric$>$}\newline
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item
class \mbox{\hyperlink{classaare_1_1NumpyFile}{aare\+::\+Numpy\+File}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1NumpyFile}{Numpy\+File} class to read and write numpy files. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\end{DoxyCompactItemize}

View File

@ -0,0 +1,68 @@
\doxysection{Numpy\+File.\+hpp}
\hypertarget{NumpyFile_8hpp_source}{}\label{NumpyFile_8hpp_source}\index{file\_io/include/aare/file\_io/NumpyFile.hpp@{file\_io/include/aare/file\_io/NumpyFile.hpp}}
\mbox{\hyperlink{NumpyFile_8hpp}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#pragma\ once}}
\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{DType_8hpp}{aare/core/DType.hpp}}"{}}}
\DoxyCodeLine{00003\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{core_2include_2aare_2core_2defs_8hpp}{aare/core/defs.hpp}}"{}}}
\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{FileInterface_8hpp}{aare/file\_io/FileInterface.hpp}}"{}}}
\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{NumpyHelpers_8hpp}{aare/file\_io/NumpyHelpers.hpp}}"{}}}
\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ <filesystem>}}
\DoxyCodeLine{00007\ \textcolor{preprocessor}{\#include\ <iostream>}}
\DoxyCodeLine{00008\ \textcolor{preprocessor}{\#include\ <numeric>}}
\DoxyCodeLine{00009\ }
\DoxyCodeLine{00010\ \textcolor{keyword}{namespace\ }\mbox{\hyperlink{namespaceaare}{aare}}\ \{}
\DoxyCodeLine{00011\ }
\DoxyCodeLine{00018\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classaare_1_1NumpyFile}{NumpyFile}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classaare_1_1FileInterface}{FileInterface}}\ \{}
\DoxyCodeLine{00019\ }
\DoxyCodeLine{00020\ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{00027\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NumpyFile}{NumpyFile}}(\textcolor{keyword}{const}\ std::filesystem::path\ \&fname,\ \textcolor{keyword}{const}\ std::string\ \&mode\ =\ \textcolor{stringliteral}{"{}r"{}},\ \mbox{\hyperlink{structaare_1_1FileConfig}{FileConfig}}\ cfg\ =\ \{\});}
\DoxyCodeLine{00028\ }
\DoxyCodeLine{00029\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1NumpyFile_a12b0ddf6334dfab4ac0993cd9c45f738}{write}}(\mbox{\hyperlink{classaare_1_1Frame}{Frame}}\ \&frame)\ \textcolor{keyword}{override};}
\DoxyCodeLine{00030\ \ \ \ \ \mbox{\hyperlink{classaare_1_1Frame}{Frame}}\ \mbox{\hyperlink{classaare_1_1NumpyFile_a81e1a331ece6681bbfe9437e049d3b3a}{read}}()\textcolor{keyword}{\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NumpyFile_ac0e88af0f3793ef18302db5c503bd3d7}{get\_frame}}(this-\/>\mbox{\hyperlink{classaare_1_1NumpyFile_a080973acac90ab8e6d0552b282e2d73c}{current\_frame}}++);\ \}}
\DoxyCodeLine{00031\ }
\DoxyCodeLine{00032\ \ \ \ \ std::vector<Frame>\ \mbox{\hyperlink{classaare_1_1NumpyFile_a81e1a331ece6681bbfe9437e049d3b3a}{read}}(\textcolor{keywordtype}{size\_t}\ n\_frames)\ \textcolor{keyword}{override};}
\DoxyCodeLine{00033\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1NumpyFile_a8b25fc8fa2e0ab9e38b0388504d60962}{read\_into}}(std::byte\ *image\_buf)\textcolor{keyword}{\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NumpyFile_add05576e7b9256474c104553f0856c80}{get\_frame\_into}}(this-\/>\mbox{\hyperlink{classaare_1_1NumpyFile_a080973acac90ab8e6d0552b282e2d73c}{current\_frame}}++,\ image\_buf);\ \}}
\DoxyCodeLine{00034\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1NumpyFile_a8b25fc8fa2e0ab9e38b0388504d60962}{read\_into}}(std::byte\ *image\_buf,\ \textcolor{keywordtype}{size\_t}\ n\_frames)\ \textcolor{keyword}{override};}
\DoxyCodeLine{00035\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1NumpyFile_abe5817c47fa552b7d6de72a4b59d290a}{frame\_number}}(\textcolor{keywordtype}{size\_t}\ frame\_index)\textcolor{keyword}{\ override\ }\{\ \textcolor{keywordflow}{return}\ frame\_index;\ \};}
\DoxyCodeLine{00036\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1NumpyFile_a35c1b49a469ba8e261d4e675a816b5f2}{bytes\_per\_frame}}()\ \textcolor{keyword}{override};}
\DoxyCodeLine{00037\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1NumpyFile_a2a40aebcb9b25ad36f1ecd75699c47d0}{pixels}}()\ \textcolor{keyword}{override};}
\DoxyCodeLine{00038\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1NumpyFile_ae4f669f86fb614e446540638d8efe1b8}{seek}}(\textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1NumpyFile_abe5817c47fa552b7d6de72a4b59d290a}{frame\_number}})\textcolor{keyword}{\ override\ }\{\ this-\/>\mbox{\hyperlink{classaare_1_1NumpyFile_a080973acac90ab8e6d0552b282e2d73c}{current\_frame}}\ =\ \mbox{\hyperlink{classaare_1_1NumpyFile_abe5817c47fa552b7d6de72a4b59d290a}{frame\_number}};\ \}}
\DoxyCodeLine{00039\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1NumpyFile_a022af0b9d792abb00a9dc661beb3e9a2}{tell}}()\textcolor{keyword}{\ override\ }\{\ \textcolor{keywordflow}{return}\ this-\/>\mbox{\hyperlink{classaare_1_1NumpyFile_a080973acac90ab8e6d0552b282e2d73c}{current\_frame}};\ \}}
\DoxyCodeLine{00040\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1NumpyFile_afec228003225dcc91b16227d24c58d37}{total\_frames}}()\textcolor{keyword}{\ const\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NumpyFile_aa2d11ec505dc7c3b4918e194d24d00fe}{m\_header}}.\mbox{\hyperlink{structaare_1_1NumpyHeader_a9715508b7135198e1dd6d705ea189b99}{shape}}[0];\ \}}
\DoxyCodeLine{00041\ \ \ \ \ ssize\_t\ \mbox{\hyperlink{classaare_1_1NumpyFile_a24c0cad439c52b77886c862b8093b91a}{rows}}()\textcolor{keyword}{\ const\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NumpyFile_aa2d11ec505dc7c3b4918e194d24d00fe}{m\_header}}.\mbox{\hyperlink{structaare_1_1NumpyHeader_a9715508b7135198e1dd6d705ea189b99}{shape}}[1];\ \}}
\DoxyCodeLine{00042\ \ \ \ \ ssize\_t\ \mbox{\hyperlink{classaare_1_1NumpyFile_ae1558b1ab6fbea54f853cdfad9363d31}{cols}}()\textcolor{keyword}{\ const\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NumpyFile_aa2d11ec505dc7c3b4918e194d24d00fe}{m\_header}}.\mbox{\hyperlink{structaare_1_1NumpyHeader_a9715508b7135198e1dd6d705ea189b99}{shape}}[2];\ \}}
\DoxyCodeLine{00043\ \ \ \ \ ssize\_t\ \mbox{\hyperlink{classaare_1_1NumpyFile_afcdc40fcc15f5a3a470e23033ad1323c}{bitdepth}}()\textcolor{keyword}{\ const\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NumpyFile_aa2d11ec505dc7c3b4918e194d24d00fe}{m\_header}}.\mbox{\hyperlink{structaare_1_1NumpyHeader_a686bc8e00746ae1ea90c1cc64e1553b6}{dtype}}.\mbox{\hyperlink{classaare_1_1DType_ab097410b8d43b58061b1d64682ff8ac4}{bitdepth}}();\ \}}
\DoxyCodeLine{00044\ }
\DoxyCodeLine{00049\ \ \ \ \ \mbox{\hyperlink{classaare_1_1DType}{DType}}\ \mbox{\hyperlink{classaare_1_1NumpyFile_ae0f029f5e1c09875533962a9ee957a98}{dtype}}()\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NumpyFile_aa2d11ec505dc7c3b4918e194d24d00fe}{m\_header}}.\mbox{\hyperlink{structaare_1_1NumpyHeader_a686bc8e00746ae1ea90c1cc64e1553b6}{dtype}};\ \}}
\DoxyCodeLine{00050\ }
\DoxyCodeLine{00055\ \ \ \ \ std::vector<size\_t>\ \mbox{\hyperlink{classaare_1_1NumpyFile_a060d3bc922d3a759aabb3716e9c97791}{shape}}()\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NumpyFile_aa2d11ec505dc7c3b4918e194d24d00fe}{m\_header}}.\mbox{\hyperlink{structaare_1_1NumpyHeader_a9715508b7135198e1dd6d705ea189b99}{shape}};\ \}}
\DoxyCodeLine{00056\ }
\DoxyCodeLine{00063\ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ \textcolor{keywordtype}{size\_t}\ NDim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ NDim>}}\ \mbox{\hyperlink{classaare_1_1NumpyFile_ab16bb0e1a3c4d17b137c9c8708b9031c}{load}}()\ \{}
\DoxyCodeLine{00064\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<T,\ NDim>}}\ arr(make\_shape<NDim>(\mbox{\hyperlink{classaare_1_1NumpyFile_aa2d11ec505dc7c3b4918e194d24d00fe}{m\_header}}.\mbox{\hyperlink{structaare_1_1NumpyHeader_a9715508b7135198e1dd6d705ea189b99}{shape}}));}
\DoxyCodeLine{00065\ \ \ \ \ \ \ \ \ fseek(\mbox{\hyperlink{classaare_1_1NumpyFile_a1b3f50636674e919e54b7d61e11ed03a}{fp}},\ \mbox{\hyperlink{classaare_1_1NumpyFile_a5aed02e400e44d7fbc5356365f421c5b}{header\_size}},\ SEEK\_SET);}
\DoxyCodeLine{00066\ \ \ \ \ \ \ \ \ fread(arr.data(),\ \textcolor{keyword}{sizeof}(T),\ arr.size(),\ \mbox{\hyperlink{classaare_1_1NumpyFile_a1b3f50636674e919e54b7d61e11ed03a}{fp}});}
\DoxyCodeLine{00067\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ arr;}
\DoxyCodeLine{00068\ \ \ \ \ \}}
\DoxyCodeLine{00069\ }
\DoxyCodeLine{00070\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NumpyFile_af8d6ace67f7880e6b2cd12da568fbead}{\string~NumpyFile}}();}
\DoxyCodeLine{00071\ }
\DoxyCodeLine{00072\ \ \ \textcolor{keyword}{private}:}
\DoxyCodeLine{00073\ \ \ \ \ FILE\ *\mbox{\hyperlink{classaare_1_1NumpyFile_a1b3f50636674e919e54b7d61e11ed03a}{fp}}\ =\ \textcolor{keyword}{nullptr};}
\DoxyCodeLine{00074\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1NumpyFile_a85400183bf0f1fdc43fd9a37e3f10a2d}{initial\_header\_len}}\ =\ 0;}
\DoxyCodeLine{00075\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1NumpyFile_a080973acac90ab8e6d0552b282e2d73c}{current\_frame}}\{\};}
\DoxyCodeLine{00076\ \ \ \ \ uint32\_t\ \mbox{\hyperlink{classaare_1_1NumpyFile_aff59772a6f221edd2606e483ef4ed8ee}{header\_len}}\{\};}
\DoxyCodeLine{00077\ \ \ \ \ uint8\_t\ \mbox{\hyperlink{classaare_1_1NumpyFile_a50d19cf61c165c609c1b707abbe13cbd}{header\_len\_size}}\{\};}
\DoxyCodeLine{00078\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1NumpyFile_a5aed02e400e44d7fbc5356365f421c5b}{header\_size}}\{\};}
\DoxyCodeLine{00079\ \ \ \ \ \mbox{\hyperlink{structaare_1_1NumpyHeader}{NumpyHeader}}\ \mbox{\hyperlink{classaare_1_1NumpyFile_aa2d11ec505dc7c3b4918e194d24d00fe}{m\_header}};}
\DoxyCodeLine{00080\ \ \ \ \ uint8\_t\ \mbox{\hyperlink{classaare_1_1NumpyFile_a58feea4735fdf9599d810427785266ea}{major\_ver\_}}\{\};}
\DoxyCodeLine{00081\ \ \ \ \ uint8\_t\ \mbox{\hyperlink{classaare_1_1NumpyFile_a2ca45b371f1c56e6b74eaca1852c5ffc}{minor\_ver\_}}\{\};}
\DoxyCodeLine{00082\ }
\DoxyCodeLine{00083\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1NumpyFile_a1c4bfd5eefa5ac19ecf2aa96c0dbdae3}{load\_metadata}}();}
\DoxyCodeLine{00084\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1NumpyFile_add05576e7b9256474c104553f0856c80}{get\_frame\_into}}(\textcolor{keywordtype}{size\_t},\ std::byte\ *);}
\DoxyCodeLine{00085\ \ \ \ \ \mbox{\hyperlink{classaare_1_1Frame}{Frame}}\ \mbox{\hyperlink{classaare_1_1NumpyFile_ac0e88af0f3793ef18302db5c503bd3d7}{get\_frame}}(\textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1NumpyFile_abe5817c47fa552b7d6de72a4b59d290a}{frame\_number}});}
\DoxyCodeLine{00086\ \};}
\DoxyCodeLine{00087\ }
\DoxyCodeLine{00088\ \}\ \textcolor{comment}{//\ namespace\ aare}}
\end{DoxyCode}

View File

@ -0,0 +1,28 @@
\doxysection{file\+\_\+io/test/\+Numpy\+File.test.\+cpp File Reference}
\hypertarget{NumpyFile_8test_8cpp}{}\label{NumpyFile_8test_8cpp}\index{file\_io/test/NumpyFile.test.cpp@{file\_io/test/NumpyFile.test.cpp}}
{\ttfamily \#include \"{}aare/file\+\_\+io/\+Numpy\+File.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/core/\+NDArray.\+hpp\"{}}\newline
{\ttfamily \#include $<$catch2/catch\+\_\+test\+\_\+macros.\+hpp$>$}\newline
{\ttfamily \#include \"{}test\+\_\+config.\+hpp\"{}}\newline
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{NumpyFile_8test_8cpp_a2072a51407faa0b85a69cbd78175624a}{TEST\+\_\+\+CASE}} (\"{}Read a 1D numpy file with int32 data type\"{})
\item
\mbox{\hyperlink{NumpyFile_8test_8cpp_adb3b054169e2943eb2b5c92944fec306}{TEST\+\_\+\+CASE}} (\"{}Read a 3D numpy file with np.\+double data type\"{})
\end{DoxyCompactItemize}
\doxysubsection{Function Documentation}
\Hypertarget{NumpyFile_8test_8cpp_a2072a51407faa0b85a69cbd78175624a}\label{NumpyFile_8test_8cpp_a2072a51407faa0b85a69cbd78175624a}
\index{NumpyFile.test.cpp@{NumpyFile.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NumpyFile.test.cpp@{NumpyFile.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Read a 1D numpy file with int32 data type\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NumpyFile_8test_8cpp_adb3b054169e2943eb2b5c92944fec306}\label{NumpyFile_8test_8cpp_adb3b054169e2943eb2b5c92944fec306}
\index{NumpyFile.test.cpp@{NumpyFile.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NumpyFile.test.cpp@{NumpyFile.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Read a 3D numpy file with np.\+double data type\"{}}]{ }\end{DoxyParamCaption})}

View File

@ -0,0 +1,42 @@
\doxysection{file\+\_\+io/src/\+Numpy\+Helpers.cpp File Reference}
\hypertarget{NumpyHelpers_8cpp}{}\label{NumpyHelpers_8cpp}\index{file\_io/src/NumpyHelpers.cpp@{file\_io/src/NumpyHelpers.cpp}}
{\ttfamily \#include \"{}aare/file\+\_\+io/\+Numpy\+Helpers.\+hpp\"{}}\newline
{\ttfamily \#include $<$iterator$>$}\newline
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\item
namespace \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers}{aare\+::\+Numpy\+Helpers}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item
std\+::unordered\+\_\+map$<$ std\+::string, std\+::string $>$ \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a612ac2a0ff0b43984c52ce029c117ba7}{aare\+::\+Numpy\+Helpers\+::parse\+\_\+dict}} (std\+::string in, const std\+::vector$<$ std\+::string $>$ \&keys)
\item
\mbox{\hyperlink{classaare_1_1DType}{aare\+::\+DType}} \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a39261feb19103c64004ca045459da925}{aare\+::\+Numpy\+Helpers\+::parse\+\_\+descr}} (std\+::string typestring)
\item
bool \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a3da52716c32667b0ff22719fbb2839b5}{aare\+::\+Numpy\+Helpers\+::parse\+\_\+bool}} (const std\+::string \&in)
\item
std\+::string \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a1acfb66f71009f5851109a5619b7754d}{aare\+::\+Numpy\+Helpers\+::get\+\_\+value\+\_\+from\+\_\+map}} (const std\+::string \&mapstr)
\item
bool \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a28fa68ac0d5fb557251fa01325d4ccea}{aare\+::\+Numpy\+Helpers\+::is\+\_\+digits}} (const std\+::string \&str)
\item
std\+::vector$<$ std\+::string $>$ \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a315ba7a4dd89b5098e9110566f08edcc}{aare\+::\+Numpy\+Helpers\+::parse\+\_\+tuple}} (std\+::string in)
\item
std\+::string \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a3c864e2c24ee9158c9ead124049259f6}{aare\+::\+Numpy\+Helpers\+::trim}} (const std\+::string \&str)
\item
std\+::string \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_ab7b89887eba4e7b8e6ab0d2d44551050}{aare\+::\+Numpy\+Helpers\+::parse\+\_\+str}} (const std\+::string \&in)
\item
void \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_aee29f94dded675a486808b89a759531f}{aare\+::\+Numpy\+Helpers\+::write\+\_\+magic}} (std\+::ostream \&ostream, int version\+\_\+major, int version\+\_\+minor)
\item
{\footnotesize template$<$typename T $>$ }\\std\+::string \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a3d35c45544f1451e197f10743d40b31f}{aare\+::\+Numpy\+Helpers\+::write\+\_\+tuple}} (const std\+::vector$<$ T $>$ \&v)
\item
std\+::string \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a8a90de70594a009cdcb5130d222977b3}{aare\+::\+Numpy\+Helpers\+::write\+\_\+boolean}} (bool b)
\item
std\+::string \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_aca8a97cafedd5652f22aa51e07c0c31b}{aare\+::\+Numpy\+Helpers\+::write\+\_\+header\+\_\+dict}} (const std\+::string \&descr, bool fortran\+\_\+order, const \mbox{\hyperlink{namespaceaare_a7caab4efdc1e33ee28f8de9056bbec6c}{shape\+\_\+t}} \&shape)
\item
size\+\_\+t \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a01a4b858752f6d232279b19968fb483b}{aare\+::\+Numpy\+Helpers\+::write\+\_\+header}} (std\+::filesystem\+::path fname, const \mbox{\hyperlink{structaare_1_1NumpyHeader}{Numpy\+Header}} \&header)
\item
size\+\_\+t \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a01b81d87c6a7e13417733e25997f38cf}{aare\+::\+Numpy\+Helpers\+::write\+\_\+header}} (std\+::ostream \&out, const \mbox{\hyperlink{structaare_1_1NumpyHeader}{Numpy\+Header}} \&header)
\end{DoxyCompactItemize}

View File

@ -0,0 +1,63 @@
\doxysection{file\+\_\+io/include/aare/file\+\_\+io/\+Numpy\+Helpers.hpp File Reference}
\hypertarget{NumpyHelpers_8hpp}{}\label{NumpyHelpers_8hpp}\index{file\_io/include/aare/file\_io/NumpyHelpers.hpp@{file\_io/include/aare/file\_io/NumpyHelpers.hpp}}
{\ttfamily \#include $<$algorithm$>$}\newline
{\ttfamily \#include $<$array$>$}\newline
{\ttfamily \#include $<$filesystem$>$}\newline
{\ttfamily \#include $<$fstream$>$}\newline
{\ttfamily \#include $<$iostream$>$}\newline
{\ttfamily \#include $<$numeric$>$}\newline
{\ttfamily \#include $<$sstream$>$}\newline
{\ttfamily \#include $<$string$>$}\newline
{\ttfamily \#include $<$unordered\+\_\+map$>$}\newline
{\ttfamily \#include $<$vector$>$}\newline
{\ttfamily \#include \"{}aare/core/\+DType.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/core/defs.\+hpp\"{}}\newline
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item
struct \mbox{\hyperlink{structaare_1_1NumpyHeader}{aare\+::\+Numpy\+Header}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\item
namespace \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers}{aare\+::\+Numpy\+Helpers}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item
using \mbox{\hyperlink{namespaceaare_a7caab4efdc1e33ee28f8de9056bbec6c}{aare\+::shape\+\_\+t}} = std\+::vector$<$ size\+\_\+t $>$
\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item
std\+::string \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_ab7b89887eba4e7b8e6ab0d2d44551050}{aare\+::\+Numpy\+Helpers\+::parse\+\_\+str}} (const std\+::string \&in)
\item
std\+::string \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a3c864e2c24ee9158c9ead124049259f6}{aare\+::\+Numpy\+Helpers\+::trim}} (const std\+::string \&str)
\item
std\+::vector$<$ std\+::string $>$ \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a315ba7a4dd89b5098e9110566f08edcc}{aare\+::\+Numpy\+Helpers\+::parse\+\_\+tuple}} (std\+::string in)
\item
bool \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a3da52716c32667b0ff22719fbb2839b5}{aare\+::\+Numpy\+Helpers\+::parse\+\_\+bool}} (const std\+::string \&in)
\item
std\+::string \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a1acfb66f71009f5851109a5619b7754d}{aare\+::\+Numpy\+Helpers\+::get\+\_\+value\+\_\+from\+\_\+map}} (const std\+::string \&mapstr)
\item
std\+::unordered\+\_\+map$<$ std\+::string, std\+::string $>$ \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a612ac2a0ff0b43984c52ce029c117ba7}{aare\+::\+Numpy\+Helpers\+::parse\+\_\+dict}} (std\+::string in, const std\+::vector$<$ std\+::string $>$ \&keys)
\item
{\footnotesize template$<$typename T , size\+\_\+t N$>$ }\\bool \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_ab6caf7f9849fab03a058c5e2ee823b39}{aare\+::\+Numpy\+Helpers\+::in\+\_\+array}} (T val, const std\+::array$<$ T, N $>$ \&arr)
\item
bool \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a28fa68ac0d5fb557251fa01325d4ccea}{aare\+::\+Numpy\+Helpers\+::is\+\_\+digits}} (const std\+::string \&str)
\item
\mbox{\hyperlink{classaare_1_1DType}{aare\+::\+DType}} \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a39261feb19103c64004ca045459da925}{aare\+::\+Numpy\+Helpers\+::parse\+\_\+descr}} (std\+::string typestring)
\item
size\+\_\+t \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a01a4b858752f6d232279b19968fb483b}{aare\+::\+Numpy\+Helpers\+::write\+\_\+header}} (std\+::filesystem\+::path fname, const \mbox{\hyperlink{structaare_1_1NumpyHeader}{Numpy\+Header}} \&header)
\item
size\+\_\+t \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a01b81d87c6a7e13417733e25997f38cf}{aare\+::\+Numpy\+Helpers\+::write\+\_\+header}} (std\+::ostream \&out, const \mbox{\hyperlink{structaare_1_1NumpyHeader}{Numpy\+Header}} \&header)
\end{DoxyCompactItemize}
\doxysubsubsection*{Variables}
\begin{DoxyCompactItemize}
\item
const constexpr std\+::array$<$ char, 6 $>$ \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a6767da0d34b753d6f330ba33bbc0a1a8}{aare\+::\+Numpy\+Helpers\+::magic\+\_\+str}} \{\textquotesingle{}\textbackslash{}x93\textquotesingle{}, \textquotesingle{}N\textquotesingle{}, \textquotesingle{}U\textquotesingle{}, \textquotesingle{}M\textquotesingle{}, \textquotesingle{}P\textquotesingle{}, \textquotesingle{}Y\textquotesingle{}\}
\item
const uint8\+\_\+t \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_aef6d0c7df7895501f385397d7d706dea}{aare\+::\+Numpy\+Helpers\+::magic\+\_\+string\+\_\+length}} \{6\}
\end{DoxyCompactItemize}

View File

@ -0,0 +1,61 @@
\doxysection{Numpy\+Helpers.\+hpp}
\hypertarget{NumpyHelpers_8hpp_source}{}\label{NumpyHelpers_8hpp_source}\index{file\_io/include/aare/file\_io/NumpyHelpers.hpp@{file\_io/include/aare/file\_io/NumpyHelpers.hpp}}
\mbox{\hyperlink{NumpyHelpers_8hpp}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ }
\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#pragma\ once}}
\DoxyCodeLine{00003\ \textcolor{preprocessor}{\#include\ <algorithm>}}
\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ <array>}}
\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ <filesystem>}}
\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ <fstream>}}
\DoxyCodeLine{00007\ \textcolor{preprocessor}{\#include\ <iostream>}}
\DoxyCodeLine{00008\ \textcolor{preprocessor}{\#include\ <numeric>}}
\DoxyCodeLine{00009\ \textcolor{preprocessor}{\#include\ <sstream>}}
\DoxyCodeLine{00010\ \textcolor{preprocessor}{\#include\ <string>}}
\DoxyCodeLine{00011\ \textcolor{preprocessor}{\#include\ <unordered\_map>}}
\DoxyCodeLine{00012\ \textcolor{preprocessor}{\#include\ <vector>}}
\DoxyCodeLine{00013\ }
\DoxyCodeLine{00014\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{DType_8hpp}{aare/core/DType.hpp}}"{}}}
\DoxyCodeLine{00015\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{core_2include_2aare_2core_2defs_8hpp}{aare/core/defs.hpp}}"{}}}
\DoxyCodeLine{00016\ }
\DoxyCodeLine{00017\ \textcolor{keyword}{namespace\ }\mbox{\hyperlink{namespaceaare}{aare}}\ \{}
\DoxyCodeLine{00018\ }
\DoxyCodeLine{00019\ \textcolor{keyword}{using\ }\mbox{\hyperlink{namespaceaare_a7caab4efdc1e33ee28f8de9056bbec6c}{shape\_t}}\ =\ std::vector<size\_t>;}
\DoxyCodeLine{00020\ }
\DoxyCodeLine{00021\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structaare_1_1NumpyHeader}{NumpyHeader}}\ \{}
\DoxyCodeLine{00022\ \ \ \ \ \mbox{\hyperlink{classaare_1_1DType}{DType}}\ \mbox{\hyperlink{structaare_1_1NumpyHeader_a686bc8e00746ae1ea90c1cc64e1553b6}{dtype}}\{\mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca31f898431fe733a5154366a0eedbf1e9}{aare::DType::ERROR}}\};}
\DoxyCodeLine{00023\ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{structaare_1_1NumpyHeader_a01595519f88afd1eabca41e5eb35020a}{fortran\_order}}\{\textcolor{keyword}{false}\};}
\DoxyCodeLine{00024\ \ \ \ \ \mbox{\hyperlink{namespaceaare_a7caab4efdc1e33ee28f8de9056bbec6c}{shape\_t}}\ \mbox{\hyperlink{structaare_1_1NumpyHeader_a9715508b7135198e1dd6d705ea189b99}{shape}}\{\};}
\DoxyCodeLine{00025\ }
\DoxyCodeLine{00026\ \ \ \ \ std::string\ \mbox{\hyperlink{structaare_1_1NumpyHeader_a15557f321068a0e6449f1ca5e5cf7d07}{to\_string}}()\ \textcolor{keyword}{const};}
\DoxyCodeLine{00027\ \};}
\DoxyCodeLine{00028\ }
\DoxyCodeLine{00029\ \textcolor{keyword}{namespace\ }NumpyHelpers\ \{}
\DoxyCodeLine{00030\ }
\DoxyCodeLine{00031\ \textcolor{keyword}{const}\ \textcolor{keyword}{constexpr}\ std::array<char,\ 6>\ \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a6767da0d34b753d6f330ba33bbc0a1a8}{magic\_str}}\{\textcolor{stringliteral}{'\(\backslash\)x93'},\ \textcolor{charliteral}{'N'},\ \textcolor{charliteral}{'U'},\ \textcolor{charliteral}{'M'},\ \textcolor{charliteral}{'P'},\ \textcolor{charliteral}{'Y'}\};}
\DoxyCodeLine{00032\ \textcolor{keyword}{const}\ uint8\_t\ \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_aef6d0c7df7895501f385397d7d706dea}{magic\_string\_length}}\{6\};}
\DoxyCodeLine{00033\ }
\DoxyCodeLine{00034\ std::string\ \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_ab7b89887eba4e7b8e6ab0d2d44551050}{parse\_str}}(\textcolor{keyword}{const}\ std::string\ \&in);}
\DoxyCodeLine{00038\ std::string\ \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a3c864e2c24ee9158c9ead124049259f6}{trim}}(\textcolor{keyword}{const}\ std::string\ \&str);}
\DoxyCodeLine{00039\ }
\DoxyCodeLine{00040\ std::vector<std::string>\ \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a315ba7a4dd89b5098e9110566f08edcc}{parse\_tuple}}(std::string\ in);}
\DoxyCodeLine{00041\ }
\DoxyCodeLine{00042\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a3da52716c32667b0ff22719fbb2839b5}{parse\_bool}}(\textcolor{keyword}{const}\ std::string\ \&in);}
\DoxyCodeLine{00043\ }
\DoxyCodeLine{00044\ std::string\ \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a1acfb66f71009f5851109a5619b7754d}{get\_value\_from\_map}}(\textcolor{keyword}{const}\ std::string\ \&mapstr);}
\DoxyCodeLine{00045\ }
\DoxyCodeLine{00046\ std::unordered\_map<std::string,\ std::string>\ \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a612ac2a0ff0b43984c52ce029c117ba7}{parse\_dict}}(std::string\ in,\ \textcolor{keyword}{const}\ std::vector<std::string>\ \&keys);}
\DoxyCodeLine{00047\ }
\DoxyCodeLine{00048\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ \textcolor{keywordtype}{size\_t}\ N>\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_ab6caf7f9849fab03a058c5e2ee823b39}{in\_array}}(T\ val,\ \textcolor{keyword}{const}\ std::array<T,\ N>\ \&arr)\ \{}
\DoxyCodeLine{00049\ \ \ \ \ \textcolor{keywordflow}{return}\ std::find(std::begin(arr),\ std::end(arr),\ val)\ !=\ std::end(arr);}
\DoxyCodeLine{00050\ \}}
\DoxyCodeLine{00051\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a28fa68ac0d5fb557251fa01325d4ccea}{is\_digits}}(\textcolor{keyword}{const}\ std::string\ \&str);}
\DoxyCodeLine{00052\ }
\DoxyCodeLine{00053\ \mbox{\hyperlink{classaare_1_1DType}{aare::DType}}\ \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a39261feb19103c64004ca045459da925}{parse\_descr}}(std::string\ typestring);}
\DoxyCodeLine{00054\ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a01a4b858752f6d232279b19968fb483b}{write\_header}}(std::filesystem::path\ fname,\ \textcolor{keyword}{const}\ \mbox{\hyperlink{structaare_1_1NumpyHeader}{NumpyHeader}}\ \&header);}
\DoxyCodeLine{00055\ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{namespaceaare_1_1NumpyHelpers_a01a4b858752f6d232279b19968fb483b}{write\_header}}(std::ostream\ \&out,\ \textcolor{keyword}{const}\ \mbox{\hyperlink{structaare_1_1NumpyHeader}{NumpyHeader}}\ \&header);}
\DoxyCodeLine{00056\ }
\DoxyCodeLine{00057\ \}\ \textcolor{comment}{//\ namespace\ NumpyHelpers}}
\DoxyCodeLine{00058\ \}\ \textcolor{comment}{//\ namespace\ aare}}
\end{DoxyCode}

View File

@ -0,0 +1,66 @@
\doxysection{file\+\_\+io/test/\+Numpy\+Helpers.test.\+cpp File Reference}
\hypertarget{NumpyHelpers_8test_8cpp}{}\label{NumpyHelpers_8test_8cpp}\index{file\_io/test/NumpyHelpers.test.cpp@{file\_io/test/NumpyHelpers.test.cpp}}
{\ttfamily \#include \"{}aare/file\+\_\+io/\+Numpy\+Helpers.\+hpp\"{}}\newline
{\ttfamily \#include $<$catch2/catch\+\_\+test\+\_\+macros.\+hpp$>$}\newline
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{NumpyHelpers_8test_8cpp_a06b6252d8aa8aa99fafe6c587f96b92d}{TEST\+\_\+\+CASE}} (\"{}is\+\_\+digits with a few standard cases\"{})
\item
\mbox{\hyperlink{NumpyHelpers_8test_8cpp_ac02934899c351a0dacd549bfd4917e36}{TEST\+\_\+\+CASE}} (\"{}Check for quotes and return stripped string\"{})
\item
\mbox{\hyperlink{NumpyHelpers_8test_8cpp_a348e56242da1086385ba97b6373769eb}{TEST\+\_\+\+CASE}} (\"{}parsing a string without quotes throws\"{})
\item
\mbox{\hyperlink{NumpyHelpers_8test_8cpp_a7fb54d287f25be65178273ae927c8c94}{TEST\+\_\+\+CASE}} (\"{}trim whitespace\"{})
\item
\mbox{\hyperlink{NumpyHelpers_8test_8cpp_a93e21ac03230caeafe527ffb55964f9d}{TEST\+\_\+\+CASE}} (\"{}parse data type descriptions\"{})
\item
\mbox{\hyperlink{NumpyHelpers_8test_8cpp_ab109dd0acdb045a2cafa6f129ceb211c}{TEST\+\_\+\+CASE}} (\"{}is element in array\"{})
\item
\mbox{\hyperlink{NumpyHelpers_8test_8cpp_a49edbe939d9ed6b2ef2575c10cdbca56}{TEST\+\_\+\+CASE}} (\"{}Parse numpy dict\"{})
\end{DoxyCompactItemize}
\doxysubsection{Function Documentation}
\Hypertarget{NumpyHelpers_8test_8cpp_ac02934899c351a0dacd549bfd4917e36}\label{NumpyHelpers_8test_8cpp_ac02934899c351a0dacd549bfd4917e36}
\index{NumpyHelpers.test.cpp@{NumpyHelpers.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NumpyHelpers.test.cpp@{NumpyHelpers.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [1/7]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Check for quotes and return stripped string\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NumpyHelpers_8test_8cpp_ab109dd0acdb045a2cafa6f129ceb211c}\label{NumpyHelpers_8test_8cpp_ab109dd0acdb045a2cafa6f129ceb211c}
\index{NumpyHelpers.test.cpp@{NumpyHelpers.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NumpyHelpers.test.cpp@{NumpyHelpers.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [2/7]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}is element in array\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NumpyHelpers_8test_8cpp_a06b6252d8aa8aa99fafe6c587f96b92d}\label{NumpyHelpers_8test_8cpp_a06b6252d8aa8aa99fafe6c587f96b92d}
\index{NumpyHelpers.test.cpp@{NumpyHelpers.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NumpyHelpers.test.cpp@{NumpyHelpers.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [3/7]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}is\+\_\+digits with a few standard cases\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NumpyHelpers_8test_8cpp_a93e21ac03230caeafe527ffb55964f9d}\label{NumpyHelpers_8test_8cpp_a93e21ac03230caeafe527ffb55964f9d}
\index{NumpyHelpers.test.cpp@{NumpyHelpers.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NumpyHelpers.test.cpp@{NumpyHelpers.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [4/7]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}parse data type descriptions\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NumpyHelpers_8test_8cpp_a49edbe939d9ed6b2ef2575c10cdbca56}\label{NumpyHelpers_8test_8cpp_a49edbe939d9ed6b2ef2575c10cdbca56}
\index{NumpyHelpers.test.cpp@{NumpyHelpers.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NumpyHelpers.test.cpp@{NumpyHelpers.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [5/7]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Parse numpy dict\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NumpyHelpers_8test_8cpp_a348e56242da1086385ba97b6373769eb}\label{NumpyHelpers_8test_8cpp_a348e56242da1086385ba97b6373769eb}
\index{NumpyHelpers.test.cpp@{NumpyHelpers.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NumpyHelpers.test.cpp@{NumpyHelpers.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [6/7]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}parsing a string without quotes throws\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{NumpyHelpers_8test_8cpp_a7fb54d287f25be65178273ae927c8c94}\label{NumpyHelpers_8test_8cpp_a7fb54d287f25be65178273ae927c8c94}
\index{NumpyHelpers.test.cpp@{NumpyHelpers.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!NumpyHelpers.test.cpp@{NumpyHelpers.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [7/7]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}trim whitespace\"{}}]{ }\end{DoxyParamCaption})}

View File

@ -0,0 +1,33 @@
\doxysection{core/include/aare/core/\+Producer\+Consumer\+Queue.hpp File Reference}
\hypertarget{ProducerConsumerQueue_8hpp}{}\label{ProducerConsumerQueue_8hpp}\index{core/include/aare/core/ProducerConsumerQueue.hpp@{core/include/aare/core/ProducerConsumerQueue.hpp}}
{\ttfamily \#include $<$atomic$>$}\newline
{\ttfamily \#include $<$cassert$>$}\newline
{\ttfamily \#include $<$cstdlib$>$}\newline
{\ttfamily \#include $<$memory$>$}\newline
{\ttfamily \#include $<$stdexcept$>$}\newline
{\ttfamily \#include $<$type\+\_\+traits$>$}\newline
{\ttfamily \#include $<$utility$>$}\newline
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item
struct \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue}{folly\+::\+Producer\+Consumer\+Queue$<$ T $>$}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespacefolly}{folly}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Variables}
\begin{DoxyCompactItemize}
\item
constexpr std\+::size\+\_\+t \mbox{\hyperlink{ProducerConsumerQueue_8hpp_afcfcf0ecf646b16dd2b471dc568cf6c6}{hardware\+\_\+destructive\+\_\+interference\+\_\+size}} = 128
\end{DoxyCompactItemize}
\doxysubsection{Variable Documentation}
\Hypertarget{ProducerConsumerQueue_8hpp_afcfcf0ecf646b16dd2b471dc568cf6c6}\label{ProducerConsumerQueue_8hpp_afcfcf0ecf646b16dd2b471dc568cf6c6}
\index{ProducerConsumerQueue.hpp@{ProducerConsumerQueue.hpp}!hardware\_destructive\_interference\_size@{hardware\_destructive\_interference\_size}}
\index{hardware\_destructive\_interference\_size@{hardware\_destructive\_interference\_size}!ProducerConsumerQueue.hpp@{ProducerConsumerQueue.hpp}}
\doxysubsubsection{\texorpdfstring{hardware\_destructive\_interference\_size}{hardware\_destructive\_interference\_size}}
{\footnotesize\ttfamily constexpr std\+::size\+\_\+t hardware\+\_\+destructive\+\_\+interference\+\_\+size = 128\hspace{0.3cm}{\ttfamily [constexpr]}}

View File

@ -0,0 +1,187 @@
\doxysection{Producer\+Consumer\+Queue.\+hpp}
\hypertarget{ProducerConsumerQueue_8hpp_source}{}\label{ProducerConsumerQueue_8hpp_source}\index{core/include/aare/core/ProducerConsumerQueue.hpp@{core/include/aare/core/ProducerConsumerQueue.hpp}}
\mbox{\hyperlink{ProducerConsumerQueue_8hpp}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{comment}{/*}}
\DoxyCodeLine{00002\ \textcolor{comment}{\ *\ Copyright\ (c)\ Meta\ Platforms,\ Inc.\ and\ affiliates.}}
\DoxyCodeLine{00003\ \textcolor{comment}{\ *}}
\DoxyCodeLine{00004\ \textcolor{comment}{\ *\ Licensed\ under\ the\ Apache\ License,\ Version\ 2.0\ (the\ "{}License"{});}}
\DoxyCodeLine{00005\ \textcolor{comment}{\ *\ you\ may\ not\ use\ this\ file\ except\ in\ compliance\ with\ the\ License.}}
\DoxyCodeLine{00006\ \textcolor{comment}{\ *\ You\ may\ obtain\ a\ copy\ of\ the\ License\ at}}
\DoxyCodeLine{00007\ \textcolor{comment}{\ *}}
\DoxyCodeLine{00008\ \textcolor{comment}{\ *\ \ \ \ \ http://www.apache.org/licenses/LICENSE-\/2.0}}
\DoxyCodeLine{00009\ \textcolor{comment}{\ *}}
\DoxyCodeLine{00010\ \textcolor{comment}{\ *\ Unless\ required\ by\ applicable\ law\ or\ agreed\ to\ in\ writing,\ software}}
\DoxyCodeLine{00011\ \textcolor{comment}{\ *\ distributed\ under\ the\ License\ is\ distributed\ on\ an\ "{}AS\ IS"{}\ BASIS,}}
\DoxyCodeLine{00012\ \textcolor{comment}{\ *\ WITHOUT\ WARRANTIES\ OR\ CONDITIONS\ OF\ ANY\ KIND,\ either\ express\ or\ implied.}}
\DoxyCodeLine{00013\ \textcolor{comment}{\ *\ See\ the\ License\ for\ the\ specific\ language\ governing\ permissions\ and}}
\DoxyCodeLine{00014\ \textcolor{comment}{\ *\ limitations\ under\ the\ License.}}
\DoxyCodeLine{00015\ \textcolor{comment}{\ */}}
\DoxyCodeLine{00016\ }
\DoxyCodeLine{00017\ \textcolor{comment}{//\ @author\ Bo\ Hu\ (bhu@fb.com)}}
\DoxyCodeLine{00018\ \textcolor{comment}{//\ @author\ Jordan\ DeLong\ (delong.j@fb.com)}}
\DoxyCodeLine{00019\ }
\DoxyCodeLine{00020\ \textcolor{comment}{//\ Changes\ made\ by\ PSD\ Detector\ Group:}}
\DoxyCodeLine{00021\ \textcolor{comment}{//\ Copied:\ Line\ 34\ constexpr\ std::size\_t\ hardware\_destructive\_interference\_size\ =\ 128;\ from\ folly/lang/Align.h}}
\DoxyCodeLine{00022\ \textcolor{comment}{//\ Changed\ extension\ to\ .hpp}}
\DoxyCodeLine{00023\ }
\DoxyCodeLine{00024\ \textcolor{preprocessor}{\#pragma\ once}}
\DoxyCodeLine{00025\ }
\DoxyCodeLine{00026\ \textcolor{preprocessor}{\#include\ <atomic>}}
\DoxyCodeLine{00027\ \textcolor{preprocessor}{\#include\ <cassert>}}
\DoxyCodeLine{00028\ \textcolor{preprocessor}{\#include\ <cstdlib>}}
\DoxyCodeLine{00029\ \textcolor{preprocessor}{\#include\ <memory>}}
\DoxyCodeLine{00030\ \textcolor{preprocessor}{\#include\ <stdexcept>}}
\DoxyCodeLine{00031\ \textcolor{preprocessor}{\#include\ <type\_traits>}}
\DoxyCodeLine{00032\ \textcolor{preprocessor}{\#include\ <utility>}}
\DoxyCodeLine{00033\ }
\DoxyCodeLine{00034\ \textcolor{keyword}{constexpr}\ std::size\_t\ \mbox{\hyperlink{ProducerConsumerQueue_8hpp_afcfcf0ecf646b16dd2b471dc568cf6c6}{hardware\_destructive\_interference\_size}}\ =\ 128;}
\DoxyCodeLine{00035\ \textcolor{keyword}{namespace\ }\mbox{\hyperlink{namespacefolly}{folly}}\ \{}
\DoxyCodeLine{00036\ }
\DoxyCodeLine{00037\ \textcolor{comment}{/*}}
\DoxyCodeLine{00038\ \textcolor{comment}{\ *\ ProducerConsumerQueue\ is\ a\ one\ producer\ and\ one\ consumer\ queue}}
\DoxyCodeLine{00039\ \textcolor{comment}{\ *\ without\ locks.}}
\DoxyCodeLine{00040\ \textcolor{comment}{\ */}}
\DoxyCodeLine{00041\ \textcolor{keyword}{template}\ <\textcolor{keyword}{class}\ T>\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue}{ProducerConsumerQueue}}\ \{}
\DoxyCodeLine{00042\ \ \ \ \ \textcolor{keyword}{typedef}\ T\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_ab9ca59636041c88588bf0a367c4c9415}{value\_type}};}
\DoxyCodeLine{00043\ }
\DoxyCodeLine{00044\ \ \ \ \ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_af6639f8106b78609082a4cd5e3e8ceb5}{ProducerConsumerQueue}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue}{ProducerConsumerQueue}}\ \&)\ =\ \textcolor{keyword}{delete};}
\DoxyCodeLine{00045\ \ \ \ \ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue}{ProducerConsumerQueue}}\ \&\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_ac1f83f5f296f6f79583125947859b9d0}{operator=}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue}{ProducerConsumerQueue}}\ \&)\ =\ \textcolor{keyword}{delete};}
\DoxyCodeLine{00046\ }
\DoxyCodeLine{00047\ \ \ \ \ \textcolor{comment}{//\ size\ must\ be\ >=\ 2.}}
\DoxyCodeLine{00048\ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{00049\ \ \ \ \ \textcolor{comment}{//\ Also,\ note\ that\ the\ number\ of\ usable\ slots\ in\ the\ queue\ at\ any}}
\DoxyCodeLine{00050\ \ \ \ \ \textcolor{comment}{//\ given\ time\ is\ actually\ (size-\/1),\ so\ if\ you\ start\ with\ an\ empty\ queue,}}
\DoxyCodeLine{00051\ \ \ \ \ \textcolor{comment}{//\ isFull()\ will\ return\ true\ after\ size-\/1\ insertions.}}
\DoxyCodeLine{00052\ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a3398aa33aa91bad8e0f023d2e1df8069}{ProducerConsumerQueue}}(uint32\_t\ size)}
\DoxyCodeLine{00053\ \ \ \ \ \ \ \ \ :\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_ad5bf2e76bc4aad660840cbb927317d76}{size\_}}(size),\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a7f28bc4897019e6a4743dd22a97b33e1}{records\_}}(static\_cast<T\ *>(std::malloc(sizeof(T)\ *\ size))),\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a5f0ee08f1bfb4c8721c41426137e2005}{readIndex\_}}(0),\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a7c4b68cf28e3e925ff14f5736bce59d4}{writeIndex\_}}(0)\ \{}
\DoxyCodeLine{00054\ \ \ \ \ \ \ \ \ assert(size\ >=\ 2);}
\DoxyCodeLine{00055\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a7f28bc4897019e6a4743dd22a97b33e1}{records\_}})\ \{}
\DoxyCodeLine{00056\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{throw}\ std::bad\_alloc();}
\DoxyCodeLine{00057\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00058\ \ \ \ \ \}}
\DoxyCodeLine{00059\ }
\DoxyCodeLine{00060\ \ \ \ \ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_ae21044b9fe0c4345e2b7ec10cb81a18c}{\string~ProducerConsumerQueue}}()\ \{}
\DoxyCodeLine{00061\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ We\ need\ to\ destruct\ anything\ that\ may\ still\ exist\ in\ our\ queue.}}
\DoxyCodeLine{00062\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ (No\ real\ synchronization\ needed\ at\ destructor\ time:\ only\ one}}
\DoxyCodeLine{00063\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ thread\ can\ be\ doing\ this.)}}
\DoxyCodeLine{00064\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!std::is\_trivially\_destructible<T>::value)\ \{}
\DoxyCodeLine{00065\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{size\_t}\ readIndex\ =\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a5f0ee08f1bfb4c8721c41426137e2005}{readIndex\_}};}
\DoxyCodeLine{00066\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{size\_t}\ endIndex\ =\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a7c4b68cf28e3e925ff14f5736bce59d4}{writeIndex\_}};}
\DoxyCodeLine{00067\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}\ (readIndex\ !=\ endIndex)\ \{}
\DoxyCodeLine{00068\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a7f28bc4897019e6a4743dd22a97b33e1}{records\_}}[readIndex].\string~T();}
\DoxyCodeLine{00069\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (++readIndex\ ==\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_ad5bf2e76bc4aad660840cbb927317d76}{size\_}})\ \{}
\DoxyCodeLine{00070\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ readIndex\ =\ 0;}
\DoxyCodeLine{00071\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00072\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00073\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00074\ }
\DoxyCodeLine{00075\ \ \ \ \ \ \ \ \ std::free(\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a7f28bc4897019e6a4743dd22a97b33e1}{records\_}});}
\DoxyCodeLine{00076\ \ \ \ \ \}}
\DoxyCodeLine{00077\ }
\DoxyCodeLine{00078\ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{class}...\ Args>\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_af849682c2351c5f2b3344e32c512a961}{write}}(Args\ \&\&...recordArgs)\ \{}
\DoxyCodeLine{00079\ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ \textcolor{keyword}{const}\ currentWrite\ =\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a7c4b68cf28e3e925ff14f5736bce59d4}{writeIndex\_}}.load(std::memory\_order\_relaxed);}
\DoxyCodeLine{00080\ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ nextRecord\ =\ currentWrite\ +\ 1;}
\DoxyCodeLine{00081\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (nextRecord\ ==\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_ad5bf2e76bc4aad660840cbb927317d76}{size\_}})\ \{}
\DoxyCodeLine{00082\ \ \ \ \ \ \ \ \ \ \ \ \ nextRecord\ =\ 0;}
\DoxyCodeLine{00083\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00084\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (nextRecord\ !=\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a5f0ee08f1bfb4c8721c41426137e2005}{readIndex\_}}.load(std::memory\_order\_acquire))\ \{}
\DoxyCodeLine{00085\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{new}\ (\&\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a7f28bc4897019e6a4743dd22a97b33e1}{records\_}}[currentWrite])\ T(std::forward<Args>(recordArgs)...);}
\DoxyCodeLine{00086\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a7c4b68cf28e3e925ff14f5736bce59d4}{writeIndex\_}}.store(nextRecord,\ std::memory\_order\_release);}
\DoxyCodeLine{00087\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{true};}
\DoxyCodeLine{00088\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00089\ }
\DoxyCodeLine{00090\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ queue\ is\ full}}
\DoxyCodeLine{00091\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{false};}
\DoxyCodeLine{00092\ \ \ \ \ \}}
\DoxyCodeLine{00093\ }
\DoxyCodeLine{00094\ \ \ \ \ \textcolor{comment}{//\ move\ (or\ copy)\ the\ value\ at\ the\ front\ of\ the\ queue\ to\ given\ variable}}
\DoxyCodeLine{00095\ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a3288ef770695d676376c80ea41630b74}{read}}(T\ \&record)\ \{}
\DoxyCodeLine{00096\ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ \textcolor{keyword}{const}\ currentRead\ =\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a5f0ee08f1bfb4c8721c41426137e2005}{readIndex\_}}.load(std::memory\_order\_relaxed);}
\DoxyCodeLine{00097\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (currentRead\ ==\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a7c4b68cf28e3e925ff14f5736bce59d4}{writeIndex\_}}.load(std::memory\_order\_acquire))\ \{}
\DoxyCodeLine{00098\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ queue\ is\ empty}}
\DoxyCodeLine{00099\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{false};}
\DoxyCodeLine{00100\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00101\ }
\DoxyCodeLine{00102\ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ nextRecord\ =\ currentRead\ +\ 1;}
\DoxyCodeLine{00103\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (nextRecord\ ==\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_ad5bf2e76bc4aad660840cbb927317d76}{size\_}})\ \{}
\DoxyCodeLine{00104\ \ \ \ \ \ \ \ \ \ \ \ \ nextRecord\ =\ 0;}
\DoxyCodeLine{00105\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00106\ \ \ \ \ \ \ \ \ record\ =\ std::move(\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a7f28bc4897019e6a4743dd22a97b33e1}{records\_}}[currentRead]);}
\DoxyCodeLine{00107\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a7f28bc4897019e6a4743dd22a97b33e1}{records\_}}[currentRead].\string~T();}
\DoxyCodeLine{00108\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a5f0ee08f1bfb4c8721c41426137e2005}{readIndex\_}}.store(nextRecord,\ std::memory\_order\_release);}
\DoxyCodeLine{00109\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{true};}
\DoxyCodeLine{00110\ \ \ \ \ \}}
\DoxyCodeLine{00111\ }
\DoxyCodeLine{00112\ \ \ \ \ \textcolor{comment}{//\ pointer\ to\ the\ value\ at\ the\ front\ of\ the\ queue\ (for\ use\ in-\/place)\ or}}
\DoxyCodeLine{00113\ \ \ \ \ \textcolor{comment}{//\ nullptr\ if\ empty.}}
\DoxyCodeLine{00114\ \ \ \ \ T\ *\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a24474b670bc44f75f7c978087e401bd0}{frontPtr}}()\ \{}
\DoxyCodeLine{00115\ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ \textcolor{keyword}{const}\ currentRead\ =\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a5f0ee08f1bfb4c8721c41426137e2005}{readIndex\_}}.load(std::memory\_order\_relaxed);}
\DoxyCodeLine{00116\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (currentRead\ ==\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a7c4b68cf28e3e925ff14f5736bce59d4}{writeIndex\_}}.load(std::memory\_order\_acquire))\ \{}
\DoxyCodeLine{00117\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ queue\ is\ empty}}
\DoxyCodeLine{00118\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{nullptr};}
\DoxyCodeLine{00119\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00120\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \&\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a7f28bc4897019e6a4743dd22a97b33e1}{records\_}}[currentRead];}
\DoxyCodeLine{00121\ \ \ \ \ \}}
\DoxyCodeLine{00122\ }
\DoxyCodeLine{00123\ \ \ \ \ \textcolor{comment}{//\ queue\ must\ not\ be\ empty}}
\DoxyCodeLine{00124\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a92e517783bcaa0102521fb739b7f5f4e}{popFront}}()\ \{}
\DoxyCodeLine{00125\ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ \textcolor{keyword}{const}\ currentRead\ =\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a5f0ee08f1bfb4c8721c41426137e2005}{readIndex\_}}.load(std::memory\_order\_relaxed);}
\DoxyCodeLine{00126\ \ \ \ \ \ \ \ \ assert(currentRead\ !=\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a7c4b68cf28e3e925ff14f5736bce59d4}{writeIndex\_}}.load(std::memory\_order\_acquire));}
\DoxyCodeLine{00127\ }
\DoxyCodeLine{00128\ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ nextRecord\ =\ currentRead\ +\ 1;}
\DoxyCodeLine{00129\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (nextRecord\ ==\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_ad5bf2e76bc4aad660840cbb927317d76}{size\_}})\ \{}
\DoxyCodeLine{00130\ \ \ \ \ \ \ \ \ \ \ \ \ nextRecord\ =\ 0;}
\DoxyCodeLine{00131\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00132\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a7f28bc4897019e6a4743dd22a97b33e1}{records\_}}[currentRead].\string~T();}
\DoxyCodeLine{00133\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a5f0ee08f1bfb4c8721c41426137e2005}{readIndex\_}}.store(nextRecord,\ std::memory\_order\_release);}
\DoxyCodeLine{00134\ \ \ \ \ \}}
\DoxyCodeLine{00135\ }
\DoxyCodeLine{00136\ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a7f277f7b04debc85e2f99006ac3558e8}{isEmpty}}()\textcolor{keyword}{\ const\ }\{}
\DoxyCodeLine{00137\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a5f0ee08f1bfb4c8721c41426137e2005}{readIndex\_}}.load(std::memory\_order\_acquire)\ ==\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a7c4b68cf28e3e925ff14f5736bce59d4}{writeIndex\_}}.load(std::memory\_order\_acquire);}
\DoxyCodeLine{00138\ \ \ \ \ \}}
\DoxyCodeLine{00139\ }
\DoxyCodeLine{00140\ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_ad883c041917c2b7f10b0ecdaeaeb0577}{isFull}}()\textcolor{keyword}{\ const\ }\{}
\DoxyCodeLine{00141\ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ nextRecord\ =\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a7c4b68cf28e3e925ff14f5736bce59d4}{writeIndex\_}}.load(std::memory\_order\_acquire)\ +\ 1;}
\DoxyCodeLine{00142\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (nextRecord\ ==\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_ad5bf2e76bc4aad660840cbb927317d76}{size\_}})\ \{}
\DoxyCodeLine{00143\ \ \ \ \ \ \ \ \ \ \ \ \ nextRecord\ =\ 0;}
\DoxyCodeLine{00144\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00145\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (nextRecord\ !=\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a5f0ee08f1bfb4c8721c41426137e2005}{readIndex\_}}.load(std::memory\_order\_acquire))\ \{}
\DoxyCodeLine{00146\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{false};}
\DoxyCodeLine{00147\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00148\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ queue\ is\ full}}
\DoxyCodeLine{00149\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{true};}
\DoxyCodeLine{00150\ \ \ \ \ \}}
\DoxyCodeLine{00151\ }
\DoxyCodeLine{00152\ \ \ \ \ \textcolor{comment}{//\ *\ If\ called\ by\ consumer,\ then\ true\ size\ may\ be\ more\ (because\ producer\ may}}
\DoxyCodeLine{00153\ \ \ \ \ \textcolor{comment}{//\ \ \ be\ adding\ items\ concurrently).}}
\DoxyCodeLine{00154\ \ \ \ \ \textcolor{comment}{//\ *\ If\ called\ by\ producer,\ then\ true\ size\ may\ be\ less\ (because\ consumer\ may}}
\DoxyCodeLine{00155\ \ \ \ \ \textcolor{comment}{//\ \ \ be\ removing\ items\ concurrently).}}
\DoxyCodeLine{00156\ \ \ \ \ \textcolor{comment}{//\ *\ It\ is\ undefined\ to\ call\ this\ from\ any\ other\ thread.}}
\DoxyCodeLine{00157\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_adb384b6a25b755b627d04ff6f2ca9c95}{sizeGuess}}()\textcolor{keyword}{\ const\ }\{}
\DoxyCodeLine{00158\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ ret\ =\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a7c4b68cf28e3e925ff14f5736bce59d4}{writeIndex\_}}.load(std::memory\_order\_acquire)\ -\/\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a5f0ee08f1bfb4c8721c41426137e2005}{readIndex\_}}.load(std::memory\_order\_acquire);}
\DoxyCodeLine{00159\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (ret\ <\ 0)\ \{}
\DoxyCodeLine{00160\ \ \ \ \ \ \ \ \ \ \ \ \ ret\ +=\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_ad5bf2e76bc4aad660840cbb927317d76}{size\_}};}
\DoxyCodeLine{00161\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00162\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ ret;}
\DoxyCodeLine{00163\ \ \ \ \ \}}
\DoxyCodeLine{00164\ }
\DoxyCodeLine{00165\ \ \ \ \ \textcolor{comment}{//\ maximum\ number\ of\ items\ in\ the\ queue.}}
\DoxyCodeLine{00166\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_ab5966af8b6789e2ad2c215d0226fd616}{capacity}}()\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_ad5bf2e76bc4aad660840cbb927317d76}{size\_}}\ -\/\ 1;\ \}}
\DoxyCodeLine{00167\ }
\DoxyCodeLine{00168\ \ \ \textcolor{keyword}{private}:}
\DoxyCodeLine{00169\ \ \ \ \ \textcolor{keyword}{using\ }\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_af9f2e0d5fb4a92eb037b630a80f521cb}{AtomicIndex}}\ =\ std::atomic<unsigned\ int>;}
\DoxyCodeLine{00170\ }
\DoxyCodeLine{00171\ \ \ \ \ \textcolor{keywordtype}{char}\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_ab20193986ce865e7c2f430f706d743cf}{pad0\_}}[\mbox{\hyperlink{ProducerConsumerQueue_8hpp_afcfcf0ecf646b16dd2b471dc568cf6c6}{hardware\_destructive\_interference\_size}}];}
\DoxyCodeLine{00172\ \ \ \ \ \textcolor{keyword}{const}\ uint32\_t\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_ad5bf2e76bc4aad660840cbb927317d76}{size\_}};}
\DoxyCodeLine{00173\ \ \ \ \ T\ *\textcolor{keyword}{const}\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a7f28bc4897019e6a4743dd22a97b33e1}{records\_}};}
\DoxyCodeLine{00174\ }
\DoxyCodeLine{00175\ \ \ \ \ \textcolor{keyword}{alignas}(\mbox{\hyperlink{ProducerConsumerQueue_8hpp_afcfcf0ecf646b16dd2b471dc568cf6c6}{hardware\_destructive\_interference\_size}})\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_af9f2e0d5fb4a92eb037b630a80f521cb}{AtomicIndex}}\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a5f0ee08f1bfb4c8721c41426137e2005}{readIndex\_}};}
\DoxyCodeLine{00176\ \ \ \ \ \textcolor{keyword}{alignas}(\mbox{\hyperlink{ProducerConsumerQueue_8hpp_afcfcf0ecf646b16dd2b471dc568cf6c6}{hardware\_destructive\_interference\_size}})\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_af9f2e0d5fb4a92eb037b630a80f521cb}{AtomicIndex}}\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a7c4b68cf28e3e925ff14f5736bce59d4}{writeIndex\_}};}
\DoxyCodeLine{00177\ }
\DoxyCodeLine{00178\ \ \ \ \ \textcolor{keywordtype}{char}\ \mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_a14823e2289be8649cebd813caa00d1fa}{pad1\_}}[\mbox{\hyperlink{ProducerConsumerQueue_8hpp_afcfcf0ecf646b16dd2b471dc568cf6c6}{hardware\_destructive\_interference\_size}}\ -\/\ \textcolor{keyword}{sizeof}(\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue_af9f2e0d5fb4a92eb037b630a80f521cb}{AtomicIndex}})];}
\DoxyCodeLine{00179\ \};}
\DoxyCodeLine{00180\ }
\DoxyCodeLine{00181\ \}\ \textcolor{comment}{//\ namespace\ folly}}
\end{DoxyCode}

View File

@ -0,0 +1,34 @@
\doxysection{core/test/\+Producer\+Consumer\+Queue.test.\+cpp File Reference}
\hypertarget{ProducerConsumerQueue_8test_8cpp}{}\label{ProducerConsumerQueue_8test_8cpp}\index{core/test/ProducerConsumerQueue.test.cpp@{core/test/ProducerConsumerQueue.test.cpp}}
{\ttfamily \#include \"{}aare/core/\+Producer\+Consumer\+Queue.\+hpp\"{}}\newline
{\ttfamily \#include $<$catch2/catch\+\_\+all.\+hpp$>$}\newline
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{ProducerConsumerQueue_8test_8cpp_a9888906349c4c97bcb647078a80160c2}{TEST\+\_\+\+CASE}} (\"{}push pop\"{})
\item
\mbox{\hyperlink{ProducerConsumerQueue_8test_8cpp_a8dd1a067a01c16f9816d1d411cd9194b}{TEST\+\_\+\+CASE}} (\"{}Cannot push to a full queue\"{})
\item
\mbox{\hyperlink{ProducerConsumerQueue_8test_8cpp_ab582705ac753ff624f973e260b8dbc38}{TEST\+\_\+\+CASE}} (\"{}Cannot pop from an empty queue\"{})
\end{DoxyCompactItemize}
\doxysubsection{Function Documentation}
\Hypertarget{ProducerConsumerQueue_8test_8cpp_ab582705ac753ff624f973e260b8dbc38}\label{ProducerConsumerQueue_8test_8cpp_ab582705ac753ff624f973e260b8dbc38}
\index{ProducerConsumerQueue.test.cpp@{ProducerConsumerQueue.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!ProducerConsumerQueue.test.cpp@{ProducerConsumerQueue.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Cannot pop from an empty queue\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{ProducerConsumerQueue_8test_8cpp_a8dd1a067a01c16f9816d1d411cd9194b}\label{ProducerConsumerQueue_8test_8cpp_a8dd1a067a01c16f9816d1d411cd9194b}
\index{ProducerConsumerQueue.test.cpp@{ProducerConsumerQueue.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!ProducerConsumerQueue.test.cpp@{ProducerConsumerQueue.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Cannot push to a full queue\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{ProducerConsumerQueue_8test_8cpp_a9888906349c4c97bcb647078a80160c2}\label{ProducerConsumerQueue_8test_8cpp_a9888906349c4c97bcb647078a80160c2}
\index{ProducerConsumerQueue.test.cpp@{ProducerConsumerQueue.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!ProducerConsumerQueue.test.cpp@{ProducerConsumerQueue.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}push pop\"{}}]{ }\end{DoxyParamCaption})}

View File

@ -0,0 +1,2 @@
\doxysection{README.\+md File Reference}
\hypertarget{README_8md}{}\label{README_8md}\index{README.md@{README.md}}

View File

@ -0,0 +1,26 @@
\doxysection{file\+\_\+io/src/\+Raw\+File.cpp File Reference}
\hypertarget{RawFile_8cpp}{}\label{RawFile_8cpp}\index{file\_io/src/RawFile.cpp@{file\_io/src/RawFile.cpp}}
{\ttfamily \#include \"{}aare/file\+\_\+io/\+Raw\+File.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/core/defs.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/utils/logger.\+hpp\"{}}\newline
{\ttfamily \#include $<$fmt/format.\+h$>$}\newline
{\ttfamily \#include $<$nlohmann/json.\+hpp$>$}\newline
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item
using \mbox{\hyperlink{RawFile_8cpp_ab701e3ac61a85b337ec5c1abaad6742d}{json}} = nlohmann\+::json
\end{DoxyCompactItemize}
\doxysubsection{Typedef Documentation}
\Hypertarget{RawFile_8cpp_ab701e3ac61a85b337ec5c1abaad6742d}\label{RawFile_8cpp_ab701e3ac61a85b337ec5c1abaad6742d}
\index{RawFile.cpp@{RawFile.cpp}!json@{json}}
\index{json@{json}!RawFile.cpp@{RawFile.cpp}}
\doxysubsubsection{\texorpdfstring{json}{json}}
{\footnotesize\ttfamily using \mbox{\hyperlink{RawFile_8cpp_ab701e3ac61a85b337ec5c1abaad6742d}{json}} = nlohmann\+::json}

View File

@ -0,0 +1,15 @@
\doxysection{file\+\_\+io/include/aare/file\+\_\+io/\+Raw\+File.hpp File Reference}
\hypertarget{RawFile_8hpp}{}\label{RawFile_8hpp}\index{file\_io/include/aare/file\_io/RawFile.hpp@{file\_io/include/aare/file\_io/RawFile.hpp}}
{\ttfamily \#include \"{}aare/core/\+Frame.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/file\+\_\+io/\+File\+Interface.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/file\+\_\+io/\+Sub\+File.\+hpp\"{}}\newline
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item
class \mbox{\hyperlink{classaare_1_1RawFile}{aare\+::\+Raw\+File}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1RawFile}{Raw\+File} class to read .raw and .json files. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\end{DoxyCompactItemize}

View File

@ -0,0 +1,85 @@
\doxysection{Raw\+File.\+hpp}
\hypertarget{RawFile_8hpp_source}{}\label{RawFile_8hpp_source}\index{file\_io/include/aare/file\_io/RawFile.hpp@{file\_io/include/aare/file\_io/RawFile.hpp}}
\mbox{\hyperlink{RawFile_8hpp}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#pragma\ once}}
\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{Frame_8hpp}{aare/core/Frame.hpp}}"{}}}
\DoxyCodeLine{00003\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{FileInterface_8hpp}{aare/file\_io/FileInterface.hpp}}"{}}}
\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{SubFile_8hpp}{aare/file\_io/SubFile.hpp}}"{}}}
\DoxyCodeLine{00005\ }
\DoxyCodeLine{00006\ \textcolor{keyword}{namespace\ }\mbox{\hyperlink{namespaceaare}{aare}}\ \{}
\DoxyCodeLine{00007\ }
\DoxyCodeLine{00013\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classaare_1_1RawFile}{RawFile}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classaare_1_1FileInterface}{FileInterface}}\ \{}
\DoxyCodeLine{00014\ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{00021\ \ \ \ \ \mbox{\hyperlink{classaare_1_1RawFile}{RawFile}}(\textcolor{keyword}{const}\ std::filesystem::path\ \&fname,\ \textcolor{keyword}{const}\ std::string\ \&mode\ =\ \textcolor{stringliteral}{"{}r"{}},\ \textcolor{keyword}{const}\ \mbox{\hyperlink{structaare_1_1FileConfig}{FileConfig}}\ \&\mbox{\hyperlink{classaare_1_1RawFile_a6a98d519afde63d3b075110e53d244f0}{cfg}}\ =\ \{\});}
\DoxyCodeLine{00022\ }
\DoxyCodeLine{00027\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1RawFile_ae9312684dfa014dede39e4c81d62abcd}{write}}(\mbox{\hyperlink{classaare_1_1Frame}{Frame}}\ \&frame)\textcolor{keyword}{\ override\ }\{\ \textcolor{keywordflow}{throw}\ std::runtime\_error(\textcolor{stringliteral}{"{}Not\ implemented"{}});\ \};}
\DoxyCodeLine{00028\ \ \ \ \ \mbox{\hyperlink{classaare_1_1Frame}{Frame}}\ \mbox{\hyperlink{classaare_1_1RawFile_afc6d881b6d2f246f09a595e637afd58c}{read}}()\textcolor{keyword}{\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1RawFile_a7a035699488278961f601e5d23bd7154}{get\_frame}}(this-\/>\mbox{\hyperlink{classaare_1_1FileInterface_ab96f5dd0c99fb7b5a527da812368d736}{current\_frame}}++);\ \};}
\DoxyCodeLine{00029\ \ \ \ \ std::vector<Frame>\ \mbox{\hyperlink{classaare_1_1RawFile_afc6d881b6d2f246f09a595e637afd58c}{read}}(\textcolor{keywordtype}{size\_t}\ n\_frames)\ \textcolor{keyword}{override};}
\DoxyCodeLine{00030\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1RawFile_afa0228d53554cf5cc192e97474361269}{read\_into}}(std::byte\ *image\_buf)\textcolor{keyword}{\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1RawFile_ac37989a067cd0b9f22e0f9203b6a9a22}{get\_frame\_into}}(this-\/>\mbox{\hyperlink{classaare_1_1FileInterface_ab96f5dd0c99fb7b5a527da812368d736}{current\_frame}}++,\ image\_buf);\ \};}
\DoxyCodeLine{00031\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1RawFile_afa0228d53554cf5cc192e97474361269}{read\_into}}(std::byte\ *image\_buf,\ \textcolor{keywordtype}{size\_t}\ n\_frames)\ \textcolor{keyword}{override};}
\DoxyCodeLine{00032\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1RawFile_a42972170354d7d9cde0b9b9509b63fee}{frame\_number}}(\textcolor{keywordtype}{size\_t}\ frame\_index)\ \textcolor{keyword}{override};}
\DoxyCodeLine{00033\ }
\DoxyCodeLine{00038\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1RawFile_ac20d32d75330d179554c2c69292332f0}{bytes\_per\_frame}}()\textcolor{keyword}{\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1FileInterface_ae29d98625cf56989e2c5237ace0d0f4c}{m\_rows}}\ *\ \mbox{\hyperlink{classaare_1_1FileInterface_ad4c9991c30a71ba83cbaab283bc756b5}{m\_cols}}\ *\ \mbox{\hyperlink{classaare_1_1FileInterface_a252d27cbbfcdfc528b86925eaac55bb7}{m\_bitdepth}}\ /\ 8;\ \}}
\DoxyCodeLine{00039\ }
\DoxyCodeLine{00044\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1RawFile_ab8935d47a8482c36532ff5cdd91c78da}{pixels}}()\textcolor{keyword}{\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1FileInterface_ae29d98625cf56989e2c5237ace0d0f4c}{m\_rows}}\ *\ \mbox{\hyperlink{classaare_1_1FileInterface_ad4c9991c30a71ba83cbaab283bc756b5}{m\_cols}};\ \}}
\DoxyCodeLine{00045\ }
\DoxyCodeLine{00046\ \ \ \ \ \textcolor{comment}{//\ goto\ frame\ number}}
\DoxyCodeLine{00047\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1RawFile_a5eef29c0377f5af2e18475e9ae66527c}{seek}}(\textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1RawFile_a42972170354d7d9cde0b9b9509b63fee}{frame\_number}})\textcolor{keyword}{\ override\ }\{\ this-\/>\mbox{\hyperlink{classaare_1_1FileInterface_ab96f5dd0c99fb7b5a527da812368d736}{current\_frame}}\ =\ \mbox{\hyperlink{classaare_1_1RawFile_a42972170354d7d9cde0b9b9509b63fee}{frame\_number}};\ \};}
\DoxyCodeLine{00048\ }
\DoxyCodeLine{00049\ \ \ \ \ \textcolor{comment}{//\ return\ the\ position\ of\ the\ file\ pointer\ (in\ number\ of\ frames)}}
\DoxyCodeLine{00050\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1RawFile_aa0773872c1e6dd2ab86df2bfff35dee8}{tell}}()\textcolor{keyword}{\ override\ }\{\ \textcolor{keywordflow}{return}\ this-\/>\mbox{\hyperlink{classaare_1_1FileInterface_ab96f5dd0c99fb7b5a527da812368d736}{current\_frame}};\ \};}
\DoxyCodeLine{00051\ }
\DoxyCodeLine{00056\ \ \ \ \ \textcolor{keyword}{static}\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classaare_1_1RawFile_ab01258c2c975668a1924aa4a267df685}{is\_master\_file}}(std::filesystem::path\ fpath);}
\DoxyCodeLine{00057\ }
\DoxyCodeLine{00063\ \ \ \ \ \textcolor{keyword}{inline}\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1RawFile_aeebfe5a324fa2f24c9a3353a668a8323}{set\_config}}(\textcolor{keywordtype}{int}\ row,\ \textcolor{keywordtype}{int}\ col)\ \{}
\DoxyCodeLine{00064\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1RawFile_a6a98d519afde63d3b075110e53d244f0}{cfg}}.\mbox{\hyperlink{structaare_1_1RawFileConfig_acd8001ccd1591ac84fba4bda0e650dfd}{module\_gap\_row}}\ =\ row;}
\DoxyCodeLine{00065\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1RawFile_a6a98d519afde63d3b075110e53d244f0}{cfg}}.\mbox{\hyperlink{structaare_1_1RawFileConfig_a3fb2cf3485c3869f0a82657eca28eed3}{module\_gap\_col}}\ =\ col;}
\DoxyCodeLine{00066\ \ \ \ \ \}}
\DoxyCodeLine{00067\ \ \ \ \ \textcolor{comment}{//\ TODO!\ Deal\ with\ fast\ quad\ and\ missing\ files}}
\DoxyCodeLine{00068\ }
\DoxyCodeLine{00073\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1RawFile_ae1f4fa8c6f909beb31e56a57cb452079}{find\_number\_of\_subfiles}}();}
\DoxyCodeLine{00074\ }
\DoxyCodeLine{00079\ \ \ \ \ \textcolor{keyword}{inline}\ std::filesystem::path\ \mbox{\hyperlink{classaare_1_1RawFile_ad310ff7f4ab8f007974755654c268432}{master\_fname}}();}
\DoxyCodeLine{00086\ \ \ \ \ \textcolor{keyword}{inline}\ std::filesystem::path\ \mbox{\hyperlink{classaare_1_1RawFile_a3ceff9543ba1fff7c57513374410fc0c}{data\_fname}}(\textcolor{keywordtype}{int}\ mod\_id,\ \textcolor{keywordtype}{int}\ file\_id);}
\DoxyCodeLine{00087\ }
\DoxyCodeLine{00091\ \ \ \ \ \mbox{\hyperlink{classaare_1_1RawFile_ab3b4c559fa8bd4041bb32765f5c364d4}{\string~RawFile}}();}
\DoxyCodeLine{00092\ }
\DoxyCodeLine{00093\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1RawFile_a88a1e49617855a0984acf2bd70b3d209}{total\_frames}}()\textcolor{keyword}{\ const\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1FileInterface_a91551fada444b231294c095f3f5fb768}{m\_total\_frames}};\ \}}
\DoxyCodeLine{00094\ \ \ \ \ ssize\_t\ \mbox{\hyperlink{classaare_1_1RawFile_a432c1b1f9a922e9951aaed0d221f5ea6}{rows}}()\textcolor{keyword}{\ const\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1FileInterface_ae29d98625cf56989e2c5237ace0d0f4c}{m\_rows}};\ \}}
\DoxyCodeLine{00095\ \ \ \ \ ssize\_t\ \mbox{\hyperlink{classaare_1_1RawFile_a8b646fd35e7b19740f6358804bba2bce}{cols}}()\textcolor{keyword}{\ const\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1FileInterface_ad4c9991c30a71ba83cbaab283bc756b5}{m\_cols}};\ \}}
\DoxyCodeLine{00096\ \ \ \ \ ssize\_t\ \mbox{\hyperlink{classaare_1_1RawFile_ae880a6c07caaca176028936a29162ff2}{bitdepth}}()\textcolor{keyword}{\ const\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1FileInterface_a252d27cbbfcdfc528b86925eaac55bb7}{m\_bitdepth}};\ \}}
\DoxyCodeLine{00097\ }
\DoxyCodeLine{00098\ \ \ \textcolor{keyword}{private}:}
\DoxyCodeLine{00104\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1RawFile_ac37989a067cd0b9f22e0f9203b6a9a22}{get\_frame\_into}}(\textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1RawFile_a42972170354d7d9cde0b9b9509b63fee}{frame\_number}},\ std::byte\ *image\_buf);}
\DoxyCodeLine{00105\ }
\DoxyCodeLine{00111\ \ \ \ \ \mbox{\hyperlink{classaare_1_1Frame}{Frame}}\ \mbox{\hyperlink{classaare_1_1RawFile_a7a035699488278961f601e5d23bd7154}{get\_frame}}(\textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1RawFile_a42972170354d7d9cde0b9b9509b63fee}{frame\_number}});}
\DoxyCodeLine{00112\ }
\DoxyCodeLine{00116\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1RawFile_a57d281f40683621a40bae3ac78e6489c}{parse\_fname}}();}
\DoxyCodeLine{00117\ }
\DoxyCodeLine{00121\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1RawFile_a2937ce909e9c9a8f3c55c4eebe2e0493}{parse\_metadata}}();}
\DoxyCodeLine{00122\ }
\DoxyCodeLine{00126\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1RawFile_adbe11ff4722d5938bc1f4b7a9808216a}{parse\_raw\_metadata}}();}
\DoxyCodeLine{00127\ }
\DoxyCodeLine{00131\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1RawFile_ae8a1f274417363cb6c112a065065f395}{parse\_json\_metadata}}();}
\DoxyCodeLine{00132\ }
\DoxyCodeLine{00136\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1RawFile_aca4db4b540a58dc78f65124f159192b5}{find\_geometry}}();}
\DoxyCodeLine{00137\ }
\DoxyCodeLine{00143\ \ \ \ \ \mbox{\hyperlink{structaare_1_1sls__detector__header}{sls\_detector\_header}}\ \mbox{\hyperlink{classaare_1_1RawFile_a87d4af5d79244e7f1d69ab3a66e2bd10}{read\_header}}(\textcolor{keyword}{const}\ std::filesystem::path\ \&fname);}
\DoxyCodeLine{00144\ }
\DoxyCodeLine{00148\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1RawFile_a778b1fcb1d5fcfdfb57c15642a6775e0}{open\_subfiles}}();}
\DoxyCodeLine{00149\ }
\DoxyCodeLine{00150\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1RawFile_ad256cf93af5d382fcd9381ad50db6f94}{n\_subfiles}};}
\DoxyCodeLine{00151\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1RawFile_ac1493a619e12568437f95bf1b8ae5c51}{n\_subfile\_parts}};}
\DoxyCodeLine{00152\ \ \ \ \ std::vector<std::vector<SubFile\ *>>\ \mbox{\hyperlink{classaare_1_1RawFile_a310a0a7c3e49e112117ebed8bfdf199d}{subfiles}};}
\DoxyCodeLine{00153\ \ \ \ \ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{classaare_1_1RawFile_ab1a3902a51ded3c1823937a914c7d458}{subfile\_rows}},\ \mbox{\hyperlink{classaare_1_1RawFile_ae322f1b62cfa7e4ebeb1ccae51a799f2}{subfile\_cols}};}
\DoxyCodeLine{00154\ \ \ \ \ \mbox{\hyperlink{structaare_1_1xy}{xy}}\ \mbox{\hyperlink{classaare_1_1RawFile_a913ff02d0893519b290a121da13ac1e2}{geometry}};}
\DoxyCodeLine{00155\ \ \ \ \ std::vector<xy>\ \mbox{\hyperlink{classaare_1_1RawFile_a8be8d44e86171815bf54031b00fa1610}{positions}};}
\DoxyCodeLine{00156\ \ \ \ \ \mbox{\hyperlink{structaare_1_1RawFileConfig}{RawFileConfig}}\ \mbox{\hyperlink{classaare_1_1RawFile_a6a98d519afde63d3b075110e53d244f0}{cfg}}\{0,\ 0\};}
\DoxyCodeLine{00157\ \ \ \ \ \mbox{\hyperlink{namespaceaare_a180255836568df302c95b5ca87dc5355}{TimingMode}}\ \mbox{\hyperlink{classaare_1_1RawFile_a333f2ee8aec487d0e4cbf7973fafaec4}{timing\_mode}};}
\DoxyCodeLine{00158\ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classaare_1_1RawFile_ad2e86859abde675cab13a68eeaea0e55}{quad}}\{\textcolor{keyword}{false}\};}
\DoxyCodeLine{00159\ \};}
\DoxyCodeLine{00160\ }
\DoxyCodeLine{00161\ \}\ \textcolor{comment}{//\ namespace\ aare}}
\end{DoxyCode}

View File

@ -0,0 +1,53 @@
\doxysection{file\+\_\+io/test/\+Raw\+File.test.\+cpp File Reference}
\hypertarget{RawFile_8test_8cpp}{}\label{RawFile_8test_8cpp}\index{file\_io/test/RawFile.test.cpp@{file\_io/test/RawFile.test.cpp}}
{\ttfamily \#include \"{}aare/file\+\_\+io/\+File.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/utils/logger.\+hpp\"{}}\newline
{\ttfamily \#include $<$catch2/catch\+\_\+test\+\_\+macros.\+hpp$>$}\newline
{\ttfamily \#include $<$filesystem$>$}\newline
{\ttfamily \#include \"{}test\+\_\+config.\+hpp\"{}}\newline
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{RawFile_8test_8cpp_a4b1d8cf7bade1681081d50e1b71aa7d7}{TEST\+\_\+\+CASE}} (\"{}Read number of frames from a jungfrau raw file\"{})
\item
\mbox{\hyperlink{RawFile_8test_8cpp_a80ac7fb3dcd2d2f9fc06f21d5d9d8554}{TEST\+\_\+\+CASE}} (\"{}Read frame numbers from a jungfrau raw file\"{})
\item
\mbox{\hyperlink{RawFile_8test_8cpp_ae52814c63322f33073de44eaf98c785b}{TEST\+\_\+\+CASE}} (\"{}Read data from a jungfrau 500k single port raw file\"{})
\item
\mbox{\hyperlink{RawFile_8test_8cpp_a7c261c7c254c196a665ab530d82403ba}{TEST\+\_\+\+CASE}} (\"{}Read frame numbers from a raw file\"{})
\item
\mbox{\hyperlink{RawFile_8test_8cpp_adba249f0fdaaf86f0f5ad21a65887465}{TEST\+\_\+\+CASE}} (\"{}Compare reading from a numpy file with a raw file\"{})
\end{DoxyCompactItemize}
\doxysubsection{Function Documentation}
\Hypertarget{RawFile_8test_8cpp_adba249f0fdaaf86f0f5ad21a65887465}\label{RawFile_8test_8cpp_adba249f0fdaaf86f0f5ad21a65887465}
\index{RawFile.test.cpp@{RawFile.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!RawFile.test.cpp@{RawFile.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [1/5]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Compare reading from a numpy file with a raw file\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{RawFile_8test_8cpp_ae52814c63322f33073de44eaf98c785b}\label{RawFile_8test_8cpp_ae52814c63322f33073de44eaf98c785b}
\index{RawFile.test.cpp@{RawFile.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!RawFile.test.cpp@{RawFile.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [2/5]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Read data from a jungfrau 500k single port raw file\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{RawFile_8test_8cpp_a80ac7fb3dcd2d2f9fc06f21d5d9d8554}\label{RawFile_8test_8cpp_a80ac7fb3dcd2d2f9fc06f21d5d9d8554}
\index{RawFile.test.cpp@{RawFile.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!RawFile.test.cpp@{RawFile.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [3/5]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Read frame numbers from a jungfrau raw file\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{RawFile_8test_8cpp_a7c261c7c254c196a665ab530d82403ba}\label{RawFile_8test_8cpp_a7c261c7c254c196a665ab530d82403ba}
\index{RawFile.test.cpp@{RawFile.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!RawFile.test.cpp@{RawFile.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [4/5]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Read frame numbers from a raw file\"{}}]{ }\end{DoxyParamCaption})}
\Hypertarget{RawFile_8test_8cpp_a4b1d8cf7bade1681081d50e1b71aa7d7}\label{RawFile_8test_8cpp_a4b1d8cf7bade1681081d50e1b71aa7d7}
\index{RawFile.test.cpp@{RawFile.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!RawFile.test.cpp@{RawFile.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [5/5]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Read number of frames from a jungfrau raw file\"{}}]{ }\end{DoxyParamCaption})}

View File

@ -0,0 +1,12 @@
\doxysection{file\+\_\+io/src/\+Sub\+File.cpp File Reference}
\hypertarget{SubFile_8cpp}{}\label{SubFile_8cpp}\index{file\_io/src/SubFile.cpp@{file\_io/src/SubFile.cpp}}
{\ttfamily \#include \"{}aare/file\+\_\+io/\+Sub\+File.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/utils/logger.\+hpp\"{}}\newline
{\ttfamily \#include $<$cstring$>$}\newline
{\ttfamily \#include $<$fmt/core.\+h$>$}\newline
{\ttfamily \#include $<$iostream$>$}\newline
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\end{DoxyCompactItemize}

View File

@ -0,0 +1,17 @@
\doxysection{file\+\_\+io/include/aare/file\+\_\+io/\+Sub\+File.hpp File Reference}
\hypertarget{SubFile_8hpp}{}\label{SubFile_8hpp}\index{file\_io/include/aare/file\_io/SubFile.hpp@{file\_io/include/aare/file\_io/SubFile.hpp}}
{\ttfamily \#include \"{}aare/core/defs.\+hpp\"{}}\newline
{\ttfamily \#include $<$cstdint$>$}\newline
{\ttfamily \#include $<$filesystem$>$}\newline
{\ttfamily \#include $<$map$>$}\newline
{\ttfamily \#include $<$variant$>$}\newline
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item
class \mbox{\hyperlink{classaare_1_1SubFile}{aare\+::\+Sub\+File}}
\begin{DoxyCompactList}\small\item\em Class to read a subfile from a \doxylink{classaare_1_1RawFile}{Raw\+File}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\end{DoxyCompactItemize}

View File

@ -0,0 +1,56 @@
\doxysection{Sub\+File.\+hpp}
\hypertarget{SubFile_8hpp_source}{}\label{SubFile_8hpp_source}\index{file\_io/include/aare/file\_io/SubFile.hpp@{file\_io/include/aare/file\_io/SubFile.hpp}}
\mbox{\hyperlink{SubFile_8hpp}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#pragma\ once}}
\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{core_2include_2aare_2core_2defs_8hpp}{aare/core/defs.hpp}}"{}}}
\DoxyCodeLine{00003\ \textcolor{preprocessor}{\#include\ <cstdint>}}
\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ <filesystem>}}
\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ <map>}}
\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ <variant>}}
\DoxyCodeLine{00007\ }
\DoxyCodeLine{00008\ \textcolor{keyword}{namespace\ }\mbox{\hyperlink{namespaceaare}{aare}}\ \{}
\DoxyCodeLine{00009\ }
\DoxyCodeLine{00013\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classaare_1_1SubFile}{SubFile}}\ \{}
\DoxyCodeLine{00014\ \ \ \textcolor{keyword}{protected}:}
\DoxyCodeLine{00020\ \ \ \ \ \textcolor{keyword}{using\ }\mbox{\hyperlink{classaare_1_1SubFile_a15fca3d77492479d07d9e1490b0397b7}{pfunc}}\ =\ size\_t\ (\mbox{\hyperlink{classaare_1_1SubFile}{SubFile}}::*)(std::byte\ *);}
\DoxyCodeLine{00021\ \ \ \ \ \mbox{\hyperlink{classaare_1_1SubFile_a15fca3d77492479d07d9e1490b0397b7}{pfunc}}\ \mbox{\hyperlink{classaare_1_1SubFile_a6581cd31c90c530b8ab4d4c3c1f24c11}{read\_impl}}\ =\ \textcolor{keyword}{nullptr};}
\DoxyCodeLine{00028\ \ \ \ \ std::map<std::pair<DetectorType,\ int>,\ \mbox{\hyperlink{classaare_1_1SubFile_a15fca3d77492479d07d9e1490b0397b7}{pfunc}}>\ \mbox{\hyperlink{classaare_1_1SubFile_ac0f3eb666f5ce7d789c98e3e48adb0c1}{read\_impl\_map}}\ =\ \{}
\DoxyCodeLine{00029\ \ \ \ \ \ \ \ \ \{\{\mbox{\hyperlink{namespaceaare_a5b95afba95553c1e118e1478c69042f7a0947b28848519e2e61c3f8561dedf7d0}{DetectorType::Moench}},\ 16\},\ \&SubFile::read\_impl\_reorder<uint16\_t>\},}
\DoxyCodeLine{00030\ \ \ \ \ \ \ \ \ \{\{\mbox{\hyperlink{namespaceaare_a5b95afba95553c1e118e1478c69042f7ab2c7db922623442a04314d3c941a336b}{DetectorType::Jungfrau}},\ 16\},\ \&\mbox{\hyperlink{classaare_1_1SubFile_a660d0c9ccb8d0e79d9f17bbdea910a45}{SubFile::read\_impl\_normal}}\},}
\DoxyCodeLine{00031\ \ \ \ \ \ \ \ \ \{\{\mbox{\hyperlink{namespaceaare_a5b95afba95553c1e118e1478c69042f7a8fcb8dbe4124015503e7a92e13ebe66c}{DetectorType::ChipTestBoard}},\ 16\},\ \&\mbox{\hyperlink{classaare_1_1SubFile_a660d0c9ccb8d0e79d9f17bbdea910a45}{SubFile::read\_impl\_normal}}\},}
\DoxyCodeLine{00032\ \ \ \ \ \ \ \ \ \{\{\mbox{\hyperlink{namespaceaare_a5b95afba95553c1e118e1478c69042f7ae62a69cfc990501180f9457056826208}{DetectorType::Mythen3}},\ 32\},\ \&\mbox{\hyperlink{classaare_1_1SubFile_a660d0c9ccb8d0e79d9f17bbdea910a45}{SubFile::read\_impl\_normal}}\},}
\DoxyCodeLine{00033\ \ \ \ \ \ \ \ \ \{\{\mbox{\hyperlink{namespaceaare_a5b95afba95553c1e118e1478c69042f7a36df9c5ff09bbd406715bc0f8beec72e}{DetectorType::Eiger}},\ 32\},\ \&\mbox{\hyperlink{classaare_1_1SubFile_a660d0c9ccb8d0e79d9f17bbdea910a45}{SubFile::read\_impl\_normal}}\},}
\DoxyCodeLine{00034\ \ \ \ \ \ \ \ \ \{\{\mbox{\hyperlink{namespaceaare_a5b95afba95553c1e118e1478c69042f7a36df9c5ff09bbd406715bc0f8beec72e}{DetectorType::Eiger}},\ 16\},\ \&\mbox{\hyperlink{classaare_1_1SubFile_a660d0c9ccb8d0e79d9f17bbdea910a45}{SubFile::read\_impl\_normal}}\}}
\DoxyCodeLine{00035\ }
\DoxyCodeLine{00036\ \ \ \ \ \};}
\DoxyCodeLine{00037\ }
\DoxyCodeLine{00038\ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{00048\ \ \ \ \ \mbox{\hyperlink{classaare_1_1SubFile}{SubFile}}(std::filesystem::path\ fname,\ \mbox{\hyperlink{namespaceaare_a5b95afba95553c1e118e1478c69042f7}{DetectorType}}\ detector,\ ssize\_t\ rows,\ ssize\_t\ cols,\ uint16\_t\ bitdepth);}
\DoxyCodeLine{00049\ }
\DoxyCodeLine{00055\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1SubFile_a660d0c9ccb8d0e79d9f17bbdea910a45}{read\_impl\_normal}}(std::byte\ *buffer);}
\DoxyCodeLine{00056\ }
\DoxyCodeLine{00062\ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ DataType>\ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1SubFile_af8977099c5a78c5d76d3fb3f41d450de}{read\_impl\_flip}}(std::byte\ *buffer);}
\DoxyCodeLine{00063\ }
\DoxyCodeLine{00069\ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ DataType>\ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1SubFile_aa41e65b3174ad83c7eee101421104c69}{read\_impl\_reorder}}(std::byte\ *buffer);}
\DoxyCodeLine{00070\ }
\DoxyCodeLine{00077\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1SubFile_a4f13c03f410dfae1440d3d7126914416}{get\_part}}(std::byte\ *buffer,\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{classaare_1_1SubFile_adb165b1e12b49ad58dfac71a9ad5e64f}{frame\_number}});}
\DoxyCodeLine{00078\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1SubFile_adb165b1e12b49ad58dfac71a9ad5e64f}{frame\_number}}(\textcolor{keywordtype}{int}\ frame\_index);}
\DoxyCodeLine{00079\ }
\DoxyCodeLine{00080\ \ \ \ \ \textcolor{comment}{//\ TODO:\ define\ the\ inlines\ as\ variables\ and\ assign\ them\ in\ constructor}}
\DoxyCodeLine{00081\ \ \ \ \ \textcolor{keyword}{inline}\ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1SubFile_a3d54db8c48d87c4da2c9c7e263a8f953}{bytes\_per\_part}}()\ \{\ \textcolor{keywordflow}{return}\ (\mbox{\hyperlink{classaare_1_1SubFile_acd8a2bd749eaf02f1413af755e9c8108}{m\_bitdepth}}\ /\ 8)\ *\ \mbox{\hyperlink{classaare_1_1SubFile_a16592f71e1f546fce6a00707768e6fad}{m\_rows}}\ *\ \mbox{\hyperlink{classaare_1_1SubFile_af5a74f674ac2a626ff6b8a761a6558ee}{m\_cols}};\ \}}
\DoxyCodeLine{00082\ \ \ \ \ \textcolor{keyword}{inline}\ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1SubFile_a90d1b67477a665badbf23fc582fe11d2}{pixels\_per\_part}}()\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1SubFile_a16592f71e1f546fce6a00707768e6fad}{m\_rows}}\ *\ \mbox{\hyperlink{classaare_1_1SubFile_af5a74f674ac2a626ff6b8a761a6558ee}{m\_cols}};\ \}}
\DoxyCodeLine{00083\ }
\DoxyCodeLine{00084\ \ \ \textcolor{keyword}{protected}:}
\DoxyCodeLine{00085\ \ \ \ \ FILE\ *\mbox{\hyperlink{classaare_1_1SubFile_aaee4e9dddec3bbfa3267d1ba341b4282}{fp}}\ =\ \textcolor{keyword}{nullptr};}
\DoxyCodeLine{00086\ \ \ \ \ ssize\_t\ \mbox{\hyperlink{classaare_1_1SubFile_acd8a2bd749eaf02f1413af755e9c8108}{m\_bitdepth}};}
\DoxyCodeLine{00087\ \ \ \ \ std::filesystem::path\ \mbox{\hyperlink{classaare_1_1SubFile_a81226b922c7a22effced3f88658e5a82}{m\_fname}};}
\DoxyCodeLine{00088\ \ \ \ \ ssize\_t\ \mbox{\hyperlink{classaare_1_1SubFile_a16592f71e1f546fce6a00707768e6fad}{m\_rows}}\{\};}
\DoxyCodeLine{00089\ \ \ \ \ ssize\_t\ \mbox{\hyperlink{classaare_1_1SubFile_af5a74f674ac2a626ff6b8a761a6558ee}{m\_cols}}\{\};}
\DoxyCodeLine{00090\ \ \ \ \ ssize\_t\ \mbox{\hyperlink{classaare_1_1SubFile_abf8c8d431ddd4e8e7154fe01b415e8cc}{n\_frames}}\{\};}
\DoxyCodeLine{00091\ \ \ \ \ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{classaare_1_1SubFile_a9651937b2a83af293c1330b86aa1c884}{m\_sub\_file\_index\_}}\{\};}
\DoxyCodeLine{00092\ \};}
\DoxyCodeLine{00093\ }
\DoxyCodeLine{00094\ \}\ \textcolor{comment}{//\ namespace\ aare}}
\end{DoxyCode}

View File

@ -0,0 +1,33 @@
\doxysection{core/include/aare/core/\+Variable\+Size\+Cluster\+Finder.hpp File Reference}
\hypertarget{VariableSizeClusterFinder_8hpp}{}\label{VariableSizeClusterFinder_8hpp}\index{core/include/aare/core/VariableSizeClusterFinder.hpp@{core/include/aare/core/VariableSizeClusterFinder.hpp}}
{\ttfamily \#include $<$algorithm$>$}\newline
{\ttfamily \#include $<$map$>$}\newline
{\ttfamily \#include $<$unordered\+\_\+map$>$}\newline
{\ttfamily \#include $<$vector$>$}\newline
{\ttfamily \#include \"{}aare/core/\+NDArray.\+hpp\"{}}\newline
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item
class \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder$<$ T $>$}}
\item
struct \mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit}{aare\+::\+Cluster\+Finder$<$ T $>$\+::\+Hit}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Variables}
\begin{DoxyCompactItemize}
\item
const int \mbox{\hyperlink{VariableSizeClusterFinder_8hpp_af7298d7428936e9c8ecb92df87bd621c}{MAX\+\_\+\+CLUSTER\+\_\+\+SIZE}} = 200
\end{DoxyCompactItemize}
\doxysubsection{Variable Documentation}
\Hypertarget{VariableSizeClusterFinder_8hpp_af7298d7428936e9c8ecb92df87bd621c}\label{VariableSizeClusterFinder_8hpp_af7298d7428936e9c8ecb92df87bd621c}
\index{VariableSizeClusterFinder.hpp@{VariableSizeClusterFinder.hpp}!MAX\_CLUSTER\_SIZE@{MAX\_CLUSTER\_SIZE}}
\index{MAX\_CLUSTER\_SIZE@{MAX\_CLUSTER\_SIZE}!VariableSizeClusterFinder.hpp@{VariableSizeClusterFinder.hpp}}
\doxysubsubsection{\texorpdfstring{MAX\_CLUSTER\_SIZE}{MAX\_CLUSTER\_SIZE}}
{\footnotesize\ttfamily const int MAX\+\_\+\+CLUSTER\+\_\+\+SIZE = 200}

View File

@ -0,0 +1,313 @@
\doxysection{Variable\+Size\+Cluster\+Finder.\+hpp}
\hypertarget{VariableSizeClusterFinder_8hpp_source}{}\label{VariableSizeClusterFinder_8hpp_source}\index{core/include/aare/core/VariableSizeClusterFinder.hpp@{core/include/aare/core/VariableSizeClusterFinder.hpp}}
\mbox{\hyperlink{VariableSizeClusterFinder_8hpp}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#pragma\ once}}
\DoxyCodeLine{00002\ }
\DoxyCodeLine{00003\ \textcolor{preprocessor}{\#include\ <algorithm>}}
\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ <map>}}
\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ <unordered\_map>}}
\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ <vector>}}
\DoxyCodeLine{00007\ }
\DoxyCodeLine{00008\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{NDArray_8hpp}{aare/core/NDArray.hpp}}"{}}}
\DoxyCodeLine{00009\ }
\DoxyCodeLine{00010\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{VariableSizeClusterFinder_8hpp_af7298d7428936e9c8ecb92df87bd621c}{MAX\_CLUSTER\_SIZE}}\ =\ 200;}
\DoxyCodeLine{00011\ \textcolor{keyword}{namespace\ }\mbox{\hyperlink{namespaceaare}{aare}}\ \{}
\DoxyCodeLine{00012\ }
\DoxyCodeLine{00013\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T>\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classaare_1_1ClusterFinder}{ClusterFinder}}\ \{}
\DoxyCodeLine{00014\ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{00015\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit}{Hit}}\ \{}
\DoxyCodeLine{00016\ \ \ \ \ \ \ \ \ int16\_t\ \mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit_a467c1a642f4f886142031a9cdedf8974}{size}}\{\};}
\DoxyCodeLine{00017\ \ \ \ \ \ \ \ \ int16\_t\ \mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit_a62e5ba47c8626344a6816906cb440b30}{row}}\{\};}
\DoxyCodeLine{00018\ \ \ \ \ \ \ \ \ int16\_t\ \mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit_afcae3086d96e4761ab437d227a12e872}{col}}\{\};}
\DoxyCodeLine{00019\ \ \ \ \ \ \ \ \ uint16\_t\ \mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit_a3f2ca05a76fa614ab5cfc70c0197093c}{reserved}}\{\};\ \textcolor{comment}{//\ for\ alignment}}
\DoxyCodeLine{00020\ \ \ \ \ \ \ \ \ T\ \mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit_aefdfa834b42bdedc95f872267e9ef08a}{energy}}\{\};}
\DoxyCodeLine{00021\ \ \ \ \ \ \ \ \ T\ \mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit_a92ff57e741cf640d00dce1976616837a}{max}}\{\};}
\DoxyCodeLine{00022\ }
\DoxyCodeLine{00023\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ std::vector<int16\_t>\ rows\{\};}}
\DoxyCodeLine{00024\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ std::vector<int16\_t>\ cols\{\};}}
\DoxyCodeLine{00025\ \ \ \ \ \ \ \ \ int16\_t\ \mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit_a284bcfb7b46f098ec297533aff39991e}{rows}}[\mbox{\hyperlink{VariableSizeClusterFinder_8hpp_af7298d7428936e9c8ecb92df87bd621c}{MAX\_CLUSTER\_SIZE}}]\ =\ \{0\};}
\DoxyCodeLine{00026\ \ \ \ \ \ \ \ \ int16\_t\ \mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit_a567f82696f8b38154602c389ae551306}{cols}}[\mbox{\hyperlink{VariableSizeClusterFinder_8hpp_af7298d7428936e9c8ecb92df87bd621c}{MAX\_CLUSTER\_SIZE}}]\ =\ \{0\};}
\DoxyCodeLine{00027\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit_a6c31a388fb5bcc77aed32dd5fa5fcb08}{enes}}[\mbox{\hyperlink{VariableSizeClusterFinder_8hpp_af7298d7428936e9c8ecb92df87bd621c}{MAX\_CLUSTER\_SIZE}}]\ =\ \{0\};}
\DoxyCodeLine{00028\ \ \ \ \ \};}
\DoxyCodeLine{00029\ }
\DoxyCodeLine{00030\ \ \ \textcolor{keyword}{private}:}
\DoxyCodeLine{00031\ \ \ \ \ \textcolor{keyword}{const}\ std::array<ssize\_t,\ 2>\ \mbox{\hyperlink{classaare_1_1ClusterFinder_a87ae02ed18b8d51cf34d6dcc4a0a11b1}{shape\_}};}
\DoxyCodeLine{00032\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView}{NDView<T,\ 2>}}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_a77a7f9093806a6b66596262c726aedff}{original\_}};}
\DoxyCodeLine{00033\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<int,\ 2>}}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_a0a507adf23a53c14e823c8721c8139dc}{labeled\_}};}
\DoxyCodeLine{00034\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<int,\ 2>}}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_a86342541978eac118b16eefa026930d4}{peripheral\_labeled\_}};}
\DoxyCodeLine{00035\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<bool,\ 2>}}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_aca8f21925565b4f3dbf4677d2ca6ba64}{binary\_}};\ \textcolor{comment}{//\ over\ threshold\ flag}}
\DoxyCodeLine{00036\ \ \ \ \ T\ \mbox{\hyperlink{classaare_1_1ClusterFinder_a2726725360133a70fce11b8072cf2a93}{threshold\_}};}
\DoxyCodeLine{00037\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView}{NDView<T,\ 2>}}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_a8044d4bdabc6ed090f07bfddc362f2eb}{noiseMap}};}
\DoxyCodeLine{00038\ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_ae7622ae945b849df6bad3d2cc0347370}{use\_noise\_map}}\ =\ \textcolor{keyword}{false};}
\DoxyCodeLine{00039\ \ \ \ \ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_af933139fed8103cab83572a6ba449f36}{peripheralThresholdFactor\_}}\ =\ 5;}
\DoxyCodeLine{00040\ \ \ \ \ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_a91e708f8f94adfb3af7e5d9c3a748bb3}{current\_label}};}
\DoxyCodeLine{00041\ \ \ \ \ \textcolor{keyword}{const}\ std::array<int,\ 4>\ \mbox{\hyperlink{classaare_1_1ClusterFinder_a69ffad49f0d31fdf9993774d219f87e8}{di}}\{\{0,\ -\/1,\ -\/1,\ -\/1\}\};\ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ row\ \#\#\#\ 8-\/neighbour\ by\ scaning\ from\ left\ to\ right}}
\DoxyCodeLine{00042\ \ \ \ \ \textcolor{keyword}{const}\ std::array<int,\ 4>\ \mbox{\hyperlink{classaare_1_1ClusterFinder_a7575c70f662ffa316882eec6f2b865e7}{dj}}\{\{-\/1,\ -\/1,\ 0,\ 1\}\};\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ col\ \#\#\#\ 8-\/neighbour\ by\ scaning\ from\ top\ to\ bottom}}
\DoxyCodeLine{00043\ \ \ \ \ \textcolor{keyword}{const}\ std::array<int,\ 8>\ \mbox{\hyperlink{classaare_1_1ClusterFinder_af97013b5f3fff727149b4e09c9d485a3}{di\_}}\{\{0,\ 0,\ -\/1,\ 1,\ -\/1,\ 1,\ -\/1,\ 1\}\};\ \textcolor{comment}{//\ row}}
\DoxyCodeLine{00044\ \ \ \ \ \textcolor{keyword}{const}\ std::array<int,\ 8>\ \mbox{\hyperlink{classaare_1_1ClusterFinder_a9809de5007aeb2095b5ec74f68b6a7d8}{dj\_}}\{\{-\/1,\ 1,\ 0,\ 0,\ 1,\ -\/1,\ -\/1,\ 1\}\};\ \textcolor{comment}{//\ col}}
\DoxyCodeLine{00045\ \ \ \ \ std::map<int,\ int>\ \mbox{\hyperlink{classaare_1_1ClusterFinder_aeeec655301ed05e4c5ee9201e828b7f0}{child}};\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ heirachy:\ key:\ child;\ val:\ parent}}
\DoxyCodeLine{00046\ \ \ \ \ std::unordered\_map<int,\ Hit>\ \mbox{\hyperlink{classaare_1_1ClusterFinder_ad4b7557ac7b34a7fd188564e22d634ec}{h\_size}};}
\DoxyCodeLine{00047\ \ \ \ \ std::vector<Hit>\ \mbox{\hyperlink{classaare_1_1ClusterFinder_ac228fbe6a24d8b2179db87aa0cfecc86}{hits}};}
\DoxyCodeLine{00048\ \ \ \ \ \textcolor{comment}{//\ std::vector<std::vector<int16\_t>>\ row}}
\DoxyCodeLine{00049\ \ \ \ \ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_ac6372eadf0bff57bd560bd07cd59da96}{check\_neighbours}}(\textcolor{keywordtype}{int}\ i,\ \textcolor{keywordtype}{int}\ j);}
\DoxyCodeLine{00050\ }
\DoxyCodeLine{00051\ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{00052\ \ \ \ \ \mbox{\hyperlink{classaare_1_1ClusterFinder_a95c3c74dcd2812659c4664f8896dcc6e}{ClusterFinder}}(image\_shape\ shape,\ T\ threshold)}
\DoxyCodeLine{00053\ \ \ \ \ \ \ \ \ :\ \mbox{\hyperlink{classaare_1_1ClusterFinder_a87ae02ed18b8d51cf34d6dcc4a0a11b1}{shape\_}}(shape),\ \mbox{\hyperlink{classaare_1_1ClusterFinder_a0a507adf23a53c14e823c8721c8139dc}{labeled\_}}(shape,\ 0),\ \mbox{\hyperlink{classaare_1_1ClusterFinder_a86342541978eac118b16eefa026930d4}{peripheral\_labeled\_}}(shape,\ 0),\ \mbox{\hyperlink{classaare_1_1ClusterFinder_aca8f21925565b4f3dbf4677d2ca6ba64}{binary\_}}(shape),\ \mbox{\hyperlink{classaare_1_1ClusterFinder_a2726725360133a70fce11b8072cf2a93}{threshold\_}}(threshold)\ \{}
\DoxyCodeLine{00054\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1ClusterFinder_ac228fbe6a24d8b2179db87aa0cfecc86}{hits}}.reserve(2000);}
\DoxyCodeLine{00055\ \ \ \ \ \}}
\DoxyCodeLine{00056\ }
\DoxyCodeLine{00057\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray<int,\ 2>}}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_a8df807dc085267ece8c8329d546c1560}{labeled}}()\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_a0a507adf23a53c14e823c8721c8139dc}{labeled\_}};\ \}}
\DoxyCodeLine{00058\ }
\DoxyCodeLine{00059\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_acd1fc878a5043e0adc8f085d1edf3ba6}{set\_noiseMap}}(\mbox{\hyperlink{classaare_1_1NDView}{NDView<T,\ 2>}}\ noise\_map)\ \{}
\DoxyCodeLine{00060\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1ClusterFinder_a8044d4bdabc6ed090f07bfddc362f2eb}{noiseMap}}\ =\ noise\_map;}
\DoxyCodeLine{00061\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1ClusterFinder_ae7622ae945b849df6bad3d2cc0347370}{use\_noise\_map}}\ =\ \textcolor{keyword}{true};}
\DoxyCodeLine{00062\ \ \ \ \ \}}
\DoxyCodeLine{00063\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_a3d8448ccd2478a52075a4b7d5e090b2f}{set\_peripheralThresholdFactor}}(\textcolor{keywordtype}{int}\ factor)\ \{\ \mbox{\hyperlink{classaare_1_1ClusterFinder_af933139fed8103cab83572a6ba449f36}{peripheralThresholdFactor\_}}\ =\ factor;\ \}}
\DoxyCodeLine{00064\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_ab880d2c07964ee558a85daed3b3ec181}{find\_clusters}}(\mbox{\hyperlink{classaare_1_1NDView}{NDView<T,\ 2>}}\ img);}
\DoxyCodeLine{00065\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_af33f83aeeb4187f826919270b8b38391}{find\_clusters\_X}}(\mbox{\hyperlink{classaare_1_1NDView}{NDView<T,\ 2>}}\ img);}
\DoxyCodeLine{00066\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_a64540f74ba953ae2ba2efab9f06e9fc5}{rec\_FillHit}}(\textcolor{keywordtype}{int}\ clusterIndex,\ \textcolor{keywordtype}{int}\ i,\ \textcolor{keywordtype}{int}\ j);}
\DoxyCodeLine{00067\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_ab25d54418b721d429f6141da73cc2a41}{single\_pass}}(\mbox{\hyperlink{classaare_1_1NDView}{NDView<T,\ 2>}}\ img);}
\DoxyCodeLine{00068\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_a7993fb06ee06a24ede5a4ddd94f8a987}{first\_pass}}();}
\DoxyCodeLine{00069\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_a6630ba010b0d0b6b4cd8aefe98a1bd9e}{second\_pass}}();}
\DoxyCodeLine{00070\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_a053a2b1729301c1bda8b78a8187112b6}{store\_clusters}}();}
\DoxyCodeLine{00071\ }
\DoxyCodeLine{00072\ \ \ \ \ std::vector<Hit>\ \mbox{\hyperlink{classaare_1_1ClusterFinder_a4695c04a848715d073455b76241119b4}{steal\_hits}}()\ \{}
\DoxyCodeLine{00073\ \ \ \ \ \ \ \ \ std::vector<Hit>\ tmp;}
\DoxyCodeLine{00074\ \ \ \ \ \ \ \ \ std::swap(tmp,\ \mbox{\hyperlink{classaare_1_1ClusterFinder_ac228fbe6a24d8b2179db87aa0cfecc86}{hits}});}
\DoxyCodeLine{00075\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ tmp;}
\DoxyCodeLine{00076\ \ \ \ \ \};}
\DoxyCodeLine{00077\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_a405e7f0d0eabc9a93099763f4eaa8fbc}{clear\_hits}}()\ \{\ \mbox{\hyperlink{classaare_1_1ClusterFinder_ac228fbe6a24d8b2179db87aa0cfecc86}{hits}}.clear();\ \};}
\DoxyCodeLine{00078\ }
\DoxyCodeLine{00079\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_aed823a8611547fb93d6accacdd61b55c}{print\_connections}}()\ \{}
\DoxyCodeLine{00080\ \ \ \ \ \ \ \ \ fmt::print(\textcolor{stringliteral}{"{}Connections:\(\backslash\)n"{}});}
\DoxyCodeLine{00081\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keyword}{auto}\ it\ =\ \mbox{\hyperlink{classaare_1_1ClusterFinder_aeeec655301ed05e4c5ee9201e828b7f0}{child}}.begin();\ it\ !=\ \mbox{\hyperlink{classaare_1_1ClusterFinder_aeeec655301ed05e4c5ee9201e828b7f0}{child}}.end();\ ++it)\ \{}
\DoxyCodeLine{00082\ \ \ \ \ \ \ \ \ \ \ \ \ fmt::print(\textcolor{stringliteral}{"{}\{\}\ -\/>\ \{\}\(\backslash\)n"{}},\ it-\/>first,\ it-\/>second);}
\DoxyCodeLine{00083\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00084\ \ \ \ \ \}}
\DoxyCodeLine{00085\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_a301516e99319ee02ecf4c44f8310ce16}{total\_clusters}}()\textcolor{keyword}{\ const\ }\{}
\DoxyCodeLine{00086\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ TODO!\ fix\ for\ stealing}}
\DoxyCodeLine{00087\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_ac228fbe6a24d8b2179db87aa0cfecc86}{hits}}.size();}
\DoxyCodeLine{00088\ \ \ \ \ \}}
\DoxyCodeLine{00089\ }
\DoxyCodeLine{00090\ \ \ \textcolor{keyword}{private}:}
\DoxyCodeLine{00091\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_a1a31f9419dd90e3136bf1c59e53fbad7}{add\_link}}(\textcolor{keywordtype}{int}\ from,\ \textcolor{keywordtype}{int}\ to)\ \{}
\DoxyCodeLine{00092\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ we\ want\ to\ add\ key\ from\ -\/>\ value\ to}}
\DoxyCodeLine{00093\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ fmt::print("{}add\_link(\{\},\{\})\(\backslash\)n"{},\ from,\ to);}}
\DoxyCodeLine{00094\ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ it\ =\ \mbox{\hyperlink{classaare_1_1ClusterFinder_aeeec655301ed05e4c5ee9201e828b7f0}{child}}.find(from);}
\DoxyCodeLine{00095\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (it\ ==\ \mbox{\hyperlink{classaare_1_1ClusterFinder_aeeec655301ed05e4c5ee9201e828b7f0}{child}}.end())\ \{}
\DoxyCodeLine{00096\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1ClusterFinder_aeeec655301ed05e4c5ee9201e828b7f0}{child}}[from]\ =\ to;}
\DoxyCodeLine{00097\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00098\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ found\ need\ to\ disambiguate}}
\DoxyCodeLine{00099\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (it-\/>second\ ==\ to)}
\DoxyCodeLine{00100\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return};}
\DoxyCodeLine{00101\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00102\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (it-\/>second\ >\ to)\ \{}
\DoxyCodeLine{00103\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ child[from]\ =\ to;}}
\DoxyCodeLine{00104\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ old\ =\ it-\/>second;}
\DoxyCodeLine{00105\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ it-\/>second\ =\ to;}
\DoxyCodeLine{00106\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1ClusterFinder_a1a31f9419dd90e3136bf1c59e53fbad7}{add\_link}}(old,\ to);}
\DoxyCodeLine{00107\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00108\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ found\ value\ is\ smaller\ than\ what\ we\ want\ to\ link}}
\DoxyCodeLine{00109\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1ClusterFinder_a1a31f9419dd90e3136bf1c59e53fbad7}{add\_link}}(to,\ it-\/>second);}
\DoxyCodeLine{00110\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00111\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00112\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00113\ \ \ \ \ \}}
\DoxyCodeLine{00114\ \};}
\DoxyCodeLine{00115\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T>\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_ac6372eadf0bff57bd560bd07cd59da96}{ClusterFinder<T>::check\_neighbours}}(\textcolor{keywordtype}{int}\ i,\ \textcolor{keywordtype}{int}\ j)\ \{}
\DoxyCodeLine{00116\ \ \ \ \ std::vector<int>\ neighbour\_labels;}
\DoxyCodeLine{00117\ }
\DoxyCodeLine{00118\ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ k\ =\ 0;\ k\ <\ 4;\ ++k)\ \{}
\DoxyCodeLine{00119\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keyword}{auto}\ row\ =\ i\ +\ di[k];}
\DoxyCodeLine{00120\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keyword}{auto}\ col\ =\ j\ +\ dj[k];}
\DoxyCodeLine{00121\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (row\ >=\ 0\ \&\&\ col\ >=\ 0\ \&\&\ row\ <\ shape\_[0]\ \&\&\ col\ <\ shape\_[1])\ \{}
\DoxyCodeLine{00122\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ tmp\ =\ labeled\_.value(i\ +\ di[k],\ j\ +\ dj[k]);}
\DoxyCodeLine{00123\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (tmp\ !=\ 0)}
\DoxyCodeLine{00124\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ neighbour\_labels.push\_back(tmp);}
\DoxyCodeLine{00125\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00126\ \ \ \ \ \}}
\DoxyCodeLine{00127\ }
\DoxyCodeLine{00128\ \ \ \ \ \textcolor{keywordflow}{if}\ (neighbour\_labels.size()\ ==\ 0)\ \{}
\DoxyCodeLine{00129\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{00130\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00131\ }
\DoxyCodeLine{00132\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ need\ to\ sort\ and\ add\ to\ union\ field}}
\DoxyCodeLine{00133\ \ \ \ \ \ \ \ \ std::sort(neighbour\_labels.rbegin(),\ neighbour\_labels.rend());}
\DoxyCodeLine{00134\ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ first\ =\ neighbour\_labels.begin();}
\DoxyCodeLine{00135\ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ last\ =\ std::unique(first,\ neighbour\_labels.end());}
\DoxyCodeLine{00136\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (last\ -\/\ first\ ==\ 1)}
\DoxyCodeLine{00137\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ *neighbour\_labels.begin();}
\DoxyCodeLine{00138\ }
\DoxyCodeLine{00139\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keyword}{auto}\ current\ =\ first;\ current\ !=\ last\ -\/\ 1;\ ++current)\ \{}
\DoxyCodeLine{00140\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ next\ =\ current\ +\ 1;}
\DoxyCodeLine{00141\ \ \ \ \ \ \ \ \ \ \ \ \ add\_link(*current,\ *next);}
\DoxyCodeLine{00142\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00143\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ neighbour\_labels.back();\ \textcolor{comment}{//\ already\ sorted}}
\DoxyCodeLine{00144\ \ \ \ \ \}}
\DoxyCodeLine{00145\ \}}
\DoxyCodeLine{00146\ }
\DoxyCodeLine{00147\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T>\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_ab880d2c07964ee558a85daed3b3ec181}{ClusterFinder<T>::find\_clusters}}(\mbox{\hyperlink{classaare_1_1NDView}{NDView<T,\ 2>}}\ img)\ \{}
\DoxyCodeLine{00148\ \ \ \ \ original\_\ =\ img;}
\DoxyCodeLine{00149\ \ \ \ \ labeled\_\ =\ 0;}
\DoxyCodeLine{00150\ \ \ \ \ peripheral\_labeled\_\ =\ 0;}
\DoxyCodeLine{00151\ \ \ \ \ current\_label\ =\ 0;}
\DoxyCodeLine{00152\ \ \ \ \ child.clear();}
\DoxyCodeLine{00153\ \ \ \ \ first\_pass();}
\DoxyCodeLine{00154\ \ \ \ \ \textcolor{comment}{//\ print\_connections();}}
\DoxyCodeLine{00155\ \ \ \ \ second\_pass();}
\DoxyCodeLine{00156\ \ \ \ \ store\_clusters();}
\DoxyCodeLine{00157\ \}}
\DoxyCodeLine{00158\ }
\DoxyCodeLine{00159\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T>\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_af33f83aeeb4187f826919270b8b38391}{ClusterFinder<T>::find\_clusters\_X}}(\mbox{\hyperlink{classaare_1_1NDView}{NDView<T,\ 2>}}\ img)\ \{}
\DoxyCodeLine{00160\ \ \ \ \ original\_\ =\ img;}
\DoxyCodeLine{00161\ \ \ \ \ \textcolor{keywordtype}{int}\ clusterIndex\ =\ 0;}
\DoxyCodeLine{00162\ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ shape\_[0];\ ++i)\ \{}
\DoxyCodeLine{00163\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ j\ =\ 0;\ j\ <\ shape\_[1];\ ++j)\ \{}
\DoxyCodeLine{00164\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (use\_noise\_map)}
\DoxyCodeLine{00165\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ threshold\_\ =\ 5\ *\ noiseMap(i,\ j);}
\DoxyCodeLine{00166\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (original\_(i,\ j)\ >\ threshold\_)\ \{}
\DoxyCodeLine{00167\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ printf("{}==========\ Cluster\ index:\ \%d\(\backslash\)n"{},\ clusterIndex);}}
\DoxyCodeLine{00168\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ rec\_FillHit(clusterIndex,\ i,\ j);}
\DoxyCodeLine{00169\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ clusterIndex++;}
\DoxyCodeLine{00170\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00171\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00172\ \ \ \ \ \}}
\DoxyCodeLine{00173\ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keyword}{const}\ \textcolor{keyword}{auto}\ \&h\ :\ h\_size)}
\DoxyCodeLine{00174\ \ \ \ \ \ \ \ \ hits.push\_back(h.second);}
\DoxyCodeLine{00175\ \ \ \ \ h\_size.clear();}
\DoxyCodeLine{00176\ \}}
\DoxyCodeLine{00177\ }
\DoxyCodeLine{00178\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T>\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_a64540f74ba953ae2ba2efab9f06e9fc5}{ClusterFinder<T>::rec\_FillHit}}(\textcolor{keywordtype}{int}\ clusterIndex,\ \textcolor{keywordtype}{int}\ i,\ \textcolor{keywordtype}{int}\ j)\ \{}
\DoxyCodeLine{00179\ \ \ \ \ \textcolor{comment}{//\ printf("{}original\_(\%d,\ \%d)=\%f\(\backslash\)n"{},\ i,\ j,\ original\_(i,j));}}
\DoxyCodeLine{00180\ \ \ \ \ \textcolor{comment}{//\ printf("{}h\_size[\%d].size=\%d\(\backslash\)n"{},\ clusterIndex,\ h\_size[clusterIndex].size);}}
\DoxyCodeLine{00181\ \ \ \ \ \textcolor{keywordflow}{if}\ (h\_size[clusterIndex].size\ <\ \mbox{\hyperlink{VariableSizeClusterFinder_8hpp_af7298d7428936e9c8ecb92df87bd621c}{MAX\_CLUSTER\_SIZE}})\ \{}
\DoxyCodeLine{00182\ \ \ \ \ \ \ \ \ h\_size[clusterIndex].rows[h\_size[clusterIndex].size]\ =\ i;}
\DoxyCodeLine{00183\ \ \ \ \ \ \ \ \ h\_size[clusterIndex].cols[h\_size[clusterIndex].size]\ =\ j;}
\DoxyCodeLine{00184\ \ \ \ \ \ \ \ \ h\_size[clusterIndex].enes[h\_size[clusterIndex].size]\ =\ original\_(i,\ j);}
\DoxyCodeLine{00185\ \ \ \ \ \}}
\DoxyCodeLine{00186\ \ \ \ \ h\_size[clusterIndex].size\ +=\ 1;}
\DoxyCodeLine{00187\ \ \ \ \ h\_size[clusterIndex].energy\ +=\ original\_(i,\ j);}
\DoxyCodeLine{00188\ \ \ \ \ \textcolor{keywordflow}{if}\ (h\_size[clusterIndex].max\ <\ original\_(i,\ j))\ \{}
\DoxyCodeLine{00189\ \ \ \ \ \ \ \ \ h\_size[clusterIndex].row\ =\ i;}
\DoxyCodeLine{00190\ \ \ \ \ \ \ \ \ h\_size[clusterIndex].col\ =\ j;}
\DoxyCodeLine{00191\ \ \ \ \ \ \ \ \ h\_size[clusterIndex].max\ =\ original\_(i,\ j);}
\DoxyCodeLine{00192\ \ \ \ \ \}}
\DoxyCodeLine{00193\ \ \ \ \ original\_(i,\ j)\ =\ 0;}
\DoxyCodeLine{00194\ }
\DoxyCodeLine{00195\ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ k\ =\ 0;\ k\ <\ 8;\ ++k)\ \{\ \textcolor{comment}{//\ 8\ for\ 8-\/neighbour}}
\DoxyCodeLine{00196\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keyword}{auto}\ row\ =\ i\ +\ di\_[k];}
\DoxyCodeLine{00197\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keyword}{auto}\ col\ =\ j\ +\ dj\_[k];}
\DoxyCodeLine{00198\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (row\ >=\ 0\ \&\&\ col\ >=\ 0\ \&\&\ row\ <\ shape\_[0]\ \&\&\ col\ <\ shape\_[1])\ \{}
\DoxyCodeLine{00199\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (use\_noise\_map)}
\DoxyCodeLine{00200\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ threshold\_\ =\ peripheralThresholdFactor\_\ *\ noiseMap(row,\ col);}
\DoxyCodeLine{00201\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (original\_(row,\ col)\ >\ threshold\_)\ \{}
\DoxyCodeLine{00202\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ rec\_FillHit(clusterIndex,\ row,\ col);}
\DoxyCodeLine{00203\ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00204\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ if\ (h\_size[clusterIndex].size\ <\ MAX\_CLUSTER\_SIZE)\{}}
\DoxyCodeLine{00205\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ \ \ \ \ h\_size[clusterIndex].size\ +=\ 1;}}
\DoxyCodeLine{00206\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ \ \ \ \ h\_size[clusterIndex].rows[h\_size[clusterIndex].size]\ =\ row;}}
\DoxyCodeLine{00207\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ \ \ \ \ h\_size[clusterIndex].cols[h\_size[clusterIndex].size]\ =\ col;}}
\DoxyCodeLine{00208\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ \ \ \ \ h\_size[clusterIndex].enes[h\_size[clusterIndex].size]\ =\ original\_(row,\ col);}}
\DoxyCodeLine{00209\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ \}//\ ?\ weather\ to\ include\ peripheral\ pixels}}
\DoxyCodeLine{00210\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ original\_(row,\ col)\ =\ 0;\ \textcolor{comment}{//\ remove\ peripheral\ pixels,\ to\ avoid\ potential\ influence\ for\ pedestal\ updating}}
\DoxyCodeLine{00211\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00212\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00213\ \ \ \ \ \}}
\DoxyCodeLine{00214\ \}}
\DoxyCodeLine{00215\ }
\DoxyCodeLine{00216\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T>\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_ab25d54418b721d429f6141da73cc2a41}{ClusterFinder<T>::single\_pass}}(\mbox{\hyperlink{classaare_1_1NDView}{NDView<T,\ 2>}}\ img)\ \{}
\DoxyCodeLine{00217\ \ \ \ \ original\_\ =\ img;}
\DoxyCodeLine{00218\ \ \ \ \ labeled\_\ =\ 0;}
\DoxyCodeLine{00219\ \ \ \ \ current\_label\ =\ 0;}
\DoxyCodeLine{00220\ \ \ \ \ child.clear();}
\DoxyCodeLine{00221\ \ \ \ \ first\_pass();}
\DoxyCodeLine{00222\ \ \ \ \ \textcolor{comment}{//\ print\_connections();}}
\DoxyCodeLine{00223\ \ \ \ \ \textcolor{comment}{//\ second\_pass();}}
\DoxyCodeLine{00224\ \ \ \ \ \textcolor{comment}{//\ store\_clusters();}}
\DoxyCodeLine{00225\ \}}
\DoxyCodeLine{00226\ }
\DoxyCodeLine{00227\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T>\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_a7993fb06ee06a24ede5a4ddd94f8a987}{ClusterFinder<T>::first\_pass}}()\ \{}
\DoxyCodeLine{00228\ }
\DoxyCodeLine{00229\ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ original\_.size();\ ++i)\ \{}
\DoxyCodeLine{00230\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (use\_noise\_map)}
\DoxyCodeLine{00231\ \ \ \ \ \ \ \ \ \ \ \ \ threshold\_\ =\ 5\ *\ noiseMap(i);}
\DoxyCodeLine{00232\ \ \ \ \ \ \ \ \ binary\_(i)\ =\ (original\_(i)\ >\ threshold\_);}
\DoxyCodeLine{00233\ \ \ \ \ \}}
\DoxyCodeLine{00234\ }
\DoxyCodeLine{00235\ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ shape\_[0];\ ++i)\ \{}
\DoxyCodeLine{00236\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ j\ =\ 0;\ j\ <\ shape\_[1];\ ++j)\ \{}
\DoxyCodeLine{00237\ }
\DoxyCodeLine{00238\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ do\ we\ have\ someting\ to\ process?}}
\DoxyCodeLine{00239\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (binary\_(i,\ j))\ \{}
\DoxyCodeLine{00240\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ tmp\ =\ check\_neighbours(i,\ j);}
\DoxyCodeLine{00241\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (tmp\ !=\ 0)\ \{}
\DoxyCodeLine{00242\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ labeled\_(i,\ j)\ =\ tmp;}
\DoxyCodeLine{00243\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00244\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ labeled\_(i,\ j)\ =\ ++current\_label;}
\DoxyCodeLine{00245\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00246\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00247\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00248\ \ \ \ \ \}}
\DoxyCodeLine{00249\ \}}
\DoxyCodeLine{00250\ }
\DoxyCodeLine{00251\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T>\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_a6630ba010b0d0b6b4cd8aefe98a1bd9e}{ClusterFinder<T>::second\_pass}}()\ \{}
\DoxyCodeLine{00252\ }
\DoxyCodeLine{00253\ \ \ \ \ \textcolor{keywordflow}{for}\ (ssize\_t\ i\ =\ 0;\ i\ !=\ labeled\_.size();\ ++i)\ \{}
\DoxyCodeLine{00254\ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ current\_label\ =\ labeled\_(i);}
\DoxyCodeLine{00255\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (current\_label\ !=\ 0)\ \{}
\DoxyCodeLine{00256\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ it\ =\ child.find(current\_label);}
\DoxyCodeLine{00257\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}\ (it\ !=\ child.end())\ \{}
\DoxyCodeLine{00258\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ current\_label\ =\ it-\/>second;}
\DoxyCodeLine{00259\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ it\ =\ child.find(current\_label);}
\DoxyCodeLine{00260\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ do\ this\ once\ before\ doing\ the\ second\ pass?}}
\DoxyCodeLine{00261\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ all\ values\ point\ to\ the\ final\ one...}}
\DoxyCodeLine{00262\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00263\ \ \ \ \ \ \ \ \ \ \ \ \ labeled\_(i)\ =\ current\_label;}
\DoxyCodeLine{00264\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00265\ \ \ \ \ \}}
\DoxyCodeLine{00266\ \}}
\DoxyCodeLine{00267\ }
\DoxyCodeLine{00268\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T>\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1ClusterFinder_a053a2b1729301c1bda8b78a8187112b6}{ClusterFinder<T>::store\_clusters}}()\ \{}
\DoxyCodeLine{00269\ }
\DoxyCodeLine{00270\ \ \ \ \ \textcolor{comment}{//\ Accumulate\ hit\ information\ in\ a\ map}}
\DoxyCodeLine{00271\ \ \ \ \ \textcolor{comment}{//\ Do\ we\ always\ have\ monotonic\ increasing}}
\DoxyCodeLine{00272\ \ \ \ \ \textcolor{comment}{//\ labels?\ Then\ vector?}}
\DoxyCodeLine{00273\ \ \ \ \ \textcolor{comment}{//\ here\ the\ translation\ is\ label\ -\/>\ Hit}}
\DoxyCodeLine{00274\ \ \ \ \ std::unordered\_map<int,\ Hit>\ h\_size;}
\DoxyCodeLine{00275\ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ shape\_[0];\ ++i)\ \{}
\DoxyCodeLine{00276\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ j\ =\ 0;\ j\ <\ shape\_[1];\ ++j)\ \{}
\DoxyCodeLine{00277\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (labeled\_(i,\ j)\ !=\ 0\ or\ \textcolor{keyword}{false}}
\DoxyCodeLine{00278\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ (i-\/1\ >=\ 0\ and\ labeled\_(i-\/1,\ j)\ !=\ 0)\ or\ //\ another\ circle\ of\ peripheral\ pixels}}
\DoxyCodeLine{00279\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ (j-\/1\ >=\ 0\ and\ labeled\_(i,\ j-\/1)\ !=\ 0)\ or}}
\DoxyCodeLine{00280\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ (i+1\ <\ shape\_[0]\ and\ labeled\_(i+1,\ j)\ !=\ 0)\ or}}
\DoxyCodeLine{00281\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ (j+1\ <\ shape\_[1]\ and\ labeled\_(i,\ j+1)\ !=\ 0)}}
\DoxyCodeLine{00282\ \ \ \ \ \ \ \ \ \ \ \ \ )\ \{}
\DoxyCodeLine{00283\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit}{Hit}}\ \&record\ =\ h\_size[labeled\_(i,\ j)];}
\DoxyCodeLine{00284\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (record.\mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit_a467c1a642f4f886142031a9cdedf8974}{size}}\ <\ \mbox{\hyperlink{VariableSizeClusterFinder_8hpp_af7298d7428936e9c8ecb92df87bd621c}{MAX\_CLUSTER\_SIZE}})\ \{}
\DoxyCodeLine{00285\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ record.\mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit_a284bcfb7b46f098ec297533aff39991e}{rows}}[record.\mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit_a467c1a642f4f886142031a9cdedf8974}{size}}]\ =\ i;}
\DoxyCodeLine{00286\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ record.\mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit_a567f82696f8b38154602c389ae551306}{cols}}[record.\mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit_a467c1a642f4f886142031a9cdedf8974}{size}}]\ =\ j;}
\DoxyCodeLine{00287\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ record.\mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit_a6c31a388fb5bcc77aed32dd5fa5fcb08}{enes}}[record.\mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit_a467c1a642f4f886142031a9cdedf8974}{size}}]\ =\ original\_(i,\ j);}
\DoxyCodeLine{00288\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00289\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{continue};}
\DoxyCodeLine{00290\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00291\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ record.\mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit_a467c1a642f4f886142031a9cdedf8974}{size}}\ +=\ 1;}
\DoxyCodeLine{00292\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ record.\mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit_aefdfa834b42bdedc95f872267e9ef08a}{energy}}\ +=\ original\_(i,\ j);}
\DoxyCodeLine{00293\ }
\DoxyCodeLine{00294\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (record.\mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit_a92ff57e741cf640d00dce1976616837a}{max}}\ <\ original\_(i,\ j))\ \{}
\DoxyCodeLine{00295\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ record.\mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit_a62e5ba47c8626344a6816906cb440b30}{row}}\ =\ i;}
\DoxyCodeLine{00296\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ record.\mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit_afcae3086d96e4761ab437d227a12e872}{col}}\ =\ j;}
\DoxyCodeLine{00297\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ record.\mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit_a92ff57e741cf640d00dce1976616837a}{max}}\ =\ original\_(i,\ j);}
\DoxyCodeLine{00298\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00299\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00300\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00301\ \ \ \ \ \}}
\DoxyCodeLine{00302\ }
\DoxyCodeLine{00303\ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keyword}{const}\ \textcolor{keyword}{auto}\ \&h\ :\ h\_size)}
\DoxyCodeLine{00304\ \ \ \ \ \ \ \ \ hits.push\_back(h.second);}
\DoxyCodeLine{00305\ \}}
\DoxyCodeLine{00306\ }
\DoxyCodeLine{00307\ \}\ \textcolor{comment}{//\ namespace\ aare}}
\end{DoxyCode}

View File

@ -0,0 +1,75 @@
\doxysection{network\+\_\+io/src/\+Zmq\+Header.cpp File Reference}
\hypertarget{ZmqHeader_8cpp}{}\label{ZmqHeader_8cpp}\index{network\_io/src/ZmqHeader.cpp@{network\_io/src/ZmqHeader.cpp}}
{\ttfamily \#include \"{}aare/network\+\_\+io/\+Zmq\+Header.\+hpp\"{}}\newline
{\ttfamily \#include \"{}simdjson.\+h\"{}}\newline
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item
{\footnotesize template$<$typename T $>$ }\\void \mbox{\hyperlink{ZmqHeader_8cpp_a544ca552152d57c0006c6eb361b07aa7}{write\+\_\+digit}} (std\+::string \&s, const std\+::string \&key, const T \&value)
\begin{DoxyCompactList}\small\item\em write a digit to a string takes key and value and outputs-\/\texorpdfstring{$>$}{>}\"{}key\"{}\+: value, \end{DoxyCompactList}\item
void \mbox{\hyperlink{ZmqHeader_8cpp_a3c314b7004ca6f606d7a24e861d4acd0}{write\+\_\+str}} (std\+::string \&s, const std\+::string \&key, const std\+::string \&value)
\item
void \mbox{\hyperlink{ZmqHeader_8cpp_a3fd7f2167e68c18f441b18e36c201362}{write\+\_\+map}} (std\+::string \&s, const std\+::string \&key, const std\+::map$<$ std\+::string, std\+::string $>$ \&value)
\item
void \mbox{\hyperlink{ZmqHeader_8cpp_a40da37505a8960ac3306e41d533e7aa4}{write\+\_\+array}} (std\+::string \&s, const std\+::string \&key, const std\+::array$<$ int, 4 $>$ \&value)
\end{DoxyCompactItemize}
\doxysubsection{Function Documentation}
\Hypertarget{ZmqHeader_8cpp_a40da37505a8960ac3306e41d533e7aa4}\label{ZmqHeader_8cpp_a40da37505a8960ac3306e41d533e7aa4}
\index{ZmqHeader.cpp@{ZmqHeader.cpp}!write\_array@{write\_array}}
\index{write\_array@{write\_array}!ZmqHeader.cpp@{ZmqHeader.cpp}}
\doxysubsubsection{\texorpdfstring{write\_array()}{write\_array()}}
{\footnotesize\ttfamily void write\+\_\+array (\begin{DoxyParamCaption}\item[{std\+::string \&}]{s, }\item[{const std\+::string \&}]{key, }\item[{const std\+::array$<$ int, 4 $>$ \&}]{value }\end{DoxyParamCaption})}
\Hypertarget{ZmqHeader_8cpp_a544ca552152d57c0006c6eb361b07aa7}\label{ZmqHeader_8cpp_a544ca552152d57c0006c6eb361b07aa7}
\index{ZmqHeader.cpp@{ZmqHeader.cpp}!write\_digit@{write\_digit}}
\index{write\_digit@{write\_digit}!ZmqHeader.cpp@{ZmqHeader.cpp}}
\doxysubsubsection{\texorpdfstring{write\_digit()}{write\_digit()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
void write\+\_\+digit (\begin{DoxyParamCaption}\item[{std\+::string \&}]{s, }\item[{const std\+::string \&}]{key, }\item[{const T \&}]{value }\end{DoxyParamCaption})}
write a digit to a string takes key and value and outputs-\/\texorpdfstring{$>$}{>}\"{}key\"{}\+: value,
\begin{DoxyTemplParams}{Template Parameters}
{\em T} & type of value (int, uint32\+\_\+t, ...) \\
\hline
\end{DoxyTemplParams}
\begin{DoxyParams}{Parameters}
{\em s} & string to append to \\
\hline
{\em key} & key to write \\
\hline
{\em value} & value to write \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void
\end{DoxyReturn}
\begin{DoxyNote}{Note}
\begin{DoxyItemize}
\item can\textquotesingle{}t use concepts here because we are using c++17
\end{DoxyItemize}
\end{DoxyNote}
\Hypertarget{ZmqHeader_8cpp_a3fd7f2167e68c18f441b18e36c201362}\label{ZmqHeader_8cpp_a3fd7f2167e68c18f441b18e36c201362}
\index{ZmqHeader.cpp@{ZmqHeader.cpp}!write\_map@{write\_map}}
\index{write\_map@{write\_map}!ZmqHeader.cpp@{ZmqHeader.cpp}}
\doxysubsubsection{\texorpdfstring{write\_map()}{write\_map()}}
{\footnotesize\ttfamily void write\+\_\+map (\begin{DoxyParamCaption}\item[{std\+::string \&}]{s, }\item[{const std\+::string \&}]{key, }\item[{const std\+::map$<$ std\+::string, std\+::string $>$ \&}]{value }\end{DoxyParamCaption})}
\Hypertarget{ZmqHeader_8cpp_a3c314b7004ca6f606d7a24e861d4acd0}\label{ZmqHeader_8cpp_a3c314b7004ca6f606d7a24e861d4acd0}
\index{ZmqHeader.cpp@{ZmqHeader.cpp}!write\_str@{write\_str}}
\index{write\_str@{write\_str}!ZmqHeader.cpp@{ZmqHeader.cpp}}
\doxysubsubsection{\texorpdfstring{write\_str()}{write\_str()}}
{\footnotesize\ttfamily void write\+\_\+str (\begin{DoxyParamCaption}\item[{std\+::string \&}]{s, }\item[{const std\+::string \&}]{key, }\item[{const std\+::string \&}]{value }\end{DoxyParamCaption})}

View File

@ -0,0 +1,21 @@
\doxysection{network\+\_\+io/include/aare/network\+\_\+io/\+Zmq\+Header.hpp File Reference}
\hypertarget{ZmqHeader_8hpp}{}\label{ZmqHeader_8hpp}\index{network\_io/include/aare/network\_io/ZmqHeader.hpp@{network\_io/include/aare/network\_io/ZmqHeader.hpp}}
{\ttfamily \#include \"{}aare/core/\+Frame.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/utils/logger.\+hpp\"{}}\newline
{\ttfamily \#include \"{}simdjson.\+h\"{}}\newline
{\ttfamily \#include $<$array$>$}\newline
{\ttfamily \#include $<$cstdint$>$}\newline
{\ttfamily \#include $<$map$>$}\newline
{\ttfamily \#include $<$string$>$}\newline
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item
struct \mbox{\hyperlink{structaare_1_1ZmqHeader}{aare\+::\+Zmq\+Header}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespacesimdjson}{simdjson}}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\end{DoxyCompactItemize}

View File

@ -0,0 +1,119 @@
\doxysection{Zmq\+Header.\+hpp}
\hypertarget{ZmqHeader_8hpp_source}{}\label{ZmqHeader_8hpp_source}\index{network\_io/include/aare/network\_io/ZmqHeader.hpp@{network\_io/include/aare/network\_io/ZmqHeader.hpp}}
\mbox{\hyperlink{ZmqHeader_8hpp}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#pragma\ once}}
\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{Frame_8hpp}{aare/core/Frame.hpp}}"{}}}
\DoxyCodeLine{00003\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{logger_8hpp}{aare/utils/logger.hpp}}"{}}}
\DoxyCodeLine{00004\ }
\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ "{}simdjson.h"{}}}
\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ <array>}}
\DoxyCodeLine{00007\ \textcolor{preprocessor}{\#include\ <cstdint>}}
\DoxyCodeLine{00008\ \textcolor{preprocessor}{\#include\ <map>}}
\DoxyCodeLine{00009\ \textcolor{preprocessor}{\#include\ <string>}}
\DoxyCodeLine{00010\ \textcolor{keyword}{namespace\ }\mbox{\hyperlink{namespacesimdjson}{simdjson}}\ \{}
\DoxyCodeLine{00015\ \textcolor{keyword}{template}\ <>\ simdjson\_inline\ simdjson::simdjson\_result<std::array<int,\ 4>>\ simdjson::ondemand::value::get()\ \textcolor{keyword}{noexcept}\ \{}
\DoxyCodeLine{00016\ \ \ \ \ ondemand::array\ array;}
\DoxyCodeLine{00017\ \ \ \ \ \textcolor{keyword}{auto}\ error\ =\ get\_array().get(array);}
\DoxyCodeLine{00018\ \ \ \ \ \textcolor{keywordflow}{if}\ (error)\ \{}
\DoxyCodeLine{00019\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ error;}
\DoxyCodeLine{00020\ \ \ \ \ \}}
\DoxyCodeLine{00021\ \ \ \ \ std::array<int,\ 4>\ arr;}
\DoxyCodeLine{00022\ \ \ \ \ \textcolor{keywordtype}{int}\ i\ =\ 0;}
\DoxyCodeLine{00023\ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keyword}{auto}\ v\ :\ array)\ \{}
\DoxyCodeLine{00024\ \ \ \ \ \ \ \ \ int64\_t\ val;}
\DoxyCodeLine{00025\ \ \ \ \ \ \ \ \ error\ =\ v.get\_int64().get(val);}
\DoxyCodeLine{00026\ }
\DoxyCodeLine{00027\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (error)\ \{}
\DoxyCodeLine{00028\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ error;}
\DoxyCodeLine{00029\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00030\ \ \ \ \ \ \ \ \ arr[i++]\ =\ val;}
\DoxyCodeLine{00031\ \ \ \ \ \}}
\DoxyCodeLine{00032\ \ \ \ \ \textcolor{keywordflow}{return}\ arr;}
\DoxyCodeLine{00033\ \}}
\DoxyCodeLine{00034\ }
\DoxyCodeLine{00039\ \textcolor{keyword}{template}\ <>\ simdjson\_inline\ simdjson::simdjson\_result<uint32\_t>\ simdjson::ondemand::value::get()\ \textcolor{keyword}{noexcept}\ \{}
\DoxyCodeLine{00040\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ val;}
\DoxyCodeLine{00041\ \ \ \ \ \textcolor{keyword}{auto}\ error\ =\ get\_uint64().get(val);}
\DoxyCodeLine{00042\ \ \ \ \ \textcolor{keywordflow}{if}\ (error)\ \{}
\DoxyCodeLine{00043\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ error;}
\DoxyCodeLine{00044\ \ \ \ \ \}}
\DoxyCodeLine{00045\ \ \ \ \ \textcolor{keywordflow}{if}\ (val\ >\ std::numeric\_limits<uint32\_t>::max())\ \{}
\DoxyCodeLine{00046\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ 1;}
\DoxyCodeLine{00047\ \ \ \ \ \}}
\DoxyCodeLine{00048\ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{static\_cast<}uint32\_t\textcolor{keyword}{>}(val);}
\DoxyCodeLine{00049\ \}}
\DoxyCodeLine{00050\ }
\DoxyCodeLine{00054\ \textcolor{keyword}{template}\ <>}
\DoxyCodeLine{00055\ simdjson\_inline\ simdjson::simdjson\_result<std::map<std::string,\ std::string>>}
\DoxyCodeLine{00056\ simdjson::ondemand::value::get()\ \textcolor{keyword}{noexcept}\ \{}
\DoxyCodeLine{00057\ \ \ \ \ std::map<std::string,\ std::string>\ map;}
\DoxyCodeLine{00058\ \ \ \ \ ondemand::object\ obj;}
\DoxyCodeLine{00059\ \ \ \ \ \textcolor{keyword}{auto}\ error\ =\ get\_object().get(obj);}
\DoxyCodeLine{00060\ \ \ \ \ \textcolor{keywordflow}{if}\ (error)\ \{}
\DoxyCodeLine{00061\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ error;}
\DoxyCodeLine{00062\ \ \ \ \ \}}
\DoxyCodeLine{00063\ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keyword}{auto}\ field\ :\ obj)\ \{}
\DoxyCodeLine{00064\ \ \ \ \ \ \ \ \ simdjson::ondemand::raw\_json\_string\ tmp;}
\DoxyCodeLine{00065\ \ \ \ \ \ \ \ \ error\ =\ field.key().get(tmp);}
\DoxyCodeLine{00066\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (error)\ \{}
\DoxyCodeLine{00067\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ error;}
\DoxyCodeLine{00068\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00069\ \ \ \ \ \ \ \ \ error\ =\ field.value().get(tmp);}
\DoxyCodeLine{00070\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (error)\ \{}
\DoxyCodeLine{00071\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ error;}
\DoxyCodeLine{00072\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00073\ \ \ \ \ \ \ \ \ std::string\_view\ key\_view\ =\ field.unescaped\_key();}
\DoxyCodeLine{00074\ \ \ \ \ \ \ \ \ std::string\ key\_str(key\_view.data(),\ key\_view.size());}
\DoxyCodeLine{00075\ \ \ \ \ \ \ \ \ std::string\_view\ value\_view\ =\ field.value().get\_string();}
\DoxyCodeLine{00076\ \ \ \ \ \ \ \ \ map[key\_str]\ =\ \{value\_view.data(),\ value\_view.size()\};}
\DoxyCodeLine{00077\ \ \ \ \ \}}
\DoxyCodeLine{00078\ \ \ \ \ \textcolor{keywordflow}{return}\ map;}
\DoxyCodeLine{00079\ \}}
\DoxyCodeLine{00080\ }
\DoxyCodeLine{00081\ \}\ \textcolor{comment}{//\ namespace\ simdjson}}
\DoxyCodeLine{00082\ }
\DoxyCodeLine{00083\ \textcolor{keyword}{namespace\ }\mbox{\hyperlink{namespaceaare}{aare}}\ \{}
\DoxyCodeLine{00084\ }
\DoxyCodeLine{00086\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structaare_1_1ZmqHeader}{ZmqHeader}}\ \{}
\DoxyCodeLine{00088\ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{structaare_1_1ZmqHeader_abc6b8ab126eeeb6947ff3892a8c4af22}{data}}\{\textcolor{keyword}{true}\};}
\DoxyCodeLine{00089\ \ \ \ \ uint32\_t\ \mbox{\hyperlink{structaare_1_1ZmqHeader_abef7af329a052a6a93aa6475f77ce8d0}{jsonversion}}\{0\};}
\DoxyCodeLine{00090\ \ \ \ \ uint32\_t\ \mbox{\hyperlink{structaare_1_1ZmqHeader_a204168b6969b738ad8e9e15b3511f921}{dynamicRange}}\{0\};}
\DoxyCodeLine{00091\ \ \ \ \ uint64\_t\ \mbox{\hyperlink{structaare_1_1ZmqHeader_a96dc350ffe696cc2cf5fb2f3b3b0f948}{fileIndex}}\{0\};}
\DoxyCodeLine{00093\ \ \ \ \ uint32\_t\ \mbox{\hyperlink{structaare_1_1ZmqHeader_a4f5f15da11fd269b5034ce2365c77697}{ndetx}}\{0\};}
\DoxyCodeLine{00095\ \ \ \ \ uint32\_t\ \mbox{\hyperlink{structaare_1_1ZmqHeader_a5cb59c5f8b096c4a8ab8ab2c4434efc8}{ndety}}\{0\};}
\DoxyCodeLine{00097\ \ \ \ \ uint32\_t\ \mbox{\hyperlink{structaare_1_1ZmqHeader_ab74dd730a41ff31f7bf0bb012b46a9bf}{npixelsx}}\{0\};}
\DoxyCodeLine{00099\ \ \ \ \ uint32\_t\ \mbox{\hyperlink{structaare_1_1ZmqHeader_a3fe3e9591ebbab239aeebc034c68396c}{npixelsy}}\{0\};}
\DoxyCodeLine{00101\ \ \ \ \ uint32\_t\ \mbox{\hyperlink{structaare_1_1ZmqHeader_a553186a1c9a254038c88c1d064a01a6b}{imageSize}}\{0\};}
\DoxyCodeLine{00103\ \ \ \ \ uint64\_t\ \mbox{\hyperlink{structaare_1_1ZmqHeader_ad44077f60043919ea4cce5b2afb4addb}{acqIndex}}\{0\};}
\DoxyCodeLine{00105\ \ \ \ \ uint64\_t\ \mbox{\hyperlink{structaare_1_1ZmqHeader_acd24f294bf54871bdd41e896918857b3}{frameIndex}}\{0\};}
\DoxyCodeLine{00107\ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structaare_1_1ZmqHeader_af506ef5de11292d5056c902f131441cd}{progress}}\{0\};}
\DoxyCodeLine{00109\ \ \ \ \ std::string\ \mbox{\hyperlink{structaare_1_1ZmqHeader_af34a97741a1ff54ebc4e060298a30d81}{fname}};}
\DoxyCodeLine{00111\ \ \ \ \ uint64\_t\ \mbox{\hyperlink{structaare_1_1ZmqHeader_ac939e8bb28f7c78c6e60bdc5a3f0fa24}{frameNumber}}\{0\};}
\DoxyCodeLine{00112\ \ \ \ \ uint32\_t\ \mbox{\hyperlink{structaare_1_1ZmqHeader_a11f597ea59c14c9976cf823e3dc90119}{expLength}}\{0\};}
\DoxyCodeLine{00113\ \ \ \ \ uint32\_t\ \mbox{\hyperlink{structaare_1_1ZmqHeader_a1cc29d99dde183862b4b6d563cbe990d}{packetNumber}}\{0\};}
\DoxyCodeLine{00114\ \ \ \ \ uint64\_t\ \mbox{\hyperlink{structaare_1_1ZmqHeader_a21d6952bd400623f4f5c82c2517549b2}{detSpec1}}\{0\};}
\DoxyCodeLine{00115\ \ \ \ \ uint64\_t\ \mbox{\hyperlink{structaare_1_1ZmqHeader_a974ae65dd6b07b8de83857a32140a6e3}{timestamp}}\{0\};}
\DoxyCodeLine{00116\ \ \ \ \ uint16\_t\ \mbox{\hyperlink{structaare_1_1ZmqHeader_a41db0b6b8b69d1911e92819b65453a3d}{modId}}\{0\};}
\DoxyCodeLine{00117\ \ \ \ \ uint16\_t\ \mbox{\hyperlink{structaare_1_1ZmqHeader_a1cfd038a2e22a1243332aafb8ccf0926}{row}}\{0\};}
\DoxyCodeLine{00118\ \ \ \ \ uint16\_t\ \mbox{\hyperlink{structaare_1_1ZmqHeader_a9055548e98d7f5c7be94000077cf9ca0}{column}}\{0\};}
\DoxyCodeLine{00119\ \ \ \ \ uint16\_t\ \mbox{\hyperlink{structaare_1_1ZmqHeader_a8325849b8abdd44f67b1b72de227062c}{detSpec2}}\{0\};}
\DoxyCodeLine{00120\ \ \ \ \ uint32\_t\ \mbox{\hyperlink{structaare_1_1ZmqHeader_ae581d2a4e13f116107fe7850891c9ac8}{detSpec3}}\{0\};}
\DoxyCodeLine{00121\ \ \ \ \ uint16\_t\ \mbox{\hyperlink{structaare_1_1ZmqHeader_a6bb1b6c9da7a68d54873b7969517ba8f}{detSpec4}}\{0\};}
\DoxyCodeLine{00122\ \ \ \ \ uint8\_t\ \mbox{\hyperlink{structaare_1_1ZmqHeader_a05d97cf0b43cdc510276a660606e65a3}{detType}}\{0\};}
\DoxyCodeLine{00123\ \ \ \ \ uint8\_t\ \mbox{\hyperlink{structaare_1_1ZmqHeader_a0a128a6dc9c8917a7518d0f4af5b5735}{version}}\{0\};}
\DoxyCodeLine{00125\ \ \ \ \ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{structaare_1_1ZmqHeader_a37f3d99023eebeb08000ff4dc03632a7}{flipRows}}\{0\};}
\DoxyCodeLine{00127\ \ \ \ \ uint32\_t\ \mbox{\hyperlink{structaare_1_1ZmqHeader_a7a1b315873916872d3ef539679488291}{quad}}\{0\};}
\DoxyCodeLine{00129\ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{structaare_1_1ZmqHeader_aa45927c9dcb69f885f5a3f4fa5f1ce16}{completeImage}}\{\textcolor{keyword}{false}\};}
\DoxyCodeLine{00131\ \ \ \ \ std::map<std::string,\ std::string>\ \mbox{\hyperlink{structaare_1_1ZmqHeader_abf3d0804cb93fc0d5e7dfef0e6f72c3a}{addJsonHeader}};}
\DoxyCodeLine{00133\ \ \ \ \ std::array<int,\ 4>\ \mbox{\hyperlink{structaare_1_1ZmqHeader_af023e76fcd6b4f3dc1c7231e362af7c4}{rx\_roi}}\{\};}
\DoxyCodeLine{00134\ }
\DoxyCodeLine{00136\ \ \ \ \ std::string\ \mbox{\hyperlink{structaare_1_1ZmqHeader_a0efc66ecb0bcf30a8b417b4969627de7}{to\_string}}()\ \textcolor{keyword}{const};}
\DoxyCodeLine{00137\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{structaare_1_1ZmqHeader_a8a603c42606baa3df8869ee542e0bbda}{from\_string}}(std::string\ \&s);}
\DoxyCodeLine{00138\ \ \ \ \ \textcolor{comment}{//\ compare\ operator}}
\DoxyCodeLine{00139\ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{structaare_1_1ZmqHeader_a25225eff34f1a9f4acc3495d4f02cc8b}{operator==}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structaare_1_1ZmqHeader}{ZmqHeader}}\ \&other)\ \textcolor{keyword}{const};}
\DoxyCodeLine{00140\ \};}
\DoxyCodeLine{00141\ }
\DoxyCodeLine{00142\ \}\ \textcolor{comment}{//\ namespace\ aare}}
\end{DoxyCode}

View File

@ -0,0 +1,19 @@
\doxysection{network\+\_\+io/test/\+Zmq\+Header.test.\+cpp File Reference}
\hypertarget{ZmqHeader_8test_8cpp}{}\label{ZmqHeader_8test_8cpp}\index{network\_io/test/ZmqHeader.test.cpp@{network\_io/test/ZmqHeader.test.cpp}}
{\ttfamily \#include \"{}aare/network\+\_\+io/\+Zmq\+Header.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/utils/logger.\+hpp\"{}}\newline
{\ttfamily \#include $<$catch2/catch\+\_\+test\+\_\+macros.\+hpp$>$}\newline
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{ZmqHeader_8test_8cpp_acb7658137ab714c2f1477dae4cd873c8}{TEST\+\_\+\+CASE}} (\"{}Test Zmq\+Header\"{})
\end{DoxyCompactItemize}
\doxysubsection{Function Documentation}
\Hypertarget{ZmqHeader_8test_8cpp_acb7658137ab714c2f1477dae4cd873c8}\label{ZmqHeader_8test_8cpp_acb7658137ab714c2f1477dae4cd873c8}
\index{ZmqHeader.test.cpp@{ZmqHeader.test.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!ZmqHeader.test.cpp@{ZmqHeader.test.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\"{}Test Zmq\+Header\"{}}]{ }\end{DoxyParamCaption})}

View File

@ -0,0 +1,11 @@
\doxysection{network\+\_\+io/src/\+Zmq\+Socket\+Receiver.cpp File Reference}
\hypertarget{ZmqSocketReceiver_8cpp}{}\label{ZmqSocketReceiver_8cpp}\index{network\_io/src/ZmqSocketReceiver.cpp@{network\_io/src/ZmqSocketReceiver.cpp}}
{\ttfamily \#include \"{}aare/network\+\_\+io/\+Zmq\+Socket\+Receiver.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/utils/logger.\+hpp\"{}}\newline
{\ttfamily \#include $<$fmt/core.\+h$>$}\newline
{\ttfamily \#include $<$zmq.\+h$>$}\newline
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\end{DoxyCompactItemize}

View File

@ -0,0 +1,18 @@
\doxysection{network\+\_\+io/include/aare/network\+\_\+io/\+Zmq\+Socket\+Receiver.hpp File Reference}
\hypertarget{ZmqSocketReceiver_8hpp}{}\label{ZmqSocketReceiver_8hpp}\index{network\_io/include/aare/network\_io/ZmqSocketReceiver.hpp@{network\_io/include/aare/network\_io/ZmqSocketReceiver.hpp}}
{\ttfamily \#include \"{}aare/core/\+Frame.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/network\+\_\+io/\+Zmq\+Header.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/network\+\_\+io/\+Zmq\+Socket.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/network\+\_\+io/defs.\+hpp\"{}}\newline
{\ttfamily \#include $<$cstdint$>$}\newline
{\ttfamily \#include $<$string$>$}\newline
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item
class \mbox{\hyperlink{classaare_1_1ZmqSocketReceiver}{aare\+::\+Zmq\+Socket\+Receiver}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\end{DoxyCompactItemize}

View File

@ -0,0 +1,37 @@
\doxysection{Zmq\+Socket\+Receiver.\+hpp}
\hypertarget{ZmqSocketReceiver_8hpp_source}{}\label{ZmqSocketReceiver_8hpp_source}\index{network\_io/include/aare/network\_io/ZmqSocketReceiver.hpp@{network\_io/include/aare/network\_io/ZmqSocketReceiver.hpp}}
\mbox{\hyperlink{ZmqSocketReceiver_8hpp}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#pragma\ once}}
\DoxyCodeLine{00002\ }
\DoxyCodeLine{00003\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{Frame_8hpp}{aare/core/Frame.hpp}}"{}}}
\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{ZmqHeader_8hpp}{aare/network\_io/ZmqHeader.hpp}}"{}}}
\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{ZmqSocket_8hpp}{aare/network\_io/ZmqSocket.hpp}}"{}}}
\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{network__io_2include_2aare_2network__io_2defs_8hpp}{aare/network\_io/defs.hpp}}"{}}}
\DoxyCodeLine{00007\ }
\DoxyCodeLine{00008\ \textcolor{preprocessor}{\#include\ <cstdint>}}
\DoxyCodeLine{00009\ \textcolor{preprocessor}{\#include\ <string>}}
\DoxyCodeLine{00010\ }
\DoxyCodeLine{00011\ \textcolor{comment}{//\ Socket\ to\ receive\ data\ from\ a\ ZMQ\ publisher}}
\DoxyCodeLine{00012\ \textcolor{comment}{//\ needs\ to\ be\ in\ sync\ with\ the\ main\ library\ (or\ maybe\ better\ use\ the\ versioning\ in\ the\ header)}}
\DoxyCodeLine{00013\ }
\DoxyCodeLine{00014\ \textcolor{comment}{//\ forward\ declare\ zmq\_msg\_t\ to\ avoid\ including\ zmq.h\ in\ the\ header}}
\DoxyCodeLine{00015\ \textcolor{keyword}{class\ }zmq\_msg\_t;}
\DoxyCodeLine{00016\ }
\DoxyCodeLine{00017\ \textcolor{keyword}{namespace\ }\mbox{\hyperlink{namespaceaare}{aare}}\ \{}
\DoxyCodeLine{00018\ }
\DoxyCodeLine{00019\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classaare_1_1ZmqSocketReceiver}{ZmqSocketReceiver}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classaare_1_1ZmqSocket}{ZmqSocket}}\ \{}
\DoxyCodeLine{00020\ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{00021\ \ \ \ \ \mbox{\hyperlink{classaare_1_1ZmqSocketReceiver}{ZmqSocketReceiver}}(\textcolor{keyword}{const}\ std::string\ \&endpoint);}
\DoxyCodeLine{00022\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1ZmqSocketReceiver_aaa2bca0e37c80eb2c7e60cd77a819f6b}{connect}}();}
\DoxyCodeLine{00023\ \ \ \ \ std::vector<ZmqFrame>\ \mbox{\hyperlink{classaare_1_1ZmqSocketReceiver_a9e0648acf762956515ea0db29e0466de}{receive\_n}}();}
\DoxyCodeLine{00024\ }
\DoxyCodeLine{00025\ \ \ \textcolor{keyword}{private}:}
\DoxyCodeLine{00026\ \ \ \ \ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{classaare_1_1ZmqSocketReceiver_afd4ee1a6ca11bac4bd8ed0688c05addd}{receive\_data}}(std::byte\ *data,\ \textcolor{keywordtype}{size\_t}\ size);}
\DoxyCodeLine{00027\ \ \ \ \ \mbox{\hyperlink{structaare_1_1ZmqFrame}{ZmqFrame}}\ \mbox{\hyperlink{classaare_1_1ZmqSocketReceiver_aed81980b6f96cbb48e3bd40b9c455d60}{receive\_zmqframe}}();}
\DoxyCodeLine{00028\ \ \ \ \ \mbox{\hyperlink{structaare_1_1ZmqHeader}{ZmqHeader}}\ \mbox{\hyperlink{classaare_1_1ZmqSocketReceiver_ab15e227a1f5446377755b126644d6c0b}{receive\_header}}();}
\DoxyCodeLine{00029\ \};}
\DoxyCodeLine{00030\ }
\DoxyCodeLine{00031\ \}\ \textcolor{comment}{//\ namespace\ aare}}
\end{DoxyCode}

View File

@ -0,0 +1,10 @@
\doxysection{network\+\_\+io/src/\+Zmq\+Socket\+Sender.cpp File Reference}
\hypertarget{ZmqSocketSender_8cpp}{}\label{ZmqSocketSender_8cpp}\index{network\_io/src/ZmqSocketSender.cpp@{network\_io/src/ZmqSocketSender.cpp}}
{\ttfamily \#include \"{}aare/network\+\_\+io/\+Zmq\+Socket\+Sender.\+hpp\"{}}\newline
{\ttfamily \#include $<$cassert$>$}\newline
{\ttfamily \#include $<$zmq.\+h$>$}\newline
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\end{DoxyCompactItemize}

View File

@ -0,0 +1,16 @@
\doxysection{network\+\_\+io/include/aare/network\+\_\+io/\+Zmq\+Socket\+Sender.hpp File Reference}
\hypertarget{ZmqSocketSender_8hpp}{}\label{ZmqSocketSender_8hpp}\index{network\_io/include/aare/network\_io/ZmqSocketSender.hpp@{network\_io/include/aare/network\_io/ZmqSocketSender.hpp}}
{\ttfamily \#include \"{}aare/core/\+Frame.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/network\+\_\+io/\+Zmq\+Header.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/network\+\_\+io/\+Zmq\+Socket.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/network\+\_\+io/defs.\+hpp\"{}}\newline
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item
class \mbox{\hyperlink{classaare_1_1ZmqSocketSender}{aare\+::\+Zmq\+Socket\+Sender}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\end{DoxyCompactItemize}

View File

@ -0,0 +1,22 @@
\doxysection{Zmq\+Socket\+Sender.\+hpp}
\hypertarget{ZmqSocketSender_8hpp_source}{}\label{ZmqSocketSender_8hpp_source}\index{network\_io/include/aare/network\_io/ZmqSocketSender.hpp@{network\_io/include/aare/network\_io/ZmqSocketSender.hpp}}
\mbox{\hyperlink{ZmqSocketSender_8hpp}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#pragma\ once}}
\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{Frame_8hpp}{aare/core/Frame.hpp}}"{}}}
\DoxyCodeLine{00003\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{ZmqHeader_8hpp}{aare/network\_io/ZmqHeader.hpp}}"{}}}
\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{ZmqSocket_8hpp}{aare/network\_io/ZmqSocket.hpp}}"{}}}
\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{network__io_2include_2aare_2network__io_2defs_8hpp}{aare/network\_io/defs.hpp}}"{}}}
\DoxyCodeLine{00006\ }
\DoxyCodeLine{00007\ \textcolor{keyword}{namespace\ }\mbox{\hyperlink{namespaceaare}{aare}}\ \{}
\DoxyCodeLine{00008\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classaare_1_1ZmqSocketSender}{ZmqSocketSender}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classaare_1_1ZmqSocket}{ZmqSocket}}\ \{}
\DoxyCodeLine{00009\ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{00010\ \ \ \ \ \mbox{\hyperlink{classaare_1_1ZmqSocketSender}{ZmqSocketSender}}(\textcolor{keyword}{const}\ std::string\ \&endpoint);}
\DoxyCodeLine{00011\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1ZmqSocketSender_ab1f579fa0235552acaad322119093b60}{bind}}();}
\DoxyCodeLine{00012\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1ZmqSocketSender_a98ac84ddeaafca6a0df9cbfe95a64321}{send}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structaare_1_1ZmqHeader}{ZmqHeader}}\ \&header,\ \textcolor{keyword}{const}\ std::byte\ *data,\ \textcolor{keywordtype}{size\_t}\ size);}
\DoxyCodeLine{00013\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1ZmqSocketSender_a98ac84ddeaafca6a0df9cbfe95a64321}{send}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structaare_1_1ZmqFrame}{ZmqFrame}}\ \&zmq\_frame);}
\DoxyCodeLine{00014\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1ZmqSocketSender_a98ac84ddeaafca6a0df9cbfe95a64321}{send}}(\textcolor{keyword}{const}\ std::vector<ZmqFrame>\ \&zmq\_frames);}
\DoxyCodeLine{00015\ \};}
\DoxyCodeLine{00016\ \}\ \textcolor{comment}{//\ namespace\ aare}}
\end{DoxyCode}

View File

@ -0,0 +1,9 @@
\doxysection{network\+\_\+io/src/\+Zmq\+Socket.cpp File Reference}
\hypertarget{ZmqSocket_8cpp}{}\label{ZmqSocket_8cpp}\index{network\_io/src/ZmqSocket.cpp@{network\_io/src/ZmqSocket.cpp}}
{\ttfamily \#include \"{}aare/network\+\_\+io/\+Zmq\+Socket.\+hpp\"{}}\newline
{\ttfamily \#include $<$zmq.\+h$>$}\newline
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\end{DoxyCompactItemize}

View File

@ -0,0 +1,13 @@
\doxysection{network\+\_\+io/include/aare/network\+\_\+io/\+Zmq\+Socket.hpp File Reference}
\hypertarget{ZmqSocket_8hpp}{}\label{ZmqSocket_8hpp}\index{network\_io/include/aare/network\_io/ZmqSocket.hpp@{network\_io/include/aare/network\_io/ZmqSocket.hpp}}
{\ttfamily \#include $<$string$>$}\newline
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item
class \mbox{\hyperlink{classaare_1_1ZmqSocket}{aare\+::\+Zmq\+Socket}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\end{DoxyCompactItemize}

View File

@ -0,0 +1,44 @@
\doxysection{Zmq\+Socket.\+hpp}
\hypertarget{ZmqSocket_8hpp_source}{}\label{ZmqSocket_8hpp_source}\index{network\_io/include/aare/network\_io/ZmqSocket.hpp@{network\_io/include/aare/network\_io/ZmqSocket.hpp}}
\mbox{\hyperlink{ZmqSocket_8hpp}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#pragma\ once}}
\DoxyCodeLine{00002\ }
\DoxyCodeLine{00003\ \textcolor{preprocessor}{\#include\ <string>}}
\DoxyCodeLine{00004\ }
\DoxyCodeLine{00005\ \textcolor{comment}{//\ Socket\ to\ receive\ data\ from\ a\ ZMQ\ publisher}}
\DoxyCodeLine{00006\ \textcolor{comment}{//\ needs\ to\ be\ in\ sync\ with\ the\ main\ library\ (or\ maybe\ better\ use\ the\ versioning\ in\ the\ header)}}
\DoxyCodeLine{00007\ }
\DoxyCodeLine{00008\ \textcolor{comment}{//\ forward\ declare\ zmq\_msg\_t\ to\ avoid\ including\ zmq.h\ in\ the\ header}}
\DoxyCodeLine{00009\ \textcolor{keyword}{class\ }zmq\_msg\_t;}
\DoxyCodeLine{00010\ }
\DoxyCodeLine{00011\ \textcolor{keyword}{namespace\ }\mbox{\hyperlink{namespaceaare}{aare}}\ \{}
\DoxyCodeLine{00012\ }
\DoxyCodeLine{00013\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classaare_1_1ZmqSocket}{ZmqSocket}}\ \{}
\DoxyCodeLine{00014\ \ \ \textcolor{keyword}{protected}:}
\DoxyCodeLine{00015\ \ \ \ \ \textcolor{keywordtype}{void}\ *\mbox{\hyperlink{classaare_1_1ZmqSocket_ab4b7264f583904f1c3d3181377295204}{m\_context}}\{\textcolor{keyword}{nullptr}\};}
\DoxyCodeLine{00016\ \ \ \ \ \textcolor{keywordtype}{void}\ *\mbox{\hyperlink{classaare_1_1ZmqSocket_a818f6534a600be8422c980d193c85b94}{m\_socket}}\{\textcolor{keyword}{nullptr}\};}
\DoxyCodeLine{00017\ \ \ \ \ std::string\ \mbox{\hyperlink{classaare_1_1ZmqSocket_ab7bfda5aee365ef499a6605b7426ec79}{m\_endpoint}};}
\DoxyCodeLine{00018\ \ \ \ \ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{classaare_1_1ZmqSocket_a13c8da9738e41cf6e884ed0c070ced63}{m\_zmq\_hwm}}\{1000\};}
\DoxyCodeLine{00019\ \ \ \ \ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{classaare_1_1ZmqSocket_a6b4316d6f9edfdac66f5e6393d3eaebf}{m\_timeout\_ms}}\{1000\};}
\DoxyCodeLine{00020\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1ZmqSocket_ab662a79c5fb770399567277523a168d4}{m\_potential\_frame\_size}}\{1024\ *\ 1024\};}
\DoxyCodeLine{00021\ \ \ \ \ \textcolor{keyword}{constexpr}\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1ZmqSocket_aeff0afb3278a5474ddb2525caa8375b9}{m\_max\_header\_size}}\ =\ 1024;}
\DoxyCodeLine{00022\ \ \ \ \ \textcolor{keywordtype}{char}\ *\mbox{\hyperlink{classaare_1_1ZmqSocket_acf6efc2e696efcc0780c0b174e43ae6d}{m\_header\_buffer}}\ =\ \textcolor{keyword}{new}\ \textcolor{keywordtype}{char}[\mbox{\hyperlink{classaare_1_1ZmqSocket_aeff0afb3278a5474ddb2525caa8375b9}{m\_max\_header\_size}}];}
\DoxyCodeLine{00023\ }
\DoxyCodeLine{00024\ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{00025\ \ \ \ \ \mbox{\hyperlink{classaare_1_1ZmqSocket_a1b9bd643c6f86733fc198ad39396cbc8}{ZmqSocket}}()\ =\ \textcolor{keywordflow}{default};}
\DoxyCodeLine{00026\ \ \ \ \ \mbox{\hyperlink{classaare_1_1ZmqSocket_a8608b7b4aeafc0349763bec3a9f26503}{\string~ZmqSocket}}();}
\DoxyCodeLine{00027\ }
\DoxyCodeLine{00028\ \ \ \ \ \mbox{\hyperlink{classaare_1_1ZmqSocket_ab6fe77359ecda3e89d969b96cbcc2f2f}{ZmqSocket}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1ZmqSocket}{ZmqSocket}}\ \&)\ =\ \textcolor{keyword}{delete};}
\DoxyCodeLine{00029\ \ \ \ \ \mbox{\hyperlink{classaare_1_1ZmqSocket}{ZmqSocket}}\ \mbox{\hyperlink{classaare_1_1ZmqSocket_a2bda9d69955c0b9d6f917aff2eeacc75}{operator=}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1ZmqSocket}{ZmqSocket}}\ \&)\ =\ \textcolor{keyword}{delete};}
\DoxyCodeLine{00030\ \ \ \ \ \mbox{\hyperlink{classaare_1_1ZmqSocket_a462d2dc5a4bc97428a9ddb911dbca4af}{ZmqSocket}}(\mbox{\hyperlink{classaare_1_1ZmqSocket}{ZmqSocket}}\ \&\&)\ =\ \textcolor{keyword}{delete};}
\DoxyCodeLine{00031\ }
\DoxyCodeLine{00032\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1ZmqSocket_a0eab196c0b514be8c49a3fd98d758778}{disconnect}}();}
\DoxyCodeLine{00033\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1ZmqSocket_a0223c4d123eb7aec9cd1464509941a99}{set\_zmq\_hwm}}(\textcolor{keywordtype}{int}\ hwm);}
\DoxyCodeLine{00034\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1ZmqSocket_ab1f26596ce66e2ca7d4b26ee912b433c}{set\_timeout\_ms}}(\textcolor{keywordtype}{int}\ n);}
\DoxyCodeLine{00035\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1ZmqSocket_a755a2e592ed706976c0fbf000eb70b96}{set\_potential\_frame\_size}}(\textcolor{keywordtype}{size\_t}\ size);}
\DoxyCodeLine{00036\ \};}
\DoxyCodeLine{00037\ }
\DoxyCodeLine{00038\ \}\ \textcolor{comment}{//\ namespace\ aare}}
\end{DoxyCode}

View File

@ -0,0 +1,7 @@
\doxysection{python/aare/\+\_\+\+\_\+init\+\_\+\+\_\+.py File Reference}
\hypertarget{aare_2____init_____8py}{}\label{aare_2____init_____8py}\index{python/aare/\_\_init\_\_.py@{python/aare/\_\_init\_\_.py}}
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceaare}{aare}}
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1Frame}{Frame} class to represent a single frame of data model class should be able to work with streams coming from files or network. \end{DoxyCompactList}\end{DoxyCompactItemize}

2
docs/latex/aare_8hpp.tex Normal file
View File

@ -0,0 +1,2 @@
\doxysection{include/aare/aare.hpp File Reference}
\hypertarget{aare_8hpp}{}\label{aare_8hpp}\index{include/aare/aare.hpp@{include/aare/aare.hpp}}

View File

@ -0,0 +1,7 @@
\doxysection{aare.\+hpp}
\hypertarget{aare_8hpp_source}{}\label{aare_8hpp_source}\index{include/aare/aare.hpp@{include/aare/aare.hpp}}
\mbox{\hyperlink{aare_8hpp}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{comment}{//\ This\ is\ the\ top\ level\ header\ to\ include\ and\ what\ most\ users\ will\ use}}
\end{DoxyCode}

31
docs/latex/annotated.tex Normal file
View File

@ -0,0 +1,31 @@
\doxysection{Data Structures}
Here are the data structures with brief descriptions\+:\begin{DoxyCompactList}
\item\contentsline{section}{\mbox{\hyperlink{classaare_1_1CircularFifo}{aare\+::\+Circular\+Fifo$<$ Item\+Type $>$}} }{\pageref{classaare_1_1CircularFifo}}{}
\item\contentsline{section}{\mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder$<$ T $>$}} }{\pageref{classaare_1_1ClusterFinder}}{}
\item\contentsline{section}{\mbox{\hyperlink{classaare_1_1DType}{aare\+::\+DType}} }{\pageref{classaare_1_1DType}}{}
\item\contentsline{section}{\mbox{\hyperlink{classaare_1_1File}{aare\+::\+File}} \\*RAII \doxylink{classaare_1_1File_1_1File}{File} class for reading and writing image files in various formats wrapper on a \doxylink{classaare_1_1FileInterface}{File\+Interface} to abstract the underlying file format }{\pageref{classaare_1_1File}}{}
\item\contentsline{section}{\mbox{\hyperlink{classaare_1_1File_1_1File}{aare.\+File.\+File}} }{\pageref{classaare_1_1File_1_1File}}{}
\item\contentsline{section}{\mbox{\hyperlink{structaare_1_1FileConfig}{aare\+::\+File\+Config}} \\*\doxylink{structaare_1_1FileConfig}{File\+Config} 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 }{\pageref{structaare_1_1FileConfig}}{}
\item\contentsline{section}{\mbox{\hyperlink{classaare_1_1FileInterface}{aare\+::\+File\+Interface}} \\*\doxylink{classaare_1_1FileInterface}{File\+Interface} class to define the interface for file operations }{\pageref{classaare_1_1FileInterface}}{}
\item\contentsline{section}{\mbox{\hyperlink{classaare_1_1Frame}{aare\+::\+Frame}} }{\pageref{classaare_1_1Frame}}{}
\item\contentsline{section}{\mbox{\hyperlink{classaare_1_1Frame_1_1Frame}{aare.\+Frame.\+Frame}} }{\pageref{classaare_1_1Frame_1_1Frame}}{}
\item\contentsline{section}{\mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit}{aare\+::\+Cluster\+Finder$<$ T $>$\+::\+Hit}} }{\pageref{structaare_1_1ClusterFinder_1_1Hit}}{}
\item\contentsline{section}{\mbox{\hyperlink{classaare_1_1logger_1_1Logger}{aare\+::logger\+::\+Logger}} }{\pageref{classaare_1_1logger_1_1Logger}}{}
\item\contentsline{section}{\mbox{\hyperlink{structMoveOnlyInt}{Move\+Only\+Int}} }{\pageref{structMoveOnlyInt}}{}
\item\contentsline{section}{\mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray$<$ T, Ndim $>$}} }{\pageref{classaare_1_1NDArray}}{}
\item\contentsline{section}{\mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView$<$ T, Ndim $>$}} }{\pageref{classaare_1_1NDView}}{}
\item\contentsline{section}{\mbox{\hyperlink{classaare_1_1network__io_1_1NetworkError}{aare\+::network\+\_\+io\+::\+Network\+Error}} \\*\doxylink{classaare_1_1network__io_1_1NetworkError}{Network\+Error} exception class }{\pageref{classaare_1_1network__io_1_1NetworkError}}{}
\item\contentsline{section}{\mbox{\hyperlink{classaare_1_1NumpyFile}{aare\+::\+Numpy\+File}} \\*\doxylink{classaare_1_1NumpyFile}{Numpy\+File} class to read and write numpy files }{\pageref{classaare_1_1NumpyFile}}{}
\item\contentsline{section}{\mbox{\hyperlink{structaare_1_1NumpyHeader}{aare\+::\+Numpy\+Header}} }{\pageref{structaare_1_1NumpyHeader}}{}
\item\contentsline{section}{\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue}{folly\+::\+Producer\+Consumer\+Queue$<$ T $>$}} }{\pageref{structfolly_1_1ProducerConsumerQueue}}{}
\item\contentsline{section}{\mbox{\hyperlink{classaare_1_1RawFile}{aare\+::\+Raw\+File}} \\*\doxylink{classaare_1_1RawFile}{Raw\+File} class to read .raw and .json files }{\pageref{classaare_1_1RawFile}}{}
\item\contentsline{section}{\mbox{\hyperlink{structaare_1_1RawFileConfig}{aare\+::\+Raw\+File\+Config}} }{\pageref{structaare_1_1RawFileConfig}}{}
\item\contentsline{section}{\mbox{\hyperlink{structaare_1_1sls__detector__header}{aare\+::sls\+\_\+detector\+\_\+header}} }{\pageref{structaare_1_1sls__detector__header}}{}
\item\contentsline{section}{\mbox{\hyperlink{classaare_1_1SubFile}{aare\+::\+Sub\+File}} \\*Class to read a subfile from a \doxylink{classaare_1_1RawFile}{Raw\+File} }{\pageref{classaare_1_1SubFile}}{}
\item\contentsline{section}{\mbox{\hyperlink{structaare_1_1xy}{aare\+::xy}} }{\pageref{structaare_1_1xy}}{}
\item\contentsline{section}{\mbox{\hyperlink{structaare_1_1ZmqFrame}{aare\+::\+Zmq\+Frame}} \\*\doxylink{structaare_1_1ZmqFrame}{Zmq\+Frame} structure wrapper class to contain a \doxylink{structaare_1_1ZmqHeader}{Zmq\+Header} and a \doxylink{classaare_1_1Frame}{Frame} }{\pageref{structaare_1_1ZmqFrame}}{}
\item\contentsline{section}{\mbox{\hyperlink{structaare_1_1ZmqHeader}{aare\+::\+Zmq\+Header}} }{\pageref{structaare_1_1ZmqHeader}}{}
\item\contentsline{section}{\mbox{\hyperlink{classaare_1_1ZmqSocket}{aare\+::\+Zmq\+Socket}} }{\pageref{classaare_1_1ZmqSocket}}{}
\item\contentsline{section}{\mbox{\hyperlink{classaare_1_1ZmqSocketReceiver}{aare\+::\+Zmq\+Socket\+Receiver}} }{\pageref{classaare_1_1ZmqSocketReceiver}}{}
\item\contentsline{section}{\mbox{\hyperlink{classaare_1_1ZmqSocketSender}{aare\+::\+Zmq\+Socket\+Sender}} }{\pageref{classaare_1_1ZmqSocketSender}}{}
\end{DoxyCompactList}

View File

@ -0,0 +1,24 @@
\doxysection{python/src/bindings.cpp File Reference}
\hypertarget{bindings_8cpp}{}\label{bindings_8cpp}\index{python/src/bindings.cpp@{python/src/bindings.cpp}}
{\ttfamily \#include $<$cstdint$>$}\newline
{\ttfamily \#include $<$filesystem$>$}\newline
{\ttfamily \#include $<$pybind11/pybind11.\+h$>$}\newline
{\ttfamily \#include $<$pybind11/stl.\+h$>$}\newline
{\ttfamily \#include $<$string$>$}\newline
{\ttfamily \#include \"{}aare/\+File\+Handler.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/core/\+Frame.\+hpp\"{}}\newline
{\ttfamily \#include \"{}aare/core/defs.\+hpp\"{}}\newline
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{bindings_8cpp_a6943104c38945ce53f56e7a7ed02f5ee}{PYBIND11\+\_\+\+MODULE}} (\+\_\+aare, m)
\end{DoxyCompactItemize}
\doxysubsection{Function Documentation}
\Hypertarget{bindings_8cpp_a6943104c38945ce53f56e7a7ed02f5ee}\label{bindings_8cpp_a6943104c38945ce53f56e7a7ed02f5ee}
\index{bindings.cpp@{bindings.cpp}!PYBIND11\_MODULE@{PYBIND11\_MODULE}}
\index{PYBIND11\_MODULE@{PYBIND11\_MODULE}!bindings.cpp@{bindings.cpp}}
\doxysubsubsection{\texorpdfstring{PYBIND11\_MODULE()}{PYBIND11\_MODULE()}}
{\footnotesize\ttfamily PYBIND11\+\_\+\+MODULE (\begin{DoxyParamCaption}\item[{\+\_\+aare}]{, }\item[{m}]{ }\end{DoxyParamCaption})}

View File

@ -0,0 +1,216 @@
\doxysection{aare\+::Circular\+Fifo\texorpdfstring{$<$}{<} Item\+Type \texorpdfstring{$>$}{>} Class Template Reference}
\hypertarget{classaare_1_1CircularFifo}{}\label{classaare_1_1CircularFifo}\index{aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}}
{\ttfamily \#include $<$Circular\+Fifo.\+hpp$>$}
\doxysubsubsection*{Public Types}
\begin{DoxyCompactItemize}
\item
using \mbox{\hyperlink{classaare_1_1CircularFifo_a37b26e1fd9d6904cef2d1cafda316dc0}{value\+\_\+type}} = Item\+Type
\end{DoxyCompactItemize}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{classaare_1_1CircularFifo_a8579c56895285557b6029db73f5b2af3}{Circular\+Fifo}} ()
\item
\mbox{\hyperlink{classaare_1_1CircularFifo_abeda9cfed3526a9c4241fcc9ed4ba163}{Circular\+Fifo}} (uint32\+\_\+t size)
\item
bool \mbox{\hyperlink{classaare_1_1CircularFifo_af4e41499b0c82bb4264739a55fef2cdc}{next}} ()
\item
\mbox{\hyperlink{classaare_1_1CircularFifo_a2a2d8bb747eb3235b2bddd88216b1733}{\texorpdfstring{$\sim$}{\string~}\+Circular\+Fifo}} ()
\item
auto \mbox{\hyperlink{classaare_1_1CircularFifo_afbf8f710904794b3994363161fbb2cab}{num\+Filled\+Slots}} () const noexcept
\item
auto \mbox{\hyperlink{classaare_1_1CircularFifo_a9190570892efabe5d2cb6fbdcd31c813}{num\+Free\+Slots}} () const noexcept
\item
auto \mbox{\hyperlink{classaare_1_1CircularFifo_ae7ef1972a9b372c36c048f358f3bc977}{is\+Full}} () const noexcept
\item
Item\+Type \mbox{\hyperlink{classaare_1_1CircularFifo_a7065cd5808ef6226fd36d0a522678b41}{pop\+\_\+free}} ()
\item
bool \mbox{\hyperlink{classaare_1_1CircularFifo_a1ee728381a85f2105739db57b3a3c74d}{try\+\_\+pop\+\_\+free}} (Item\+Type \&v)
\item
Item\+Type \mbox{\hyperlink{classaare_1_1CircularFifo_af10fb2772258ac5f3001a48f42ddc466}{pop\+\_\+value}} (std\+::chrono\+::nanoseconds wait, std\+::atomic$<$ bool $>$ \&stopped)
\item
Item\+Type \mbox{\hyperlink{classaare_1_1CircularFifo_a3568e05982e05668593ebf5d033cb0f6}{pop\+\_\+value}} ()
\item
Item\+Type \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1CircularFifo_ace6570667d6859e219f3519812c5a24a}{front\+Ptr}} ()
\item
{\footnotesize template$<$class... Args$>$ }\\void \mbox{\hyperlink{classaare_1_1CircularFifo_ae0637495a0c030ad77e78b14cbe619ad}{push\+\_\+value}} (Args \&\&...record\+Args)
\item
{\footnotesize template$<$class... Args$>$ }\\bool \mbox{\hyperlink{classaare_1_1CircularFifo_aa16fd4ce93fb94b7214353cabfefc1e1}{try\+\_\+push\+\_\+value}} (Args \&\&...record\+Args)
\item
{\footnotesize template$<$class... Args$>$ }\\void \mbox{\hyperlink{classaare_1_1CircularFifo_a0d58312a721120580eb030c6524c35ec}{push\+\_\+free}} (Args \&\&...record\+Args)
\item
{\footnotesize template$<$class... Args$>$ }\\bool \mbox{\hyperlink{classaare_1_1CircularFifo_ae643565632229878f01a88f650ea5e3a}{try\+\_\+push\+\_\+free}} (Args \&\&...record\+Args)
\end{DoxyCompactItemize}
\doxysubsubsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item
uint32\+\_\+t \mbox{\hyperlink{classaare_1_1CircularFifo_af2c357b41296f0516b402feae91dc82d}{fifo\+\_\+size}}
\item
\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue}{folly\+::\+Producer\+Consumer\+Queue}}$<$ Item\+Type $>$ \mbox{\hyperlink{classaare_1_1CircularFifo_ad08760281625cee96d79104c4321dbf4}{free\+\_\+slots}}
\item
\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue}{folly\+::\+Producer\+Consumer\+Queue}}$<$ Item\+Type $>$ \mbox{\hyperlink{classaare_1_1CircularFifo_a28f5f6090b7812d18543b213c4d3177f}{filled\+\_\+slots}}
\end{DoxyCompactItemize}
\doxysubsection{Member Typedef Documentation}
\Hypertarget{classaare_1_1CircularFifo_a37b26e1fd9d6904cef2d1cafda316dc0}\label{classaare_1_1CircularFifo_a37b26e1fd9d6904cef2d1cafda316dc0}
\index{aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}!value\_type@{value\_type}}
\index{value\_type@{value\_type}!aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}}
\doxysubsubsection{\texorpdfstring{value\_type}{value\_type}}
{\footnotesize\ttfamily template$<$class Item\+Type $>$ \\
using \mbox{\hyperlink{classaare_1_1CircularFifo}{aare\+::\+Circular\+Fifo}}$<$ Item\+Type $>$\+::value\+\_\+type = Item\+Type}
\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classaare_1_1CircularFifo_a8579c56895285557b6029db73f5b2af3}\label{classaare_1_1CircularFifo_a8579c56895285557b6029db73f5b2af3}
\index{aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}!CircularFifo@{CircularFifo}}
\index{CircularFifo@{CircularFifo}!aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}}
\doxysubsubsection{\texorpdfstring{CircularFifo()}{CircularFifo()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$class Item\+Type $>$ \\
\mbox{\hyperlink{classaare_1_1CircularFifo}{aare\+::\+Circular\+Fifo}}$<$ Item\+Type $>$\+::\+Circular\+Fifo (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1CircularFifo_abeda9cfed3526a9c4241fcc9ed4ba163}\label{classaare_1_1CircularFifo_abeda9cfed3526a9c4241fcc9ed4ba163}
\index{aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}!CircularFifo@{CircularFifo}}
\index{CircularFifo@{CircularFifo}!aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}}
\doxysubsubsection{\texorpdfstring{CircularFifo()}{CircularFifo()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$class Item\+Type $>$ \\
\mbox{\hyperlink{classaare_1_1CircularFifo}{aare\+::\+Circular\+Fifo}}$<$ Item\+Type $>$\+::\+Circular\+Fifo (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{size }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1CircularFifo_a2a2d8bb747eb3235b2bddd88216b1733}\label{classaare_1_1CircularFifo_a2a2d8bb747eb3235b2bddd88216b1733}
\index{aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}!````~CircularFifo@{\texorpdfstring{$\sim$}{\string~}CircularFifo}}
\index{````~CircularFifo@{\texorpdfstring{$\sim$}{\string~}CircularFifo}!aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}}
\doxysubsubsection{\texorpdfstring{\texorpdfstring{$\sim$}{\string~}CircularFifo()}{\string~CircularFifo()}}
{\footnotesize\ttfamily template$<$class Item\+Type $>$ \\
\mbox{\hyperlink{classaare_1_1CircularFifo}{aare\+::\+Circular\+Fifo}}$<$ Item\+Type $>$\+::\texorpdfstring{$\sim$}{\string~}\mbox{\hyperlink{classaare_1_1CircularFifo}{Circular\+Fifo}} (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\doxysubsection{Member Function Documentation}
\Hypertarget{classaare_1_1CircularFifo_ace6570667d6859e219f3519812c5a24a}\label{classaare_1_1CircularFifo_ace6570667d6859e219f3519812c5a24a}
\index{aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}!frontPtr@{frontPtr}}
\index{frontPtr@{frontPtr}!aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}}
\doxysubsubsection{\texorpdfstring{frontPtr()}{frontPtr()}}
{\footnotesize\ttfamily template$<$class Item\+Type $>$ \\
Item\+Type \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1CircularFifo}{aare\+::\+Circular\+Fifo}}$<$ Item\+Type $>$\+::front\+Ptr (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1CircularFifo_ae7ef1972a9b372c36c048f358f3bc977}\label{classaare_1_1CircularFifo_ae7ef1972a9b372c36c048f358f3bc977}
\index{aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}!isFull@{isFull}}
\index{isFull@{isFull}!aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}}
\doxysubsubsection{\texorpdfstring{isFull()}{isFull()}}
{\footnotesize\ttfamily template$<$class Item\+Type $>$ \\
auto \mbox{\hyperlink{classaare_1_1CircularFifo}{aare\+::\+Circular\+Fifo}}$<$ Item\+Type $>$\+::is\+Full (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
\Hypertarget{classaare_1_1CircularFifo_af4e41499b0c82bb4264739a55fef2cdc}\label{classaare_1_1CircularFifo_af4e41499b0c82bb4264739a55fef2cdc}
\index{aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}!next@{next}}
\index{next@{next}!aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}}
\doxysubsubsection{\texorpdfstring{next()}{next()}}
{\footnotesize\ttfamily template$<$class Item\+Type $>$ \\
bool \mbox{\hyperlink{classaare_1_1CircularFifo}{aare\+::\+Circular\+Fifo}}$<$ Item\+Type $>$\+::next (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1CircularFifo_afbf8f710904794b3994363161fbb2cab}\label{classaare_1_1CircularFifo_afbf8f710904794b3994363161fbb2cab}
\index{aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}!numFilledSlots@{numFilledSlots}}
\index{numFilledSlots@{numFilledSlots}!aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}}
\doxysubsubsection{\texorpdfstring{numFilledSlots()}{numFilledSlots()}}
{\footnotesize\ttfamily template$<$class Item\+Type $>$ \\
auto \mbox{\hyperlink{classaare_1_1CircularFifo}{aare\+::\+Circular\+Fifo}}$<$ Item\+Type $>$\+::num\+Filled\+Slots (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
\Hypertarget{classaare_1_1CircularFifo_a9190570892efabe5d2cb6fbdcd31c813}\label{classaare_1_1CircularFifo_a9190570892efabe5d2cb6fbdcd31c813}
\index{aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}!numFreeSlots@{numFreeSlots}}
\index{numFreeSlots@{numFreeSlots}!aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}}
\doxysubsubsection{\texorpdfstring{numFreeSlots()}{numFreeSlots()}}
{\footnotesize\ttfamily template$<$class Item\+Type $>$ \\
auto \mbox{\hyperlink{classaare_1_1CircularFifo}{aare\+::\+Circular\+Fifo}}$<$ Item\+Type $>$\+::num\+Free\+Slots (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
\Hypertarget{classaare_1_1CircularFifo_a7065cd5808ef6226fd36d0a522678b41}\label{classaare_1_1CircularFifo_a7065cd5808ef6226fd36d0a522678b41}
\index{aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}!pop\_free@{pop\_free}}
\index{pop\_free@{pop\_free}!aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}}
\doxysubsubsection{\texorpdfstring{pop\_free()}{pop\_free()}}
{\footnotesize\ttfamily template$<$class Item\+Type $>$ \\
Item\+Type \mbox{\hyperlink{classaare_1_1CircularFifo}{aare\+::\+Circular\+Fifo}}$<$ Item\+Type $>$\+::pop\+\_\+free (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1CircularFifo_a3568e05982e05668593ebf5d033cb0f6}\label{classaare_1_1CircularFifo_a3568e05982e05668593ebf5d033cb0f6}
\index{aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}!pop\_value@{pop\_value}}
\index{pop\_value@{pop\_value}!aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}}
\doxysubsubsection{\texorpdfstring{pop\_value()}{pop\_value()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$class Item\+Type $>$ \\
Item\+Type \mbox{\hyperlink{classaare_1_1CircularFifo}{aare\+::\+Circular\+Fifo}}$<$ Item\+Type $>$\+::pop\+\_\+value (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1CircularFifo_af10fb2772258ac5f3001a48f42ddc466}\label{classaare_1_1CircularFifo_af10fb2772258ac5f3001a48f42ddc466}
\index{aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}!pop\_value@{pop\_value}}
\index{pop\_value@{pop\_value}!aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}}
\doxysubsubsection{\texorpdfstring{pop\_value()}{pop\_value()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$class Item\+Type $>$ \\
Item\+Type \mbox{\hyperlink{classaare_1_1CircularFifo}{aare\+::\+Circular\+Fifo}}$<$ Item\+Type $>$\+::pop\+\_\+value (\begin{DoxyParamCaption}\item[{std\+::chrono\+::nanoseconds}]{wait, }\item[{std\+::atomic$<$ bool $>$ \&}]{stopped }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1CircularFifo_a0d58312a721120580eb030c6524c35ec}\label{classaare_1_1CircularFifo_a0d58312a721120580eb030c6524c35ec}
\index{aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}!push\_free@{push\_free}}
\index{push\_free@{push\_free}!aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}}
\doxysubsubsection{\texorpdfstring{push\_free()}{push\_free()}}
{\footnotesize\ttfamily template$<$class Item\+Type $>$ \\
template$<$class... Args$>$ \\
void \mbox{\hyperlink{classaare_1_1CircularFifo}{aare\+::\+Circular\+Fifo}}$<$ Item\+Type $>$\+::push\+\_\+free (\begin{DoxyParamCaption}\item[{Args \&\&...}]{record\+Args }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1CircularFifo_ae0637495a0c030ad77e78b14cbe619ad}\label{classaare_1_1CircularFifo_ae0637495a0c030ad77e78b14cbe619ad}
\index{aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}!push\_value@{push\_value}}
\index{push\_value@{push\_value}!aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}}
\doxysubsubsection{\texorpdfstring{push\_value()}{push\_value()}}
{\footnotesize\ttfamily template$<$class Item\+Type $>$ \\
template$<$class... Args$>$ \\
void \mbox{\hyperlink{classaare_1_1CircularFifo}{aare\+::\+Circular\+Fifo}}$<$ Item\+Type $>$\+::push\+\_\+value (\begin{DoxyParamCaption}\item[{Args \&\&...}]{record\+Args }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1CircularFifo_a1ee728381a85f2105739db57b3a3c74d}\label{classaare_1_1CircularFifo_a1ee728381a85f2105739db57b3a3c74d}
\index{aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}!try\_pop\_free@{try\_pop\_free}}
\index{try\_pop\_free@{try\_pop\_free}!aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}}
\doxysubsubsection{\texorpdfstring{try\_pop\_free()}{try\_pop\_free()}}
{\footnotesize\ttfamily template$<$class Item\+Type $>$ \\
bool \mbox{\hyperlink{classaare_1_1CircularFifo}{aare\+::\+Circular\+Fifo}}$<$ Item\+Type $>$\+::try\+\_\+pop\+\_\+free (\begin{DoxyParamCaption}\item[{Item\+Type \&}]{v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1CircularFifo_ae643565632229878f01a88f650ea5e3a}\label{classaare_1_1CircularFifo_ae643565632229878f01a88f650ea5e3a}
\index{aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}!try\_push\_free@{try\_push\_free}}
\index{try\_push\_free@{try\_push\_free}!aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}}
\doxysubsubsection{\texorpdfstring{try\_push\_free()}{try\_push\_free()}}
{\footnotesize\ttfamily template$<$class Item\+Type $>$ \\
template$<$class... Args$>$ \\
bool \mbox{\hyperlink{classaare_1_1CircularFifo}{aare\+::\+Circular\+Fifo}}$<$ Item\+Type $>$\+::try\+\_\+push\+\_\+free (\begin{DoxyParamCaption}\item[{Args \&\&...}]{record\+Args }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1CircularFifo_aa16fd4ce93fb94b7214353cabfefc1e1}\label{classaare_1_1CircularFifo_aa16fd4ce93fb94b7214353cabfefc1e1}
\index{aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}!try\_push\_value@{try\_push\_value}}
\index{try\_push\_value@{try\_push\_value}!aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}}
\doxysubsubsection{\texorpdfstring{try\_push\_value()}{try\_push\_value()}}
{\footnotesize\ttfamily template$<$class Item\+Type $>$ \\
template$<$class... Args$>$ \\
bool \mbox{\hyperlink{classaare_1_1CircularFifo}{aare\+::\+Circular\+Fifo}}$<$ Item\+Type $>$\+::try\+\_\+push\+\_\+value (\begin{DoxyParamCaption}\item[{Args \&\&...}]{record\+Args }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\doxysubsection{Field Documentation}
\Hypertarget{classaare_1_1CircularFifo_af2c357b41296f0516b402feae91dc82d}\label{classaare_1_1CircularFifo_af2c357b41296f0516b402feae91dc82d}
\index{aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}!fifo\_size@{fifo\_size}}
\index{fifo\_size@{fifo\_size}!aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}}
\doxysubsubsection{\texorpdfstring{fifo\_size}{fifo\_size}}
{\footnotesize\ttfamily template$<$class Item\+Type $>$ \\
uint32\+\_\+t \mbox{\hyperlink{classaare_1_1CircularFifo}{aare\+::\+Circular\+Fifo}}$<$ Item\+Type $>$\+::fifo\+\_\+size\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1CircularFifo_a28f5f6090b7812d18543b213c4d3177f}\label{classaare_1_1CircularFifo_a28f5f6090b7812d18543b213c4d3177f}
\index{aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}!filled\_slots@{filled\_slots}}
\index{filled\_slots@{filled\_slots}!aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}}
\doxysubsubsection{\texorpdfstring{filled\_slots}{filled\_slots}}
{\footnotesize\ttfamily template$<$class Item\+Type $>$ \\
\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue}{folly\+::\+Producer\+Consumer\+Queue}}$<$Item\+Type$>$ \mbox{\hyperlink{classaare_1_1CircularFifo}{aare\+::\+Circular\+Fifo}}$<$ Item\+Type $>$\+::filled\+\_\+slots\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1CircularFifo_ad08760281625cee96d79104c4321dbf4}\label{classaare_1_1CircularFifo_ad08760281625cee96d79104c4321dbf4}
\index{aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}!free\_slots@{free\_slots}}
\index{free\_slots@{free\_slots}!aare::CircularFifo$<$ ItemType $>$@{aare::CircularFifo$<$ ItemType $>$}}
\doxysubsubsection{\texorpdfstring{free\_slots}{free\_slots}}
{\footnotesize\ttfamily template$<$class Item\+Type $>$ \\
\mbox{\hyperlink{structfolly_1_1ProducerConsumerQueue}{folly\+::\+Producer\+Consumer\+Queue}}$<$Item\+Type$>$ \mbox{\hyperlink{classaare_1_1CircularFifo}{aare\+::\+Circular\+Fifo}}$<$ Item\+Type $>$\+::free\+\_\+slots\hspace{0.3cm}{\ttfamily [private]}}
The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item
core/include/aare/core/\mbox{\hyperlink{CircularFifo_8hpp}{Circular\+Fifo.\+hpp}}\end{DoxyCompactItemize}

View File

@ -0,0 +1,340 @@
\doxysection{aare\+::Cluster\+Finder\texorpdfstring{$<$}{<} T \texorpdfstring{$>$}{>} Class Template Reference}
\hypertarget{classaare_1_1ClusterFinder}{}\label{classaare_1_1ClusterFinder}\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
{\ttfamily \#include $<$Variable\+Size\+Cluster\+Finder.\+hpp$>$}
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item
struct \mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit}{Hit}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{classaare_1_1ClusterFinder_a95c3c74dcd2812659c4664f8896dcc6e}{Cluster\+Finder}} (image\+\_\+shape shape, T threshold)
\item
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ int, 2 $>$ \mbox{\hyperlink{classaare_1_1ClusterFinder_a8df807dc085267ece8c8329d546c1560}{labeled}} ()
\item
void \mbox{\hyperlink{classaare_1_1ClusterFinder_acd1fc878a5043e0adc8f085d1edf3ba6}{set\+\_\+noise\+Map}} (\mbox{\hyperlink{classaare_1_1NDView}{NDView}}$<$ T, 2 $>$ noise\+\_\+map)
\item
void \mbox{\hyperlink{classaare_1_1ClusterFinder_a3d8448ccd2478a52075a4b7d5e090b2f}{set\+\_\+peripheral\+Threshold\+Factor}} (int factor)
\item
void \mbox{\hyperlink{classaare_1_1ClusterFinder_ab880d2c07964ee558a85daed3b3ec181}{find\+\_\+clusters}} (\mbox{\hyperlink{classaare_1_1NDView}{NDView}}$<$ T, 2 $>$ img)
\item
void \mbox{\hyperlink{classaare_1_1ClusterFinder_af33f83aeeb4187f826919270b8b38391}{find\+\_\+clusters\+\_\+X}} (\mbox{\hyperlink{classaare_1_1NDView}{NDView}}$<$ T, 2 $>$ img)
\item
void \mbox{\hyperlink{classaare_1_1ClusterFinder_a64540f74ba953ae2ba2efab9f06e9fc5}{rec\+\_\+\+Fill\+Hit}} (int cluster\+Index, int i, int j)
\item
void \mbox{\hyperlink{classaare_1_1ClusterFinder_ab25d54418b721d429f6141da73cc2a41}{single\+\_\+pass}} (\mbox{\hyperlink{classaare_1_1NDView}{NDView}}$<$ T, 2 $>$ img)
\item
void \mbox{\hyperlink{classaare_1_1ClusterFinder_a7993fb06ee06a24ede5a4ddd94f8a987}{first\+\_\+pass}} ()
\item
void \mbox{\hyperlink{classaare_1_1ClusterFinder_a6630ba010b0d0b6b4cd8aefe98a1bd9e}{second\+\_\+pass}} ()
\item
void \mbox{\hyperlink{classaare_1_1ClusterFinder_a053a2b1729301c1bda8b78a8187112b6}{store\+\_\+clusters}} ()
\item
std\+::vector$<$ \mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit}{Hit}} $>$ \mbox{\hyperlink{classaare_1_1ClusterFinder_a4695c04a848715d073455b76241119b4}{steal\+\_\+hits}} ()
\item
void \mbox{\hyperlink{classaare_1_1ClusterFinder_a405e7f0d0eabc9a93099763f4eaa8fbc}{clear\+\_\+hits}} ()
\item
void \mbox{\hyperlink{classaare_1_1ClusterFinder_aed823a8611547fb93d6accacdd61b55c}{print\+\_\+connections}} ()
\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1ClusterFinder_a301516e99319ee02ecf4c44f8310ce16}{total\+\_\+clusters}} () const
\end{DoxyCompactItemize}
\doxysubsubsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item
int \mbox{\hyperlink{classaare_1_1ClusterFinder_ac6372eadf0bff57bd560bd07cd59da96}{check\+\_\+neighbours}} (int i, int j)
\item
void \mbox{\hyperlink{classaare_1_1ClusterFinder_a1a31f9419dd90e3136bf1c59e53fbad7}{add\+\_\+link}} (int from, int to)
\end{DoxyCompactItemize}
\doxysubsubsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item
const std\+::array$<$ ssize\+\_\+t, 2 $>$ \mbox{\hyperlink{classaare_1_1ClusterFinder_a87ae02ed18b8d51cf34d6dcc4a0a11b1}{shape\+\_\+}}
\item
\mbox{\hyperlink{classaare_1_1NDView}{NDView}}$<$ T, 2 $>$ \mbox{\hyperlink{classaare_1_1ClusterFinder_a77a7f9093806a6b66596262c726aedff}{original\+\_\+}}
\item
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ int, 2 $>$ \mbox{\hyperlink{classaare_1_1ClusterFinder_a0a507adf23a53c14e823c8721c8139dc}{labeled\+\_\+}}
\item
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ int, 2 $>$ \mbox{\hyperlink{classaare_1_1ClusterFinder_a86342541978eac118b16eefa026930d4}{peripheral\+\_\+labeled\+\_\+}}
\item
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ bool, 2 $>$ \mbox{\hyperlink{classaare_1_1ClusterFinder_aca8f21925565b4f3dbf4677d2ca6ba64}{binary\+\_\+}}
\item
T \mbox{\hyperlink{classaare_1_1ClusterFinder_a2726725360133a70fce11b8072cf2a93}{threshold\+\_\+}}
\item
\mbox{\hyperlink{classaare_1_1NDView}{NDView}}$<$ T, 2 $>$ \mbox{\hyperlink{classaare_1_1ClusterFinder_a8044d4bdabc6ed090f07bfddc362f2eb}{noise\+Map}}
\item
bool \mbox{\hyperlink{classaare_1_1ClusterFinder_ae7622ae945b849df6bad3d2cc0347370}{use\+\_\+noise\+\_\+map}} = false
\item
int \mbox{\hyperlink{classaare_1_1ClusterFinder_af933139fed8103cab83572a6ba449f36}{peripheral\+Threshold\+Factor\+\_\+}} = 5
\item
int \mbox{\hyperlink{classaare_1_1ClusterFinder_a91e708f8f94adfb3af7e5d9c3a748bb3}{current\+\_\+label}}
\item
const std\+::array$<$ int, 4 $>$ \mbox{\hyperlink{classaare_1_1ClusterFinder_a69ffad49f0d31fdf9993774d219f87e8}{di}} \{\{0, -\/1, -\/1, -\/1\}\}
\item
const std\+::array$<$ int, 4 $>$ \mbox{\hyperlink{classaare_1_1ClusterFinder_a7575c70f662ffa316882eec6f2b865e7}{dj}} \{\{-\/1, -\/1, 0, 1\}\}
\item
const std\+::array$<$ int, 8 $>$ \mbox{\hyperlink{classaare_1_1ClusterFinder_af97013b5f3fff727149b4e09c9d485a3}{di\+\_\+}} \{\{0, 0, -\/1, 1, -\/1, 1, -\/1, 1\}\}
\item
const std\+::array$<$ int, 8 $>$ \mbox{\hyperlink{classaare_1_1ClusterFinder_a9809de5007aeb2095b5ec74f68b6a7d8}{dj\+\_\+}} \{\{-\/1, 1, 0, 0, 1, -\/1, -\/1, 1\}\}
\item
std\+::map$<$ int, int $>$ \mbox{\hyperlink{classaare_1_1ClusterFinder_aeeec655301ed05e4c5ee9201e828b7f0}{child}}
\item
std\+::unordered\+\_\+map$<$ int, \mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit}{Hit}} $>$ \mbox{\hyperlink{classaare_1_1ClusterFinder_ad4b7557ac7b34a7fd188564e22d634ec}{h\+\_\+size}}
\item
std\+::vector$<$ \mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit}{Hit}} $>$ \mbox{\hyperlink{classaare_1_1ClusterFinder_ac228fbe6a24d8b2179db87aa0cfecc86}{hits}}
\end{DoxyCompactItemize}
\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classaare_1_1ClusterFinder_a95c3c74dcd2812659c4664f8896dcc6e}\label{classaare_1_1ClusterFinder_a95c3c74dcd2812659c4664f8896dcc6e}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!ClusterFinder@{ClusterFinder}}
\index{ClusterFinder@{ClusterFinder}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{ClusterFinder()}{ClusterFinder()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
\mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::\+Cluster\+Finder (\begin{DoxyParamCaption}\item[{image\+\_\+shape}]{shape, }\item[{T}]{threshold }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\doxysubsection{Member Function Documentation}
\Hypertarget{classaare_1_1ClusterFinder_a1a31f9419dd90e3136bf1c59e53fbad7}\label{classaare_1_1ClusterFinder_a1a31f9419dd90e3136bf1c59e53fbad7}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!add\_link@{add\_link}}
\index{add\_link@{add\_link}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{add\_link()}{add\_link()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
void \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::add\+\_\+link (\begin{DoxyParamCaption}\item[{int}]{from, }\item[{int}]{to }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}}
\Hypertarget{classaare_1_1ClusterFinder_ac6372eadf0bff57bd560bd07cd59da96}\label{classaare_1_1ClusterFinder_ac6372eadf0bff57bd560bd07cd59da96}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!check\_neighbours@{check\_neighbours}}
\index{check\_neighbours@{check\_neighbours}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{check\_neighbours()}{check\_neighbours()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
int \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::check\+\_\+neighbours (\begin{DoxyParamCaption}\item[{int}]{i, }\item[{int}]{j }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1ClusterFinder_a405e7f0d0eabc9a93099763f4eaa8fbc}\label{classaare_1_1ClusterFinder_a405e7f0d0eabc9a93099763f4eaa8fbc}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!clear\_hits@{clear\_hits}}
\index{clear\_hits@{clear\_hits}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{clear\_hits()}{clear\_hits()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
void \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::clear\+\_\+hits (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1ClusterFinder_ab880d2c07964ee558a85daed3b3ec181}\label{classaare_1_1ClusterFinder_ab880d2c07964ee558a85daed3b3ec181}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!find\_clusters@{find\_clusters}}
\index{find\_clusters@{find\_clusters}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{find\_clusters()}{find\_clusters()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
void \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::find\+\_\+clusters (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classaare_1_1NDView}{NDView}}$<$ T, 2 $>$}]{img }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1ClusterFinder_af33f83aeeb4187f826919270b8b38391}\label{classaare_1_1ClusterFinder_af33f83aeeb4187f826919270b8b38391}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!find\_clusters\_X@{find\_clusters\_X}}
\index{find\_clusters\_X@{find\_clusters\_X}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{find\_clusters\_X()}{find\_clusters\_X()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
void \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::find\+\_\+clusters\+\_\+X (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classaare_1_1NDView}{NDView}}$<$ T, 2 $>$}]{img }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1ClusterFinder_a7993fb06ee06a24ede5a4ddd94f8a987}\label{classaare_1_1ClusterFinder_a7993fb06ee06a24ede5a4ddd94f8a987}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!first\_pass@{first\_pass}}
\index{first\_pass@{first\_pass}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{first\_pass()}{first\_pass()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
void \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::first\+\_\+pass}
\Hypertarget{classaare_1_1ClusterFinder_a8df807dc085267ece8c8329d546c1560}\label{classaare_1_1ClusterFinder_a8df807dc085267ece8c8329d546c1560}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!labeled@{labeled}}
\index{labeled@{labeled}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{labeled()}{labeled()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ int, 2 $>$ \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::labeled (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1ClusterFinder_aed823a8611547fb93d6accacdd61b55c}\label{classaare_1_1ClusterFinder_aed823a8611547fb93d6accacdd61b55c}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!print\_connections@{print\_connections}}
\index{print\_connections@{print\_connections}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{print\_connections()}{print\_connections()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
void \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::print\+\_\+connections (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1ClusterFinder_a64540f74ba953ae2ba2efab9f06e9fc5}\label{classaare_1_1ClusterFinder_a64540f74ba953ae2ba2efab9f06e9fc5}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!rec\_FillHit@{rec\_FillHit}}
\index{rec\_FillHit@{rec\_FillHit}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{rec\_FillHit()}{rec\_FillHit()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
void \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::rec\+\_\+\+Fill\+Hit (\begin{DoxyParamCaption}\item[{int}]{cluster\+Index, }\item[{int}]{i, }\item[{int}]{j }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1ClusterFinder_a6630ba010b0d0b6b4cd8aefe98a1bd9e}\label{classaare_1_1ClusterFinder_a6630ba010b0d0b6b4cd8aefe98a1bd9e}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!second\_pass@{second\_pass}}
\index{second\_pass@{second\_pass}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{second\_pass()}{second\_pass()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
void \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::second\+\_\+pass}
\Hypertarget{classaare_1_1ClusterFinder_acd1fc878a5043e0adc8f085d1edf3ba6}\label{classaare_1_1ClusterFinder_acd1fc878a5043e0adc8f085d1edf3ba6}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!set\_noiseMap@{set\_noiseMap}}
\index{set\_noiseMap@{set\_noiseMap}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{set\_noiseMap()}{set\_noiseMap()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
void \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::set\+\_\+noise\+Map (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classaare_1_1NDView}{NDView}}$<$ T, 2 $>$}]{noise\+\_\+map }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1ClusterFinder_a3d8448ccd2478a52075a4b7d5e090b2f}\label{classaare_1_1ClusterFinder_a3d8448ccd2478a52075a4b7d5e090b2f}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!set\_peripheralThresholdFactor@{set\_peripheralThresholdFactor}}
\index{set\_peripheralThresholdFactor@{set\_peripheralThresholdFactor}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{set\_peripheralThresholdFactor()}{set\_peripheralThresholdFactor()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
void \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::set\+\_\+peripheral\+Threshold\+Factor (\begin{DoxyParamCaption}\item[{int}]{factor }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1ClusterFinder_ab25d54418b721d429f6141da73cc2a41}\label{classaare_1_1ClusterFinder_ab25d54418b721d429f6141da73cc2a41}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!single\_pass@{single\_pass}}
\index{single\_pass@{single\_pass}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{single\_pass()}{single\_pass()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
void \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::single\+\_\+pass (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classaare_1_1NDView}{NDView}}$<$ T, 2 $>$}]{img }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1ClusterFinder_a4695c04a848715d073455b76241119b4}\label{classaare_1_1ClusterFinder_a4695c04a848715d073455b76241119b4}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!steal\_hits@{steal\_hits}}
\index{steal\_hits@{steal\_hits}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{steal\_hits()}{steal\_hits()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
std\+::vector$<$ \mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit}{Hit}} $>$ \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::steal\+\_\+hits (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1ClusterFinder_a053a2b1729301c1bda8b78a8187112b6}\label{classaare_1_1ClusterFinder_a053a2b1729301c1bda8b78a8187112b6}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!store\_clusters@{store\_clusters}}
\index{store\_clusters@{store\_clusters}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{store\_clusters()}{store\_clusters()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
void \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::store\+\_\+clusters}
\Hypertarget{classaare_1_1ClusterFinder_a301516e99319ee02ecf4c44f8310ce16}\label{classaare_1_1ClusterFinder_a301516e99319ee02ecf4c44f8310ce16}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!total\_clusters@{total\_clusters}}
\index{total\_clusters@{total\_clusters}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{total\_clusters()}{total\_clusters()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
size\+\_\+t \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::total\+\_\+clusters (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
\doxysubsection{Field Documentation}
\Hypertarget{classaare_1_1ClusterFinder_aca8f21925565b4f3dbf4677d2ca6ba64}\label{classaare_1_1ClusterFinder_aca8f21925565b4f3dbf4677d2ca6ba64}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!binary\_@{binary\_}}
\index{binary\_@{binary\_}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{binary\_}{binary\_}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$bool, 2$>$ \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::binary\+\_\+\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1ClusterFinder_aeeec655301ed05e4c5ee9201e828b7f0}\label{classaare_1_1ClusterFinder_aeeec655301ed05e4c5ee9201e828b7f0}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!child@{child}}
\index{child@{child}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{child}{child}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
std\+::map$<$int, int$>$ \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::child\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1ClusterFinder_a91e708f8f94adfb3af7e5d9c3a748bb3}\label{classaare_1_1ClusterFinder_a91e708f8f94adfb3af7e5d9c3a748bb3}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!current\_label@{current\_label}}
\index{current\_label@{current\_label}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{current\_label}{current\_label}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
int \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::current\+\_\+label\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1ClusterFinder_a69ffad49f0d31fdf9993774d219f87e8}\label{classaare_1_1ClusterFinder_a69ffad49f0d31fdf9993774d219f87e8}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!di@{di}}
\index{di@{di}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{di}{di}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
const std\+::array$<$int, 4$>$ \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::di \{\{0, -\/1, -\/1, -\/1\}\}\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1ClusterFinder_af97013b5f3fff727149b4e09c9d485a3}\label{classaare_1_1ClusterFinder_af97013b5f3fff727149b4e09c9d485a3}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!di\_@{di\_}}
\index{di\_@{di\_}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{di\_}{di\_}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
const std\+::array$<$int, 8$>$ \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::di\+\_\+ \{\{0, 0, -\/1, 1, -\/1, 1, -\/1, 1\}\}\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1ClusterFinder_a7575c70f662ffa316882eec6f2b865e7}\label{classaare_1_1ClusterFinder_a7575c70f662ffa316882eec6f2b865e7}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!dj@{dj}}
\index{dj@{dj}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{dj}{dj}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
const std\+::array$<$int, 4$>$ \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::dj \{\{-\/1, -\/1, 0, 1\}\}\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1ClusterFinder_a9809de5007aeb2095b5ec74f68b6a7d8}\label{classaare_1_1ClusterFinder_a9809de5007aeb2095b5ec74f68b6a7d8}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!dj\_@{dj\_}}
\index{dj\_@{dj\_}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{dj\_}{dj\_}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
const std\+::array$<$int, 8$>$ \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::dj\+\_\+ \{\{-\/1, 1, 0, 0, 1, -\/1, -\/1, 1\}\}\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1ClusterFinder_ad4b7557ac7b34a7fd188564e22d634ec}\label{classaare_1_1ClusterFinder_ad4b7557ac7b34a7fd188564e22d634ec}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!h\_size@{h\_size}}
\index{h\_size@{h\_size}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{h\_size}{h\_size}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
std\+::unordered\+\_\+map$<$int, \mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit}{Hit}}$>$ \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::h\+\_\+size\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1ClusterFinder_ac228fbe6a24d8b2179db87aa0cfecc86}\label{classaare_1_1ClusterFinder_ac228fbe6a24d8b2179db87aa0cfecc86}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!hits@{hits}}
\index{hits@{hits}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{hits}{hits}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
std\+::vector$<$\mbox{\hyperlink{structaare_1_1ClusterFinder_1_1Hit}{Hit}}$>$ \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::hits\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1ClusterFinder_a0a507adf23a53c14e823c8721c8139dc}\label{classaare_1_1ClusterFinder_a0a507adf23a53c14e823c8721c8139dc}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!labeled\_@{labeled\_}}
\index{labeled\_@{labeled\_}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{labeled\_}{labeled\_}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$int, 2$>$ \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::labeled\+\_\+\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1ClusterFinder_a8044d4bdabc6ed090f07bfddc362f2eb}\label{classaare_1_1ClusterFinder_a8044d4bdabc6ed090f07bfddc362f2eb}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!noiseMap@{noiseMap}}
\index{noiseMap@{noiseMap}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{noiseMap}{noiseMap}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
\mbox{\hyperlink{classaare_1_1NDView}{NDView}}$<$T, 2$>$ \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::noise\+Map\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1ClusterFinder_a77a7f9093806a6b66596262c726aedff}\label{classaare_1_1ClusterFinder_a77a7f9093806a6b66596262c726aedff}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!original\_@{original\_}}
\index{original\_@{original\_}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{original\_}{original\_}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
\mbox{\hyperlink{classaare_1_1NDView}{NDView}}$<$T, 2$>$ \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::original\+\_\+\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1ClusterFinder_a86342541978eac118b16eefa026930d4}\label{classaare_1_1ClusterFinder_a86342541978eac118b16eefa026930d4}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!peripheral\_labeled\_@{peripheral\_labeled\_}}
\index{peripheral\_labeled\_@{peripheral\_labeled\_}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{peripheral\_labeled\_}{peripheral\_labeled\_}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$int, 2$>$ \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::peripheral\+\_\+labeled\+\_\+\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1ClusterFinder_af933139fed8103cab83572a6ba449f36}\label{classaare_1_1ClusterFinder_af933139fed8103cab83572a6ba449f36}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!peripheralThresholdFactor\_@{peripheralThresholdFactor\_}}
\index{peripheralThresholdFactor\_@{peripheralThresholdFactor\_}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{peripheralThresholdFactor\_}{peripheralThresholdFactor\_}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
int \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::peripheral\+Threshold\+Factor\+\_\+ = 5\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1ClusterFinder_a87ae02ed18b8d51cf34d6dcc4a0a11b1}\label{classaare_1_1ClusterFinder_a87ae02ed18b8d51cf34d6dcc4a0a11b1}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!shape\_@{shape\_}}
\index{shape\_@{shape\_}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{shape\_}{shape\_}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
const std\+::array$<$ssize\+\_\+t, 2$>$ \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::shape\+\_\+\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1ClusterFinder_a2726725360133a70fce11b8072cf2a93}\label{classaare_1_1ClusterFinder_a2726725360133a70fce11b8072cf2a93}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!threshold\_@{threshold\_}}
\index{threshold\_@{threshold\_}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{threshold\_}{threshold\_}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
T \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::threshold\+\_\+\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1ClusterFinder_ae7622ae945b849df6bad3d2cc0347370}\label{classaare_1_1ClusterFinder_ae7622ae945b849df6bad3d2cc0347370}
\index{aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}!use\_noise\_map@{use\_noise\_map}}
\index{use\_noise\_map@{use\_noise\_map}!aare::ClusterFinder$<$ T $>$@{aare::ClusterFinder$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{use\_noise\_map}{use\_noise\_map}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
bool \mbox{\hyperlink{classaare_1_1ClusterFinder}{aare\+::\+Cluster\+Finder}}$<$ T $>$\+::use\+\_\+noise\+\_\+map = false\hspace{0.3cm}{\ttfamily [private]}}
The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item
core/include/aare/core/\mbox{\hyperlink{VariableSizeClusterFinder_8hpp}{Variable\+Size\+Cluster\+Finder.\+hpp}}\end{DoxyCompactItemize}

View File

@ -0,0 +1,181 @@
\doxysection{aare\+::DType Class Reference}
\hypertarget{classaare_1_1DType}{}\label{classaare_1_1DType}\index{aare::DType@{aare::DType}}
{\ttfamily \#include $<$DType.\+hpp$>$}
\doxysubsubsection*{Public Types}
\begin{DoxyCompactItemize}
\item
enum \mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611c}{Type\+Index}} \{ \newline
\mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611cadbcf6ad40b9ebfcebead7c2e02ede4fc}{INT8}}
, \mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca39bed0512dff6efdd29ad8180940b431}{UINT8}}
, \mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca9c4f21df66c74163b09a2adcd855da40}{INT16}}
, \mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca359189b12cd95a59c0feeba7cdbf4625}{UINT16}}
, \newline
\mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca85ac1b748eb9b8d6c12cf6b3c8ef5543}{INT32}}
, \mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611cacd2ee958be34e3fefcf8f3dc3d935caf}{UINT32}}
, \mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611caf2642ad7946c063c5b4d0a5d2f723957}{INT64}}
, \mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca62199831e85b359a70f9bed0690aa079}{UINT64}}
, \newline
\mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca44e73e5741c6e0cb456e177badce218e}{FLOAT}}
, \mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca6371d710bd9a7297ca4878b661ddf07b}{DOUBLE}}
, \mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca31f898431fe733a5154366a0eedbf1e9}{ERROR}}
\}
\end{DoxyCompactItemize}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item
uint8\+\_\+t \mbox{\hyperlink{classaare_1_1DType_ab097410b8d43b58061b1d64682ff8ac4}{bitdepth}} () const
\item
\mbox{\hyperlink{classaare_1_1DType_a71637280c0ab3c286ed3d05bcd4e5a1f}{DType}} (const std\+::type\+\_\+info \&t)
\item
\mbox{\hyperlink{classaare_1_1DType_a05c022d99442810eadc93d287060558b}{DType}} (std\+::string\+\_\+view sv)
\item
\mbox{\hyperlink{classaare_1_1DType_acf00453875439d1e6f8379f62e326186}{DType}} (\mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611c}{DType\+::\+Type\+Index}} ti)
\item
bool \mbox{\hyperlink{classaare_1_1DType_a9e5f23c134cf9f11787c10e5b3cc3e4e}{operator==}} (const \mbox{\hyperlink{classaare_1_1DType}{DType}} \&other) const noexcept
\item
bool \mbox{\hyperlink{classaare_1_1DType_af47e1fd8989195c38df4ef1b5d797a70}{operator!=}} (const \mbox{\hyperlink{classaare_1_1DType}{DType}} \&other) const noexcept
\item
bool \mbox{\hyperlink{classaare_1_1DType_a983974ef0d3b3c052b5dc3025ddac6f7}{operator==}} (const std\+::type\+\_\+info \&t) const
\item
bool \mbox{\hyperlink{classaare_1_1DType_afc3d96a49413ee1b6e449b09ea4fb680}{operator!=}} (const std\+::type\+\_\+info \&t) const
\item
std\+::string \mbox{\hyperlink{classaare_1_1DType_a87461d7de8fea6cee34761ef67040a69}{str}} () const
\end{DoxyCompactItemize}
\doxysubsubsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611c}{Type\+Index}} \mbox{\hyperlink{classaare_1_1DType_a61529ea1e39bab2a222229fdcda8b1c0}{m\+\_\+type}} \{\mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca31f898431fe733a5154366a0eedbf1e9}{Type\+Index\+::\+ERROR}}\}
\end{DoxyCompactItemize}
\doxysubsection{Member Enumeration Documentation}
\Hypertarget{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611c}\label{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611c}
\index{aare::DType@{aare::DType}!TypeIndex@{TypeIndex}}
\index{TypeIndex@{TypeIndex}!aare::DType@{aare::DType}}
\doxysubsubsection{\texorpdfstring{TypeIndex}{TypeIndex}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611c}{aare\+::\+DType\+::\+Type\+Index}}}
\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{INT8@{INT8}!aare::DType@{aare::DType}}\index{aare::DType@{aare::DType}!INT8@{INT8}}}\Hypertarget{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611cadbcf6ad40b9ebfcebead7c2e02ede4fc}\label{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611cadbcf6ad40b9ebfcebead7c2e02ede4fc}
INT8&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{UINT8@{UINT8}!aare::DType@{aare::DType}}\index{aare::DType@{aare::DType}!UINT8@{UINT8}}}\Hypertarget{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca39bed0512dff6efdd29ad8180940b431}\label{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca39bed0512dff6efdd29ad8180940b431}
UINT8&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{INT16@{INT16}!aare::DType@{aare::DType}}\index{aare::DType@{aare::DType}!INT16@{INT16}}}\Hypertarget{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca9c4f21df66c74163b09a2adcd855da40}\label{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca9c4f21df66c74163b09a2adcd855da40}
INT16&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{UINT16@{UINT16}!aare::DType@{aare::DType}}\index{aare::DType@{aare::DType}!UINT16@{UINT16}}}\Hypertarget{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca359189b12cd95a59c0feeba7cdbf4625}\label{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca359189b12cd95a59c0feeba7cdbf4625}
UINT16&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{INT32@{INT32}!aare::DType@{aare::DType}}\index{aare::DType@{aare::DType}!INT32@{INT32}}}\Hypertarget{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca85ac1b748eb9b8d6c12cf6b3c8ef5543}\label{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca85ac1b748eb9b8d6c12cf6b3c8ef5543}
INT32&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{UINT32@{UINT32}!aare::DType@{aare::DType}}\index{aare::DType@{aare::DType}!UINT32@{UINT32}}}\Hypertarget{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611cacd2ee958be34e3fefcf8f3dc3d935caf}\label{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611cacd2ee958be34e3fefcf8f3dc3d935caf}
UINT32&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{INT64@{INT64}!aare::DType@{aare::DType}}\index{aare::DType@{aare::DType}!INT64@{INT64}}}\Hypertarget{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611caf2642ad7946c063c5b4d0a5d2f723957}\label{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611caf2642ad7946c063c5b4d0a5d2f723957}
INT64&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{UINT64@{UINT64}!aare::DType@{aare::DType}}\index{aare::DType@{aare::DType}!UINT64@{UINT64}}}\Hypertarget{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca62199831e85b359a70f9bed0690aa079}\label{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca62199831e85b359a70f9bed0690aa079}
UINT64&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{FLOAT@{FLOAT}!aare::DType@{aare::DType}}\index{aare::DType@{aare::DType}!FLOAT@{FLOAT}}}\Hypertarget{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca44e73e5741c6e0cb456e177badce218e}\label{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca44e73e5741c6e0cb456e177badce218e}
FLOAT&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{DOUBLE@{DOUBLE}!aare::DType@{aare::DType}}\index{aare::DType@{aare::DType}!DOUBLE@{DOUBLE}}}\Hypertarget{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca6371d710bd9a7297ca4878b661ddf07b}\label{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca6371d710bd9a7297ca4878b661ddf07b}
DOUBLE&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{ERROR@{ERROR}!aare::DType@{aare::DType}}\index{aare::DType@{aare::DType}!ERROR@{ERROR}}}\Hypertarget{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca31f898431fe733a5154366a0eedbf1e9}\label{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca31f898431fe733a5154366a0eedbf1e9}
ERROR&\\
\hline
\end{DoxyEnumFields}
\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classaare_1_1DType_a71637280c0ab3c286ed3d05bcd4e5a1f}\label{classaare_1_1DType_a71637280c0ab3c286ed3d05bcd4e5a1f}
\index{aare::DType@{aare::DType}!DType@{DType}}
\index{DType@{DType}!aare::DType@{aare::DType}}
\doxysubsubsection{\texorpdfstring{DType()}{DType()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily aare\+::\+DType\+::\+DType (\begin{DoxyParamCaption}\item[{const std\+::type\+\_\+info \&}]{t }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [explicit]}}
\Hypertarget{classaare_1_1DType_a05c022d99442810eadc93d287060558b}\label{classaare_1_1DType_a05c022d99442810eadc93d287060558b}
\index{aare::DType@{aare::DType}!DType@{DType}}
\index{DType@{DType}!aare::DType@{aare::DType}}
\doxysubsubsection{\texorpdfstring{DType()}{DType()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily aare\+::\+DType\+::\+DType (\begin{DoxyParamCaption}\item[{std\+::string\+\_\+view}]{sv }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [explicit]}}
\Hypertarget{classaare_1_1DType_acf00453875439d1e6f8379f62e326186}\label{classaare_1_1DType_acf00453875439d1e6f8379f62e326186}
\index{aare::DType@{aare::DType}!DType@{DType}}
\index{DType@{DType}!aare::DType@{aare::DType}}
\doxysubsubsection{\texorpdfstring{DType()}{DType()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily aare\+::\+DType\+::\+DType (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611c}{DType\+::\+Type\+Index}}}]{ti }\end{DoxyParamCaption})}
\doxysubsection{Member Function Documentation}
\Hypertarget{classaare_1_1DType_ab097410b8d43b58061b1d64682ff8ac4}\label{classaare_1_1DType_ab097410b8d43b58061b1d64682ff8ac4}
\index{aare::DType@{aare::DType}!bitdepth@{bitdepth}}
\index{bitdepth@{bitdepth}!aare::DType@{aare::DType}}
\doxysubsubsection{\texorpdfstring{bitdepth()}{bitdepth()}}
{\footnotesize\ttfamily uint8\+\_\+t aare\+::\+DType\+::bitdepth (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
\Hypertarget{classaare_1_1DType_af47e1fd8989195c38df4ef1b5d797a70}\label{classaare_1_1DType_af47e1fd8989195c38df4ef1b5d797a70}
\index{aare::DType@{aare::DType}!operator"!=@{operator"!=}}
\index{operator"!=@{operator"!=}!aare::DType@{aare::DType}}
\doxysubsubsection{\texorpdfstring{operator"!=()}{operator!=()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily bool aare\+::\+DType\+::operator!= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classaare_1_1DType}{DType}} \&}]{other }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [noexcept]}}
\Hypertarget{classaare_1_1DType_afc3d96a49413ee1b6e449b09ea4fb680}\label{classaare_1_1DType_afc3d96a49413ee1b6e449b09ea4fb680}
\index{aare::DType@{aare::DType}!operator"!=@{operator"!=}}
\index{operator"!=@{operator"!=}!aare::DType@{aare::DType}}
\doxysubsubsection{\texorpdfstring{operator"!=()}{operator!=()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily bool aare\+::\+DType\+::operator!= (\begin{DoxyParamCaption}\item[{const std\+::type\+\_\+info \&}]{t }\end{DoxyParamCaption}) const}
\Hypertarget{classaare_1_1DType_a9e5f23c134cf9f11787c10e5b3cc3e4e}\label{classaare_1_1DType_a9e5f23c134cf9f11787c10e5b3cc3e4e}
\index{aare::DType@{aare::DType}!operator==@{operator==}}
\index{operator==@{operator==}!aare::DType@{aare::DType}}
\doxysubsubsection{\texorpdfstring{operator==()}{operator==()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily bool aare\+::\+DType\+::operator== (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classaare_1_1DType}{DType}} \&}]{other }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [noexcept]}}
\Hypertarget{classaare_1_1DType_a983974ef0d3b3c052b5dc3025ddac6f7}\label{classaare_1_1DType_a983974ef0d3b3c052b5dc3025ddac6f7}
\index{aare::DType@{aare::DType}!operator==@{operator==}}
\index{operator==@{operator==}!aare::DType@{aare::DType}}
\doxysubsubsection{\texorpdfstring{operator==()}{operator==()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily bool aare\+::\+DType\+::operator== (\begin{DoxyParamCaption}\item[{const std\+::type\+\_\+info \&}]{t }\end{DoxyParamCaption}) const}
\Hypertarget{classaare_1_1DType_a87461d7de8fea6cee34761ef67040a69}\label{classaare_1_1DType_a87461d7de8fea6cee34761ef67040a69}
\index{aare::DType@{aare::DType}!str@{str}}
\index{str@{str}!aare::DType@{aare::DType}}
\doxysubsubsection{\texorpdfstring{str()}{str()}}
{\footnotesize\ttfamily std\+::string aare\+::\+DType\+::str (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
\doxysubsection{Field Documentation}
\Hypertarget{classaare_1_1DType_a61529ea1e39bab2a222229fdcda8b1c0}\label{classaare_1_1DType_a61529ea1e39bab2a222229fdcda8b1c0}
\index{aare::DType@{aare::DType}!m\_type@{m\_type}}
\index{m\_type@{m\_type}!aare::DType@{aare::DType}}
\doxysubsubsection{\texorpdfstring{m\_type}{m\_type}}
{\footnotesize\ttfamily \mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611c}{Type\+Index}} aare\+::\+DType\+::m\+\_\+type \{\mbox{\hyperlink{classaare_1_1DType_af556f6d36fca6f3c555c08a1cc19611ca31f898431fe733a5154366a0eedbf1e9}{Type\+Index\+::\+ERROR}}\}\hspace{0.3cm}{\ttfamily [private]}}
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item
core/include/aare/core/\mbox{\hyperlink{DType_8hpp}{DType.\+hpp}}\item
core/src/\mbox{\hyperlink{DType_8cpp}{DType.\+cpp}}\end{DoxyCompactItemize}

View File

@ -0,0 +1,225 @@
\doxysection{aare\+::File Class Reference}
\hypertarget{classaare_1_1File}{}\label{classaare_1_1File}\index{aare::File@{aare::File}}
RAII \doxylink{classaare_1_1File_1_1File}{File} class for reading and writing image files in various formats wrapper on a \doxylink{classaare_1_1FileInterface}{File\+Interface} to abstract the underlying file format.
{\ttfamily \#include $<$File.\+hpp$>$}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{classaare_1_1File_a9bdd1ad48e0eb476d8ff44e8d113ed0e}{File}} (std\+::filesystem\+::path fname, std\+::string mode, \mbox{\hyperlink{structaare_1_1FileConfig}{File\+Config}} cfg=\{\})
\begin{DoxyCompactList}\small\item\em Construct a new \doxylink{classaare_1_1File_1_1File}{File} object. \end{DoxyCompactList}\item
void \mbox{\hyperlink{classaare_1_1File_a53d2397c69b01f8aaf972b68f470b781}{write}} (\mbox{\hyperlink{classaare_1_1Frame}{Frame}} \&frame)
\item
\mbox{\hyperlink{classaare_1_1Frame}{Frame}} \mbox{\hyperlink{classaare_1_1File_a3a10c5eb34627b0badddd43121eb1d83}{read}} ()
\item
\mbox{\hyperlink{classaare_1_1Frame}{Frame}} \mbox{\hyperlink{classaare_1_1File_a27dd0920d959676a8936f42998d9aebc}{iread}} (size\+\_\+t frame\+\_\+number)
\item
std\+::vector$<$ \mbox{\hyperlink{classaare_1_1Frame}{Frame}} $>$ \mbox{\hyperlink{classaare_1_1File_a7f1e7f601e748a5bfd99497c948f47ee}{read}} (size\+\_\+t n\+\_\+frames)
\item
void \mbox{\hyperlink{classaare_1_1File_a66ee1d36d4d2f6683aa46ca93768d07d}{read\+\_\+into}} (std\+::byte \texorpdfstring{$\ast$}{*}image\+\_\+buf)
\item
void \mbox{\hyperlink{classaare_1_1File_aabea27aefdae51a29dcc86433bec9fdb}{read\+\_\+into}} (std\+::byte \texorpdfstring{$\ast$}{*}image\+\_\+buf, size\+\_\+t n\+\_\+frames)
\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1File_a207aae034a1794ea2b1092afcc17756f}{frame\+\_\+number}} (size\+\_\+t frame\+\_\+index)
\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1File_a32a13788fc0a1cadd2ebc8ed2aaa4ac9}{bytes\+\_\+per\+\_\+frame}} ()
\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1File_a5b527f5d8cef1cee5ed9297e36fee8c6}{pixels}} ()
\item
void \mbox{\hyperlink{classaare_1_1File_ac6a40444bb5124484bafcd522f3ff49e}{seek}} (size\+\_\+t frame\+\_\+number)
\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1File_a79bb952679193b02ee83a622c15a599c}{tell}} () const
\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1File_a706409a694455040034b431fedff9172}{total\+\_\+frames}} () const
\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1File_a79cf93d8fc08366dedf9e52a25a23010}{rows}} () const
\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1File_a4da675b97939fba070cfe42a17936a66}{cols}} () const
\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1File_a344c27c3dba3e4bd24dad2c29de9dae1}{bitdepth}} () const
\item
\mbox{\hyperlink{classaare_1_1File_aba1a27e7fa3fcfd62564925583b70ae6}{File}} (\mbox{\hyperlink{classaare_1_1File}{File}} \&\&other)
\begin{DoxyCompactList}\small\item\em Move constructor. \end{DoxyCompactList}\item
\mbox{\hyperlink{classaare_1_1File_ad53f1dda26609290e30fcaba9d2020dc}{\texorpdfstring{$\sim$}{\string~}\+File}} ()
\begin{DoxyCompactList}\small\item\em destructor\+: will only delete the \doxylink{classaare_1_1FileInterface}{File\+Interface} object \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{classaare_1_1FileInterface}{File\+Interface}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1File_ac2c569dfd6c15c1f5b19f5f1a5e38abf}{file\+\_\+impl}}
\end{DoxyCompactItemize}
\doxysubsection{Detailed Description}
RAII \doxylink{classaare_1_1File_1_1File}{File} class for reading and writing image files in various formats wrapper on a \doxylink{classaare_1_1FileInterface}{File\+Interface} to abstract the underlying file format.
\begin{DoxyNote}{Note}
documentation for each function is in the \doxylink{classaare_1_1FileInterface}{File\+Interface} class
\end{DoxyNote}
\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classaare_1_1File_a9bdd1ad48e0eb476d8ff44e8d113ed0e}\label{classaare_1_1File_a9bdd1ad48e0eb476d8ff44e8d113ed0e}
\index{aare::File@{aare::File}!File@{File}}
\index{File@{File}!aare::File@{aare::File}}
\doxysubsubsection{\texorpdfstring{File()}{File()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{classaare_1_1File_1_1File}{aare\+::\+File\+::\+File}} (\begin{DoxyParamCaption}\item[{std\+::filesystem\+::path}]{fname, }\item[{std\+::string}]{mode, }\item[{\mbox{\hyperlink{structaare_1_1FileConfig}{File\+Config}}}]{cfg = {\ttfamily \{\}} }\end{DoxyParamCaption})}
Construct a new \doxylink{classaare_1_1File_1_1File}{File} object.
\begin{DoxyParams}{Parameters}
{\em fname} & path to the file \\
\hline
{\em mode} & file mode (r, w, a) \\
\hline
{\em cfg} & file configuration \\
\hline
\end{DoxyParams}
\begin{DoxyExceptions}{Exceptions}
{\em std\+::runtime\+\_\+error} & if the file cannot be opened \\
\hline
{\em std\+::invalid\+\_\+argument} & if the file mode is not supported \\
\hline
\end{DoxyExceptions}
\Hypertarget{classaare_1_1File_aba1a27e7fa3fcfd62564925583b70ae6}\label{classaare_1_1File_aba1a27e7fa3fcfd62564925583b70ae6}
\index{aare::File@{aare::File}!File@{File}}
\index{File@{File}!aare::File@{aare::File}}
\doxysubsubsection{\texorpdfstring{File()}{File()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{classaare_1_1File_1_1File}{aare\+::\+File\+::\+File}} (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classaare_1_1File}{File}} \&\&}]{other }\end{DoxyParamCaption})}
Move constructor.
\begin{DoxyParams}{Parameters}
{\em other} & \doxylink{classaare_1_1File_1_1File}{File} object to move from \\
\hline
\end{DoxyParams}
\Hypertarget{classaare_1_1File_ad53f1dda26609290e30fcaba9d2020dc}\label{classaare_1_1File_ad53f1dda26609290e30fcaba9d2020dc}
\index{aare::File@{aare::File}!````~File@{\texorpdfstring{$\sim$}{\string~}File}}
\index{````~File@{\texorpdfstring{$\sim$}{\string~}File}!aare::File@{aare::File}}
\doxysubsubsection{\texorpdfstring{\texorpdfstring{$\sim$}{\string~}File()}{\string~File()}}
{\footnotesize\ttfamily aare\+::\+File\+::\texorpdfstring{$\sim$}{\string~}\+File (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
destructor\+: will only delete the \doxylink{classaare_1_1FileInterface}{File\+Interface} object
\doxysubsection{Member Function Documentation}
\Hypertarget{classaare_1_1File_a344c27c3dba3e4bd24dad2c29de9dae1}\label{classaare_1_1File_a344c27c3dba3e4bd24dad2c29de9dae1}
\index{aare::File@{aare::File}!bitdepth@{bitdepth}}
\index{bitdepth@{bitdepth}!aare::File@{aare::File}}
\doxysubsubsection{\texorpdfstring{bitdepth()}{bitdepth()}}
{\footnotesize\ttfamily ssize\+\_\+t aare\+::\+File\+::bitdepth (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
\Hypertarget{classaare_1_1File_a32a13788fc0a1cadd2ebc8ed2aaa4ac9}\label{classaare_1_1File_a32a13788fc0a1cadd2ebc8ed2aaa4ac9}
\index{aare::File@{aare::File}!bytes\_per\_frame@{bytes\_per\_frame}}
\index{bytes\_per\_frame@{bytes\_per\_frame}!aare::File@{aare::File}}
\doxysubsubsection{\texorpdfstring{bytes\_per\_frame()}{bytes\_per\_frame()}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+File\+::bytes\+\_\+per\+\_\+frame (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1File_a4da675b97939fba070cfe42a17936a66}\label{classaare_1_1File_a4da675b97939fba070cfe42a17936a66}
\index{aare::File@{aare::File}!cols@{cols}}
\index{cols@{cols}!aare::File@{aare::File}}
\doxysubsubsection{\texorpdfstring{cols()}{cols()}}
{\footnotesize\ttfamily ssize\+\_\+t aare\+::\+File\+::cols (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
\Hypertarget{classaare_1_1File_a207aae034a1794ea2b1092afcc17756f}\label{classaare_1_1File_a207aae034a1794ea2b1092afcc17756f}
\index{aare::File@{aare::File}!frame\_number@{frame\_number}}
\index{frame\_number@{frame\_number}!aare::File@{aare::File}}
\doxysubsubsection{\texorpdfstring{frame\_number()}{frame\_number()}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+File\+::frame\+\_\+number (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{frame\+\_\+index }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1File_a27dd0920d959676a8936f42998d9aebc}\label{classaare_1_1File_a27dd0920d959676a8936f42998d9aebc}
\index{aare::File@{aare::File}!iread@{iread}}
\index{iread@{iread}!aare::File@{aare::File}}
\doxysubsubsection{\texorpdfstring{iread()}{iread()}}
{\footnotesize\ttfamily \mbox{\hyperlink{classaare_1_1Frame}{Frame}} aare\+::\+File\+::iread (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{frame\+\_\+number }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1File_a5b527f5d8cef1cee5ed9297e36fee8c6}\label{classaare_1_1File_a5b527f5d8cef1cee5ed9297e36fee8c6}
\index{aare::File@{aare::File}!pixels@{pixels}}
\index{pixels@{pixels}!aare::File@{aare::File}}
\doxysubsubsection{\texorpdfstring{pixels()}{pixels()}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+File\+::pixels (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1File_a3a10c5eb34627b0badddd43121eb1d83}\label{classaare_1_1File_a3a10c5eb34627b0badddd43121eb1d83}
\index{aare::File@{aare::File}!read@{read}}
\index{read@{read}!aare::File@{aare::File}}
\doxysubsubsection{\texorpdfstring{read()}{read()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{classaare_1_1Frame}{Frame}} aare\+::\+File\+::read (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1File_a7f1e7f601e748a5bfd99497c948f47ee}\label{classaare_1_1File_a7f1e7f601e748a5bfd99497c948f47ee}
\index{aare::File@{aare::File}!read@{read}}
\index{read@{read}!aare::File@{aare::File}}
\doxysubsubsection{\texorpdfstring{read()}{read()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily std\+::vector$<$ \mbox{\hyperlink{classaare_1_1Frame}{Frame}} $>$ aare\+::\+File\+::read (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{n\+\_\+frames }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1File_a66ee1d36d4d2f6683aa46ca93768d07d}\label{classaare_1_1File_a66ee1d36d4d2f6683aa46ca93768d07d}
\index{aare::File@{aare::File}!read\_into@{read\_into}}
\index{read\_into@{read\_into}!aare::File@{aare::File}}
\doxysubsubsection{\texorpdfstring{read\_into()}{read\_into()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void aare\+::\+File\+::read\+\_\+into (\begin{DoxyParamCaption}\item[{std\+::byte \texorpdfstring{$\ast$}{*}}]{image\+\_\+buf }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1File_aabea27aefdae51a29dcc86433bec9fdb}\label{classaare_1_1File_aabea27aefdae51a29dcc86433bec9fdb}
\index{aare::File@{aare::File}!read\_into@{read\_into}}
\index{read\_into@{read\_into}!aare::File@{aare::File}}
\doxysubsubsection{\texorpdfstring{read\_into()}{read\_into()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void aare\+::\+File\+::read\+\_\+into (\begin{DoxyParamCaption}\item[{std\+::byte \texorpdfstring{$\ast$}{*}}]{image\+\_\+buf, }\item[{size\+\_\+t}]{n\+\_\+frames }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1File_a79cf93d8fc08366dedf9e52a25a23010}\label{classaare_1_1File_a79cf93d8fc08366dedf9e52a25a23010}
\index{aare::File@{aare::File}!rows@{rows}}
\index{rows@{rows}!aare::File@{aare::File}}
\doxysubsubsection{\texorpdfstring{rows()}{rows()}}
{\footnotesize\ttfamily ssize\+\_\+t aare\+::\+File\+::rows (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
\Hypertarget{classaare_1_1File_ac6a40444bb5124484bafcd522f3ff49e}\label{classaare_1_1File_ac6a40444bb5124484bafcd522f3ff49e}
\index{aare::File@{aare::File}!seek@{seek}}
\index{seek@{seek}!aare::File@{aare::File}}
\doxysubsubsection{\texorpdfstring{seek()}{seek()}}
{\footnotesize\ttfamily void aare\+::\+File\+::seek (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{frame\+\_\+number }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1File_a79bb952679193b02ee83a622c15a599c}\label{classaare_1_1File_a79bb952679193b02ee83a622c15a599c}
\index{aare::File@{aare::File}!tell@{tell}}
\index{tell@{tell}!aare::File@{aare::File}}
\doxysubsubsection{\texorpdfstring{tell()}{tell()}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+File\+::tell (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
\Hypertarget{classaare_1_1File_a706409a694455040034b431fedff9172}\label{classaare_1_1File_a706409a694455040034b431fedff9172}
\index{aare::File@{aare::File}!total\_frames@{total\_frames}}
\index{total\_frames@{total\_frames}!aare::File@{aare::File}}
\doxysubsubsection{\texorpdfstring{total\_frames()}{total\_frames()}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+File\+::total\+\_\+frames (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
\Hypertarget{classaare_1_1File_a53d2397c69b01f8aaf972b68f470b781}\label{classaare_1_1File_a53d2397c69b01f8aaf972b68f470b781}
\index{aare::File@{aare::File}!write@{write}}
\index{write@{write}!aare::File@{aare::File}}
\doxysubsubsection{\texorpdfstring{write()}{write()}}
{\footnotesize\ttfamily void aare\+::\+File\+::write (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classaare_1_1Frame}{Frame}} \&}]{frame }\end{DoxyParamCaption})}
\doxysubsection{Field Documentation}
\Hypertarget{classaare_1_1File_ac2c569dfd6c15c1f5b19f5f1a5e38abf}\label{classaare_1_1File_ac2c569dfd6c15c1f5b19f5f1a5e38abf}
\index{aare::File@{aare::File}!file\_impl@{file\_impl}}
\index{file\_impl@{file\_impl}!aare::File@{aare::File}}
\doxysubsubsection{\texorpdfstring{file\_impl}{file\_impl}}
{\footnotesize\ttfamily \mbox{\hyperlink{classaare_1_1FileInterface}{File\+Interface}}\texorpdfstring{$\ast$}{*} aare\+::\+File\+::file\+\_\+impl\hspace{0.3cm}{\ttfamily [private]}}
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item
file\+\_\+io/include/aare/file\+\_\+io/\mbox{\hyperlink{File_8hpp}{File.\+hpp}}\item
file\+\_\+io/src/\mbox{\hyperlink{File_8cpp}{File.\+cpp}}\end{DoxyCompactItemize}

View File

@ -0,0 +1,203 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 162.601624
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 3.075000 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 2 def
/cols 2 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(aare::FileInterface) cw
(aare::NumpyFile) cw
(aare::RawFile) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(aare::FileInterface) 0.500000 1.000000 box
(aare::NumpyFile) 0.000000 0.000000 box
(aare::RawFile) 1.000000 0.000000 box
% ----- relations -----
solid
1 0.500000 0.250000 out
solid
0.000000 1.000000 1.000000 conn
solid
0 0.000000 0.750000 in
solid
0 1.000000 0.750000 in

Binary file not shown.

View File

@ -0,0 +1,520 @@
\doxysection{aare\+::File\+Interface Class Reference}
\hypertarget{classaare_1_1FileInterface}{}\label{classaare_1_1FileInterface}\index{aare::FileInterface@{aare::FileInterface}}
\doxylink{classaare_1_1FileInterface}{File\+Interface} class to define the interface for file operations.
{\ttfamily \#include $<$File\+Interface.\+hpp$>$}
Inheritance diagram for aare\+::File\+Interface\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classaare_1_1FileInterface}
\end{center}
\end{figure}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item
virtual void \mbox{\hyperlink{classaare_1_1FileInterface_a5d39033c9d218d53d51413b99bf7d1f4}{write}} (\mbox{\hyperlink{classaare_1_1Frame}{Frame}} \&frame)=0
\begin{DoxyCompactList}\small\item\em write a frame to the file \end{DoxyCompactList}\item
virtual \mbox{\hyperlink{classaare_1_1Frame}{Frame}} \mbox{\hyperlink{classaare_1_1FileInterface_a9cb196de2bee8638578e4ba3ce46532e}{read}} ()=0
\begin{DoxyCompactList}\small\item\em write a vector of frames to the file \end{DoxyCompactList}\item
virtual std\+::vector$<$ \mbox{\hyperlink{classaare_1_1Frame}{Frame}} $>$ \mbox{\hyperlink{classaare_1_1FileInterface_a1624d72f0feb1c19d507cc91c4cb414a}{read}} (size\+\_\+t n\+\_\+frames)=0
\begin{DoxyCompactList}\small\item\em read n\+\_\+frames from the file at the current position \end{DoxyCompactList}\item
virtual void \mbox{\hyperlink{classaare_1_1FileInterface_a4ac0f4e63ccf90af9f0d5b9b44db856c}{read\+\_\+into}} (std\+::byte \texorpdfstring{$\ast$}{*}image\+\_\+buf)=0
\begin{DoxyCompactList}\small\item\em read one frame from the file at the current position and store it in the provided buffer \end{DoxyCompactList}\item
virtual void \mbox{\hyperlink{classaare_1_1FileInterface_a580c71b3eecf45ce2140cd65103cfd43}{read\+\_\+into}} (std\+::byte \texorpdfstring{$\ast$}{*}image\+\_\+buf, size\+\_\+t n\+\_\+frames)=0
\begin{DoxyCompactList}\small\item\em read n\+\_\+frames from the file at the current position and store them in the provided buffer \end{DoxyCompactList}\item
virtual size\+\_\+t \mbox{\hyperlink{classaare_1_1FileInterface_ac6d10d468f79e855a3334cd1347c1178}{frame\+\_\+number}} (size\+\_\+t frame\+\_\+index)=0
\begin{DoxyCompactList}\small\item\em get the frame number at the given frame index \end{DoxyCompactList}\item
virtual size\+\_\+t \mbox{\hyperlink{classaare_1_1FileInterface_aab236d5b808f2acc44266281274ed93a}{bytes\+\_\+per\+\_\+frame}} ()=0
\begin{DoxyCompactList}\small\item\em get the size of one frame in bytes \end{DoxyCompactList}\item
virtual size\+\_\+t \mbox{\hyperlink{classaare_1_1FileInterface_a99da51594609984efe62bb64a88a3fa6}{pixels}} ()=0
\begin{DoxyCompactList}\small\item\em get the number of pixels in one frame \end{DoxyCompactList}\item
virtual void \mbox{\hyperlink{classaare_1_1FileInterface_a49510fb96eaa245fd5d2be7f25a40b74}{seek}} (size\+\_\+t \mbox{\hyperlink{classaare_1_1FileInterface_ac6d10d468f79e855a3334cd1347c1178}{frame\+\_\+number}})=0
\begin{DoxyCompactList}\small\item\em seek to the given frame number \end{DoxyCompactList}\item
virtual size\+\_\+t \mbox{\hyperlink{classaare_1_1FileInterface_abd01811dcf904625b4dbd78dd9188de4}{tell}} ()=0
\begin{DoxyCompactList}\small\item\em get the current position of the file pointer \end{DoxyCompactList}\item
virtual size\+\_\+t \mbox{\hyperlink{classaare_1_1FileInterface_ad4391bafd11f77f807114ba5108071d3}{total\+\_\+frames}} () const =0
\begin{DoxyCompactList}\small\item\em get the total number of frames in the file \end{DoxyCompactList}\item
virtual ssize\+\_\+t \mbox{\hyperlink{classaare_1_1FileInterface_a8a5bc2d9b7b9ec1a9a100bf8a114d909}{rows}} () const =0
\begin{DoxyCompactList}\small\item\em get the number of rows in the file \end{DoxyCompactList}\item
virtual ssize\+\_\+t \mbox{\hyperlink{classaare_1_1FileInterface_a2927ba0e6a564bcd0da139a552c09b76}{cols}} () const =0
\begin{DoxyCompactList}\small\item\em get the number of columns in the file \end{DoxyCompactList}\item
virtual ssize\+\_\+t \mbox{\hyperlink{classaare_1_1FileInterface_a8bfd7abf4271210000b2ef8d1c0d6149}{bitdepth}} () const =0
\begin{DoxyCompactList}\small\item\em get the bitdepth of the file \end{DoxyCompactList}\item
\mbox{\hyperlink{classaare_1_1Frame}{Frame}} \mbox{\hyperlink{classaare_1_1FileInterface_aad0827f2dad4403cebdce417243d842c}{iread}} (size\+\_\+t \mbox{\hyperlink{classaare_1_1FileInterface_ac6d10d468f79e855a3334cd1347c1178}{frame\+\_\+number}})
\begin{DoxyCompactList}\small\item\em read one frame from the file at the given frame number \end{DoxyCompactList}\item
std\+::vector$<$ \mbox{\hyperlink{classaare_1_1Frame}{Frame}} $>$ \mbox{\hyperlink{classaare_1_1FileInterface_a1a304e356f3c1d100544d6ceeb35c0fb}{iread}} (size\+\_\+t \mbox{\hyperlink{classaare_1_1FileInterface_ac6d10d468f79e855a3334cd1347c1178}{frame\+\_\+number}}, size\+\_\+t n\+\_\+frames)
\begin{DoxyCompactList}\small\item\em read n\+\_\+frames from the file starting at the given frame number \end{DoxyCompactList}\item
virtual \mbox{\hyperlink{classaare_1_1FileInterface_a7546e2d2dec365bee91cbf5607278e80}{\texorpdfstring{$\sim$}{\string~}\+File\+Interface}} ()
\end{DoxyCompactItemize}
\doxysubsubsection*{Data Fields}
\begin{DoxyCompactItemize}
\item
std\+::string \mbox{\hyperlink{classaare_1_1FileInterface_ab1d0e6de947affd5af9740eb06888fc6}{m\+\_\+mode}}
\item
std\+::filesystem\+::path \mbox{\hyperlink{classaare_1_1FileInterface_a325f6603f564fb42f8f28f1136b5e329}{m\+\_\+fname}}
\item
std\+::filesystem\+::path \mbox{\hyperlink{classaare_1_1FileInterface_afdd0a1a75618ad5db2f4794e0900b2f4}{m\+\_\+base\+\_\+path}}
\item
std\+::string \mbox{\hyperlink{classaare_1_1FileInterface_adae2b35fc6a3f185e9eb263c97bc024b}{m\+\_\+base\+\_\+name}}
\item
std\+::string \mbox{\hyperlink{classaare_1_1FileInterface_a5fffaf9a7c8ae2b3a2ebe89b9c94ed34}{m\+\_\+ext}}
\item
int \mbox{\hyperlink{classaare_1_1FileInterface_a30e926a897b534ab9a327d40594ff191}{m\+\_\+findex}}
\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1FileInterface_a91551fada444b231294c095f3f5fb768}{m\+\_\+total\+\_\+frames}} \{\}
\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1FileInterface_ab0762d7652c9a4e1afe6dbb7d7325ac9}{max\+\_\+frames\+\_\+per\+\_\+file}} \{\}
\item
std\+::string \mbox{\hyperlink{classaare_1_1FileInterface_a44cbe933bbd2cae1f48213121d15bce2}{version}}
\item
\mbox{\hyperlink{namespaceaare_a5b95afba95553c1e118e1478c69042f7}{Detector\+Type}} \mbox{\hyperlink{classaare_1_1FileInterface_a9476a299cea6b4e97605135a28d0cb60}{m\+\_\+type}}
\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1FileInterface_ae29d98625cf56989e2c5237ace0d0f4c}{m\+\_\+rows}} \{\}
\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1FileInterface_ad4c9991c30a71ba83cbaab283bc756b5}{m\+\_\+cols}} \{\}
\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1FileInterface_a252d27cbbfcdfc528b86925eaac55bb7}{m\+\_\+bitdepth}} \{\}
\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1FileInterface_ab96f5dd0c99fb7b5a527da812368d736}{current\+\_\+frame}} \{\}
\end{DoxyCompactItemize}
\doxysubsection{Detailed Description}
\doxylink{classaare_1_1FileInterface}{File\+Interface} class to define the interface for file operations.
\begin{DoxyNote}{Note}
parent class for \doxylink{classaare_1_1NumpyFile}{Numpy\+File} and \doxylink{classaare_1_1RawFile}{Raw\+File}
all functions are pure virtual and must be implemented by the derived classes
\end{DoxyNote}
\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classaare_1_1FileInterface_a7546e2d2dec365bee91cbf5607278e80}\label{classaare_1_1FileInterface_a7546e2d2dec365bee91cbf5607278e80}
\index{aare::FileInterface@{aare::FileInterface}!````~FileInterface@{\texorpdfstring{$\sim$}{\string~}FileInterface}}
\index{````~FileInterface@{\texorpdfstring{$\sim$}{\string~}FileInterface}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{\texorpdfstring{$\sim$}{\string~}FileInterface()}{\string~FileInterface()}}
{\footnotesize\ttfamily virtual aare\+::\+File\+Interface\+::\texorpdfstring{$\sim$}{\string~}\+File\+Interface (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}
\doxysubsection{Member Function Documentation}
\Hypertarget{classaare_1_1FileInterface_a8bfd7abf4271210000b2ef8d1c0d6149}\label{classaare_1_1FileInterface_a8bfd7abf4271210000b2ef8d1c0d6149}
\index{aare::FileInterface@{aare::FileInterface}!bitdepth@{bitdepth}}
\index{bitdepth@{bitdepth}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{bitdepth()}{bitdepth()}}
{\footnotesize\ttfamily virtual ssize\+\_\+t aare\+::\+File\+Interface\+::bitdepth (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}
get the bitdepth of the file
\begin{DoxyReturn}{Returns}
bitdepth of the file
\end{DoxyReturn}
Implemented in \mbox{\hyperlink{classaare_1_1NumpyFile_afcdc40fcc15f5a3a470e23033ad1323c}{aare\+::\+Numpy\+File}}, and \mbox{\hyperlink{classaare_1_1RawFile_ae880a6c07caaca176028936a29162ff2}{aare\+::\+Raw\+File}}.
\Hypertarget{classaare_1_1FileInterface_aab236d5b808f2acc44266281274ed93a}\label{classaare_1_1FileInterface_aab236d5b808f2acc44266281274ed93a}
\index{aare::FileInterface@{aare::FileInterface}!bytes\_per\_frame@{bytes\_per\_frame}}
\index{bytes\_per\_frame@{bytes\_per\_frame}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{bytes\_per\_frame()}{bytes\_per\_frame()}}
{\footnotesize\ttfamily virtual size\+\_\+t aare\+::\+File\+Interface\+::bytes\+\_\+per\+\_\+frame (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
get the size of one frame in bytes
\begin{DoxyReturn}{Returns}
size of one frame
\end{DoxyReturn}
Implemented in \mbox{\hyperlink{classaare_1_1NumpyFile_a35c1b49a469ba8e261d4e675a816b5f2}{aare\+::\+Numpy\+File}}, and \mbox{\hyperlink{classaare_1_1RawFile_ac20d32d75330d179554c2c69292332f0}{aare\+::\+Raw\+File}}.
\Hypertarget{classaare_1_1FileInterface_a2927ba0e6a564bcd0da139a552c09b76}\label{classaare_1_1FileInterface_a2927ba0e6a564bcd0da139a552c09b76}
\index{aare::FileInterface@{aare::FileInterface}!cols@{cols}}
\index{cols@{cols}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{cols()}{cols()}}
{\footnotesize\ttfamily virtual ssize\+\_\+t aare\+::\+File\+Interface\+::cols (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}
get the number of columns in the file
\begin{DoxyReturn}{Returns}
number of columns in the file
\end{DoxyReturn}
Implemented in \mbox{\hyperlink{classaare_1_1NumpyFile_ae1558b1ab6fbea54f853cdfad9363d31}{aare\+::\+Numpy\+File}}, and \mbox{\hyperlink{classaare_1_1RawFile_a8b646fd35e7b19740f6358804bba2bce}{aare\+::\+Raw\+File}}.
\Hypertarget{classaare_1_1FileInterface_ac6d10d468f79e855a3334cd1347c1178}\label{classaare_1_1FileInterface_ac6d10d468f79e855a3334cd1347c1178}
\index{aare::FileInterface@{aare::FileInterface}!frame\_number@{frame\_number}}
\index{frame\_number@{frame\_number}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{frame\_number()}{frame\_number()}}
{\footnotesize\ttfamily virtual size\+\_\+t aare\+::\+File\+Interface\+::frame\+\_\+number (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{frame\+\_\+index }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
get the frame number at the given frame index
\begin{DoxyParams}{Parameters}
{\em frame\+\_\+index} & index of the frame \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
frame number
\end{DoxyReturn}
Implemented in \mbox{\hyperlink{classaare_1_1NumpyFile_abe5817c47fa552b7d6de72a4b59d290a}{aare\+::\+Numpy\+File}}, and \mbox{\hyperlink{classaare_1_1RawFile_a42972170354d7d9cde0b9b9509b63fee}{aare\+::\+Raw\+File}}.
\Hypertarget{classaare_1_1FileInterface_aad0827f2dad4403cebdce417243d842c}\label{classaare_1_1FileInterface_aad0827f2dad4403cebdce417243d842c}
\index{aare::FileInterface@{aare::FileInterface}!iread@{iread}}
\index{iread@{iread}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{iread()}{iread()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{classaare_1_1Frame}{Frame}} aare\+::\+File\+Interface\+::iread (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{frame\+\_\+number }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
read one frame from the file at the given frame number
\begin{DoxyParams}{Parameters}
{\em frame\+\_\+number} & frame number to read \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
frame
\end{DoxyReturn}
\Hypertarget{classaare_1_1FileInterface_a1a304e356f3c1d100544d6ceeb35c0fb}\label{classaare_1_1FileInterface_a1a304e356f3c1d100544d6ceeb35c0fb}
\index{aare::FileInterface@{aare::FileInterface}!iread@{iread}}
\index{iread@{iread}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{iread()}{iread()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily std\+::vector$<$ \mbox{\hyperlink{classaare_1_1Frame}{Frame}} $>$ aare\+::\+File\+Interface\+::iread (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{frame\+\_\+number, }\item[{size\+\_\+t}]{n\+\_\+frames }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
read n\+\_\+frames from the file starting at the given frame number
\begin{DoxyParams}{Parameters}
{\em frame\+\_\+number} & frame number to start reading from \\
\hline
{\em n\+\_\+frames} & number of frames to read \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
vector of frames
\end{DoxyReturn}
\Hypertarget{classaare_1_1FileInterface_a99da51594609984efe62bb64a88a3fa6}\label{classaare_1_1FileInterface_a99da51594609984efe62bb64a88a3fa6}
\index{aare::FileInterface@{aare::FileInterface}!pixels@{pixels}}
\index{pixels@{pixels}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{pixels()}{pixels()}}
{\footnotesize\ttfamily virtual size\+\_\+t aare\+::\+File\+Interface\+::pixels (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
get the number of pixels in one frame
\begin{DoxyReturn}{Returns}
number of pixels in one frame
\end{DoxyReturn}
Implemented in \mbox{\hyperlink{classaare_1_1NumpyFile_a2a40aebcb9b25ad36f1ecd75699c47d0}{aare\+::\+Numpy\+File}}, and \mbox{\hyperlink{classaare_1_1RawFile_ab8935d47a8482c36532ff5cdd91c78da}{aare\+::\+Raw\+File}}.
\Hypertarget{classaare_1_1FileInterface_a9cb196de2bee8638578e4ba3ce46532e}\label{classaare_1_1FileInterface_a9cb196de2bee8638578e4ba3ce46532e}
\index{aare::FileInterface@{aare::FileInterface}!read@{read}}
\index{read@{read}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{read()}{read()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{classaare_1_1Frame}{Frame}} aare\+::\+File\+Interface\+::read (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
write a vector of frames to the file
\begin{DoxyParams}{Parameters}
{\em frames} & vector of frames to write \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void
\end{DoxyReturn}
read one frame from the file at the current position \begin{DoxyReturn}{Returns}
\doxylink{classaare_1_1Frame}{Frame}
\end{DoxyReturn}
Implemented in \mbox{\hyperlink{classaare_1_1NumpyFile_a81e1a331ece6681bbfe9437e049d3b3a}{aare\+::\+Numpy\+File}}, and \mbox{\hyperlink{classaare_1_1RawFile_afc6d881b6d2f246f09a595e637afd58c}{aare\+::\+Raw\+File}}.
\Hypertarget{classaare_1_1FileInterface_a1624d72f0feb1c19d507cc91c4cb414a}\label{classaare_1_1FileInterface_a1624d72f0feb1c19d507cc91c4cb414a}
\index{aare::FileInterface@{aare::FileInterface}!read@{read}}
\index{read@{read}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{read()}{read()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily virtual std\+::vector$<$ \mbox{\hyperlink{classaare_1_1Frame}{Frame}} $>$ aare\+::\+File\+Interface\+::read (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{n\+\_\+frames }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
read n\+\_\+frames from the file at the current position
\begin{DoxyParams}{Parameters}
{\em n\+\_\+frames} & number of frames to read \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
vector of frames
\end{DoxyReturn}
Implemented in \mbox{\hyperlink{classaare_1_1NumpyFile_a4cc861469a9dd388a937c318d3b6a13b}{aare\+::\+Numpy\+File}}, and \mbox{\hyperlink{classaare_1_1RawFile_a1adf18bc4fd91c620edfc5c9477ad11f}{aare\+::\+Raw\+File}}.
\Hypertarget{classaare_1_1FileInterface_a4ac0f4e63ccf90af9f0d5b9b44db856c}\label{classaare_1_1FileInterface_a4ac0f4e63ccf90af9f0d5b9b44db856c}
\index{aare::FileInterface@{aare::FileInterface}!read\_into@{read\_into}}
\index{read\_into@{read\_into}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{read\_into()}{read\_into()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily virtual void aare\+::\+File\+Interface\+::read\+\_\+into (\begin{DoxyParamCaption}\item[{std\+::byte \texorpdfstring{$\ast$}{*}}]{image\+\_\+buf }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
read one frame from the file at the current position and store it in the provided buffer
\begin{DoxyParams}{Parameters}
{\em image\+\_\+buf} & buffer to store the frame \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void
\end{DoxyReturn}
Implemented in \mbox{\hyperlink{classaare_1_1NumpyFile_a8b25fc8fa2e0ab9e38b0388504d60962}{aare\+::\+Numpy\+File}}, and \mbox{\hyperlink{classaare_1_1RawFile_afa0228d53554cf5cc192e97474361269}{aare\+::\+Raw\+File}}.
\Hypertarget{classaare_1_1FileInterface_a580c71b3eecf45ce2140cd65103cfd43}\label{classaare_1_1FileInterface_a580c71b3eecf45ce2140cd65103cfd43}
\index{aare::FileInterface@{aare::FileInterface}!read\_into@{read\_into}}
\index{read\_into@{read\_into}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{read\_into()}{read\_into()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily virtual void aare\+::\+File\+Interface\+::read\+\_\+into (\begin{DoxyParamCaption}\item[{std\+::byte \texorpdfstring{$\ast$}{*}}]{image\+\_\+buf, }\item[{size\+\_\+t}]{n\+\_\+frames }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
read n\+\_\+frames from the file at the current position and store them in the provided buffer
\begin{DoxyParams}{Parameters}
{\em image\+\_\+buf} & buffer to store the frames \\
\hline
{\em n\+\_\+frames} & number of frames to read \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void
\end{DoxyReturn}
Implemented in \mbox{\hyperlink{classaare_1_1NumpyFile_a88f0fbdd9cf61f517d925a37854d82f8}{aare\+::\+Numpy\+File}}, and \mbox{\hyperlink{classaare_1_1RawFile_ad8dc6726891e1100035631b7365e8d31}{aare\+::\+Raw\+File}}.
\Hypertarget{classaare_1_1FileInterface_a8a5bc2d9b7b9ec1a9a100bf8a114d909}\label{classaare_1_1FileInterface_a8a5bc2d9b7b9ec1a9a100bf8a114d909}
\index{aare::FileInterface@{aare::FileInterface}!rows@{rows}}
\index{rows@{rows}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{rows()}{rows()}}
{\footnotesize\ttfamily virtual ssize\+\_\+t aare\+::\+File\+Interface\+::rows (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}
get the number of rows in the file
\begin{DoxyReturn}{Returns}
number of rows in the file
\end{DoxyReturn}
Implemented in \mbox{\hyperlink{classaare_1_1NumpyFile_a24c0cad439c52b77886c862b8093b91a}{aare\+::\+Numpy\+File}}, and \mbox{\hyperlink{classaare_1_1RawFile_a432c1b1f9a922e9951aaed0d221f5ea6}{aare\+::\+Raw\+File}}.
\Hypertarget{classaare_1_1FileInterface_a49510fb96eaa245fd5d2be7f25a40b74}\label{classaare_1_1FileInterface_a49510fb96eaa245fd5d2be7f25a40b74}
\index{aare::FileInterface@{aare::FileInterface}!seek@{seek}}
\index{seek@{seek}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{seek()}{seek()}}
{\footnotesize\ttfamily virtual void aare\+::\+File\+Interface\+::seek (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{frame\+\_\+number }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
seek to the given frame number
\begin{DoxyParams}{Parameters}
{\em frame\+\_\+number} & frame number to seek to \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void
\end{DoxyReturn}
Implemented in \mbox{\hyperlink{classaare_1_1NumpyFile_ae4f669f86fb614e446540638d8efe1b8}{aare\+::\+Numpy\+File}}, and \mbox{\hyperlink{classaare_1_1RawFile_a5eef29c0377f5af2e18475e9ae66527c}{aare\+::\+Raw\+File}}.
\Hypertarget{classaare_1_1FileInterface_abd01811dcf904625b4dbd78dd9188de4}\label{classaare_1_1FileInterface_abd01811dcf904625b4dbd78dd9188de4}
\index{aare::FileInterface@{aare::FileInterface}!tell@{tell}}
\index{tell@{tell}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{tell()}{tell()}}
{\footnotesize\ttfamily virtual size\+\_\+t aare\+::\+File\+Interface\+::tell (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
get the current position of the file pointer
\begin{DoxyReturn}{Returns}
current position of the file pointer
\end{DoxyReturn}
Implemented in \mbox{\hyperlink{classaare_1_1NumpyFile_a022af0b9d792abb00a9dc661beb3e9a2}{aare\+::\+Numpy\+File}}, and \mbox{\hyperlink{classaare_1_1RawFile_aa0773872c1e6dd2ab86df2bfff35dee8}{aare\+::\+Raw\+File}}.
\Hypertarget{classaare_1_1FileInterface_ad4391bafd11f77f807114ba5108071d3}\label{classaare_1_1FileInterface_ad4391bafd11f77f807114ba5108071d3}
\index{aare::FileInterface@{aare::FileInterface}!total\_frames@{total\_frames}}
\index{total\_frames@{total\_frames}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{total\_frames()}{total\_frames()}}
{\footnotesize\ttfamily virtual size\+\_\+t aare\+::\+File\+Interface\+::total\+\_\+frames (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}
get the total number of frames in the file
\begin{DoxyReturn}{Returns}
total number of frames in the file
\end{DoxyReturn}
Implemented in \mbox{\hyperlink{classaare_1_1NumpyFile_afec228003225dcc91b16227d24c58d37}{aare\+::\+Numpy\+File}}, and \mbox{\hyperlink{classaare_1_1RawFile_a88a1e49617855a0984acf2bd70b3d209}{aare\+::\+Raw\+File}}.
\Hypertarget{classaare_1_1FileInterface_a5d39033c9d218d53d51413b99bf7d1f4}\label{classaare_1_1FileInterface_a5d39033c9d218d53d51413b99bf7d1f4}
\index{aare::FileInterface@{aare::FileInterface}!write@{write}}
\index{write@{write}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{write()}{write()}}
{\footnotesize\ttfamily virtual void aare\+::\+File\+Interface\+::write (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classaare_1_1Frame}{Frame}} \&}]{frame }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
write a frame to the file
\begin{DoxyParams}{Parameters}
{\em frame} & frame to write \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void
\end{DoxyReturn}
\begin{DoxyExceptions}{Exceptions}
{\em std\+::runtime\+\_\+error} & if the function is not implemented \\
\hline
\end{DoxyExceptions}
Implemented in \mbox{\hyperlink{classaare_1_1NumpyFile_a12b0ddf6334dfab4ac0993cd9c45f738}{aare\+::\+Numpy\+File}}, and \mbox{\hyperlink{classaare_1_1RawFile_ae9312684dfa014dede39e4c81d62abcd}{aare\+::\+Raw\+File}}.
\doxysubsection{Field Documentation}
\Hypertarget{classaare_1_1FileInterface_ab96f5dd0c99fb7b5a527da812368d736}\label{classaare_1_1FileInterface_ab96f5dd0c99fb7b5a527da812368d736}
\index{aare::FileInterface@{aare::FileInterface}!current\_frame@{current\_frame}}
\index{current\_frame@{current\_frame}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{current\_frame}{current\_frame}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+File\+Interface\+::current\+\_\+frame \{\}}
\Hypertarget{classaare_1_1FileInterface_adae2b35fc6a3f185e9eb263c97bc024b}\label{classaare_1_1FileInterface_adae2b35fc6a3f185e9eb263c97bc024b}
\index{aare::FileInterface@{aare::FileInterface}!m\_base\_name@{m\_base\_name}}
\index{m\_base\_name@{m\_base\_name}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{m\_base\_name}{m\_base\_name}}
{\footnotesize\ttfamily std\+::string aare\+::\+File\+Interface\+::m\+\_\+base\+\_\+name}
\Hypertarget{classaare_1_1FileInterface_afdd0a1a75618ad5db2f4794e0900b2f4}\label{classaare_1_1FileInterface_afdd0a1a75618ad5db2f4794e0900b2f4}
\index{aare::FileInterface@{aare::FileInterface}!m\_base\_path@{m\_base\_path}}
\index{m\_base\_path@{m\_base\_path}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{m\_base\_path}{m\_base\_path}}
{\footnotesize\ttfamily std\+::filesystem\+::path aare\+::\+File\+Interface\+::m\+\_\+base\+\_\+path}
\Hypertarget{classaare_1_1FileInterface_a252d27cbbfcdfc528b86925eaac55bb7}\label{classaare_1_1FileInterface_a252d27cbbfcdfc528b86925eaac55bb7}
\index{aare::FileInterface@{aare::FileInterface}!m\_bitdepth@{m\_bitdepth}}
\index{m\_bitdepth@{m\_bitdepth}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{m\_bitdepth}{m\_bitdepth}}
{\footnotesize\ttfamily ssize\+\_\+t aare\+::\+File\+Interface\+::m\+\_\+bitdepth \{\}}
\Hypertarget{classaare_1_1FileInterface_ad4c9991c30a71ba83cbaab283bc756b5}\label{classaare_1_1FileInterface_ad4c9991c30a71ba83cbaab283bc756b5}
\index{aare::FileInterface@{aare::FileInterface}!m\_cols@{m\_cols}}
\index{m\_cols@{m\_cols}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{m\_cols}{m\_cols}}
{\footnotesize\ttfamily ssize\+\_\+t aare\+::\+File\+Interface\+::m\+\_\+cols \{\}}
\Hypertarget{classaare_1_1FileInterface_a5fffaf9a7c8ae2b3a2ebe89b9c94ed34}\label{classaare_1_1FileInterface_a5fffaf9a7c8ae2b3a2ebe89b9c94ed34}
\index{aare::FileInterface@{aare::FileInterface}!m\_ext@{m\_ext}}
\index{m\_ext@{m\_ext}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{m\_ext}{m\_ext}}
{\footnotesize\ttfamily std\+::string aare\+::\+File\+Interface\+::m\+\_\+ext}
\Hypertarget{classaare_1_1FileInterface_a30e926a897b534ab9a327d40594ff191}\label{classaare_1_1FileInterface_a30e926a897b534ab9a327d40594ff191}
\index{aare::FileInterface@{aare::FileInterface}!m\_findex@{m\_findex}}
\index{m\_findex@{m\_findex}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{m\_findex}{m\_findex}}
{\footnotesize\ttfamily int aare\+::\+File\+Interface\+::m\+\_\+findex}
\Hypertarget{classaare_1_1FileInterface_a325f6603f564fb42f8f28f1136b5e329}\label{classaare_1_1FileInterface_a325f6603f564fb42f8f28f1136b5e329}
\index{aare::FileInterface@{aare::FileInterface}!m\_fname@{m\_fname}}
\index{m\_fname@{m\_fname}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{m\_fname}{m\_fname}}
{\footnotesize\ttfamily std\+::filesystem\+::path aare\+::\+File\+Interface\+::m\+\_\+fname}
\Hypertarget{classaare_1_1FileInterface_ab1d0e6de947affd5af9740eb06888fc6}\label{classaare_1_1FileInterface_ab1d0e6de947affd5af9740eb06888fc6}
\index{aare::FileInterface@{aare::FileInterface}!m\_mode@{m\_mode}}
\index{m\_mode@{m\_mode}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{m\_mode}{m\_mode}}
{\footnotesize\ttfamily std\+::string aare\+::\+File\+Interface\+::m\+\_\+mode}
\Hypertarget{classaare_1_1FileInterface_ae29d98625cf56989e2c5237ace0d0f4c}\label{classaare_1_1FileInterface_ae29d98625cf56989e2c5237ace0d0f4c}
\index{aare::FileInterface@{aare::FileInterface}!m\_rows@{m\_rows}}
\index{m\_rows@{m\_rows}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{m\_rows}{m\_rows}}
{\footnotesize\ttfamily ssize\+\_\+t aare\+::\+File\+Interface\+::m\+\_\+rows \{\}}
\Hypertarget{classaare_1_1FileInterface_a91551fada444b231294c095f3f5fb768}\label{classaare_1_1FileInterface_a91551fada444b231294c095f3f5fb768}
\index{aare::FileInterface@{aare::FileInterface}!m\_total\_frames@{m\_total\_frames}}
\index{m\_total\_frames@{m\_total\_frames}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{m\_total\_frames}{m\_total\_frames}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+File\+Interface\+::m\+\_\+total\+\_\+frames \{\}}
\Hypertarget{classaare_1_1FileInterface_a9476a299cea6b4e97605135a28d0cb60}\label{classaare_1_1FileInterface_a9476a299cea6b4e97605135a28d0cb60}
\index{aare::FileInterface@{aare::FileInterface}!m\_type@{m\_type}}
\index{m\_type@{m\_type}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{m\_type}{m\_type}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespaceaare_a5b95afba95553c1e118e1478c69042f7}{Detector\+Type}} aare\+::\+File\+Interface\+::m\+\_\+type}
\Hypertarget{classaare_1_1FileInterface_ab0762d7652c9a4e1afe6dbb7d7325ac9}\label{classaare_1_1FileInterface_ab0762d7652c9a4e1afe6dbb7d7325ac9}
\index{aare::FileInterface@{aare::FileInterface}!max\_frames\_per\_file@{max\_frames\_per\_file}}
\index{max\_frames\_per\_file@{max\_frames\_per\_file}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{max\_frames\_per\_file}{max\_frames\_per\_file}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+File\+Interface\+::max\+\_\+frames\+\_\+per\+\_\+file \{\}}
\Hypertarget{classaare_1_1FileInterface_a44cbe933bbd2cae1f48213121d15bce2}\label{classaare_1_1FileInterface_a44cbe933bbd2cae1f48213121d15bce2}
\index{aare::FileInterface@{aare::FileInterface}!version@{version}}
\index{version@{version}!aare::FileInterface@{aare::FileInterface}}
\doxysubsubsection{\texorpdfstring{version}{version}}
{\footnotesize\ttfamily std\+::string aare\+::\+File\+Interface\+::version}
The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item
file\+\_\+io/include/aare/file\+\_\+io/\mbox{\hyperlink{FileInterface_8hpp}{File\+Interface.\+hpp}}\end{DoxyCompactItemize}

View File

@ -0,0 +1,67 @@
\doxysection{aare.\+File.\+File Class Reference}
\hypertarget{classaare_1_1File_1_1File}{}\label{classaare_1_1File_1_1File}\index{aare.File.File@{aare.File.File}}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{classaare_1_1File_1_1File_aa85e1dc7ac3997f3162212c449f70e0e}{\+\_\+\+\_\+init\+\_\+\+\_\+}} (self, \mbox{\hyperlink{classaare_1_1File_1_1File_a3f3a96562f0380956a9657544d577120}{path}})
\item
Any \mbox{\hyperlink{classaare_1_1File_1_1File_a9c61448799d43f31b8aa69cadb4ed810}{\+\_\+\+\_\+getattribute\+\_\+\+\_\+}} (self, str \+\_\+\+\_\+name)
\end{DoxyCompactItemize}
\doxysubsubsection*{Data Fields}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{classaare_1_1File_1_1File_a3f3a96562f0380956a9657544d577120}{path}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{classaare_1_1File_1_1File_ae419f2d8092730d05965c3492ea77806}{\+\_\+file}}
\end{DoxyCompactItemize}
\doxysubsection{Detailed Description}
\begin{DoxyVerb}File class. uses proxy pattern to wrap around the pybinding class
abstracts the python binding class that is requires type and detector information
(e.g. _FileHandler_Jungfrau_16)
\end{DoxyVerb}
\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classaare_1_1File_1_1File_aa85e1dc7ac3997f3162212c449f70e0e}\label{classaare_1_1File_1_1File_aa85e1dc7ac3997f3162212c449f70e0e}
\index{aare.File.File@{aare.File.File}!\_\_init\_\_@{\_\_init\_\_}}
\index{\_\_init\_\_@{\_\_init\_\_}!aare.File.File@{aare.File.File}}
\doxysubsubsection{\texorpdfstring{\_\_init\_\_()}{\_\_init\_\_()}}
{\footnotesize\ttfamily aare.\+File.\+File.\+\_\+\+\_\+init\+\_\+\+\_\+ (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{path }\end{DoxyParamCaption})}
\begin{DoxyVerb}opens the master file and checks the dynamic range and detector\end{DoxyVerb}
\doxysubsection{Member Function Documentation}
\Hypertarget{classaare_1_1File_1_1File_a9c61448799d43f31b8aa69cadb4ed810}\label{classaare_1_1File_1_1File_a9c61448799d43f31b8aa69cadb4ed810}
\index{aare.File.File@{aare.File.File}!\_\_getattribute\_\_@{\_\_getattribute\_\_}}
\index{\_\_getattribute\_\_@{\_\_getattribute\_\_}!aare.File.File@{aare.File.File}}
\doxysubsubsection{\texorpdfstring{\_\_getattribute\_\_()}{\_\_getattribute\_\_()}}
{\footnotesize\ttfamily Any aare.\+File.\+File.\+\_\+\+\_\+getattribute\+\_\+\+\_\+ (\begin{DoxyParamCaption}\item[{}]{self, }\item[{str}]{\+\_\+\+\_\+name }\end{DoxyParamCaption})}
\begin{DoxyVerb}Proxy pattern to call the methods of the _file
\end{DoxyVerb}
\doxysubsection{Field Documentation}
\Hypertarget{classaare_1_1File_1_1File_ae419f2d8092730d05965c3492ea77806}\label{classaare_1_1File_1_1File_ae419f2d8092730d05965c3492ea77806}
\index{aare.File.File@{aare.File.File}!\_file@{\_file}}
\index{\_file@{\_file}!aare.File.File@{aare.File.File}}
\doxysubsubsection{\texorpdfstring{\_file}{\_file}}
{\footnotesize\ttfamily aare.\+File.\+File.\+\_\+file\hspace{0.3cm}{\ttfamily [protected]}}
\Hypertarget{classaare_1_1File_1_1File_a3f3a96562f0380956a9657544d577120}\label{classaare_1_1File_1_1File_a3f3a96562f0380956a9657544d577120}
\index{aare.File.File@{aare.File.File}!path@{path}}
\index{path@{path}!aare.File.File@{aare.File.File}}
\doxysubsubsection{\texorpdfstring{path}{path}}
{\footnotesize\ttfamily aare.\+File.\+File.\+path}
The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item
python/aare/\mbox{\hyperlink{File_8py}{File.\+py}}\end{DoxyCompactItemize}

View File

@ -0,0 +1,182 @@
\doxysection{aare\+::Frame Class Reference}
\hypertarget{classaare_1_1Frame}{}\label{classaare_1_1Frame}\index{aare::Frame@{aare::Frame}}
{\ttfamily \#include $<$Frame.\+hpp$>$}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{classaare_1_1Frame_a0e8319c5863605265fb8a66653aae382}{Frame}} (ssize\+\_\+t rows, ssize\+\_\+t cols, ssize\+\_\+t m\+\_\+bitdepth)
\item
\mbox{\hyperlink{classaare_1_1Frame_a4f7fc9193a81c29613f05da769363246}{Frame}} (std\+::byte \texorpdfstring{$\ast$}{*}fp, ssize\+\_\+t rows, ssize\+\_\+t cols, ssize\+\_\+t m\+\_\+bitdepth)
\item
std\+::byte \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1Frame_a6ace52fdcdf3d87921c1a56ca1781f32}{get}} (int row, int col)
\item
{\footnotesize template$<$typename T $>$ }\\void \mbox{\hyperlink{classaare_1_1Frame_addd6b73bbb426aafe834e261360eb2d8}{set}} (int row, int col, T data)
\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1Frame_a5cc556f6b13efb17b3635adb436d816c}{rows}} () const
\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1Frame_a658566623e47c1fa88a08f5e8fe1957f}{cols}} () const
\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1Frame_ae1fbb96ec971ddcd76ecf3cd91dc5890}{bitdepth}} () const
\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1Frame_a094683d38cac2461c18ed7cc776221c2}{size}} () const
\item
std\+::byte \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1Frame_a635a1ff8db457c20fcbc2b2b5601bc1d}{data}} () const
\item
\mbox{\hyperlink{classaare_1_1Frame}{Frame}} \& \mbox{\hyperlink{classaare_1_1Frame_ad153902f7332be45aa5441196c3aad64}{operator=}} (\mbox{\hyperlink{classaare_1_1Frame}{Frame}} \&other)
\item
\mbox{\hyperlink{classaare_1_1Frame_a2986002a7d6c161dcc592cea1162a5bb}{Frame}} (\mbox{\hyperlink{classaare_1_1Frame}{Frame}} \&\&other)
\item
\mbox{\hyperlink{classaare_1_1Frame_a82f7c09b244a295e2cc13e199a198448}{Frame}} (const \mbox{\hyperlink{classaare_1_1Frame}{Frame}} \&other)
\item
{\footnotesize template$<$typename T $>$ }\\\mbox{\hyperlink{classaare_1_1NDView}{NDView}}$<$ T $>$ \mbox{\hyperlink{classaare_1_1Frame_af6fbc8eaa1f00062431edf118caebe0f}{view}} ()
\item
{\footnotesize template$<$typename T $>$ }\\\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T $>$ \mbox{\hyperlink{classaare_1_1Frame_aac3f666d8f5fdb30861459c2f639d40a}{image}} ()
\item
\mbox{\hyperlink{classaare_1_1Frame_a6bd29a7d2219e3dde03d4c9bd4298c60}{\texorpdfstring{$\sim$}{\string~}\+Frame}} ()
\end{DoxyCompactItemize}
\doxysubsubsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1Frame_a21c0feaf422c4ffdd479328f2fdaefec}{m\+\_\+rows}}
\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1Frame_a3edb3a0e0ed32c3837ad5ad95e537aed}{m\+\_\+cols}}
\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1Frame_a17ccc92b87bc2b4c3d3a500759269cab}{m\+\_\+bitdepth}}
\item
std\+::byte \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1Frame_afa6172a742a35734ad5148786697d197}{m\+\_\+data}}
\end{DoxyCompactItemize}
\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classaare_1_1Frame_a0e8319c5863605265fb8a66653aae382}\label{classaare_1_1Frame_a0e8319c5863605265fb8a66653aae382}
\index{aare::Frame@{aare::Frame}!Frame@{Frame}}
\index{Frame@{Frame}!aare::Frame@{aare::Frame}}
\doxysubsubsection{\texorpdfstring{Frame()}{Frame()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily \mbox{\hyperlink{classaare_1_1Frame_1_1Frame}{aare\+::\+Frame\+::\+Frame}} (\begin{DoxyParamCaption}\item[{ssize\+\_\+t}]{rows, }\item[{ssize\+\_\+t}]{cols, }\item[{ssize\+\_\+t}]{m\+\_\+bitdepth }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1Frame_a4f7fc9193a81c29613f05da769363246}\label{classaare_1_1Frame_a4f7fc9193a81c29613f05da769363246}
\index{aare::Frame@{aare::Frame}!Frame@{Frame}}
\index{Frame@{Frame}!aare::Frame@{aare::Frame}}
\doxysubsubsection{\texorpdfstring{Frame()}{Frame()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily \mbox{\hyperlink{classaare_1_1Frame_1_1Frame}{aare\+::\+Frame\+::\+Frame}} (\begin{DoxyParamCaption}\item[{std\+::byte \texorpdfstring{$\ast$}{*}}]{fp, }\item[{ssize\+\_\+t}]{rows, }\item[{ssize\+\_\+t}]{cols, }\item[{ssize\+\_\+t}]{m\+\_\+bitdepth }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1Frame_a2986002a7d6c161dcc592cea1162a5bb}\label{classaare_1_1Frame_a2986002a7d6c161dcc592cea1162a5bb}
\index{aare::Frame@{aare::Frame}!Frame@{Frame}}
\index{Frame@{Frame}!aare::Frame@{aare::Frame}}
\doxysubsubsection{\texorpdfstring{Frame()}{Frame()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily \mbox{\hyperlink{classaare_1_1Frame_1_1Frame}{aare\+::\+Frame\+::\+Frame}} (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classaare_1_1Frame}{Frame}} \&\&}]{other }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1Frame_a82f7c09b244a295e2cc13e199a198448}\label{classaare_1_1Frame_a82f7c09b244a295e2cc13e199a198448}
\index{aare::Frame@{aare::Frame}!Frame@{Frame}}
\index{Frame@{Frame}!aare::Frame@{aare::Frame}}
\doxysubsubsection{\texorpdfstring{Frame()}{Frame()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily \mbox{\hyperlink{classaare_1_1Frame_1_1Frame}{aare\+::\+Frame\+::\+Frame}} (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classaare_1_1Frame}{Frame}} \&}]{other }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1Frame_a6bd29a7d2219e3dde03d4c9bd4298c60}\label{classaare_1_1Frame_a6bd29a7d2219e3dde03d4c9bd4298c60}
\index{aare::Frame@{aare::Frame}!````~Frame@{\texorpdfstring{$\sim$}{\string~}Frame}}
\index{````~Frame@{\texorpdfstring{$\sim$}{\string~}Frame}!aare::Frame@{aare::Frame}}
\doxysubsubsection{\texorpdfstring{\texorpdfstring{$\sim$}{\string~}Frame()}{\string~Frame()}}
{\footnotesize\ttfamily aare\+::\+Frame\+::\texorpdfstring{$\sim$}{\string~}\+Frame (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\doxysubsection{Member Function Documentation}
\Hypertarget{classaare_1_1Frame_ae1fbb96ec971ddcd76ecf3cd91dc5890}\label{classaare_1_1Frame_ae1fbb96ec971ddcd76ecf3cd91dc5890}
\index{aare::Frame@{aare::Frame}!bitdepth@{bitdepth}}
\index{bitdepth@{bitdepth}!aare::Frame@{aare::Frame}}
\doxysubsubsection{\texorpdfstring{bitdepth()}{bitdepth()}}
{\footnotesize\ttfamily ssize\+\_\+t aare\+::\+Frame\+::bitdepth (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1Frame_a658566623e47c1fa88a08f5e8fe1957f}\label{classaare_1_1Frame_a658566623e47c1fa88a08f5e8fe1957f}
\index{aare::Frame@{aare::Frame}!cols@{cols}}
\index{cols@{cols}!aare::Frame@{aare::Frame}}
\doxysubsubsection{\texorpdfstring{cols()}{cols()}}
{\footnotesize\ttfamily ssize\+\_\+t aare\+::\+Frame\+::cols (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1Frame_a635a1ff8db457c20fcbc2b2b5601bc1d}\label{classaare_1_1Frame_a635a1ff8db457c20fcbc2b2b5601bc1d}
\index{aare::Frame@{aare::Frame}!data@{data}}
\index{data@{data}!aare::Frame@{aare::Frame}}
\doxysubsubsection{\texorpdfstring{data()}{data()}}
{\footnotesize\ttfamily std\+::byte \texorpdfstring{$\ast$}{*} aare\+::\+Frame\+::data (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1Frame_a6ace52fdcdf3d87921c1a56ca1781f32}\label{classaare_1_1Frame_a6ace52fdcdf3d87921c1a56ca1781f32}
\index{aare::Frame@{aare::Frame}!get@{get}}
\index{get@{get}!aare::Frame@{aare::Frame}}
\doxysubsubsection{\texorpdfstring{get()}{get()}}
{\footnotesize\ttfamily std\+::byte \texorpdfstring{$\ast$}{*} aare\+::\+Frame\+::get (\begin{DoxyParamCaption}\item[{int}]{row, }\item[{int}]{col }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1Frame_aac3f666d8f5fdb30861459c2f639d40a}\label{classaare_1_1Frame_aac3f666d8f5fdb30861459c2f639d40a}
\index{aare::Frame@{aare::Frame}!image@{image}}
\index{image@{image}!aare::Frame@{aare::Frame}}
\doxysubsubsection{\texorpdfstring{image()}{image()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T $>$ aare\+::\+Frame\+::image (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1Frame_ad153902f7332be45aa5441196c3aad64}\label{classaare_1_1Frame_ad153902f7332be45aa5441196c3aad64}
\index{aare::Frame@{aare::Frame}!operator=@{operator=}}
\index{operator=@{operator=}!aare::Frame@{aare::Frame}}
\doxysubsubsection{\texorpdfstring{operator=()}{operator=()}}
{\footnotesize\ttfamily \mbox{\hyperlink{classaare_1_1Frame}{Frame}} \& aare\+::\+Frame\+::operator= (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classaare_1_1Frame}{Frame}} \&}]{other }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1Frame_a5cc556f6b13efb17b3635adb436d816c}\label{classaare_1_1Frame_a5cc556f6b13efb17b3635adb436d816c}
\index{aare::Frame@{aare::Frame}!rows@{rows}}
\index{rows@{rows}!aare::Frame@{aare::Frame}}
\doxysubsubsection{\texorpdfstring{rows()}{rows()}}
{\footnotesize\ttfamily ssize\+\_\+t aare\+::\+Frame\+::rows (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1Frame_addd6b73bbb426aafe834e261360eb2d8}\label{classaare_1_1Frame_addd6b73bbb426aafe834e261360eb2d8}
\index{aare::Frame@{aare::Frame}!set@{set}}
\index{set@{set}!aare::Frame@{aare::Frame}}
\doxysubsubsection{\texorpdfstring{set()}{set()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
void aare\+::\+Frame\+::set (\begin{DoxyParamCaption}\item[{int}]{row, }\item[{int}]{col, }\item[{T}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1Frame_a094683d38cac2461c18ed7cc776221c2}\label{classaare_1_1Frame_a094683d38cac2461c18ed7cc776221c2}
\index{aare::Frame@{aare::Frame}!size@{size}}
\index{size@{size}!aare::Frame@{aare::Frame}}
\doxysubsubsection{\texorpdfstring{size()}{size()}}
{\footnotesize\ttfamily ssize\+\_\+t aare\+::\+Frame\+::size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1Frame_af6fbc8eaa1f00062431edf118caebe0f}\label{classaare_1_1Frame_af6fbc8eaa1f00062431edf118caebe0f}
\index{aare::Frame@{aare::Frame}!view@{view}}
\index{view@{view}!aare::Frame@{aare::Frame}}
\doxysubsubsection{\texorpdfstring{view()}{view()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
\mbox{\hyperlink{classaare_1_1NDView}{NDView}}$<$ T $>$ aare\+::\+Frame\+::view (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\doxysubsection{Field Documentation}
\Hypertarget{classaare_1_1Frame_a17ccc92b87bc2b4c3d3a500759269cab}\label{classaare_1_1Frame_a17ccc92b87bc2b4c3d3a500759269cab}
\index{aare::Frame@{aare::Frame}!m\_bitdepth@{m\_bitdepth}}
\index{m\_bitdepth@{m\_bitdepth}!aare::Frame@{aare::Frame}}
\doxysubsubsection{\texorpdfstring{m\_bitdepth}{m\_bitdepth}}
{\footnotesize\ttfamily ssize\+\_\+t aare\+::\+Frame\+::m\+\_\+bitdepth\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1Frame_a3edb3a0e0ed32c3837ad5ad95e537aed}\label{classaare_1_1Frame_a3edb3a0e0ed32c3837ad5ad95e537aed}
\index{aare::Frame@{aare::Frame}!m\_cols@{m\_cols}}
\index{m\_cols@{m\_cols}!aare::Frame@{aare::Frame}}
\doxysubsubsection{\texorpdfstring{m\_cols}{m\_cols}}
{\footnotesize\ttfamily ssize\+\_\+t aare\+::\+Frame\+::m\+\_\+cols\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1Frame_afa6172a742a35734ad5148786697d197}\label{classaare_1_1Frame_afa6172a742a35734ad5148786697d197}
\index{aare::Frame@{aare::Frame}!m\_data@{m\_data}}
\index{m\_data@{m\_data}!aare::Frame@{aare::Frame}}
\doxysubsubsection{\texorpdfstring{m\_data}{m\_data}}
{\footnotesize\ttfamily std\+::byte\texorpdfstring{$\ast$}{*} aare\+::\+Frame\+::m\+\_\+data\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1Frame_a21c0feaf422c4ffdd479328f2fdaefec}\label{classaare_1_1Frame_a21c0feaf422c4ffdd479328f2fdaefec}
\index{aare::Frame@{aare::Frame}!m\_rows@{m\_rows}}
\index{m\_rows@{m\_rows}!aare::Frame@{aare::Frame}}
\doxysubsubsection{\texorpdfstring{m\_rows}{m\_rows}}
{\footnotesize\ttfamily ssize\+\_\+t aare\+::\+Frame\+::m\+\_\+rows\hspace{0.3cm}{\ttfamily [private]}}
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item
core/include/aare/core/\mbox{\hyperlink{Frame_8hpp}{Frame.\+hpp}}\item
core/src/\mbox{\hyperlink{Frame_8cpp}{Frame.\+cpp}}\end{DoxyCompactItemize}

View File

@ -0,0 +1,54 @@
\doxysection{aare.\+Frame.\+Frame Class Reference}
\hypertarget{classaare_1_1Frame_1_1Frame}{}\label{classaare_1_1Frame_1_1Frame}\index{aare.Frame.Frame@{aare.Frame.Frame}}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{classaare_1_1Frame_1_1Frame_a858e2b6682c920029d30c18ab966f1e5}{\+\_\+\+\_\+init\+\_\+\+\_\+}} (self, frame\+Impl)
\item
Any \mbox{\hyperlink{classaare_1_1Frame_1_1Frame_a18a261b317ce022ec705de3f20a7cb1a}{\+\_\+\+\_\+getattribute\+\_\+\+\_\+}} (self, str \+\_\+\+\_\+name)
\end{DoxyCompactItemize}
\doxysubsubsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{classaare_1_1Frame_1_1Frame_ac3fc00fff0659d2362358fc6d31f1920}{\+\_\+frame\+Impl}}
\end{DoxyCompactItemize}
\doxysubsection{Detailed Description}
\begin{DoxyVerb}Frame class. uses proxy pattern to wrap around the pybinding class
the intention behind it is to only use one class for frames in python (not Frame_8, Frame_16, etc)
\end{DoxyVerb}
\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classaare_1_1Frame_1_1Frame_a858e2b6682c920029d30c18ab966f1e5}\label{classaare_1_1Frame_1_1Frame_a858e2b6682c920029d30c18ab966f1e5}
\index{aare.Frame.Frame@{aare.Frame.Frame}!\_\_init\_\_@{\_\_init\_\_}}
\index{\_\_init\_\_@{\_\_init\_\_}!aare.Frame.Frame@{aare.Frame.Frame}}
\doxysubsubsection{\texorpdfstring{\_\_init\_\_()}{\_\_init\_\_()}}
{\footnotesize\ttfamily aare.\+Frame.\+Frame.\+\_\+\+\_\+init\+\_\+\+\_\+ (\begin{DoxyParamCaption}\item[{}]{self, }\item[{}]{frame\+Impl }\end{DoxyParamCaption})}
\doxysubsection{Member Function Documentation}
\Hypertarget{classaare_1_1Frame_1_1Frame_a18a261b317ce022ec705de3f20a7cb1a}\label{classaare_1_1Frame_1_1Frame_a18a261b317ce022ec705de3f20a7cb1a}
\index{aare.Frame.Frame@{aare.Frame.Frame}!\_\_getattribute\_\_@{\_\_getattribute\_\_}}
\index{\_\_getattribute\_\_@{\_\_getattribute\_\_}!aare.Frame.Frame@{aare.Frame.Frame}}
\doxysubsubsection{\texorpdfstring{\_\_getattribute\_\_()}{\_\_getattribute\_\_()}}
{\footnotesize\ttfamily Any aare.\+Frame.\+Frame.\+\_\+\+\_\+getattribute\+\_\+\+\_\+ (\begin{DoxyParamCaption}\item[{}]{self, }\item[{str}]{\+\_\+\+\_\+name }\end{DoxyParamCaption})}
\begin{DoxyVerb}Proxy pattern to call the methods of the frameImpl
\end{DoxyVerb}
\doxysubsection{Field Documentation}
\Hypertarget{classaare_1_1Frame_1_1Frame_ac3fc00fff0659d2362358fc6d31f1920}\label{classaare_1_1Frame_1_1Frame_ac3fc00fff0659d2362358fc6d31f1920}
\index{aare.Frame.Frame@{aare.Frame.Frame}!\_frameImpl@{\_frameImpl}}
\index{\_frameImpl@{\_frameImpl}!aare.Frame.Frame@{aare.Frame.Frame}}
\doxysubsubsection{\texorpdfstring{\_frameImpl}{\_frameImpl}}
{\footnotesize\ttfamily aare.\+Frame.\+Frame.\+\_\+frame\+Impl\hspace{0.3cm}{\ttfamily [protected]}}
The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item
python/aare/\mbox{\hyperlink{Frame_8py}{Frame.\+py}}\end{DoxyCompactItemize}

View File

@ -0,0 +1,549 @@
\doxysection{aare\+::NDArray\texorpdfstring{$<$}{<} T, Ndim \texorpdfstring{$>$}{>} Class Template Reference}
\hypertarget{classaare_1_1NDArray}{}\label{classaare_1_1NDArray}\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
{\ttfamily \#include $<$NDArray.\+hpp$>$}
\doxysubsubsection*{Public Types}
\begin{DoxyCompactItemize}
\item
using \mbox{\hyperlink{classaare_1_1NDArray_a0574380e6b0f3d77a8364c942123c24a}{value\+\_\+type}} = T
\end{DoxyCompactItemize}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{classaare_1_1NDArray_a41d9f4d28c02f18b60a1fa297249559d}{NDArray}} ()
\item
\mbox{\hyperlink{classaare_1_1NDArray_a2e965c4b7501e355b3cbd2bd3b33f32f}{NDArray}} (std\+::array$<$ ssize\+\_\+t, Ndim $>$ \mbox{\hyperlink{classaare_1_1NDArray_a6dfa3b12cb66147effe2a42435dd346d}{shape}})
\item
\mbox{\hyperlink{classaare_1_1NDArray_a5f2e568908401ef19e82f63379e80d97}{NDArray}} (std\+::array$<$ ssize\+\_\+t, Ndim $>$ \mbox{\hyperlink{classaare_1_1NDArray_a6dfa3b12cb66147effe2a42435dd346d}{shape}}, T \mbox{\hyperlink{classaare_1_1NDArray_ad8f804893325ae1553d33accec070e92}{value}})
\item
\mbox{\hyperlink{classaare_1_1NDArray_a04cbc1cc0ba2aaac434b43674b0f820e}{NDArray}} (\mbox{\hyperlink{classaare_1_1NDView}{NDView}}$<$ T, Ndim $>$ \mbox{\hyperlink{classaare_1_1NDArray_ac5ffe1a4b9dde8f2ec6dba021951c922}{span}})
\item
\mbox{\hyperlink{classaare_1_1NDArray_a804d1971ae1fc08375ec4bad36a42fe7}{NDArray}} (\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \&\&other)
\item
\mbox{\hyperlink{classaare_1_1NDArray_a1485287520ba5919ebb4fa2bc84b3a67}{NDArray}} (const \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \&other)
\item
\mbox{\hyperlink{classaare_1_1NDArray_a702d2a7566dd9796eb891d043159fd41}{\texorpdfstring{$\sim$}{\string~}\+NDArray}} ()
\item
auto \mbox{\hyperlink{classaare_1_1NDArray_a3241eee2a316d350390c3b9a2e3ba091}{begin}} ()
\item
auto \mbox{\hyperlink{classaare_1_1NDArray_aeac1405793b07e8433b53f1e04740ec8}{end}} ()
\item
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \& \mbox{\hyperlink{classaare_1_1NDArray_a06c658e8a6490c74fb9878b14a4faf1d}{operator=}} (\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \&\&other)
\item
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \& \mbox{\hyperlink{classaare_1_1NDArray_a713fff54cdec54f27ec92c1f317a46c7}{operator=}} (const \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \&other)
\item
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \mbox{\hyperlink{classaare_1_1NDArray_afcc5f259b1bd0cadcadbf2b52795babc}{operator+}} (const \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \&other)
\item
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \& \mbox{\hyperlink{classaare_1_1NDArray_a27eb7b3599cb62297832d4a3d8022f32}{operator+=}} (const \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \&other)
\item
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \mbox{\hyperlink{classaare_1_1NDArray_aac96eb2ce76cd90d44eb3b19408d2434}{operator-\/}} (const \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \&other)
\item
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \& \mbox{\hyperlink{classaare_1_1NDArray_aad602fc6734cb85112f2a8edf91d1c70}{operator-\/=}} (const \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \&other)
\item
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \mbox{\hyperlink{classaare_1_1NDArray_ae67f899470bc9f8c8df8b54d544f9171}{operator\texorpdfstring{$\ast$}{*}}} (const \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \&other)
\item
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \& \mbox{\hyperlink{classaare_1_1NDArray_a54edf15f9669a1e4601fa4aa936a2d92}{operator\texorpdfstring{$\ast$}{*}=}} (const \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \&other)
\item
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \mbox{\hyperlink{classaare_1_1NDArray_a59dc47216852c36191e0cecc869131e1}{operator/}} (const \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \&other)
\item
{\footnotesize template$<$typename V $>$ }\\\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \& \mbox{\hyperlink{classaare_1_1NDArray_a2a6260113ca73c86d37d0444b5148c49}{operator/=}} (const \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ V, Ndim $>$ \&other)
\item
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ bool, Ndim $>$ \mbox{\hyperlink{classaare_1_1NDArray_a569e8de85121a4a6315c556870b48931}{operator$>$}} (const \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \&other)
\item
bool \mbox{\hyperlink{classaare_1_1NDArray_ad20b30f1abea56b82196f030b1492027}{operator==}} (const \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \&other) const
\item
bool \mbox{\hyperlink{classaare_1_1NDArray_a90408ebad72f63d0288b869b3e32e50b}{operator!=}} (const \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \&other) const
\item
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \& \mbox{\hyperlink{classaare_1_1NDArray_a5f249dd42235efcf858caca096300d02}{operator=}} (const T \&)
\item
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \& \mbox{\hyperlink{classaare_1_1NDArray_aa15fe27ef06f8a230345161990ce8381}{operator+=}} (const T \&)
\item
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \mbox{\hyperlink{classaare_1_1NDArray_a86042f9185412e1d68422765d56ce769}{operator+}} (const T \&)
\item
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \& \mbox{\hyperlink{classaare_1_1NDArray_ad65261a50424d112852f046426c66267}{operator-\/=}} (const T \&)
\item
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \mbox{\hyperlink{classaare_1_1NDArray_ae8fcc0b6cb14d353286ffdf2c914200f}{operator-\/}} (const T \&)
\item
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \& \mbox{\hyperlink{classaare_1_1NDArray_afe950d8cf1bdc97d450f912d1d903c09}{operator\texorpdfstring{$\ast$}{*}=}} (const T \&)
\item
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \mbox{\hyperlink{classaare_1_1NDArray_a2d6d56700f622c3175b9b82f043c3b94}{operator\texorpdfstring{$\ast$}{*}}} (const T \&)
\item
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \& \mbox{\hyperlink{classaare_1_1NDArray_a8658f5217fcd0ac6f6900b4f013aed16}{operator/=}} (const T \&)
\item
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \mbox{\hyperlink{classaare_1_1NDArray_a6a69a2fce0631e9ef9b1587e75cf1568}{operator/}} (const T \&)
\item
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \& \mbox{\hyperlink{classaare_1_1NDArray_ab01fdad1a92b1629996f15ff0cf79ac3}{operator\&=}} (const T \&)
\item
void \mbox{\hyperlink{classaare_1_1NDArray_af36c03e7a91fe932d60739d5ea30f1f2}{sqrt}} ()
\item
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \& \mbox{\hyperlink{classaare_1_1NDArray_a040dd143e6dc040703b33d91ba929271}{operator++}} ()
\item
{\footnotesize template$<$typename... Ix$>$ }\\std\+::enable\+\_\+if$<$ sizeof...(Ix)==Ndim, T \& $>$\+::type \mbox{\hyperlink{classaare_1_1NDArray_aea34e489c4721228aeece6dcdd9133dd}{operator()}} (Ix... index)
\item
{\footnotesize template$<$typename... Ix$>$ }\\std\+::enable\+\_\+if$<$ sizeof...(Ix)==Ndim, T \& $>$\+::type \mbox{\hyperlink{classaare_1_1NDArray_ab6938304bf9f74ee4d04451931a53de0}{operator()}} (Ix... index) const
\item
{\footnotesize template$<$typename... Ix$>$ }\\std\+::enable\+\_\+if$<$ sizeof...(Ix)==Ndim, T $>$\+::type \mbox{\hyperlink{classaare_1_1NDArray_ad8f804893325ae1553d33accec070e92}{value}} (Ix... index)
\item
T \& \mbox{\hyperlink{classaare_1_1NDArray_a8d75984e7f384c4c9d25bc04c6c14983}{operator()}} (int i)
\item
const T \& \mbox{\hyperlink{classaare_1_1NDArray_adf800cbb478a4f24ae24026034bafd43}{operator()}} (int i) const
\item
T \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1NDArray_a77b3ca3e85d5a3e394248fdaab01c5a5}{data}} ()
\item
std\+::byte \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1NDArray_af289b6a162612ed74ad2fd0606a479a9}{buffer}} ()
\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1NDArray_a86632c60ddbdf7af8cfd3939df472127}{size}} () const
\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1NDArray_ab1f9c68ddce8440f1fc220cbc1d865fc}{total\+\_\+bytes}} () const
\item
std\+::array$<$ ssize\+\_\+t, Ndim $>$ \mbox{\hyperlink{classaare_1_1NDArray_a6dfa3b12cb66147effe2a42435dd346d}{shape}} () const noexcept
\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1NDArray_af765f5cb619ed79d44a000572b265589}{shape}} (ssize\+\_\+t i) const noexcept
\item
std\+::array$<$ ssize\+\_\+t, Ndim $>$ \mbox{\hyperlink{classaare_1_1NDArray_a07369722ffea061203bfbfd4479c05e9}{strides}} () const noexcept
\item
std\+::array$<$ ssize\+\_\+t, Ndim $>$ \mbox{\hyperlink{classaare_1_1NDArray_a2ab19fc488009d3fce95fcf5bff6b10a}{byte\+\_\+strides}} () const noexcept
\item
\mbox{\hyperlink{classaare_1_1NDView}{NDView}}$<$ T, Ndim $>$ \mbox{\hyperlink{classaare_1_1NDArray_ac5ffe1a4b9dde8f2ec6dba021951c922}{span}} () const
\item
void \mbox{\hyperlink{classaare_1_1NDArray_ad49628442cc054b7c0b56b3104d9ef20}{Print}} ()
\item
void \mbox{\hyperlink{classaare_1_1NDArray_a6084445eed769b89387b4aca53306513}{Print\+\_\+all}} ()
\item
void \mbox{\hyperlink{classaare_1_1NDArray_a5dec49e82ec3abfa28bddfc328b1c4e9}{Print\+\_\+some}} ()
\item
void \mbox{\hyperlink{classaare_1_1NDArray_a98d5740082a649135587590dbbaa42e2}{reset}} ()
\end{DoxyCompactItemize}
\doxysubsubsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item
std\+::array$<$ ssize\+\_\+t, Ndim $>$ \mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\+\_\+}}
\item
std\+::array$<$ ssize\+\_\+t, Ndim $>$ \mbox{\hyperlink{classaare_1_1NDArray_a5275d4999e7422458d472620f792573a}{strides\+\_\+}}
\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\+\_\+}}
\item
T \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\+\_\+}}
\end{DoxyCompactItemize}
\doxysubsection{Member Typedef Documentation}
\Hypertarget{classaare_1_1NDArray_a0574380e6b0f3d77a8364c942123c24a}\label{classaare_1_1NDArray_a0574380e6b0f3d77a8364c942123c24a}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!value\_type@{value\_type}}
\index{value\_type@{value\_type}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{value\_type}{value\_type}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
using \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::value\+\_\+type = T}
\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classaare_1_1NDArray_a41d9f4d28c02f18b60a1fa297249559d}\label{classaare_1_1NDArray_a41d9f4d28c02f18b60a1fa297249559d}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!NDArray@{NDArray}}
\index{NDArray@{NDArray}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{NDArray()}{NDArray()}\hspace{0.1cm}{\footnotesize\ttfamily [1/6]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::\+NDArray (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDArray_a2e965c4b7501e355b3cbd2bd3b33f32f}\label{classaare_1_1NDArray_a2e965c4b7501e355b3cbd2bd3b33f32f}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!NDArray@{NDArray}}
\index{NDArray@{NDArray}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{NDArray()}{NDArray()}\hspace{0.1cm}{\footnotesize\ttfamily [2/6]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::\+NDArray (\begin{DoxyParamCaption}\item[{std\+::array$<$ ssize\+\_\+t, Ndim $>$}]{shape }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [explicit]}}
\Hypertarget{classaare_1_1NDArray_a5f2e568908401ef19e82f63379e80d97}\label{classaare_1_1NDArray_a5f2e568908401ef19e82f63379e80d97}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!NDArray@{NDArray}}
\index{NDArray@{NDArray}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{NDArray()}{NDArray()}\hspace{0.1cm}{\footnotesize\ttfamily [3/6]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::\+NDArray (\begin{DoxyParamCaption}\item[{std\+::array$<$ ssize\+\_\+t, Ndim $>$}]{shape, }\item[{T}]{value }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDArray_a04cbc1cc0ba2aaac434b43674b0f820e}\label{classaare_1_1NDArray_a04cbc1cc0ba2aaac434b43674b0f820e}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!NDArray@{NDArray}}
\index{NDArray@{NDArray}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{NDArray()}{NDArray()}\hspace{0.1cm}{\footnotesize\ttfamily [4/6]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::\+NDArray (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classaare_1_1NDView}{NDView}}$<$ T, Ndim $>$}]{span }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDArray_a804d1971ae1fc08375ec4bad36a42fe7}\label{classaare_1_1NDArray_a804d1971ae1fc08375ec4bad36a42fe7}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!NDArray@{NDArray}}
\index{NDArray@{NDArray}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{NDArray()}{NDArray()}\hspace{0.1cm}{\footnotesize\ttfamily [5/6]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::\+NDArray (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \&\&}]{other }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDArray_a1485287520ba5919ebb4fa2bc84b3a67}\label{classaare_1_1NDArray_a1485287520ba5919ebb4fa2bc84b3a67}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!NDArray@{NDArray}}
\index{NDArray@{NDArray}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{NDArray()}{NDArray()}\hspace{0.1cm}{\footnotesize\ttfamily [6/6]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::\+NDArray (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \&}]{other }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDArray_a702d2a7566dd9796eb891d043159fd41}\label{classaare_1_1NDArray_a702d2a7566dd9796eb891d043159fd41}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!````~NDArray@{\texorpdfstring{$\sim$}{\string~}NDArray}}
\index{````~NDArray@{\texorpdfstring{$\sim$}{\string~}NDArray}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{\texorpdfstring{$\sim$}{\string~}NDArray()}{\string~NDArray()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::\texorpdfstring{$\sim$}{\string~}\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\doxysubsection{Member Function Documentation}
\Hypertarget{classaare_1_1NDArray_a3241eee2a316d350390c3b9a2e3ba091}\label{classaare_1_1NDArray_a3241eee2a316d350390c3b9a2e3ba091}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!begin@{begin}}
\index{begin@{begin}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{begin()}{begin()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
auto \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::begin (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDArray_af289b6a162612ed74ad2fd0606a479a9}\label{classaare_1_1NDArray_af289b6a162612ed74ad2fd0606a479a9}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!buffer@{buffer}}
\index{buffer@{buffer}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{buffer()}{buffer()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
std\+::byte \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::buffer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDArray_a2ab19fc488009d3fce95fcf5bff6b10a}\label{classaare_1_1NDArray_a2ab19fc488009d3fce95fcf5bff6b10a}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!byte\_strides@{byte\_strides}}
\index{byte\_strides@{byte\_strides}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{byte\_strides()}{byte\_strides()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
std\+::array$<$ ssize\+\_\+t, Ndim $>$ \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::byte\+\_\+strides (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
\Hypertarget{classaare_1_1NDArray_a77b3ca3e85d5a3e394248fdaab01c5a5}\label{classaare_1_1NDArray_a77b3ca3e85d5a3e394248fdaab01c5a5}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!data@{data}}
\index{data@{data}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{data()}{data()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
T \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::data (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDArray_aeac1405793b07e8433b53f1e04740ec8}\label{classaare_1_1NDArray_aeac1405793b07e8433b53f1e04740ec8}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!end@{end}}
\index{end@{end}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{end()}{end()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
auto \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::end (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDArray_a90408ebad72f63d0288b869b3e32e50b}\label{classaare_1_1NDArray_a90408ebad72f63d0288b869b3e32e50b}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!operator"!=@{operator"!=}}
\index{operator"!=@{operator"!=}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator"!=()}{operator!=()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim$>$ \\
bool \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::operator!= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \&}]{other }\end{DoxyParamCaption}) const}
\Hypertarget{classaare_1_1NDArray_ab01fdad1a92b1629996f15ff0cf79ac3}\label{classaare_1_1NDArray_ab01fdad1a92b1629996f15ff0cf79ac3}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!operator\&=@{operator\&=}}
\index{operator\&=@{operator\&=}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator\&=()}{operator\&=()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim$>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \& \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::operator\&= (\begin{DoxyParamCaption}\item[{const T \&}]{mask }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1NDArray_a8d75984e7f384c4c9d25bc04c6c14983}\label{classaare_1_1NDArray_a8d75984e7f384c4c9d25bc04c6c14983}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!operator()@{operator()}}
\index{operator()@{operator()}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator()()}{operator()()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
T \& \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::operator() (\begin{DoxyParamCaption}\item[{int}]{i }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDArray_adf800cbb478a4f24ae24026034bafd43}\label{classaare_1_1NDArray_adf800cbb478a4f24ae24026034bafd43}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!operator()@{operator()}}
\index{operator()@{operator()}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator()()}{operator()()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
const T \& \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::operator() (\begin{DoxyParamCaption}\item[{int}]{i }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDArray_aea34e489c4721228aeece6dcdd9133dd}\label{classaare_1_1NDArray_aea34e489c4721228aeece6dcdd9133dd}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!operator()@{operator()}}
\index{operator()@{operator()}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator()()}{operator()()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
template$<$typename... Ix$>$ \\
std\+::enable\+\_\+if$<$ sizeof...(Ix)==Ndim, T \& $>$\+::type \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::operator() (\begin{DoxyParamCaption}\item[{Ix...}]{index }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDArray_ab6938304bf9f74ee4d04451931a53de0}\label{classaare_1_1NDArray_ab6938304bf9f74ee4d04451931a53de0}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!operator()@{operator()}}
\index{operator()@{operator()}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator()()}{operator()()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
template$<$typename... Ix$>$ \\
std\+::enable\+\_\+if$<$ sizeof...(Ix)==Ndim, T \& $>$\+::type \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::operator() (\begin{DoxyParamCaption}\item[{Ix...}]{index }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDArray_ae67f899470bc9f8c8df8b54d544f9171}\label{classaare_1_1NDArray_ae67f899470bc9f8c8df8b54d544f9171}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!operator\texorpdfstring{$\ast$}{*}@{operator\texorpdfstring{$\ast$}{*}}}
\index{operator\texorpdfstring{$\ast$}{*}@{operator\texorpdfstring{$\ast$}{*}}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator\texorpdfstring{$\ast$}{*}()}{operator*()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim$>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::operator\texorpdfstring{$\ast$}{*} (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \&}]{other }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1NDArray_a2d6d56700f622c3175b9b82f043c3b94}\label{classaare_1_1NDArray_a2d6d56700f622c3175b9b82f043c3b94}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!operator\texorpdfstring{$\ast$}{*}@{operator\texorpdfstring{$\ast$}{*}}}
\index{operator\texorpdfstring{$\ast$}{*}@{operator\texorpdfstring{$\ast$}{*}}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator\texorpdfstring{$\ast$}{*}()}{operator*()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim$>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::operator\texorpdfstring{$\ast$}{*} (\begin{DoxyParamCaption}\item[{const T \&}]{value }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1NDArray_a54edf15f9669a1e4601fa4aa936a2d92}\label{classaare_1_1NDArray_a54edf15f9669a1e4601fa4aa936a2d92}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!operator\texorpdfstring{$\ast$}{*}=@{operator\texorpdfstring{$\ast$}{*}=}}
\index{operator\texorpdfstring{$\ast$}{*}=@{operator\texorpdfstring{$\ast$}{*}=}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator\texorpdfstring{$\ast$}{*}=()}{operator*=()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim$>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \& \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::operator\texorpdfstring{$\ast$}{*}= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \&}]{other }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1NDArray_afe950d8cf1bdc97d450f912d1d903c09}\label{classaare_1_1NDArray_afe950d8cf1bdc97d450f912d1d903c09}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!operator\texorpdfstring{$\ast$}{*}=@{operator\texorpdfstring{$\ast$}{*}=}}
\index{operator\texorpdfstring{$\ast$}{*}=@{operator\texorpdfstring{$\ast$}{*}=}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator\texorpdfstring{$\ast$}{*}=()}{operator*=()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim$>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \& \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::operator\texorpdfstring{$\ast$}{*}= (\begin{DoxyParamCaption}\item[{const T \&}]{value }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1NDArray_afcc5f259b1bd0cadcadbf2b52795babc}\label{classaare_1_1NDArray_afcc5f259b1bd0cadcadbf2b52795babc}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!operator+@{operator+}}
\index{operator+@{operator+}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator+()}{operator+()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim$>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::operator+ (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \&}]{other }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1NDArray_a86042f9185412e1d68422765d56ce769}\label{classaare_1_1NDArray_a86042f9185412e1d68422765d56ce769}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!operator+@{operator+}}
\index{operator+@{operator+}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator+()}{operator+()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim$>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::operator+ (\begin{DoxyParamCaption}\item[{const T \&}]{value }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1NDArray_a040dd143e6dc040703b33d91ba929271}\label{classaare_1_1NDArray_a040dd143e6dc040703b33d91ba929271}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!operator++@{operator++}}
\index{operator++@{operator++}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator++()}{operator++()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim$>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \& \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::operator++}
\Hypertarget{classaare_1_1NDArray_a27eb7b3599cb62297832d4a3d8022f32}\label{classaare_1_1NDArray_a27eb7b3599cb62297832d4a3d8022f32}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!operator+=@{operator+=}}
\index{operator+=@{operator+=}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator+=()}{operator+=()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim$>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \& \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::operator+= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \&}]{other }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1NDArray_aa15fe27ef06f8a230345161990ce8381}\label{classaare_1_1NDArray_aa15fe27ef06f8a230345161990ce8381}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!operator+=@{operator+=}}
\index{operator+=@{operator+=}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator+=()}{operator+=()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim$>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \& \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::operator+= (\begin{DoxyParamCaption}\item[{const T \&}]{value }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1NDArray_aac96eb2ce76cd90d44eb3b19408d2434}\label{classaare_1_1NDArray_aac96eb2ce76cd90d44eb3b19408d2434}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!operator-\/@{operator-\/}}
\index{operator-\/@{operator-\/}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator-\/()}{operator-()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim$>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::operator-\/ (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \&}]{other }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1NDArray_ae8fcc0b6cb14d353286ffdf2c914200f}\label{classaare_1_1NDArray_ae8fcc0b6cb14d353286ffdf2c914200f}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!operator-\/@{operator-\/}}
\index{operator-\/@{operator-\/}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator-\/()}{operator-()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim$>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::operator-\/ (\begin{DoxyParamCaption}\item[{const T \&}]{value }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1NDArray_aad602fc6734cb85112f2a8edf91d1c70}\label{classaare_1_1NDArray_aad602fc6734cb85112f2a8edf91d1c70}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!operator-\/=@{operator-\/=}}
\index{operator-\/=@{operator-\/=}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator-\/=()}{operator-=()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim$>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \& \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::operator-\/= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \&}]{other }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1NDArray_ad65261a50424d112852f046426c66267}\label{classaare_1_1NDArray_ad65261a50424d112852f046426c66267}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!operator-\/=@{operator-\/=}}
\index{operator-\/=@{operator-\/=}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator-\/=()}{operator-=()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim$>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \& \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::operator-\/= (\begin{DoxyParamCaption}\item[{const T \&}]{value }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1NDArray_a59dc47216852c36191e0cecc869131e1}\label{classaare_1_1NDArray_a59dc47216852c36191e0cecc869131e1}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!operator/@{operator/}}
\index{operator/@{operator/}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator/()}{operator/()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim$>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::operator/ (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \&}]{other }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1NDArray_a6a69a2fce0631e9ef9b1587e75cf1568}\label{classaare_1_1NDArray_a6a69a2fce0631e9ef9b1587e75cf1568}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!operator/@{operator/}}
\index{operator/@{operator/}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator/()}{operator/()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim$>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::operator/ (\begin{DoxyParamCaption}\item[{const T \&}]{value }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1NDArray_a2a6260113ca73c86d37d0444b5148c49}\label{classaare_1_1NDArray_a2a6260113ca73c86d37d0444b5148c49}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!operator/=@{operator/=}}
\index{operator/=@{operator/=}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator/=()}{operator/=()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
template$<$typename V $>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}} \& \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::operator/= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ V, Ndim $>$ \&}]{other }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDArray_a8658f5217fcd0ac6f6900b4f013aed16}\label{classaare_1_1NDArray_a8658f5217fcd0ac6f6900b4f013aed16}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!operator/=@{operator/=}}
\index{operator/=@{operator/=}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator/=()}{operator/=()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim$>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \& \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::operator/= (\begin{DoxyParamCaption}\item[{const T \&}]{value }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1NDArray_a713fff54cdec54f27ec92c1f317a46c7}\label{classaare_1_1NDArray_a713fff54cdec54f27ec92c1f317a46c7}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!operator=@{operator=}}
\index{operator=@{operator=}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator=()}{operator=()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim$>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \& \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::operator= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \&}]{other }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1NDArray_a5f249dd42235efcf858caca096300d02}\label{classaare_1_1NDArray_a5f249dd42235efcf858caca096300d02}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!operator=@{operator=}}
\index{operator=@{operator=}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator=()}{operator=()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim$>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \& \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::operator= (\begin{DoxyParamCaption}\item[{const T \&}]{value }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1NDArray_a06c658e8a6490c74fb9878b14a4faf1d}\label{classaare_1_1NDArray_a06c658e8a6490c74fb9878b14a4faf1d}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!operator=@{operator=}}
\index{operator=@{operator=}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator=()}{operator=()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim$>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \& \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::operator= (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \&\&}]{other }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1NDArray_ad20b30f1abea56b82196f030b1492027}\label{classaare_1_1NDArray_ad20b30f1abea56b82196f030b1492027}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!operator==@{operator==}}
\index{operator==@{operator==}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator==()}{operator==()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim$>$ \\
bool \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::operator== (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \&}]{other }\end{DoxyParamCaption}) const}
\Hypertarget{classaare_1_1NDArray_a569e8de85121a4a6315c556870b48931}\label{classaare_1_1NDArray_a569e8de85121a4a6315c556870b48931}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!operator$>$@{operator$>$}}
\index{operator$>$@{operator$>$}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator$>$()}{operator>()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim$>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ bool, Ndim $>$ \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::operator$>$ (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, Ndim $>$ \&}]{other }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1NDArray_ad49628442cc054b7c0b56b3104d9ef20}\label{classaare_1_1NDArray_ad49628442cc054b7c0b56b3104d9ef20}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!Print@{Print}}
\index{Print@{Print}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{Print()}{Print()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim$>$ \\
void \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::\+Print}
\Hypertarget{classaare_1_1NDArray_a6084445eed769b89387b4aca53306513}\label{classaare_1_1NDArray_a6084445eed769b89387b4aca53306513}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!Print\_all@{Print\_all}}
\index{Print\_all@{Print\_all}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{Print\_all()}{Print\_all()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim$>$ \\
void \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::\+Print\+\_\+all}
\Hypertarget{classaare_1_1NDArray_a5dec49e82ec3abfa28bddfc328b1c4e9}\label{classaare_1_1NDArray_a5dec49e82ec3abfa28bddfc328b1c4e9}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!Print\_some@{Print\_some}}
\index{Print\_some@{Print\_some}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{Print\_some()}{Print\_some()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim$>$ \\
void \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::\+Print\+\_\+some}
\Hypertarget{classaare_1_1NDArray_a98d5740082a649135587590dbbaa42e2}\label{classaare_1_1NDArray_a98d5740082a649135587590dbbaa42e2}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!reset@{reset}}
\index{reset@{reset}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{reset()}{reset()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
void \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::reset (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDArray_a6dfa3b12cb66147effe2a42435dd346d}\label{classaare_1_1NDArray_a6dfa3b12cb66147effe2a42435dd346d}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!shape@{shape}}
\index{shape@{shape}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{shape()}{shape()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
std\+::array$<$ ssize\+\_\+t, Ndim $>$ \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::shape (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
\Hypertarget{classaare_1_1NDArray_af765f5cb619ed79d44a000572b265589}\label{classaare_1_1NDArray_af765f5cb619ed79d44a000572b265589}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!shape@{shape}}
\index{shape@{shape}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{shape()}{shape()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::shape (\begin{DoxyParamCaption}\item[{ssize\+\_\+t}]{i }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
\Hypertarget{classaare_1_1NDArray_a86632c60ddbdf7af8cfd3939df472127}\label{classaare_1_1NDArray_a86632c60ddbdf7af8cfd3939df472127}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!size@{size}}
\index{size@{size}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{size()}{size()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDArray_ac5ffe1a4b9dde8f2ec6dba021951c922}\label{classaare_1_1NDArray_ac5ffe1a4b9dde8f2ec6dba021951c922}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!span@{span}}
\index{span@{span}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{span()}{span()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
\mbox{\hyperlink{classaare_1_1NDView}{NDView}}$<$ T, Ndim $>$ \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::span (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDArray_af36c03e7a91fe932d60739d5ea30f1f2}\label{classaare_1_1NDArray_af36c03e7a91fe932d60739d5ea30f1f2}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!sqrt@{sqrt}}
\index{sqrt@{sqrt}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{sqrt()}{sqrt()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
void \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::sqrt (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDArray_a07369722ffea061203bfbfd4479c05e9}\label{classaare_1_1NDArray_a07369722ffea061203bfbfd4479c05e9}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!strides@{strides}}
\index{strides@{strides}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{strides()}{strides()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
std\+::array$<$ ssize\+\_\+t, Ndim $>$ \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::strides (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
\Hypertarget{classaare_1_1NDArray_ab1f9c68ddce8440f1fc220cbc1d865fc}\label{classaare_1_1NDArray_ab1f9c68ddce8440f1fc220cbc1d865fc}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!total\_bytes@{total\_bytes}}
\index{total\_bytes@{total\_bytes}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{total\_bytes()}{total\_bytes()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
size\+\_\+t \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::total\+\_\+bytes (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDArray_ad8f804893325ae1553d33accec070e92}\label{classaare_1_1NDArray_ad8f804893325ae1553d33accec070e92}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!value@{value}}
\index{value@{value}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{value()}{value()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
template$<$typename... Ix$>$ \\
std\+::enable\+\_\+if$<$ sizeof...(Ix)==Ndim, T $>$\+::type \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::value (\begin{DoxyParamCaption}\item[{Ix...}]{index }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\doxysubsection{Field Documentation}
\Hypertarget{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}\label{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!data\_@{data\_}}
\index{data\_@{data\_}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{data\_}{data\_}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
T\texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::data\+\_\+\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}\label{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!shape\_@{shape\_}}
\index{shape\_@{shape\_}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{shape\_}{shape\_}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
std\+::array$<$ssize\+\_\+t, Ndim$>$ \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::shape\+\_\+\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}\label{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!size\_@{size\_}}
\index{size\_@{size\_}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{size\_}{size\_}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::size\+\_\+\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1NDArray_a5275d4999e7422458d472620f792573a}\label{classaare_1_1NDArray_a5275d4999e7422458d472620f792573a}
\index{aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}!strides\_@{strides\_}}
\index{strides\_@{strides\_}!aare::NDArray$<$ T, Ndim $>$@{aare::NDArray$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{strides\_}{strides\_}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
std\+::array$<$ssize\+\_\+t, Ndim$>$ \mbox{\hyperlink{classaare_1_1NDArray}{aare\+::\+NDArray}}$<$ T, Ndim $>$\+::strides\+\_\+\hspace{0.3cm}{\ttfamily [private]}}
The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item
core/include/aare/core/\mbox{\hyperlink{NDArray_8hpp}{NDArray.\+hpp}}\end{DoxyCompactItemize}

View File

@ -0,0 +1,294 @@
\doxysection{aare\+::NDView\texorpdfstring{$<$}{<} T, Ndim \texorpdfstring{$>$}{>} Class Template Reference}
\hypertarget{classaare_1_1NDView}{}\label{classaare_1_1NDView}\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
{\ttfamily \#include $<$NDView.\+hpp$>$}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{classaare_1_1NDView_a34ce222de6f687c226117116fea52777}{NDView}} ()
\item
\mbox{\hyperlink{classaare_1_1NDView_a2c5589c5060377025399230601b4e554}{NDView}} (T \texorpdfstring{$\ast$}{*}buffer, std\+::array$<$ ssize\+\_\+t, Ndim $>$ \mbox{\hyperlink{classaare_1_1NDView_a273904b889c29e2ce253da3f920db1c1}{shape}})
\item
\mbox{\hyperlink{classaare_1_1NDView_a43053d8295448ef85af8ab5511e70b9d}{NDView}} (T \texorpdfstring{$\ast$}{*}buffer, const std\+::vector$<$ ssize\+\_\+t $>$ \&\mbox{\hyperlink{classaare_1_1NDView_a273904b889c29e2ce253da3f920db1c1}{shape}})
\item
{\footnotesize template$<$typename... Ix$>$ }\\std\+::enable\+\_\+if$<$ sizeof...(Ix)==Ndim, T \& $>$\+::type \mbox{\hyperlink{classaare_1_1NDView_a2bb2fe59e80aa9ef680044a2014e24b9}{operator()}} (Ix... index)
\item
{\footnotesize template$<$typename... Ix$>$ }\\std\+::enable\+\_\+if$<$ sizeof...(Ix)==Ndim, T \& $>$\+::type \mbox{\hyperlink{classaare_1_1NDView_adc0170f95b3746dc94cbdbf3ec70fd34}{operator()}} (Ix... index) const
\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1NDView_a0ef23651982b606952225026c6a9f8d6}{size}} () const
\item
\mbox{\hyperlink{classaare_1_1NDView_a14e2e819279f5d97e1d526ca6133adf2}{NDView}} (const \mbox{\hyperlink{classaare_1_1NDView}{NDView}} \&)=default
\item
\mbox{\hyperlink{classaare_1_1NDView_ab66865dacfd69328dbacbbe5719c4ce0}{NDView}} (\mbox{\hyperlink{classaare_1_1NDView}{NDView}} \&\&)=default
\item
T \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1NDView_ae83cfabd1885669ef03d17d2637d0842}{begin}} ()
\item
T \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1NDView_a91833343d6c3fe58035e41ff68ab807e}{end}} ()
\item
T \& \mbox{\hyperlink{classaare_1_1NDView_a0879971dbc9ae3ea5eb363c736cfe465}{operator()}} (ssize\+\_\+t i)
\item
T \& \mbox{\hyperlink{classaare_1_1NDView_ac70c65b158a631fee3e9f3768997c67c}{operator\mbox{[}$\,$\mbox{]}}} (ssize\+\_\+t i)
\item
bool \mbox{\hyperlink{classaare_1_1NDView_a357d05b259ce08438eade05f50ba4776}{operator==}} (const \mbox{\hyperlink{classaare_1_1NDView}{NDView}} \&other) const
\item
\mbox{\hyperlink{classaare_1_1NDView}{NDView}} \& \mbox{\hyperlink{classaare_1_1NDView_a126d485d7b671c1511192c6d077e4823}{operator+=}} (const T val)
\item
\mbox{\hyperlink{classaare_1_1NDView}{NDView}} \& \mbox{\hyperlink{classaare_1_1NDView_a1a6502a34c94d4f3c50b3f95c38de792}{operator-\/=}} (const T val)
\item
\mbox{\hyperlink{classaare_1_1NDView}{NDView}} \& \mbox{\hyperlink{classaare_1_1NDView_a533077f53d9c7f19f94e94f97711dc10}{operator\texorpdfstring{$\ast$}{*}=}} (const T val)
\item
\mbox{\hyperlink{classaare_1_1NDView}{NDView}} \& \mbox{\hyperlink{classaare_1_1NDView_a3d553c8b66ec074ed7339fec0f5d0982}{operator/=}} (const T val)
\item
\mbox{\hyperlink{classaare_1_1NDView}{NDView}} \& \mbox{\hyperlink{classaare_1_1NDView_a772b8b9221ba7fc424fc551633cd9cc9}{operator/=}} (const \mbox{\hyperlink{classaare_1_1NDView}{NDView}} \&other)
\item
\mbox{\hyperlink{classaare_1_1NDView}{NDView}} \& \mbox{\hyperlink{classaare_1_1NDView_a8131bcea5ee6a9ed0f6e3832a3734dda}{operator=}} (const T val)
\item
\mbox{\hyperlink{classaare_1_1NDView}{NDView}} \& \mbox{\hyperlink{classaare_1_1NDView_a1bfb67419c1ab347038b5afa9f556bb4}{operator=}} (const \mbox{\hyperlink{classaare_1_1NDView}{NDView}} \&other)
\item
auto \& \mbox{\hyperlink{classaare_1_1NDView_a273904b889c29e2ce253da3f920db1c1}{shape}} ()
\item
auto \mbox{\hyperlink{classaare_1_1NDView_accf33eba4264f201ffd06cab26b60f3c}{shape}} (ssize\+\_\+t i) const
\item
T \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1NDView_a265ec46d178b53d164d0634f61c51030}{data}} ()
\end{DoxyCompactItemize}
\doxysubsubsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item
{\footnotesize template$<$class Binary\+Operation $>$ }\\\mbox{\hyperlink{classaare_1_1NDView}{NDView}} \& \mbox{\hyperlink{classaare_1_1NDView_aa36026a1c222c33f72ddb79ed228136d}{elemenwise}} (T val, Binary\+Operation op)
\item
{\footnotesize template$<$class Binary\+Operation $>$ }\\\mbox{\hyperlink{classaare_1_1NDView}{NDView}} \& \mbox{\hyperlink{classaare_1_1NDView_acae51d9008a98daeb40e4779cf2e6053}{elemenwise}} (const \mbox{\hyperlink{classaare_1_1NDView}{NDView}} \&other, Binary\+Operation op)
\end{DoxyCompactItemize}
\doxysubsubsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item
T \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1NDView_aaedcfb2c15d7335aae5f75646d182732}{buffer\+\_\+}} \{nullptr\}
\item
std\+::array$<$ ssize\+\_\+t, Ndim $>$ \mbox{\hyperlink{classaare_1_1NDView_a32ff10f10d0efcdc0abb9d1f2121d505}{strides\+\_\+}} \{\}
\item
std\+::array$<$ ssize\+\_\+t, Ndim $>$ \mbox{\hyperlink{classaare_1_1NDView_a1ebe6ccd25a47781e2bc9f1365b1f2ba}{shape\+\_\+}} \{\}
\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1NDView_a53af97aeef3fb68f82b5913c4fa99fa7}{size\+\_\+}} \{\}
\end{DoxyCompactItemize}
\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classaare_1_1NDView_a34ce222de6f687c226117116fea52777}\label{classaare_1_1NDView_a34ce222de6f687c226117116fea52777}
\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}!NDView@{NDView}}
\index{NDView@{NDView}!aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{NDView()}{NDView()}\hspace{0.1cm}{\footnotesize\ttfamily [1/5]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
\mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView}}$<$ T, Ndim $>$\+::\+NDView (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDView_a2c5589c5060377025399230601b4e554}\label{classaare_1_1NDView_a2c5589c5060377025399230601b4e554}
\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}!NDView@{NDView}}
\index{NDView@{NDView}!aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{NDView()}{NDView()}\hspace{0.1cm}{\footnotesize\ttfamily [2/5]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
\mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView}}$<$ T, Ndim $>$\+::\+NDView (\begin{DoxyParamCaption}\item[{T \texorpdfstring{$\ast$}{*}}]{buffer, }\item[{std\+::array$<$ ssize\+\_\+t, Ndim $>$}]{shape }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDView_a43053d8295448ef85af8ab5511e70b9d}\label{classaare_1_1NDView_a43053d8295448ef85af8ab5511e70b9d}
\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}!NDView@{NDView}}
\index{NDView@{NDView}!aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{NDView()}{NDView()}\hspace{0.1cm}{\footnotesize\ttfamily [3/5]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
\mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView}}$<$ T, Ndim $>$\+::\+NDView (\begin{DoxyParamCaption}\item[{T \texorpdfstring{$\ast$}{*}}]{buffer, }\item[{const std\+::vector$<$ ssize\+\_\+t $>$ \&}]{shape }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDView_a14e2e819279f5d97e1d526ca6133adf2}\label{classaare_1_1NDView_a14e2e819279f5d97e1d526ca6133adf2}
\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}!NDView@{NDView}}
\index{NDView@{NDView}!aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{NDView()}{NDView()}\hspace{0.1cm}{\footnotesize\ttfamily [4/5]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
\mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView}}$<$ T, Ndim $>$\+::\+NDView (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classaare_1_1NDView}{NDView}}$<$ T, Ndim $>$ \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [default]}}
\Hypertarget{classaare_1_1NDView_ab66865dacfd69328dbacbbe5719c4ce0}\label{classaare_1_1NDView_ab66865dacfd69328dbacbbe5719c4ce0}
\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}!NDView@{NDView}}
\index{NDView@{NDView}!aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{NDView()}{NDView()}\hspace{0.1cm}{\footnotesize\ttfamily [5/5]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
\mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView}}$<$ T, Ndim $>$\+::\+NDView (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classaare_1_1NDView}{NDView}}$<$ T, Ndim $>$ \&\&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [default]}}
\doxysubsection{Member Function Documentation}
\Hypertarget{classaare_1_1NDView_ae83cfabd1885669ef03d17d2637d0842}\label{classaare_1_1NDView_ae83cfabd1885669ef03d17d2637d0842}
\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}!begin@{begin}}
\index{begin@{begin}!aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{begin()}{begin()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
T \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView}}$<$ T, Ndim $>$\+::begin (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDView_a265ec46d178b53d164d0634f61c51030}\label{classaare_1_1NDView_a265ec46d178b53d164d0634f61c51030}
\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}!data@{data}}
\index{data@{data}!aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{data()}{data()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
T \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView}}$<$ T, Ndim $>$\+::data (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDView_acae51d9008a98daeb40e4779cf2e6053}\label{classaare_1_1NDView_acae51d9008a98daeb40e4779cf2e6053}
\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}!elemenwise@{elemenwise}}
\index{elemenwise@{elemenwise}!aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{elemenwise()}{elemenwise()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
template$<$class Binary\+Operation $>$ \\
\mbox{\hyperlink{classaare_1_1NDView}{NDView}} \& \mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView}}$<$ T, Ndim $>$\+::elemenwise (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classaare_1_1NDView}{NDView}}$<$ T, Ndim $>$ \&}]{other, }\item[{Binary\+Operation}]{op }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}}
\Hypertarget{classaare_1_1NDView_aa36026a1c222c33f72ddb79ed228136d}\label{classaare_1_1NDView_aa36026a1c222c33f72ddb79ed228136d}
\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}!elemenwise@{elemenwise}}
\index{elemenwise@{elemenwise}!aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{elemenwise()}{elemenwise()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
template$<$class Binary\+Operation $>$ \\
\mbox{\hyperlink{classaare_1_1NDView}{NDView}} \& \mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView}}$<$ T, Ndim $>$\+::elemenwise (\begin{DoxyParamCaption}\item[{T}]{val, }\item[{Binary\+Operation}]{op }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}}
\Hypertarget{classaare_1_1NDView_a91833343d6c3fe58035e41ff68ab807e}\label{classaare_1_1NDView_a91833343d6c3fe58035e41ff68ab807e}
\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}!end@{end}}
\index{end@{end}!aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{end()}{end()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
T \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView}}$<$ T, Ndim $>$\+::end (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDView_a2bb2fe59e80aa9ef680044a2014e24b9}\label{classaare_1_1NDView_a2bb2fe59e80aa9ef680044a2014e24b9}
\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}!operator()@{operator()}}
\index{operator()@{operator()}!aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator()()}{operator()()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
template$<$typename... Ix$>$ \\
std\+::enable\+\_\+if$<$ sizeof...(Ix)==Ndim, T \& $>$\+::type \mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView}}$<$ T, Ndim $>$\+::operator() (\begin{DoxyParamCaption}\item[{Ix...}]{index }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDView_adc0170f95b3746dc94cbdbf3ec70fd34}\label{classaare_1_1NDView_adc0170f95b3746dc94cbdbf3ec70fd34}
\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}!operator()@{operator()}}
\index{operator()@{operator()}!aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator()()}{operator()()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
template$<$typename... Ix$>$ \\
std\+::enable\+\_\+if$<$ sizeof...(Ix)==Ndim, T \& $>$\+::type \mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView}}$<$ T, Ndim $>$\+::operator() (\begin{DoxyParamCaption}\item[{Ix...}]{index }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDView_a0879971dbc9ae3ea5eb363c736cfe465}\label{classaare_1_1NDView_a0879971dbc9ae3ea5eb363c736cfe465}
\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}!operator()@{operator()}}
\index{operator()@{operator()}!aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator()()}{operator()()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
T \& \mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView}}$<$ T, Ndim $>$\+::operator() (\begin{DoxyParamCaption}\item[{ssize\+\_\+t}]{i }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDView_a533077f53d9c7f19f94e94f97711dc10}\label{classaare_1_1NDView_a533077f53d9c7f19f94e94f97711dc10}
\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}!operator\texorpdfstring{$\ast$}{*}=@{operator\texorpdfstring{$\ast$}{*}=}}
\index{operator\texorpdfstring{$\ast$}{*}=@{operator\texorpdfstring{$\ast$}{*}=}!aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator\texorpdfstring{$\ast$}{*}=()}{operator*=()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
\mbox{\hyperlink{classaare_1_1NDView}{NDView}} \& \mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView}}$<$ T, Ndim $>$\+::operator\texorpdfstring{$\ast$}{*}= (\begin{DoxyParamCaption}\item[{const T}]{val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDView_a126d485d7b671c1511192c6d077e4823}\label{classaare_1_1NDView_a126d485d7b671c1511192c6d077e4823}
\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}!operator+=@{operator+=}}
\index{operator+=@{operator+=}!aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator+=()}{operator+=()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
\mbox{\hyperlink{classaare_1_1NDView}{NDView}} \& \mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView}}$<$ T, Ndim $>$\+::operator+= (\begin{DoxyParamCaption}\item[{const T}]{val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDView_a1a6502a34c94d4f3c50b3f95c38de792}\label{classaare_1_1NDView_a1a6502a34c94d4f3c50b3f95c38de792}
\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}!operator-\/=@{operator-\/=}}
\index{operator-\/=@{operator-\/=}!aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator-\/=()}{operator-=()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
\mbox{\hyperlink{classaare_1_1NDView}{NDView}} \& \mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView}}$<$ T, Ndim $>$\+::operator-\/= (\begin{DoxyParamCaption}\item[{const T}]{val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDView_a772b8b9221ba7fc424fc551633cd9cc9}\label{classaare_1_1NDView_a772b8b9221ba7fc424fc551633cd9cc9}
\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}!operator/=@{operator/=}}
\index{operator/=@{operator/=}!aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator/=()}{operator/=()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
\mbox{\hyperlink{classaare_1_1NDView}{NDView}} \& \mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView}}$<$ T, Ndim $>$\+::operator/= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classaare_1_1NDView}{NDView}}$<$ T, Ndim $>$ \&}]{other }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDView_a3d553c8b66ec074ed7339fec0f5d0982}\label{classaare_1_1NDView_a3d553c8b66ec074ed7339fec0f5d0982}
\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}!operator/=@{operator/=}}
\index{operator/=@{operator/=}!aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator/=()}{operator/=()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
\mbox{\hyperlink{classaare_1_1NDView}{NDView}} \& \mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView}}$<$ T, Ndim $>$\+::operator/= (\begin{DoxyParamCaption}\item[{const T}]{val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDView_a1bfb67419c1ab347038b5afa9f556bb4}\label{classaare_1_1NDView_a1bfb67419c1ab347038b5afa9f556bb4}
\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}!operator=@{operator=}}
\index{operator=@{operator=}!aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator=()}{operator=()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
\mbox{\hyperlink{classaare_1_1NDView}{NDView}} \& \mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView}}$<$ T, Ndim $>$\+::operator= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classaare_1_1NDView}{NDView}}$<$ T, Ndim $>$ \&}]{other }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDView_a8131bcea5ee6a9ed0f6e3832a3734dda}\label{classaare_1_1NDView_a8131bcea5ee6a9ed0f6e3832a3734dda}
\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}!operator=@{operator=}}
\index{operator=@{operator=}!aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator=()}{operator=()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
\mbox{\hyperlink{classaare_1_1NDView}{NDView}} \& \mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView}}$<$ T, Ndim $>$\+::operator= (\begin{DoxyParamCaption}\item[{const T}]{val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDView_a357d05b259ce08438eade05f50ba4776}\label{classaare_1_1NDView_a357d05b259ce08438eade05f50ba4776}
\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}!operator==@{operator==}}
\index{operator==@{operator==}!aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator==()}{operator==()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
bool \mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView}}$<$ T, Ndim $>$\+::operator== (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classaare_1_1NDView}{NDView}}$<$ T, Ndim $>$ \&}]{other }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDView_ac70c65b158a631fee3e9f3768997c67c}\label{classaare_1_1NDView_ac70c65b158a631fee3e9f3768997c67c}
\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}!operator\mbox{[}\mbox{]}@{operator[]}}
\index{operator\mbox{[}\mbox{]}@{operator[]}!aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{operator[]()}{operator[]()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
T \& \mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView}}$<$ T, Ndim $>$\+::operator\mbox{[}$\,$\mbox{]} (\begin{DoxyParamCaption}\item[{ssize\+\_\+t}]{i }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDView_a273904b889c29e2ce253da3f920db1c1}\label{classaare_1_1NDView_a273904b889c29e2ce253da3f920db1c1}
\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}!shape@{shape}}
\index{shape@{shape}!aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{shape()}{shape()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
auto \& \mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView}}$<$ T, Ndim $>$\+::shape (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDView_accf33eba4264f201ffd06cab26b60f3c}\label{classaare_1_1NDView_accf33eba4264f201ffd06cab26b60f3c}
\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}!shape@{shape}}
\index{shape@{shape}!aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{shape()}{shape()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
auto \mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView}}$<$ T, Ndim $>$\+::shape (\begin{DoxyParamCaption}\item[{ssize\+\_\+t}]{i }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1NDView_a0ef23651982b606952225026c6a9f8d6}\label{classaare_1_1NDView_a0ef23651982b606952225026c6a9f8d6}
\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}!size@{size}}
\index{size@{size}!aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{size()}{size()}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView}}$<$ T, Ndim $>$\+::size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
\doxysubsection{Field Documentation}
\Hypertarget{classaare_1_1NDView_aaedcfb2c15d7335aae5f75646d182732}\label{classaare_1_1NDView_aaedcfb2c15d7335aae5f75646d182732}
\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}!buffer\_@{buffer\_}}
\index{buffer\_@{buffer\_}!aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{buffer\_}{buffer\_}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
T\texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView}}$<$ T, Ndim $>$\+::buffer\+\_\+ \{nullptr\}\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1NDView_a1ebe6ccd25a47781e2bc9f1365b1f2ba}\label{classaare_1_1NDView_a1ebe6ccd25a47781e2bc9f1365b1f2ba}
\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}!shape\_@{shape\_}}
\index{shape\_@{shape\_}!aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{shape\_}{shape\_}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
std\+::array$<$ssize\+\_\+t, Ndim$>$ \mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView}}$<$ T, Ndim $>$\+::shape\+\_\+ \{\}\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1NDView_a53af97aeef3fb68f82b5913c4fa99fa7}\label{classaare_1_1NDView_a53af97aeef3fb68f82b5913c4fa99fa7}
\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}!size\_@{size\_}}
\index{size\_@{size\_}!aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{size\_}{size\_}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView}}$<$ T, Ndim $>$\+::size\+\_\+ \{\}\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1NDView_a32ff10f10d0efcdc0abb9d1f2121d505}\label{classaare_1_1NDView_a32ff10f10d0efcdc0abb9d1f2121d505}
\index{aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}!strides\_@{strides\_}}
\index{strides\_@{strides\_}!aare::NDView$<$ T, Ndim $>$@{aare::NDView$<$ T, Ndim $>$}}
\doxysubsubsection{\texorpdfstring{strides\_}{strides\_}}
{\footnotesize\ttfamily template$<$typename T , ssize\+\_\+t Ndim = 2$>$ \\
std\+::array$<$ssize\+\_\+t, Ndim$>$ \mbox{\hyperlink{classaare_1_1NDView}{aare\+::\+NDView}}$<$ T, Ndim $>$\+::strides\+\_\+ \{\}\hspace{0.3cm}{\ttfamily [private]}}
The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item
core/include/aare/core/\mbox{\hyperlink{NDView_8hpp}{NDView.\+hpp}}\end{DoxyCompactItemize}

Binary file not shown.

View File

@ -0,0 +1,197 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 325.203247
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 1.537500 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 2 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(aare::NumpyFile) cw
(aare::FileInterface) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(aare::NumpyFile) 0.000000 0.000000 box
(aare::FileInterface) 0.000000 1.000000 box
% ----- relations -----
solid
0 0.000000 0.000000 out
solid
1 0.000000 1.000000 in

Binary file not shown.

View File

@ -0,0 +1,691 @@
\doxysection{aare\+::Numpy\+File Class Reference}
\hypertarget{classaare_1_1NumpyFile}{}\label{classaare_1_1NumpyFile}\index{aare::NumpyFile@{aare::NumpyFile}}
\doxylink{classaare_1_1NumpyFile}{Numpy\+File} class to read and write numpy files.
{\ttfamily \#include $<$Numpy\+File.\+hpp$>$}
Inheritance diagram for aare\+::Numpy\+File\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classaare_1_1NumpyFile}
\end{center}
\end{figure}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{classaare_1_1NumpyFile_a4764fdd2679c4c9a5671aa29a9b06899}{Numpy\+File}} (const std\+::filesystem\+::path \&fname, const std\+::string \&mode=\"{}r\"{}, \mbox{\hyperlink{structaare_1_1FileConfig}{File\+Config}} cfg=\{\})
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1NumpyFile}{Numpy\+File} constructor. \end{DoxyCompactList}\item
void \mbox{\hyperlink{classaare_1_1NumpyFile_a12b0ddf6334dfab4ac0993cd9c45f738}{write}} (\mbox{\hyperlink{classaare_1_1Frame}{Frame}} \&frame) override
\begin{DoxyCompactList}\small\item\em write a frame to the file \end{DoxyCompactList}\item
\mbox{\hyperlink{classaare_1_1Frame}{Frame}} \mbox{\hyperlink{classaare_1_1NumpyFile_a81e1a331ece6681bbfe9437e049d3b3a}{read}} () override
\begin{DoxyCompactList}\small\item\em write a vector of frames to the file \end{DoxyCompactList}\item
std\+::vector$<$ \mbox{\hyperlink{classaare_1_1Frame}{Frame}} $>$ \mbox{\hyperlink{classaare_1_1NumpyFile_a4cc861469a9dd388a937c318d3b6a13b}{read}} (size\+\_\+t n\+\_\+frames) override
\begin{DoxyCompactList}\small\item\em read n\+\_\+frames from the file at the current position \end{DoxyCompactList}\item
void \mbox{\hyperlink{classaare_1_1NumpyFile_a8b25fc8fa2e0ab9e38b0388504d60962}{read\+\_\+into}} (std\+::byte \texorpdfstring{$\ast$}{*}image\+\_\+buf) override
\begin{DoxyCompactList}\small\item\em read one frame from the file at the current position and store it in the provided buffer \end{DoxyCompactList}\item
void \mbox{\hyperlink{classaare_1_1NumpyFile_a88f0fbdd9cf61f517d925a37854d82f8}{read\+\_\+into}} (std\+::byte \texorpdfstring{$\ast$}{*}image\+\_\+buf, size\+\_\+t n\+\_\+frames) override
\begin{DoxyCompactList}\small\item\em read n\+\_\+frames from the file at the current position and store them in the provided buffer \end{DoxyCompactList}\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1NumpyFile_abe5817c47fa552b7d6de72a4b59d290a}{frame\+\_\+number}} (size\+\_\+t frame\+\_\+index) override
\begin{DoxyCompactList}\small\item\em get the frame number at the given frame index \end{DoxyCompactList}\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1NumpyFile_a35c1b49a469ba8e261d4e675a816b5f2}{bytes\+\_\+per\+\_\+frame}} () override
\begin{DoxyCompactList}\small\item\em get the size of one frame in bytes \end{DoxyCompactList}\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1NumpyFile_a2a40aebcb9b25ad36f1ecd75699c47d0}{pixels}} () override
\begin{DoxyCompactList}\small\item\em get the number of pixels in one frame \end{DoxyCompactList}\item
void \mbox{\hyperlink{classaare_1_1NumpyFile_ae4f669f86fb614e446540638d8efe1b8}{seek}} (size\+\_\+t \mbox{\hyperlink{classaare_1_1NumpyFile_abe5817c47fa552b7d6de72a4b59d290a}{frame\+\_\+number}}) override
\begin{DoxyCompactList}\small\item\em seek to the given frame number \end{DoxyCompactList}\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1NumpyFile_a022af0b9d792abb00a9dc661beb3e9a2}{tell}} () override
\begin{DoxyCompactList}\small\item\em get the current position of the file pointer \end{DoxyCompactList}\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1NumpyFile_afec228003225dcc91b16227d24c58d37}{total\+\_\+frames}} () const override
\begin{DoxyCompactList}\small\item\em get the total number of frames in the file \end{DoxyCompactList}\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1NumpyFile_a24c0cad439c52b77886c862b8093b91a}{rows}} () const override
\begin{DoxyCompactList}\small\item\em get the number of rows in the file \end{DoxyCompactList}\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1NumpyFile_ae1558b1ab6fbea54f853cdfad9363d31}{cols}} () const override
\begin{DoxyCompactList}\small\item\em get the number of columns in the file \end{DoxyCompactList}\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1NumpyFile_afcdc40fcc15f5a3a470e23033ad1323c}{bitdepth}} () const override
\begin{DoxyCompactList}\small\item\em get the bitdepth of the file \end{DoxyCompactList}\item
\mbox{\hyperlink{classaare_1_1DType}{DType}} \mbox{\hyperlink{classaare_1_1NumpyFile_ae0f029f5e1c09875533962a9ee957a98}{dtype}} () const
\begin{DoxyCompactList}\small\item\em get the data type of the numpy file \end{DoxyCompactList}\item
std\+::vector$<$ size\+\_\+t $>$ \mbox{\hyperlink{classaare_1_1NumpyFile_a060d3bc922d3a759aabb3716e9c97791}{shape}} () const
\begin{DoxyCompactList}\small\item\em get the shape of the numpy file \end{DoxyCompactList}\item
{\footnotesize template$<$typename T , size\+\_\+t NDim$>$ }\\\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, NDim $>$ \mbox{\hyperlink{classaare_1_1NumpyFile_ab16bb0e1a3c4d17b137c9c8708b9031c}{load}} ()
\begin{DoxyCompactList}\small\item\em load the numpy file into an \doxylink{classaare_1_1NDArray}{NDArray} \end{DoxyCompactList}\item
\mbox{\hyperlink{classaare_1_1NumpyFile_af8d6ace67f7880e6b2cd12da568fbead}{\texorpdfstring{$\sim$}{\string~}\+Numpy\+File}} ()
\item
\mbox{\hyperlink{classaare_1_1Frame}{Frame}} \mbox{\hyperlink{classaare_1_1FileInterface_aad0827f2dad4403cebdce417243d842c}{iread}} (size\+\_\+t \mbox{\hyperlink{classaare_1_1NumpyFile_abe5817c47fa552b7d6de72a4b59d290a}{frame\+\_\+number}})
\begin{DoxyCompactList}\small\item\em read one frame from the file at the given frame number \end{DoxyCompactList}\item
std\+::vector$<$ \mbox{\hyperlink{classaare_1_1Frame}{Frame}} $>$ \mbox{\hyperlink{classaare_1_1FileInterface_a1a304e356f3c1d100544d6ceeb35c0fb}{iread}} (size\+\_\+t \mbox{\hyperlink{classaare_1_1NumpyFile_abe5817c47fa552b7d6de72a4b59d290a}{frame\+\_\+number}}, size\+\_\+t n\+\_\+frames)
\begin{DoxyCompactList}\small\item\em read n\+\_\+frames from the file starting at the given frame number \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Data Fields}
\begin{DoxyCompactItemize}
\item
std\+::string \mbox{\hyperlink{classaare_1_1FileInterface_ab1d0e6de947affd5af9740eb06888fc6}{m\+\_\+mode}}
\item
std\+::filesystem\+::path \mbox{\hyperlink{classaare_1_1FileInterface_a325f6603f564fb42f8f28f1136b5e329}{m\+\_\+fname}}
\item
std\+::filesystem\+::path \mbox{\hyperlink{classaare_1_1FileInterface_afdd0a1a75618ad5db2f4794e0900b2f4}{m\+\_\+base\+\_\+path}}
\item
std\+::string \mbox{\hyperlink{classaare_1_1FileInterface_adae2b35fc6a3f185e9eb263c97bc024b}{m\+\_\+base\+\_\+name}}
\item
std\+::string \mbox{\hyperlink{classaare_1_1FileInterface_a5fffaf9a7c8ae2b3a2ebe89b9c94ed34}{m\+\_\+ext}}
\item
int \mbox{\hyperlink{classaare_1_1FileInterface_a30e926a897b534ab9a327d40594ff191}{m\+\_\+findex}}
\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1FileInterface_a91551fada444b231294c095f3f5fb768}{m\+\_\+total\+\_\+frames}} \{\}
\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1FileInterface_ab0762d7652c9a4e1afe6dbb7d7325ac9}{max\+\_\+frames\+\_\+per\+\_\+file}} \{\}
\item
std\+::string \mbox{\hyperlink{classaare_1_1FileInterface_a44cbe933bbd2cae1f48213121d15bce2}{version}}
\item
\mbox{\hyperlink{namespaceaare_a5b95afba95553c1e118e1478c69042f7}{Detector\+Type}} \mbox{\hyperlink{classaare_1_1FileInterface_a9476a299cea6b4e97605135a28d0cb60}{m\+\_\+type}}
\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1FileInterface_ae29d98625cf56989e2c5237ace0d0f4c}{m\+\_\+rows}} \{\}
\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1FileInterface_ad4c9991c30a71ba83cbaab283bc756b5}{m\+\_\+cols}} \{\}
\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1FileInterface_a252d27cbbfcdfc528b86925eaac55bb7}{m\+\_\+bitdepth}} \{\}
\end{DoxyCompactItemize}
\doxysubsubsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item
void \mbox{\hyperlink{classaare_1_1NumpyFile_a1c4bfd5eefa5ac19ecf2aa96c0dbdae3}{load\+\_\+metadata}} ()
\item
void \mbox{\hyperlink{classaare_1_1NumpyFile_add05576e7b9256474c104553f0856c80}{get\+\_\+frame\+\_\+into}} (size\+\_\+t, std\+::byte \texorpdfstring{$\ast$}{*})
\item
\mbox{\hyperlink{classaare_1_1Frame}{Frame}} \mbox{\hyperlink{classaare_1_1NumpyFile_ac0e88af0f3793ef18302db5c503bd3d7}{get\+\_\+frame}} (size\+\_\+t \mbox{\hyperlink{classaare_1_1NumpyFile_abe5817c47fa552b7d6de72a4b59d290a}{frame\+\_\+number}})
\end{DoxyCompactItemize}
\doxysubsubsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item
FILE \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1NumpyFile_a1b3f50636674e919e54b7d61e11ed03a}{fp}} = nullptr
\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1NumpyFile_a85400183bf0f1fdc43fd9a37e3f10a2d}{initial\+\_\+header\+\_\+len}} = 0
\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1NumpyFile_a080973acac90ab8e6d0552b282e2d73c}{current\+\_\+frame}} \{\}
\item
uint32\+\_\+t \mbox{\hyperlink{classaare_1_1NumpyFile_aff59772a6f221edd2606e483ef4ed8ee}{header\+\_\+len}} \{\}
\item
uint8\+\_\+t \mbox{\hyperlink{classaare_1_1NumpyFile_a50d19cf61c165c609c1b707abbe13cbd}{header\+\_\+len\+\_\+size}} \{\}
\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1NumpyFile_a5aed02e400e44d7fbc5356365f421c5b}{header\+\_\+size}} \{\}
\item
\mbox{\hyperlink{structaare_1_1NumpyHeader}{Numpy\+Header}} \mbox{\hyperlink{classaare_1_1NumpyFile_aa2d11ec505dc7c3b4918e194d24d00fe}{m\+\_\+header}}
\item
uint8\+\_\+t \mbox{\hyperlink{classaare_1_1NumpyFile_a58feea4735fdf9599d810427785266ea}{major\+\_\+ver\+\_\+}} \{\}
\item
uint8\+\_\+t \mbox{\hyperlink{classaare_1_1NumpyFile_a2ca45b371f1c56e6b74eaca1852c5ffc}{minor\+\_\+ver\+\_\+}} \{\}
\end{DoxyCompactItemize}
\doxysubsection{Detailed Description}
\doxylink{classaare_1_1NumpyFile}{Numpy\+File} class to read and write numpy files.
\begin{DoxyNote}{Note}
derived from \doxylink{classaare_1_1FileInterface}{File\+Interface}
implements all the pure virtual functions from \doxylink{classaare_1_1FileInterface}{File\+Interface}
documentation for the functions can also be found in the \doxylink{classaare_1_1FileInterface}{File\+Interface} class
\end{DoxyNote}
\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classaare_1_1NumpyFile_a4764fdd2679c4c9a5671aa29a9b06899}\label{classaare_1_1NumpyFile_a4764fdd2679c4c9a5671aa29a9b06899}
\index{aare::NumpyFile@{aare::NumpyFile}!NumpyFile@{NumpyFile}}
\index{NumpyFile@{NumpyFile}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{NumpyFile()}{NumpyFile()}}
{\footnotesize\ttfamily aare\+::\+Numpy\+File\+::\+Numpy\+File (\begin{DoxyParamCaption}\item[{const std\+::filesystem\+::path \&}]{fname, }\item[{const std\+::string \&}]{mode = {\ttfamily \"{}r\"{}}, }\item[{\mbox{\hyperlink{structaare_1_1FileConfig}{File\+Config}}}]{cfg = {\ttfamily \{\}} }\end{DoxyParamCaption})}
\doxylink{classaare_1_1NumpyFile}{Numpy\+File} constructor.
\begin{DoxyParams}{Parameters}
{\em fname} & path to the numpy file \\
\hline
{\em mode} & file mode (r, w) \\
\hline
{\em cfg} & file configuration \\
\hline
\end{DoxyParams}
\Hypertarget{classaare_1_1NumpyFile_af8d6ace67f7880e6b2cd12da568fbead}\label{classaare_1_1NumpyFile_af8d6ace67f7880e6b2cd12da568fbead}
\index{aare::NumpyFile@{aare::NumpyFile}!````~NumpyFile@{\texorpdfstring{$\sim$}{\string~}NumpyFile}}
\index{````~NumpyFile@{\texorpdfstring{$\sim$}{\string~}NumpyFile}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{\texorpdfstring{$\sim$}{\string~}NumpyFile()}{\string~NumpyFile()}}
{\footnotesize\ttfamily aare\+::\+Numpy\+File\+::\texorpdfstring{$\sim$}{\string~}\+Numpy\+File (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
\doxysubsection{Member Function Documentation}
\Hypertarget{classaare_1_1NumpyFile_afcdc40fcc15f5a3a470e23033ad1323c}\label{classaare_1_1NumpyFile_afcdc40fcc15f5a3a470e23033ad1323c}
\index{aare::NumpyFile@{aare::NumpyFile}!bitdepth@{bitdepth}}
\index{bitdepth@{bitdepth}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{bitdepth()}{bitdepth()}}
{\footnotesize\ttfamily ssize\+\_\+t aare\+::\+Numpy\+File\+::bitdepth (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}
get the bitdepth of the file
\begin{DoxyReturn}{Returns}
bitdepth of the file
\end{DoxyReturn}
Implements \mbox{\hyperlink{classaare_1_1FileInterface_a8bfd7abf4271210000b2ef8d1c0d6149}{aare\+::\+File\+Interface}}.
\Hypertarget{classaare_1_1NumpyFile_a35c1b49a469ba8e261d4e675a816b5f2}\label{classaare_1_1NumpyFile_a35c1b49a469ba8e261d4e675a816b5f2}
\index{aare::NumpyFile@{aare::NumpyFile}!bytes\_per\_frame@{bytes\_per\_frame}}
\index{bytes\_per\_frame@{bytes\_per\_frame}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{bytes\_per\_frame()}{bytes\_per\_frame()}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+Numpy\+File\+::bytes\+\_\+per\+\_\+frame (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
get the size of one frame in bytes
\begin{DoxyReturn}{Returns}
size of one frame
\end{DoxyReturn}
Implements \mbox{\hyperlink{classaare_1_1FileInterface_aab236d5b808f2acc44266281274ed93a}{aare\+::\+File\+Interface}}.
\Hypertarget{classaare_1_1NumpyFile_ae1558b1ab6fbea54f853cdfad9363d31}\label{classaare_1_1NumpyFile_ae1558b1ab6fbea54f853cdfad9363d31}
\index{aare::NumpyFile@{aare::NumpyFile}!cols@{cols}}
\index{cols@{cols}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{cols()}{cols()}}
{\footnotesize\ttfamily ssize\+\_\+t aare\+::\+Numpy\+File\+::cols (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}
get the number of columns in the file
\begin{DoxyReturn}{Returns}
number of columns in the file
\end{DoxyReturn}
Implements \mbox{\hyperlink{classaare_1_1FileInterface_a2927ba0e6a564bcd0da139a552c09b76}{aare\+::\+File\+Interface}}.
\Hypertarget{classaare_1_1NumpyFile_ae0f029f5e1c09875533962a9ee957a98}\label{classaare_1_1NumpyFile_ae0f029f5e1c09875533962a9ee957a98}
\index{aare::NumpyFile@{aare::NumpyFile}!dtype@{dtype}}
\index{dtype@{dtype}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{dtype()}{dtype()}}
{\footnotesize\ttfamily \mbox{\hyperlink{classaare_1_1DType}{DType}} aare\+::\+Numpy\+File\+::dtype (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
get the data type of the numpy file
\begin{DoxyReturn}{Returns}
\doxylink{classaare_1_1DType}{DType}
\end{DoxyReturn}
\Hypertarget{classaare_1_1NumpyFile_abe5817c47fa552b7d6de72a4b59d290a}\label{classaare_1_1NumpyFile_abe5817c47fa552b7d6de72a4b59d290a}
\index{aare::NumpyFile@{aare::NumpyFile}!frame\_number@{frame\_number}}
\index{frame\_number@{frame\_number}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{frame\_number()}{frame\_number()}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+Numpy\+File\+::frame\+\_\+number (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{frame\+\_\+index }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}
get the frame number at the given frame index
\begin{DoxyParams}{Parameters}
{\em frame\+\_\+index} & index of the frame \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
frame number
\end{DoxyReturn}
Implements \mbox{\hyperlink{classaare_1_1FileInterface_ac6d10d468f79e855a3334cd1347c1178}{aare\+::\+File\+Interface}}.
\Hypertarget{classaare_1_1NumpyFile_ac0e88af0f3793ef18302db5c503bd3d7}\label{classaare_1_1NumpyFile_ac0e88af0f3793ef18302db5c503bd3d7}
\index{aare::NumpyFile@{aare::NumpyFile}!get\_frame@{get\_frame}}
\index{get\_frame@{get\_frame}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{get\_frame()}{get\_frame()}}
{\footnotesize\ttfamily \mbox{\hyperlink{classaare_1_1Frame}{Frame}} aare\+::\+Numpy\+File\+::get\+\_\+frame (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{frame\+\_\+number }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1NumpyFile_add05576e7b9256474c104553f0856c80}\label{classaare_1_1NumpyFile_add05576e7b9256474c104553f0856c80}
\index{aare::NumpyFile@{aare::NumpyFile}!get\_frame\_into@{get\_frame\_into}}
\index{get\_frame\_into@{get\_frame\_into}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{get\_frame\_into()}{get\_frame\_into()}}
{\footnotesize\ttfamily void aare\+::\+Numpy\+File\+::get\+\_\+frame\+\_\+into (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{frame\+\_\+number, }\item[{std\+::byte \texorpdfstring{$\ast$}{*}}]{image\+\_\+buf }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1FileInterface_aad0827f2dad4403cebdce417243d842c}\label{classaare_1_1FileInterface_aad0827f2dad4403cebdce417243d842c}
\index{aare::NumpyFile@{aare::NumpyFile}!iread@{iread}}
\index{iread@{iread}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{iread()}{iread()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{classaare_1_1Frame}{Frame}} aare\+::\+File\+Interface\+::iread (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{frame\+\_\+number }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [inherited]}}
read one frame from the file at the given frame number
\begin{DoxyParams}{Parameters}
{\em frame\+\_\+number} & frame number to read \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
frame
\end{DoxyReturn}
\Hypertarget{classaare_1_1FileInterface_a1a304e356f3c1d100544d6ceeb35c0fb}\label{classaare_1_1FileInterface_a1a304e356f3c1d100544d6ceeb35c0fb}
\index{aare::NumpyFile@{aare::NumpyFile}!iread@{iread}}
\index{iread@{iread}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{iread()}{iread()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily std\+::vector$<$ \mbox{\hyperlink{classaare_1_1Frame}{Frame}} $>$ aare\+::\+File\+Interface\+::iread (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{frame\+\_\+number, }\item[{size\+\_\+t}]{n\+\_\+frames }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [inherited]}}
read n\+\_\+frames from the file starting at the given frame number
\begin{DoxyParams}{Parameters}
{\em frame\+\_\+number} & frame number to start reading from \\
\hline
{\em n\+\_\+frames} & number of frames to read \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
vector of frames
\end{DoxyReturn}
\Hypertarget{classaare_1_1NumpyFile_ab16bb0e1a3c4d17b137c9c8708b9031c}\label{classaare_1_1NumpyFile_ab16bb0e1a3c4d17b137c9c8708b9031c}
\index{aare::NumpyFile@{aare::NumpyFile}!load@{load}}
\index{load@{load}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{load()}{load()}}
{\footnotesize\ttfamily template$<$typename T , size\+\_\+t NDim$>$ \\
\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}$<$ T, NDim $>$ aare\+::\+Numpy\+File\+::load (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
load the numpy file into an \doxylink{classaare_1_1NDArray}{NDArray}
\begin{DoxyTemplParams}{Template Parameters}
{\em T} & data type of the \doxylink{classaare_1_1NDArray}{NDArray} \\
\hline
{\em NDim} & number of dimensions of the \doxylink{classaare_1_1NDArray}{NDArray} \\
\hline
\end{DoxyTemplParams}
\begin{DoxyReturn}{Returns}
NDArray$<$\+T, NDim$>$
\end{DoxyReturn}
\Hypertarget{classaare_1_1NumpyFile_a1c4bfd5eefa5ac19ecf2aa96c0dbdae3}\label{classaare_1_1NumpyFile_a1c4bfd5eefa5ac19ecf2aa96c0dbdae3}
\index{aare::NumpyFile@{aare::NumpyFile}!load\_metadata@{load\_metadata}}
\index{load\_metadata@{load\_metadata}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{load\_metadata()}{load\_metadata()}}
{\footnotesize\ttfamily void aare\+::\+Numpy\+File\+::load\+\_\+metadata (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1NumpyFile_a2a40aebcb9b25ad36f1ecd75699c47d0}\label{classaare_1_1NumpyFile_a2a40aebcb9b25ad36f1ecd75699c47d0}
\index{aare::NumpyFile@{aare::NumpyFile}!pixels@{pixels}}
\index{pixels@{pixels}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{pixels()}{pixels()}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+Numpy\+File\+::pixels (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
get the number of pixels in one frame
\begin{DoxyReturn}{Returns}
number of pixels in one frame
\end{DoxyReturn}
Implements \mbox{\hyperlink{classaare_1_1FileInterface_a99da51594609984efe62bb64a88a3fa6}{aare\+::\+File\+Interface}}.
\Hypertarget{classaare_1_1NumpyFile_a81e1a331ece6681bbfe9437e049d3b3a}\label{classaare_1_1NumpyFile_a81e1a331ece6681bbfe9437e049d3b3a}
\index{aare::NumpyFile@{aare::NumpyFile}!read@{read}}
\index{read@{read}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{read()}{read()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{classaare_1_1Frame}{Frame}} aare\+::\+Numpy\+File\+::read (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}
write a vector of frames to the file
\begin{DoxyParams}{Parameters}
{\em frames} & vector of frames to write \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void
\end{DoxyReturn}
read one frame from the file at the current position \begin{DoxyReturn}{Returns}
\doxylink{classaare_1_1Frame}{Frame}
\end{DoxyReturn}
Implements \mbox{\hyperlink{classaare_1_1FileInterface_a9cb196de2bee8638578e4ba3ce46532e}{aare\+::\+File\+Interface}}.
\Hypertarget{classaare_1_1NumpyFile_a4cc861469a9dd388a937c318d3b6a13b}\label{classaare_1_1NumpyFile_a4cc861469a9dd388a937c318d3b6a13b}
\index{aare::NumpyFile@{aare::NumpyFile}!read@{read}}
\index{read@{read}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{read()}{read()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily std\+::vector$<$ \mbox{\hyperlink{classaare_1_1Frame}{Frame}} $>$ aare\+::\+Numpy\+File\+::read (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{n\+\_\+frames }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
read n\+\_\+frames from the file at the current position
\begin{DoxyParams}{Parameters}
{\em n\+\_\+frames} & number of frames to read \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
vector of frames
\end{DoxyReturn}
Implements \mbox{\hyperlink{classaare_1_1FileInterface_a1624d72f0feb1c19d507cc91c4cb414a}{aare\+::\+File\+Interface}}.
\Hypertarget{classaare_1_1NumpyFile_a8b25fc8fa2e0ab9e38b0388504d60962}\label{classaare_1_1NumpyFile_a8b25fc8fa2e0ab9e38b0388504d60962}
\index{aare::NumpyFile@{aare::NumpyFile}!read\_into@{read\_into}}
\index{read\_into@{read\_into}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{read\_into()}{read\_into()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void aare\+::\+Numpy\+File\+::read\+\_\+into (\begin{DoxyParamCaption}\item[{std\+::byte \texorpdfstring{$\ast$}{*}}]{image\+\_\+buf }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}
read one frame from the file at the current position and store it in the provided buffer
\begin{DoxyParams}{Parameters}
{\em image\+\_\+buf} & buffer to store the frame \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void
\end{DoxyReturn}
Implements \mbox{\hyperlink{classaare_1_1FileInterface_a4ac0f4e63ccf90af9f0d5b9b44db856c}{aare\+::\+File\+Interface}}.
\Hypertarget{classaare_1_1NumpyFile_a88f0fbdd9cf61f517d925a37854d82f8}\label{classaare_1_1NumpyFile_a88f0fbdd9cf61f517d925a37854d82f8}
\index{aare::NumpyFile@{aare::NumpyFile}!read\_into@{read\_into}}
\index{read\_into@{read\_into}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{read\_into()}{read\_into()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void aare\+::\+Numpy\+File\+::read\+\_\+into (\begin{DoxyParamCaption}\item[{std\+::byte \texorpdfstring{$\ast$}{*}}]{image\+\_\+buf, }\item[{size\+\_\+t}]{n\+\_\+frames }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
read n\+\_\+frames from the file at the current position and store them in the provided buffer
\begin{DoxyParams}{Parameters}
{\em image\+\_\+buf} & buffer to store the frames \\
\hline
{\em n\+\_\+frames} & number of frames to read \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void
\end{DoxyReturn}
Implements \mbox{\hyperlink{classaare_1_1FileInterface_a580c71b3eecf45ce2140cd65103cfd43}{aare\+::\+File\+Interface}}.
\Hypertarget{classaare_1_1NumpyFile_a24c0cad439c52b77886c862b8093b91a}\label{classaare_1_1NumpyFile_a24c0cad439c52b77886c862b8093b91a}
\index{aare::NumpyFile@{aare::NumpyFile}!rows@{rows}}
\index{rows@{rows}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{rows()}{rows()}}
{\footnotesize\ttfamily ssize\+\_\+t aare\+::\+Numpy\+File\+::rows (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}
get the number of rows in the file
\begin{DoxyReturn}{Returns}
number of rows in the file
\end{DoxyReturn}
Implements \mbox{\hyperlink{classaare_1_1FileInterface_a8a5bc2d9b7b9ec1a9a100bf8a114d909}{aare\+::\+File\+Interface}}.
\Hypertarget{classaare_1_1NumpyFile_ae4f669f86fb614e446540638d8efe1b8}\label{classaare_1_1NumpyFile_ae4f669f86fb614e446540638d8efe1b8}
\index{aare::NumpyFile@{aare::NumpyFile}!seek@{seek}}
\index{seek@{seek}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{seek()}{seek()}}
{\footnotesize\ttfamily void aare\+::\+Numpy\+File\+::seek (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{frame\+\_\+number }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}
seek to the given frame number
\begin{DoxyParams}{Parameters}
{\em frame\+\_\+number} & frame number to seek to \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void
\end{DoxyReturn}
Implements \mbox{\hyperlink{classaare_1_1FileInterface_a49510fb96eaa245fd5d2be7f25a40b74}{aare\+::\+File\+Interface}}.
\Hypertarget{classaare_1_1NumpyFile_a060d3bc922d3a759aabb3716e9c97791}\label{classaare_1_1NumpyFile_a060d3bc922d3a759aabb3716e9c97791}
\index{aare::NumpyFile@{aare::NumpyFile}!shape@{shape}}
\index{shape@{shape}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{shape()}{shape()}}
{\footnotesize\ttfamily std\+::vector$<$ size\+\_\+t $>$ aare\+::\+Numpy\+File\+::shape (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
get the shape of the numpy file
\begin{DoxyReturn}{Returns}
vector of type size\+\_\+t
\end{DoxyReturn}
\Hypertarget{classaare_1_1NumpyFile_a022af0b9d792abb00a9dc661beb3e9a2}\label{classaare_1_1NumpyFile_a022af0b9d792abb00a9dc661beb3e9a2}
\index{aare::NumpyFile@{aare::NumpyFile}!tell@{tell}}
\index{tell@{tell}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{tell()}{tell()}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+Numpy\+File\+::tell (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}
get the current position of the file pointer
\begin{DoxyReturn}{Returns}
current position of the file pointer
\end{DoxyReturn}
Implements \mbox{\hyperlink{classaare_1_1FileInterface_abd01811dcf904625b4dbd78dd9188de4}{aare\+::\+File\+Interface}}.
\Hypertarget{classaare_1_1NumpyFile_afec228003225dcc91b16227d24c58d37}\label{classaare_1_1NumpyFile_afec228003225dcc91b16227d24c58d37}
\index{aare::NumpyFile@{aare::NumpyFile}!total\_frames@{total\_frames}}
\index{total\_frames@{total\_frames}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{total\_frames()}{total\_frames()}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+Numpy\+File\+::total\+\_\+frames (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}
get the total number of frames in the file
\begin{DoxyReturn}{Returns}
total number of frames in the file
\end{DoxyReturn}
Implements \mbox{\hyperlink{classaare_1_1FileInterface_ad4391bafd11f77f807114ba5108071d3}{aare\+::\+File\+Interface}}.
\Hypertarget{classaare_1_1NumpyFile_a12b0ddf6334dfab4ac0993cd9c45f738}\label{classaare_1_1NumpyFile_a12b0ddf6334dfab4ac0993cd9c45f738}
\index{aare::NumpyFile@{aare::NumpyFile}!write@{write}}
\index{write@{write}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{write()}{write()}}
{\footnotesize\ttfamily void aare\+::\+Numpy\+File\+::write (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classaare_1_1Frame}{Frame}} \&}]{frame }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
write a frame to the file
\begin{DoxyParams}{Parameters}
{\em frame} & frame to write \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void
\end{DoxyReturn}
\begin{DoxyExceptions}{Exceptions}
{\em std\+::runtime\+\_\+error} & if the function is not implemented \\
\hline
\end{DoxyExceptions}
Implements \mbox{\hyperlink{classaare_1_1FileInterface_a5d39033c9d218d53d51413b99bf7d1f4}{aare\+::\+File\+Interface}}.
\doxysubsection{Field Documentation}
\Hypertarget{classaare_1_1NumpyFile_a080973acac90ab8e6d0552b282e2d73c}\label{classaare_1_1NumpyFile_a080973acac90ab8e6d0552b282e2d73c}
\index{aare::NumpyFile@{aare::NumpyFile}!current\_frame@{current\_frame}}
\index{current\_frame@{current\_frame}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{current\_frame}{current\_frame}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+Numpy\+File\+::current\+\_\+frame \{\}\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1NumpyFile_a1b3f50636674e919e54b7d61e11ed03a}\label{classaare_1_1NumpyFile_a1b3f50636674e919e54b7d61e11ed03a}
\index{aare::NumpyFile@{aare::NumpyFile}!fp@{fp}}
\index{fp@{fp}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{fp}{fp}}
{\footnotesize\ttfamily FILE\texorpdfstring{$\ast$}{*} aare\+::\+Numpy\+File\+::fp = nullptr\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1NumpyFile_aff59772a6f221edd2606e483ef4ed8ee}\label{classaare_1_1NumpyFile_aff59772a6f221edd2606e483ef4ed8ee}
\index{aare::NumpyFile@{aare::NumpyFile}!header\_len@{header\_len}}
\index{header\_len@{header\_len}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{header\_len}{header\_len}}
{\footnotesize\ttfamily uint32\+\_\+t aare\+::\+Numpy\+File\+::header\+\_\+len \{\}\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1NumpyFile_a50d19cf61c165c609c1b707abbe13cbd}\label{classaare_1_1NumpyFile_a50d19cf61c165c609c1b707abbe13cbd}
\index{aare::NumpyFile@{aare::NumpyFile}!header\_len\_size@{header\_len\_size}}
\index{header\_len\_size@{header\_len\_size}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{header\_len\_size}{header\_len\_size}}
{\footnotesize\ttfamily uint8\+\_\+t aare\+::\+Numpy\+File\+::header\+\_\+len\+\_\+size \{\}\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1NumpyFile_a5aed02e400e44d7fbc5356365f421c5b}\label{classaare_1_1NumpyFile_a5aed02e400e44d7fbc5356365f421c5b}
\index{aare::NumpyFile@{aare::NumpyFile}!header\_size@{header\_size}}
\index{header\_size@{header\_size}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{header\_size}{header\_size}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+Numpy\+File\+::header\+\_\+size \{\}\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1NumpyFile_a85400183bf0f1fdc43fd9a37e3f10a2d}\label{classaare_1_1NumpyFile_a85400183bf0f1fdc43fd9a37e3f10a2d}
\index{aare::NumpyFile@{aare::NumpyFile}!initial\_header\_len@{initial\_header\_len}}
\index{initial\_header\_len@{initial\_header\_len}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{initial\_header\_len}{initial\_header\_len}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+Numpy\+File\+::initial\+\_\+header\+\_\+len = 0\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1FileInterface_adae2b35fc6a3f185e9eb263c97bc024b}\label{classaare_1_1FileInterface_adae2b35fc6a3f185e9eb263c97bc024b}
\index{aare::NumpyFile@{aare::NumpyFile}!m\_base\_name@{m\_base\_name}}
\index{m\_base\_name@{m\_base\_name}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{m\_base\_name}{m\_base\_name}}
{\footnotesize\ttfamily std\+::string aare\+::\+File\+Interface\+::m\+\_\+base\+\_\+name\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1FileInterface_afdd0a1a75618ad5db2f4794e0900b2f4}\label{classaare_1_1FileInterface_afdd0a1a75618ad5db2f4794e0900b2f4}
\index{aare::NumpyFile@{aare::NumpyFile}!m\_base\_path@{m\_base\_path}}
\index{m\_base\_path@{m\_base\_path}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{m\_base\_path}{m\_base\_path}}
{\footnotesize\ttfamily std\+::filesystem\+::path aare\+::\+File\+Interface\+::m\+\_\+base\+\_\+path\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1FileInterface_a252d27cbbfcdfc528b86925eaac55bb7}\label{classaare_1_1FileInterface_a252d27cbbfcdfc528b86925eaac55bb7}
\index{aare::NumpyFile@{aare::NumpyFile}!m\_bitdepth@{m\_bitdepth}}
\index{m\_bitdepth@{m\_bitdepth}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{m\_bitdepth}{m\_bitdepth}}
{\footnotesize\ttfamily ssize\+\_\+t aare\+::\+File\+Interface\+::m\+\_\+bitdepth \{\}\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1FileInterface_ad4c9991c30a71ba83cbaab283bc756b5}\label{classaare_1_1FileInterface_ad4c9991c30a71ba83cbaab283bc756b5}
\index{aare::NumpyFile@{aare::NumpyFile}!m\_cols@{m\_cols}}
\index{m\_cols@{m\_cols}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{m\_cols}{m\_cols}}
{\footnotesize\ttfamily ssize\+\_\+t aare\+::\+File\+Interface\+::m\+\_\+cols \{\}\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1FileInterface_a5fffaf9a7c8ae2b3a2ebe89b9c94ed34}\label{classaare_1_1FileInterface_a5fffaf9a7c8ae2b3a2ebe89b9c94ed34}
\index{aare::NumpyFile@{aare::NumpyFile}!m\_ext@{m\_ext}}
\index{m\_ext@{m\_ext}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{m\_ext}{m\_ext}}
{\footnotesize\ttfamily std\+::string aare\+::\+File\+Interface\+::m\+\_\+ext\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1FileInterface_a30e926a897b534ab9a327d40594ff191}\label{classaare_1_1FileInterface_a30e926a897b534ab9a327d40594ff191}
\index{aare::NumpyFile@{aare::NumpyFile}!m\_findex@{m\_findex}}
\index{m\_findex@{m\_findex}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{m\_findex}{m\_findex}}
{\footnotesize\ttfamily int aare\+::\+File\+Interface\+::m\+\_\+findex\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1FileInterface_a325f6603f564fb42f8f28f1136b5e329}\label{classaare_1_1FileInterface_a325f6603f564fb42f8f28f1136b5e329}
\index{aare::NumpyFile@{aare::NumpyFile}!m\_fname@{m\_fname}}
\index{m\_fname@{m\_fname}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{m\_fname}{m\_fname}}
{\footnotesize\ttfamily std\+::filesystem\+::path aare\+::\+File\+Interface\+::m\+\_\+fname\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1NumpyFile_aa2d11ec505dc7c3b4918e194d24d00fe}\label{classaare_1_1NumpyFile_aa2d11ec505dc7c3b4918e194d24d00fe}
\index{aare::NumpyFile@{aare::NumpyFile}!m\_header@{m\_header}}
\index{m\_header@{m\_header}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{m\_header}{m\_header}}
{\footnotesize\ttfamily \mbox{\hyperlink{structaare_1_1NumpyHeader}{Numpy\+Header}} aare\+::\+Numpy\+File\+::m\+\_\+header\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1FileInterface_ab1d0e6de947affd5af9740eb06888fc6}\label{classaare_1_1FileInterface_ab1d0e6de947affd5af9740eb06888fc6}
\index{aare::NumpyFile@{aare::NumpyFile}!m\_mode@{m\_mode}}
\index{m\_mode@{m\_mode}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{m\_mode}{m\_mode}}
{\footnotesize\ttfamily std\+::string aare\+::\+File\+Interface\+::m\+\_\+mode\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1FileInterface_ae29d98625cf56989e2c5237ace0d0f4c}\label{classaare_1_1FileInterface_ae29d98625cf56989e2c5237ace0d0f4c}
\index{aare::NumpyFile@{aare::NumpyFile}!m\_rows@{m\_rows}}
\index{m\_rows@{m\_rows}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{m\_rows}{m\_rows}}
{\footnotesize\ttfamily ssize\+\_\+t aare\+::\+File\+Interface\+::m\+\_\+rows \{\}\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1FileInterface_a91551fada444b231294c095f3f5fb768}\label{classaare_1_1FileInterface_a91551fada444b231294c095f3f5fb768}
\index{aare::NumpyFile@{aare::NumpyFile}!m\_total\_frames@{m\_total\_frames}}
\index{m\_total\_frames@{m\_total\_frames}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{m\_total\_frames}{m\_total\_frames}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+File\+Interface\+::m\+\_\+total\+\_\+frames \{\}\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1FileInterface_a9476a299cea6b4e97605135a28d0cb60}\label{classaare_1_1FileInterface_a9476a299cea6b4e97605135a28d0cb60}
\index{aare::NumpyFile@{aare::NumpyFile}!m\_type@{m\_type}}
\index{m\_type@{m\_type}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{m\_type}{m\_type}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespaceaare_a5b95afba95553c1e118e1478c69042f7}{Detector\+Type}} aare\+::\+File\+Interface\+::m\+\_\+type\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1NumpyFile_a58feea4735fdf9599d810427785266ea}\label{classaare_1_1NumpyFile_a58feea4735fdf9599d810427785266ea}
\index{aare::NumpyFile@{aare::NumpyFile}!major\_ver\_@{major\_ver\_}}
\index{major\_ver\_@{major\_ver\_}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{major\_ver\_}{major\_ver\_}}
{\footnotesize\ttfamily uint8\+\_\+t aare\+::\+Numpy\+File\+::major\+\_\+ver\+\_\+ \{\}\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1FileInterface_ab0762d7652c9a4e1afe6dbb7d7325ac9}\label{classaare_1_1FileInterface_ab0762d7652c9a4e1afe6dbb7d7325ac9}
\index{aare::NumpyFile@{aare::NumpyFile}!max\_frames\_per\_file@{max\_frames\_per\_file}}
\index{max\_frames\_per\_file@{max\_frames\_per\_file}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{max\_frames\_per\_file}{max\_frames\_per\_file}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+File\+Interface\+::max\+\_\+frames\+\_\+per\+\_\+file \{\}\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1NumpyFile_a2ca45b371f1c56e6b74eaca1852c5ffc}\label{classaare_1_1NumpyFile_a2ca45b371f1c56e6b74eaca1852c5ffc}
\index{aare::NumpyFile@{aare::NumpyFile}!minor\_ver\_@{minor\_ver\_}}
\index{minor\_ver\_@{minor\_ver\_}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{minor\_ver\_}{minor\_ver\_}}
{\footnotesize\ttfamily uint8\+\_\+t aare\+::\+Numpy\+File\+::minor\+\_\+ver\+\_\+ \{\}\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1FileInterface_a44cbe933bbd2cae1f48213121d15bce2}\label{classaare_1_1FileInterface_a44cbe933bbd2cae1f48213121d15bce2}
\index{aare::NumpyFile@{aare::NumpyFile}!version@{version}}
\index{version@{version}!aare::NumpyFile@{aare::NumpyFile}}
\doxysubsubsection{\texorpdfstring{version}{version}}
{\footnotesize\ttfamily std\+::string aare\+::\+File\+Interface\+::version\hspace{0.3cm}{\ttfamily [inherited]}}
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item
file\+\_\+io/include/aare/file\+\_\+io/\mbox{\hyperlink{NumpyFile_8hpp}{Numpy\+File.\+hpp}}\item
file\+\_\+io/src/\mbox{\hyperlink{NumpyFile_8cpp}{Numpy\+File.\+cpp}}\end{DoxyCompactItemize}

Binary file not shown.

View File

@ -0,0 +1,197 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 325.203247
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 1.537500 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 2 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(aare::RawFile) cw
(aare::FileInterface) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(aare::RawFile) 0.000000 0.000000 box
(aare::FileInterface) 0.000000 1.000000 box
% ----- relations -----
solid
0 0.000000 0.000000 out
solid
1 0.000000 1.000000 in

Binary file not shown.

View File

@ -0,0 +1,846 @@
\doxysection{aare\+::Raw\+File Class Reference}
\hypertarget{classaare_1_1RawFile}{}\label{classaare_1_1RawFile}\index{aare::RawFile@{aare::RawFile}}
\doxylink{classaare_1_1RawFile}{Raw\+File} class to read .raw and .json files.
{\ttfamily \#include $<$Raw\+File.\+hpp$>$}
Inheritance diagram for aare\+::Raw\+File\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classaare_1_1RawFile}
\end{center}
\end{figure}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{classaare_1_1RawFile_a2ae421cea7baddb96b3abb212f22b621}{Raw\+File}} (const std\+::filesystem\+::path \&fname, const std\+::string \&mode=\"{}r\"{}, const \mbox{\hyperlink{structaare_1_1FileConfig}{File\+Config}} \&\mbox{\hyperlink{classaare_1_1RawFile_a6a98d519afde63d3b075110e53d244f0}{cfg}}=\{\})
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1RawFile}{Raw\+File} constructor. \end{DoxyCompactList}\item
void \mbox{\hyperlink{classaare_1_1RawFile_ae9312684dfa014dede39e4c81d62abcd}{write}} (\mbox{\hyperlink{classaare_1_1Frame}{Frame}} \&frame) override
\begin{DoxyCompactList}\small\item\em write function is not implemented for \doxylink{classaare_1_1RawFile}{Raw\+File} \end{DoxyCompactList}\item
\mbox{\hyperlink{classaare_1_1Frame}{Frame}} \mbox{\hyperlink{classaare_1_1RawFile_afc6d881b6d2f246f09a595e637afd58c}{read}} () override
\begin{DoxyCompactList}\small\item\em write a vector of frames to the file \end{DoxyCompactList}\item
std\+::vector$<$ \mbox{\hyperlink{classaare_1_1Frame}{Frame}} $>$ \mbox{\hyperlink{classaare_1_1RawFile_a1adf18bc4fd91c620edfc5c9477ad11f}{read}} (size\+\_\+t n\+\_\+frames) override
\begin{DoxyCompactList}\small\item\em read n\+\_\+frames from the file at the current position \end{DoxyCompactList}\item
void \mbox{\hyperlink{classaare_1_1RawFile_afa0228d53554cf5cc192e97474361269}{read\+\_\+into}} (std\+::byte \texorpdfstring{$\ast$}{*}image\+\_\+buf) override
\begin{DoxyCompactList}\small\item\em read one frame from the file at the current position and store it in the provided buffer \end{DoxyCompactList}\item
void \mbox{\hyperlink{classaare_1_1RawFile_ad8dc6726891e1100035631b7365e8d31}{read\+\_\+into}} (std\+::byte \texorpdfstring{$\ast$}{*}image\+\_\+buf, size\+\_\+t n\+\_\+frames) override
\begin{DoxyCompactList}\small\item\em read n\+\_\+frames from the file at the current position and store them in the provided buffer \end{DoxyCompactList}\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1RawFile_a42972170354d7d9cde0b9b9509b63fee}{frame\+\_\+number}} (size\+\_\+t frame\+\_\+index) override
\begin{DoxyCompactList}\small\item\em get the frame number at the given frame index \end{DoxyCompactList}\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1RawFile_ac20d32d75330d179554c2c69292332f0}{bytes\+\_\+per\+\_\+frame}} () override
\begin{DoxyCompactList}\small\item\em get the number of bytess per frame \end{DoxyCompactList}\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1RawFile_ab8935d47a8482c36532ff5cdd91c78da}{pixels}} () override
\begin{DoxyCompactList}\small\item\em get the number of pixels in the frame \end{DoxyCompactList}\item
void \mbox{\hyperlink{classaare_1_1RawFile_a5eef29c0377f5af2e18475e9ae66527c}{seek}} (size\+\_\+t \mbox{\hyperlink{classaare_1_1RawFile_a42972170354d7d9cde0b9b9509b63fee}{frame\+\_\+number}}) override
\begin{DoxyCompactList}\small\item\em seek to the given frame number \end{DoxyCompactList}\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1RawFile_aa0773872c1e6dd2ab86df2bfff35dee8}{tell}} () override
\begin{DoxyCompactList}\small\item\em get the current position of the file pointer \end{DoxyCompactList}\item
void \mbox{\hyperlink{classaare_1_1RawFile_aeebfe5a324fa2f24c9a3353a668a8323}{set\+\_\+config}} (int row, int col)
\begin{DoxyCompactList}\small\item\em set the module gap row and column \end{DoxyCompactList}\item
void \mbox{\hyperlink{classaare_1_1RawFile_ae1f4fa8c6f909beb31e56a57cb452079}{find\+\_\+number\+\_\+of\+\_\+subfiles}} ()
\begin{DoxyCompactList}\small\item\em get the number of subfiles for the \doxylink{classaare_1_1RawFile}{Raw\+File} \end{DoxyCompactList}\item
std\+::filesystem\+::path \mbox{\hyperlink{classaare_1_1RawFile_ad310ff7f4ab8f007974755654c268432}{master\+\_\+fname}} ()
\begin{DoxyCompactList}\small\item\em get the master file name path for the \doxylink{classaare_1_1RawFile}{Raw\+File} \end{DoxyCompactList}\item
std\+::filesystem\+::path \mbox{\hyperlink{classaare_1_1RawFile_a3ceff9543ba1fff7c57513374410fc0c}{data\+\_\+fname}} (int mod\+\_\+id, int file\+\_\+id)
\begin{DoxyCompactList}\small\item\em get the data file name path for the \doxylink{classaare_1_1RawFile}{Raw\+File} with the given module id and file id \end{DoxyCompactList}\item
\mbox{\hyperlink{classaare_1_1RawFile_ab3b4c559fa8bd4041bb32765f5c364d4}{\texorpdfstring{$\sim$}{\string~}\+Raw\+File}} ()
\begin{DoxyCompactList}\small\item\em destructor\+: will delete the subfiles \end{DoxyCompactList}\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1RawFile_a88a1e49617855a0984acf2bd70b3d209}{total\+\_\+frames}} () const override
\begin{DoxyCompactList}\small\item\em get the total number of frames in the file \end{DoxyCompactList}\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1RawFile_a432c1b1f9a922e9951aaed0d221f5ea6}{rows}} () const override
\begin{DoxyCompactList}\small\item\em get the number of rows in the file \end{DoxyCompactList}\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1RawFile_a8b646fd35e7b19740f6358804bba2bce}{cols}} () const override
\begin{DoxyCompactList}\small\item\em get the number of columns in the file \end{DoxyCompactList}\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1RawFile_ae880a6c07caaca176028936a29162ff2}{bitdepth}} () const override
\begin{DoxyCompactList}\small\item\em get the bitdepth of the file \end{DoxyCompactList}\item
\mbox{\hyperlink{classaare_1_1Frame}{Frame}} \mbox{\hyperlink{classaare_1_1FileInterface_aad0827f2dad4403cebdce417243d842c}{iread}} (size\+\_\+t \mbox{\hyperlink{classaare_1_1RawFile_a42972170354d7d9cde0b9b9509b63fee}{frame\+\_\+number}})
\begin{DoxyCompactList}\small\item\em read one frame from the file at the given frame number \end{DoxyCompactList}\item
std\+::vector$<$ \mbox{\hyperlink{classaare_1_1Frame}{Frame}} $>$ \mbox{\hyperlink{classaare_1_1FileInterface_a1a304e356f3c1d100544d6ceeb35c0fb}{iread}} (size\+\_\+t \mbox{\hyperlink{classaare_1_1RawFile_a42972170354d7d9cde0b9b9509b63fee}{frame\+\_\+number}}, size\+\_\+t n\+\_\+frames)
\begin{DoxyCompactList}\small\item\em read n\+\_\+frames from the file starting at the given frame number \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item
static bool \mbox{\hyperlink{classaare_1_1RawFile_ab01258c2c975668a1924aa4a267df685}{is\+\_\+master\+\_\+file}} (std\+::filesystem\+::path fpath)
\begin{DoxyCompactList}\small\item\em check if the file is a master file \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Data Fields}
\begin{DoxyCompactItemize}
\item
std\+::string \mbox{\hyperlink{classaare_1_1FileInterface_ab1d0e6de947affd5af9740eb06888fc6}{m\+\_\+mode}}
\item
std\+::filesystem\+::path \mbox{\hyperlink{classaare_1_1FileInterface_a325f6603f564fb42f8f28f1136b5e329}{m\+\_\+fname}}
\item
std\+::filesystem\+::path \mbox{\hyperlink{classaare_1_1FileInterface_afdd0a1a75618ad5db2f4794e0900b2f4}{m\+\_\+base\+\_\+path}}
\item
std\+::string \mbox{\hyperlink{classaare_1_1FileInterface_adae2b35fc6a3f185e9eb263c97bc024b}{m\+\_\+base\+\_\+name}}
\item
std\+::string \mbox{\hyperlink{classaare_1_1FileInterface_a5fffaf9a7c8ae2b3a2ebe89b9c94ed34}{m\+\_\+ext}}
\item
int \mbox{\hyperlink{classaare_1_1FileInterface_a30e926a897b534ab9a327d40594ff191}{m\+\_\+findex}}
\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1FileInterface_a91551fada444b231294c095f3f5fb768}{m\+\_\+total\+\_\+frames}} \{\}
\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1FileInterface_ab0762d7652c9a4e1afe6dbb7d7325ac9}{max\+\_\+frames\+\_\+per\+\_\+file}} \{\}
\item
std\+::string \mbox{\hyperlink{classaare_1_1FileInterface_a44cbe933bbd2cae1f48213121d15bce2}{version}}
\item
\mbox{\hyperlink{namespaceaare_a5b95afba95553c1e118e1478c69042f7}{Detector\+Type}} \mbox{\hyperlink{classaare_1_1FileInterface_a9476a299cea6b4e97605135a28d0cb60}{m\+\_\+type}}
\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1FileInterface_ae29d98625cf56989e2c5237ace0d0f4c}{m\+\_\+rows}} \{\}
\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1FileInterface_ad4c9991c30a71ba83cbaab283bc756b5}{m\+\_\+cols}} \{\}
\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1FileInterface_a252d27cbbfcdfc528b86925eaac55bb7}{m\+\_\+bitdepth}} \{\}
\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1FileInterface_ab96f5dd0c99fb7b5a527da812368d736}{current\+\_\+frame}} \{\}
\end{DoxyCompactItemize}
\doxysubsubsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item
void \mbox{\hyperlink{classaare_1_1RawFile_ac37989a067cd0b9f22e0f9203b6a9a22}{get\+\_\+frame\+\_\+into}} (size\+\_\+t \mbox{\hyperlink{classaare_1_1RawFile_a42972170354d7d9cde0b9b9509b63fee}{frame\+\_\+number}}, std\+::byte \texorpdfstring{$\ast$}{*}image\+\_\+buf)
\begin{DoxyCompactList}\small\item\em read the frame at the given frame number into the image buffer \end{DoxyCompactList}\item
\mbox{\hyperlink{classaare_1_1Frame}{Frame}} \mbox{\hyperlink{classaare_1_1RawFile_a7a035699488278961f601e5d23bd7154}{get\+\_\+frame}} (size\+\_\+t \mbox{\hyperlink{classaare_1_1RawFile_a42972170354d7d9cde0b9b9509b63fee}{frame\+\_\+number}})
\begin{DoxyCompactList}\small\item\em get the frame at the given frame number \end{DoxyCompactList}\item
void \mbox{\hyperlink{classaare_1_1RawFile_a57d281f40683621a40bae3ac78e6489c}{parse\+\_\+fname}} ()
\begin{DoxyCompactList}\small\item\em parse the file name to get the extension, base name and index \end{DoxyCompactList}\item
void \mbox{\hyperlink{classaare_1_1RawFile_a2937ce909e9c9a8f3c55c4eebe2e0493}{parse\+\_\+metadata}} ()
\begin{DoxyCompactList}\small\item\em parse the metadata from the file \end{DoxyCompactList}\item
void \mbox{\hyperlink{classaare_1_1RawFile_adbe11ff4722d5938bc1f4b7a9808216a}{parse\+\_\+raw\+\_\+metadata}} ()
\begin{DoxyCompactList}\small\item\em parse the metadata of a .raw file \end{DoxyCompactList}\item
void \mbox{\hyperlink{classaare_1_1RawFile_ae8a1f274417363cb6c112a065065f395}{parse\+\_\+json\+\_\+metadata}} ()
\begin{DoxyCompactList}\small\item\em parse the metadata of a .json file \end{DoxyCompactList}\item
void \mbox{\hyperlink{classaare_1_1RawFile_aca4db4b540a58dc78f65124f159192b5}{find\+\_\+geometry}} ()
\begin{DoxyCompactList}\small\item\em finds the geometry of the file \end{DoxyCompactList}\item
\mbox{\hyperlink{structaare_1_1sls__detector__header}{sls\+\_\+detector\+\_\+header}} \mbox{\hyperlink{classaare_1_1RawFile_a87d4af5d79244e7f1d69ab3a66e2bd10}{read\+\_\+header}} (const std\+::filesystem\+::path \&fname)
\begin{DoxyCompactList}\small\item\em read the header of the file \end{DoxyCompactList}\item
void \mbox{\hyperlink{classaare_1_1RawFile_a778b1fcb1d5fcfdfb57c15642a6775e0}{open\+\_\+subfiles}} ()
\begin{DoxyCompactList}\small\item\em open the subfiles \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1RawFile_ad256cf93af5d382fcd9381ad50db6f94}{n\+\_\+subfiles}}
\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1RawFile_ac1493a619e12568437f95bf1b8ae5c51}{n\+\_\+subfile\+\_\+parts}}
\item
std\+::vector$<$ std\+::vector$<$ \mbox{\hyperlink{classaare_1_1SubFile}{Sub\+File}} \texorpdfstring{$\ast$}{*} $>$ $>$ \mbox{\hyperlink{classaare_1_1RawFile_a310a0a7c3e49e112117ebed8bfdf199d}{subfiles}}
\item
int \mbox{\hyperlink{classaare_1_1RawFile_ab1a3902a51ded3c1823937a914c7d458}{subfile\+\_\+rows}}
\item
int \mbox{\hyperlink{classaare_1_1RawFile_ae322f1b62cfa7e4ebeb1ccae51a799f2}{subfile\+\_\+cols}}
\item
\mbox{\hyperlink{structaare_1_1xy}{xy}} \mbox{\hyperlink{classaare_1_1RawFile_a913ff02d0893519b290a121da13ac1e2}{geometry}}
\item
std\+::vector$<$ \mbox{\hyperlink{structaare_1_1xy}{xy}} $>$ \mbox{\hyperlink{classaare_1_1RawFile_a8be8d44e86171815bf54031b00fa1610}{positions}}
\item
\mbox{\hyperlink{structaare_1_1RawFileConfig}{Raw\+File\+Config}} \mbox{\hyperlink{classaare_1_1RawFile_a6a98d519afde63d3b075110e53d244f0}{cfg}} \{0, 0\}
\item
\mbox{\hyperlink{namespaceaare_a180255836568df302c95b5ca87dc5355}{Timing\+Mode}} \mbox{\hyperlink{classaare_1_1RawFile_a333f2ee8aec487d0e4cbf7973fafaec4}{timing\+\_\+mode}}
\item
bool \mbox{\hyperlink{classaare_1_1RawFile_ad2e86859abde675cab13a68eeaea0e55}{quad}} \{false\}
\end{DoxyCompactItemize}
\doxysubsection{Detailed Description}
\doxylink{classaare_1_1RawFile}{Raw\+File} class to read .raw and .json files.
\begin{DoxyNote}{Note}
derived from \doxylink{classaare_1_1FileInterface}{File\+Interface}
documentation can also be found in the \doxylink{classaare_1_1FileInterface}{File\+Interface} class
\end{DoxyNote}
\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classaare_1_1RawFile_a2ae421cea7baddb96b3abb212f22b621}\label{classaare_1_1RawFile_a2ae421cea7baddb96b3abb212f22b621}
\index{aare::RawFile@{aare::RawFile}!RawFile@{RawFile}}
\index{RawFile@{RawFile}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{RawFile()}{RawFile()}}
{\footnotesize\ttfamily aare\+::\+Raw\+File\+::\+Raw\+File (\begin{DoxyParamCaption}\item[{const std\+::filesystem\+::path \&}]{fname, }\item[{const std\+::string \&}]{mode = {\ttfamily \"{}r\"{}}, }\item[{const \mbox{\hyperlink{structaare_1_1FileConfig}{File\+Config}} \&}]{cfg = {\ttfamily \{\}} }\end{DoxyParamCaption})}
\doxylink{classaare_1_1RawFile}{Raw\+File} constructor.
\begin{DoxyParams}{Parameters}
{\em fname} & path to the file \\
\hline
{\em mode} & file mode (r, w) \\
\hline
{\em cfg} & file configuration \\
\hline
\end{DoxyParams}
\Hypertarget{classaare_1_1RawFile_ab3b4c559fa8bd4041bb32765f5c364d4}\label{classaare_1_1RawFile_ab3b4c559fa8bd4041bb32765f5c364d4}
\index{aare::RawFile@{aare::RawFile}!````~RawFile@{\texorpdfstring{$\sim$}{\string~}RawFile}}
\index{````~RawFile@{\texorpdfstring{$\sim$}{\string~}RawFile}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{\texorpdfstring{$\sim$}{\string~}RawFile()}{\string~RawFile()}}
{\footnotesize\ttfamily aare\+::\+Raw\+File\+::\texorpdfstring{$\sim$}{\string~}\+Raw\+File (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
destructor\+: will delete the subfiles
\doxysubsection{Member Function Documentation}
\Hypertarget{classaare_1_1RawFile_ae880a6c07caaca176028936a29162ff2}\label{classaare_1_1RawFile_ae880a6c07caaca176028936a29162ff2}
\index{aare::RawFile@{aare::RawFile}!bitdepth@{bitdepth}}
\index{bitdepth@{bitdepth}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{bitdepth()}{bitdepth()}}
{\footnotesize\ttfamily ssize\+\_\+t aare\+::\+Raw\+File\+::bitdepth (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}
get the bitdepth of the file
\begin{DoxyReturn}{Returns}
bitdepth of the file
\end{DoxyReturn}
Implements \mbox{\hyperlink{classaare_1_1FileInterface_a8bfd7abf4271210000b2ef8d1c0d6149}{aare\+::\+File\+Interface}}.
\Hypertarget{classaare_1_1RawFile_ac20d32d75330d179554c2c69292332f0}\label{classaare_1_1RawFile_ac20d32d75330d179554c2c69292332f0}
\index{aare::RawFile@{aare::RawFile}!bytes\_per\_frame@{bytes\_per\_frame}}
\index{bytes\_per\_frame@{bytes\_per\_frame}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{bytes\_per\_frame()}{bytes\_per\_frame()}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+Raw\+File\+::bytes\+\_\+per\+\_\+frame (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}
get the number of bytess per frame
\begin{DoxyReturn}{Returns}
size of one frame in bytes
\end{DoxyReturn}
Implements \mbox{\hyperlink{classaare_1_1FileInterface_aab236d5b808f2acc44266281274ed93a}{aare\+::\+File\+Interface}}.
\Hypertarget{classaare_1_1RawFile_a8b646fd35e7b19740f6358804bba2bce}\label{classaare_1_1RawFile_a8b646fd35e7b19740f6358804bba2bce}
\index{aare::RawFile@{aare::RawFile}!cols@{cols}}
\index{cols@{cols}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{cols()}{cols()}}
{\footnotesize\ttfamily ssize\+\_\+t aare\+::\+Raw\+File\+::cols (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}
get the number of columns in the file
\begin{DoxyReturn}{Returns}
number of columns in the file
\end{DoxyReturn}
Implements \mbox{\hyperlink{classaare_1_1FileInterface_a2927ba0e6a564bcd0da139a552c09b76}{aare\+::\+File\+Interface}}.
\Hypertarget{classaare_1_1RawFile_a3ceff9543ba1fff7c57513374410fc0c}\label{classaare_1_1RawFile_a3ceff9543ba1fff7c57513374410fc0c}
\index{aare::RawFile@{aare::RawFile}!data\_fname@{data\_fname}}
\index{data\_fname@{data\_fname}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{data\_fname()}{data\_fname()}}
{\footnotesize\ttfamily std\+::filesystem\+::path aare\+::\+Raw\+File\+::data\+\_\+fname (\begin{DoxyParamCaption}\item[{int}]{mod\+\_\+id, }\item[{int}]{file\+\_\+id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
get the data file name path for the \doxylink{classaare_1_1RawFile}{Raw\+File} with the given module id and file id
\begin{DoxyParams}{Parameters}
{\em mod\+\_\+id} & module id \\
\hline
{\em file\+\_\+id} & file id \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
path to the data file
\end{DoxyReturn}
\Hypertarget{classaare_1_1RawFile_aca4db4b540a58dc78f65124f159192b5}\label{classaare_1_1RawFile_aca4db4b540a58dc78f65124f159192b5}
\index{aare::RawFile@{aare::RawFile}!find\_geometry@{find\_geometry}}
\index{find\_geometry@{find\_geometry}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{find\_geometry()}{find\_geometry()}}
{\footnotesize\ttfamily void aare\+::\+Raw\+File\+::find\+\_\+geometry (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}
finds the geometry of the file
\Hypertarget{classaare_1_1RawFile_ae1f4fa8c6f909beb31e56a57cb452079}\label{classaare_1_1RawFile_ae1f4fa8c6f909beb31e56a57cb452079}
\index{aare::RawFile@{aare::RawFile}!find\_number\_of\_subfiles@{find\_number\_of\_subfiles}}
\index{find\_number\_of\_subfiles@{find\_number\_of\_subfiles}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{find\_number\_of\_subfiles()}{find\_number\_of\_subfiles()}}
{\footnotesize\ttfamily void aare\+::\+Raw\+File\+::find\+\_\+number\+\_\+of\+\_\+subfiles (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
get the number of subfiles for the \doxylink{classaare_1_1RawFile}{Raw\+File}
\begin{DoxyReturn}{Returns}
number of subfiles
\end{DoxyReturn}
\Hypertarget{classaare_1_1RawFile_a42972170354d7d9cde0b9b9509b63fee}\label{classaare_1_1RawFile_a42972170354d7d9cde0b9b9509b63fee}
\index{aare::RawFile@{aare::RawFile}!frame\_number@{frame\_number}}
\index{frame\_number@{frame\_number}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{frame\_number()}{frame\_number()}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+Raw\+File\+::frame\+\_\+number (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{frame\+\_\+index }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
get the frame number at the given frame index
\begin{DoxyParams}{Parameters}
{\em frame\+\_\+index} & index of the frame \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
frame number
\end{DoxyReturn}
Implements \mbox{\hyperlink{classaare_1_1FileInterface_ac6d10d468f79e855a3334cd1347c1178}{aare\+::\+File\+Interface}}.
\Hypertarget{classaare_1_1RawFile_a7a035699488278961f601e5d23bd7154}\label{classaare_1_1RawFile_a7a035699488278961f601e5d23bd7154}
\index{aare::RawFile@{aare::RawFile}!get\_frame@{get\_frame}}
\index{get\_frame@{get\_frame}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{get\_frame()}{get\_frame()}}
{\footnotesize\ttfamily \mbox{\hyperlink{classaare_1_1Frame}{Frame}} aare\+::\+Raw\+File\+::get\+\_\+frame (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{frame\+\_\+number }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}
get the frame at the given frame number
\begin{DoxyParams}{Parameters}
{\em frame\+\_\+number} & frame number to read \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\doxylink{classaare_1_1Frame}{Frame}
\end{DoxyReturn}
\Hypertarget{classaare_1_1RawFile_ac37989a067cd0b9f22e0f9203b6a9a22}\label{classaare_1_1RawFile_ac37989a067cd0b9f22e0f9203b6a9a22}
\index{aare::RawFile@{aare::RawFile}!get\_frame\_into@{get\_frame\_into}}
\index{get\_frame\_into@{get\_frame\_into}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{get\_frame\_into()}{get\_frame\_into()}}
{\footnotesize\ttfamily void aare\+::\+Raw\+File\+::get\+\_\+frame\+\_\+into (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{frame\+\_\+number, }\item[{std\+::byte \texorpdfstring{$\ast$}{*}}]{image\+\_\+buf }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}
read the frame at the given frame number into the image buffer
\begin{DoxyParams}{Parameters}
{\em frame\+\_\+number} & frame number to read \\
\hline
{\em image\+\_\+buf} & buffer to store the frame \\
\hline
\end{DoxyParams}
\Hypertarget{classaare_1_1FileInterface_aad0827f2dad4403cebdce417243d842c}\label{classaare_1_1FileInterface_aad0827f2dad4403cebdce417243d842c}
\index{aare::RawFile@{aare::RawFile}!iread@{iread}}
\index{iread@{iread}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{iread()}{iread()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{classaare_1_1Frame}{Frame}} aare\+::\+File\+Interface\+::iread (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{frame\+\_\+number }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [inherited]}}
read one frame from the file at the given frame number
\begin{DoxyParams}{Parameters}
{\em frame\+\_\+number} & frame number to read \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
frame
\end{DoxyReturn}
\Hypertarget{classaare_1_1FileInterface_a1a304e356f3c1d100544d6ceeb35c0fb}\label{classaare_1_1FileInterface_a1a304e356f3c1d100544d6ceeb35c0fb}
\index{aare::RawFile@{aare::RawFile}!iread@{iread}}
\index{iread@{iread}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{iread()}{iread()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily std\+::vector$<$ \mbox{\hyperlink{classaare_1_1Frame}{Frame}} $>$ aare\+::\+File\+Interface\+::iread (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{frame\+\_\+number, }\item[{size\+\_\+t}]{n\+\_\+frames }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [inherited]}}
read n\+\_\+frames from the file starting at the given frame number
\begin{DoxyParams}{Parameters}
{\em frame\+\_\+number} & frame number to start reading from \\
\hline
{\em n\+\_\+frames} & number of frames to read \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
vector of frames
\end{DoxyReturn}
\Hypertarget{classaare_1_1RawFile_ab01258c2c975668a1924aa4a267df685}\label{classaare_1_1RawFile_ab01258c2c975668a1924aa4a267df685}
\index{aare::RawFile@{aare::RawFile}!is\_master\_file@{is\_master\_file}}
\index{is\_master\_file@{is\_master\_file}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{is\_master\_file()}{is\_master\_file()}}
{\footnotesize\ttfamily bool aare\+::\+Raw\+File\+::is\+\_\+master\+\_\+file (\begin{DoxyParamCaption}\item[{std\+::filesystem\+::path}]{fpath }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
check if the file is a master file
\begin{DoxyParams}{Parameters}
{\em fpath} & path to the file \\
\hline
\end{DoxyParams}
\Hypertarget{classaare_1_1RawFile_ad310ff7f4ab8f007974755654c268432}\label{classaare_1_1RawFile_ad310ff7f4ab8f007974755654c268432}
\index{aare::RawFile@{aare::RawFile}!master\_fname@{master\_fname}}
\index{master\_fname@{master\_fname}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{master\_fname()}{master\_fname()}}
{\footnotesize\ttfamily std\+::filesystem\+::path aare\+::\+Raw\+File\+::master\+\_\+fname (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
get the master file name path for the \doxylink{classaare_1_1RawFile}{Raw\+File}
\begin{DoxyReturn}{Returns}
path to the master file
\end{DoxyReturn}
\Hypertarget{classaare_1_1RawFile_a778b1fcb1d5fcfdfb57c15642a6775e0}\label{classaare_1_1RawFile_a778b1fcb1d5fcfdfb57c15642a6775e0}
\index{aare::RawFile@{aare::RawFile}!open\_subfiles@{open\_subfiles}}
\index{open\_subfiles@{open\_subfiles}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{open\_subfiles()}{open\_subfiles()}}
{\footnotesize\ttfamily void aare\+::\+Raw\+File\+::open\+\_\+subfiles (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}
open the subfiles
\Hypertarget{classaare_1_1RawFile_a57d281f40683621a40bae3ac78e6489c}\label{classaare_1_1RawFile_a57d281f40683621a40bae3ac78e6489c}
\index{aare::RawFile@{aare::RawFile}!parse\_fname@{parse\_fname}}
\index{parse\_fname@{parse\_fname}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{parse\_fname()}{parse\_fname()}}
{\footnotesize\ttfamily void aare\+::\+Raw\+File\+::parse\+\_\+fname (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}
parse the file name to get the extension, base name and index
\Hypertarget{classaare_1_1RawFile_ae8a1f274417363cb6c112a065065f395}\label{classaare_1_1RawFile_ae8a1f274417363cb6c112a065065f395}
\index{aare::RawFile@{aare::RawFile}!parse\_json\_metadata@{parse\_json\_metadata}}
\index{parse\_json\_metadata@{parse\_json\_metadata}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{parse\_json\_metadata()}{parse\_json\_metadata()}}
{\footnotesize\ttfamily void aare\+::\+Raw\+File\+::parse\+\_\+json\+\_\+metadata (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}
parse the metadata of a .json file
\Hypertarget{classaare_1_1RawFile_a2937ce909e9c9a8f3c55c4eebe2e0493}\label{classaare_1_1RawFile_a2937ce909e9c9a8f3c55c4eebe2e0493}
\index{aare::RawFile@{aare::RawFile}!parse\_metadata@{parse\_metadata}}
\index{parse\_metadata@{parse\_metadata}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{parse\_metadata()}{parse\_metadata()}}
{\footnotesize\ttfamily void aare\+::\+Raw\+File\+::parse\+\_\+metadata (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}
parse the metadata from the file
\Hypertarget{classaare_1_1RawFile_adbe11ff4722d5938bc1f4b7a9808216a}\label{classaare_1_1RawFile_adbe11ff4722d5938bc1f4b7a9808216a}
\index{aare::RawFile@{aare::RawFile}!parse\_raw\_metadata@{parse\_raw\_metadata}}
\index{parse\_raw\_metadata@{parse\_raw\_metadata}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{parse\_raw\_metadata()}{parse\_raw\_metadata()}}
{\footnotesize\ttfamily void aare\+::\+Raw\+File\+::parse\+\_\+raw\+\_\+metadata (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}
parse the metadata of a .raw file
\Hypertarget{classaare_1_1RawFile_ab8935d47a8482c36532ff5cdd91c78da}\label{classaare_1_1RawFile_ab8935d47a8482c36532ff5cdd91c78da}
\index{aare::RawFile@{aare::RawFile}!pixels@{pixels}}
\index{pixels@{pixels}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{pixels()}{pixels()}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+Raw\+File\+::pixels (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}
get the number of pixels in the frame
\begin{DoxyReturn}{Returns}
number of pixels
\end{DoxyReturn}
Implements \mbox{\hyperlink{classaare_1_1FileInterface_a99da51594609984efe62bb64a88a3fa6}{aare\+::\+File\+Interface}}.
\Hypertarget{classaare_1_1RawFile_afc6d881b6d2f246f09a595e637afd58c}\label{classaare_1_1RawFile_afc6d881b6d2f246f09a595e637afd58c}
\index{aare::RawFile@{aare::RawFile}!read@{read}}
\index{read@{read}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{read()}{read()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{classaare_1_1Frame}{Frame}} aare\+::\+Raw\+File\+::read (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}
write a vector of frames to the file
\begin{DoxyParams}{Parameters}
{\em frames} & vector of frames to write \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void
\end{DoxyReturn}
read one frame from the file at the current position \begin{DoxyReturn}{Returns}
\doxylink{classaare_1_1Frame}{Frame}
\end{DoxyReturn}
Implements \mbox{\hyperlink{classaare_1_1FileInterface_a9cb196de2bee8638578e4ba3ce46532e}{aare\+::\+File\+Interface}}.
\Hypertarget{classaare_1_1RawFile_a1adf18bc4fd91c620edfc5c9477ad11f}\label{classaare_1_1RawFile_a1adf18bc4fd91c620edfc5c9477ad11f}
\index{aare::RawFile@{aare::RawFile}!read@{read}}
\index{read@{read}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{read()}{read()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily std\+::vector$<$ \mbox{\hyperlink{classaare_1_1Frame}{Frame}} $>$ aare\+::\+Raw\+File\+::read (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{n\+\_\+frames }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
read n\+\_\+frames from the file at the current position
\begin{DoxyParams}{Parameters}
{\em n\+\_\+frames} & number of frames to read \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
vector of frames
\end{DoxyReturn}
Implements \mbox{\hyperlink{classaare_1_1FileInterface_a1624d72f0feb1c19d507cc91c4cb414a}{aare\+::\+File\+Interface}}.
\Hypertarget{classaare_1_1RawFile_a87d4af5d79244e7f1d69ab3a66e2bd10}\label{classaare_1_1RawFile_a87d4af5d79244e7f1d69ab3a66e2bd10}
\index{aare::RawFile@{aare::RawFile}!read\_header@{read\_header}}
\index{read\_header@{read\_header}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{read\_header()}{read\_header()}}
{\footnotesize\ttfamily \mbox{\hyperlink{structaare_1_1sls__detector__header}{sls\+\_\+detector\+\_\+header}} aare\+::\+Raw\+File\+::read\+\_\+header (\begin{DoxyParamCaption}\item[{const std\+::filesystem\+::path \&}]{fname }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}
read the header of the file
\begin{DoxyParams}{Parameters}
{\em fname} & path to the data subfile \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\doxylink{structaare_1_1sls__detector__header}{sls\+\_\+detector\+\_\+header}
\end{DoxyReturn}
\Hypertarget{classaare_1_1RawFile_afa0228d53554cf5cc192e97474361269}\label{classaare_1_1RawFile_afa0228d53554cf5cc192e97474361269}
\index{aare::RawFile@{aare::RawFile}!read\_into@{read\_into}}
\index{read\_into@{read\_into}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{read\_into()}{read\_into()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void aare\+::\+Raw\+File\+::read\+\_\+into (\begin{DoxyParamCaption}\item[{std\+::byte \texorpdfstring{$\ast$}{*}}]{image\+\_\+buf }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}
read one frame from the file at the current position and store it in the provided buffer
\begin{DoxyParams}{Parameters}
{\em image\+\_\+buf} & buffer to store the frame \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void
\end{DoxyReturn}
Implements \mbox{\hyperlink{classaare_1_1FileInterface_a4ac0f4e63ccf90af9f0d5b9b44db856c}{aare\+::\+File\+Interface}}.
\Hypertarget{classaare_1_1RawFile_ad8dc6726891e1100035631b7365e8d31}\label{classaare_1_1RawFile_ad8dc6726891e1100035631b7365e8d31}
\index{aare::RawFile@{aare::RawFile}!read\_into@{read\_into}}
\index{read\_into@{read\_into}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{read\_into()}{read\_into()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void aare\+::\+Raw\+File\+::read\+\_\+into (\begin{DoxyParamCaption}\item[{std\+::byte \texorpdfstring{$\ast$}{*}}]{image\+\_\+buf, }\item[{size\+\_\+t}]{n\+\_\+frames }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
read n\+\_\+frames from the file at the current position and store them in the provided buffer
\begin{DoxyParams}{Parameters}
{\em image\+\_\+buf} & buffer to store the frames \\
\hline
{\em n\+\_\+frames} & number of frames to read \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void
\end{DoxyReturn}
Implements \mbox{\hyperlink{classaare_1_1FileInterface_a580c71b3eecf45ce2140cd65103cfd43}{aare\+::\+File\+Interface}}.
\Hypertarget{classaare_1_1RawFile_a432c1b1f9a922e9951aaed0d221f5ea6}\label{classaare_1_1RawFile_a432c1b1f9a922e9951aaed0d221f5ea6}
\index{aare::RawFile@{aare::RawFile}!rows@{rows}}
\index{rows@{rows}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{rows()}{rows()}}
{\footnotesize\ttfamily ssize\+\_\+t aare\+::\+Raw\+File\+::rows (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}
get the number of rows in the file
\begin{DoxyReturn}{Returns}
number of rows in the file
\end{DoxyReturn}
Implements \mbox{\hyperlink{classaare_1_1FileInterface_a8a5bc2d9b7b9ec1a9a100bf8a114d909}{aare\+::\+File\+Interface}}.
\Hypertarget{classaare_1_1RawFile_a5eef29c0377f5af2e18475e9ae66527c}\label{classaare_1_1RawFile_a5eef29c0377f5af2e18475e9ae66527c}
\index{aare::RawFile@{aare::RawFile}!seek@{seek}}
\index{seek@{seek}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{seek()}{seek()}}
{\footnotesize\ttfamily void aare\+::\+Raw\+File\+::seek (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{frame\+\_\+number }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}
seek to the given frame number
\begin{DoxyParams}{Parameters}
{\em frame\+\_\+number} & frame number to seek to \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void
\end{DoxyReturn}
Implements \mbox{\hyperlink{classaare_1_1FileInterface_a49510fb96eaa245fd5d2be7f25a40b74}{aare\+::\+File\+Interface}}.
\Hypertarget{classaare_1_1RawFile_aeebfe5a324fa2f24c9a3353a668a8323}\label{classaare_1_1RawFile_aeebfe5a324fa2f24c9a3353a668a8323}
\index{aare::RawFile@{aare::RawFile}!set\_config@{set\_config}}
\index{set\_config@{set\_config}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{set\_config()}{set\_config()}}
{\footnotesize\ttfamily void aare\+::\+Raw\+File\+::set\+\_\+config (\begin{DoxyParamCaption}\item[{int}]{row, }\item[{int}]{col }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
set the module gap row and column
\begin{DoxyParams}{Parameters}
{\em row} & gap between rows \\
\hline
{\em col} & gap between columns \\
\hline
\end{DoxyParams}
\Hypertarget{classaare_1_1RawFile_aa0773872c1e6dd2ab86df2bfff35dee8}\label{classaare_1_1RawFile_aa0773872c1e6dd2ab86df2bfff35dee8}
\index{aare::RawFile@{aare::RawFile}!tell@{tell}}
\index{tell@{tell}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{tell()}{tell()}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+Raw\+File\+::tell (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}
get the current position of the file pointer
\begin{DoxyReturn}{Returns}
current position of the file pointer
\end{DoxyReturn}
Implements \mbox{\hyperlink{classaare_1_1FileInterface_abd01811dcf904625b4dbd78dd9188de4}{aare\+::\+File\+Interface}}.
\Hypertarget{classaare_1_1RawFile_a88a1e49617855a0984acf2bd70b3d209}\label{classaare_1_1RawFile_a88a1e49617855a0984acf2bd70b3d209}
\index{aare::RawFile@{aare::RawFile}!total\_frames@{total\_frames}}
\index{total\_frames@{total\_frames}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{total\_frames()}{total\_frames()}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+Raw\+File\+::total\+\_\+frames (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}
get the total number of frames in the file
\begin{DoxyReturn}{Returns}
total number of frames in the file
\end{DoxyReturn}
Implements \mbox{\hyperlink{classaare_1_1FileInterface_ad4391bafd11f77f807114ba5108071d3}{aare\+::\+File\+Interface}}.
\Hypertarget{classaare_1_1RawFile_ae9312684dfa014dede39e4c81d62abcd}\label{classaare_1_1RawFile_ae9312684dfa014dede39e4c81d62abcd}
\index{aare::RawFile@{aare::RawFile}!write@{write}}
\index{write@{write}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{write()}{write()}}
{\footnotesize\ttfamily void aare\+::\+Raw\+File\+::write (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classaare_1_1Frame}{Frame}} \&}]{frame }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}
write function is not implemented for \doxylink{classaare_1_1RawFile}{Raw\+File}
\begin{DoxyParams}{Parameters}
{\em frame} & frame to write \\
\hline
\end{DoxyParams}
Implements \mbox{\hyperlink{classaare_1_1FileInterface_a5d39033c9d218d53d51413b99bf7d1f4}{aare\+::\+File\+Interface}}.
\doxysubsection{Field Documentation}
\Hypertarget{classaare_1_1RawFile_a6a98d519afde63d3b075110e53d244f0}\label{classaare_1_1RawFile_a6a98d519afde63d3b075110e53d244f0}
\index{aare::RawFile@{aare::RawFile}!cfg@{cfg}}
\index{cfg@{cfg}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{cfg}{cfg}}
{\footnotesize\ttfamily \mbox{\hyperlink{structaare_1_1RawFileConfig}{Raw\+File\+Config}} aare\+::\+Raw\+File\+::cfg \{0, 0\}\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1FileInterface_ab96f5dd0c99fb7b5a527da812368d736}\label{classaare_1_1FileInterface_ab96f5dd0c99fb7b5a527da812368d736}
\index{aare::RawFile@{aare::RawFile}!current\_frame@{current\_frame}}
\index{current\_frame@{current\_frame}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{current\_frame}{current\_frame}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+File\+Interface\+::current\+\_\+frame \{\}\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1RawFile_a913ff02d0893519b290a121da13ac1e2}\label{classaare_1_1RawFile_a913ff02d0893519b290a121da13ac1e2}
\index{aare::RawFile@{aare::RawFile}!geometry@{geometry}}
\index{geometry@{geometry}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{geometry}{geometry}}
{\footnotesize\ttfamily \mbox{\hyperlink{structaare_1_1xy}{xy}} aare\+::\+Raw\+File\+::geometry\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1FileInterface_adae2b35fc6a3f185e9eb263c97bc024b}\label{classaare_1_1FileInterface_adae2b35fc6a3f185e9eb263c97bc024b}
\index{aare::RawFile@{aare::RawFile}!m\_base\_name@{m\_base\_name}}
\index{m\_base\_name@{m\_base\_name}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{m\_base\_name}{m\_base\_name}}
{\footnotesize\ttfamily std\+::string aare\+::\+File\+Interface\+::m\+\_\+base\+\_\+name\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1FileInterface_afdd0a1a75618ad5db2f4794e0900b2f4}\label{classaare_1_1FileInterface_afdd0a1a75618ad5db2f4794e0900b2f4}
\index{aare::RawFile@{aare::RawFile}!m\_base\_path@{m\_base\_path}}
\index{m\_base\_path@{m\_base\_path}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{m\_base\_path}{m\_base\_path}}
{\footnotesize\ttfamily std\+::filesystem\+::path aare\+::\+File\+Interface\+::m\+\_\+base\+\_\+path\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1FileInterface_a252d27cbbfcdfc528b86925eaac55bb7}\label{classaare_1_1FileInterface_a252d27cbbfcdfc528b86925eaac55bb7}
\index{aare::RawFile@{aare::RawFile}!m\_bitdepth@{m\_bitdepth}}
\index{m\_bitdepth@{m\_bitdepth}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{m\_bitdepth}{m\_bitdepth}}
{\footnotesize\ttfamily ssize\+\_\+t aare\+::\+File\+Interface\+::m\+\_\+bitdepth \{\}\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1FileInterface_ad4c9991c30a71ba83cbaab283bc756b5}\label{classaare_1_1FileInterface_ad4c9991c30a71ba83cbaab283bc756b5}
\index{aare::RawFile@{aare::RawFile}!m\_cols@{m\_cols}}
\index{m\_cols@{m\_cols}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{m\_cols}{m\_cols}}
{\footnotesize\ttfamily ssize\+\_\+t aare\+::\+File\+Interface\+::m\+\_\+cols \{\}\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1FileInterface_a5fffaf9a7c8ae2b3a2ebe89b9c94ed34}\label{classaare_1_1FileInterface_a5fffaf9a7c8ae2b3a2ebe89b9c94ed34}
\index{aare::RawFile@{aare::RawFile}!m\_ext@{m\_ext}}
\index{m\_ext@{m\_ext}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{m\_ext}{m\_ext}}
{\footnotesize\ttfamily std\+::string aare\+::\+File\+Interface\+::m\+\_\+ext\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1FileInterface_a30e926a897b534ab9a327d40594ff191}\label{classaare_1_1FileInterface_a30e926a897b534ab9a327d40594ff191}
\index{aare::RawFile@{aare::RawFile}!m\_findex@{m\_findex}}
\index{m\_findex@{m\_findex}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{m\_findex}{m\_findex}}
{\footnotesize\ttfamily int aare\+::\+File\+Interface\+::m\+\_\+findex\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1FileInterface_a325f6603f564fb42f8f28f1136b5e329}\label{classaare_1_1FileInterface_a325f6603f564fb42f8f28f1136b5e329}
\index{aare::RawFile@{aare::RawFile}!m\_fname@{m\_fname}}
\index{m\_fname@{m\_fname}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{m\_fname}{m\_fname}}
{\footnotesize\ttfamily std\+::filesystem\+::path aare\+::\+File\+Interface\+::m\+\_\+fname\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1FileInterface_ab1d0e6de947affd5af9740eb06888fc6}\label{classaare_1_1FileInterface_ab1d0e6de947affd5af9740eb06888fc6}
\index{aare::RawFile@{aare::RawFile}!m\_mode@{m\_mode}}
\index{m\_mode@{m\_mode}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{m\_mode}{m\_mode}}
{\footnotesize\ttfamily std\+::string aare\+::\+File\+Interface\+::m\+\_\+mode\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1FileInterface_ae29d98625cf56989e2c5237ace0d0f4c}\label{classaare_1_1FileInterface_ae29d98625cf56989e2c5237ace0d0f4c}
\index{aare::RawFile@{aare::RawFile}!m\_rows@{m\_rows}}
\index{m\_rows@{m\_rows}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{m\_rows}{m\_rows}}
{\footnotesize\ttfamily ssize\+\_\+t aare\+::\+File\+Interface\+::m\+\_\+rows \{\}\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1FileInterface_a91551fada444b231294c095f3f5fb768}\label{classaare_1_1FileInterface_a91551fada444b231294c095f3f5fb768}
\index{aare::RawFile@{aare::RawFile}!m\_total\_frames@{m\_total\_frames}}
\index{m\_total\_frames@{m\_total\_frames}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{m\_total\_frames}{m\_total\_frames}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+File\+Interface\+::m\+\_\+total\+\_\+frames \{\}\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1FileInterface_a9476a299cea6b4e97605135a28d0cb60}\label{classaare_1_1FileInterface_a9476a299cea6b4e97605135a28d0cb60}
\index{aare::RawFile@{aare::RawFile}!m\_type@{m\_type}}
\index{m\_type@{m\_type}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{m\_type}{m\_type}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespaceaare_a5b95afba95553c1e118e1478c69042f7}{Detector\+Type}} aare\+::\+File\+Interface\+::m\+\_\+type\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1FileInterface_ab0762d7652c9a4e1afe6dbb7d7325ac9}\label{classaare_1_1FileInterface_ab0762d7652c9a4e1afe6dbb7d7325ac9}
\index{aare::RawFile@{aare::RawFile}!max\_frames\_per\_file@{max\_frames\_per\_file}}
\index{max\_frames\_per\_file@{max\_frames\_per\_file}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{max\_frames\_per\_file}{max\_frames\_per\_file}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+File\+Interface\+::max\+\_\+frames\+\_\+per\+\_\+file \{\}\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1RawFile_ac1493a619e12568437f95bf1b8ae5c51}\label{classaare_1_1RawFile_ac1493a619e12568437f95bf1b8ae5c51}
\index{aare::RawFile@{aare::RawFile}!n\_subfile\_parts@{n\_subfile\_parts}}
\index{n\_subfile\_parts@{n\_subfile\_parts}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{n\_subfile\_parts}{n\_subfile\_parts}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+Raw\+File\+::n\+\_\+subfile\+\_\+parts\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1RawFile_ad256cf93af5d382fcd9381ad50db6f94}\label{classaare_1_1RawFile_ad256cf93af5d382fcd9381ad50db6f94}
\index{aare::RawFile@{aare::RawFile}!n\_subfiles@{n\_subfiles}}
\index{n\_subfiles@{n\_subfiles}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{n\_subfiles}{n\_subfiles}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+Raw\+File\+::n\+\_\+subfiles\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1RawFile_a8be8d44e86171815bf54031b00fa1610}\label{classaare_1_1RawFile_a8be8d44e86171815bf54031b00fa1610}
\index{aare::RawFile@{aare::RawFile}!positions@{positions}}
\index{positions@{positions}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{positions}{positions}}
{\footnotesize\ttfamily std\+::vector$<$\mbox{\hyperlink{structaare_1_1xy}{xy}}$>$ aare\+::\+Raw\+File\+::positions\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1RawFile_ad2e86859abde675cab13a68eeaea0e55}\label{classaare_1_1RawFile_ad2e86859abde675cab13a68eeaea0e55}
\index{aare::RawFile@{aare::RawFile}!quad@{quad}}
\index{quad@{quad}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{quad}{quad}}
{\footnotesize\ttfamily bool aare\+::\+Raw\+File\+::quad \{false\}\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1RawFile_ae322f1b62cfa7e4ebeb1ccae51a799f2}\label{classaare_1_1RawFile_ae322f1b62cfa7e4ebeb1ccae51a799f2}
\index{aare::RawFile@{aare::RawFile}!subfile\_cols@{subfile\_cols}}
\index{subfile\_cols@{subfile\_cols}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{subfile\_cols}{subfile\_cols}}
{\footnotesize\ttfamily int aare\+::\+Raw\+File\+::subfile\+\_\+cols\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1RawFile_ab1a3902a51ded3c1823937a914c7d458}\label{classaare_1_1RawFile_ab1a3902a51ded3c1823937a914c7d458}
\index{aare::RawFile@{aare::RawFile}!subfile\_rows@{subfile\_rows}}
\index{subfile\_rows@{subfile\_rows}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{subfile\_rows}{subfile\_rows}}
{\footnotesize\ttfamily int aare\+::\+Raw\+File\+::subfile\+\_\+rows\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1RawFile_a310a0a7c3e49e112117ebed8bfdf199d}\label{classaare_1_1RawFile_a310a0a7c3e49e112117ebed8bfdf199d}
\index{aare::RawFile@{aare::RawFile}!subfiles@{subfiles}}
\index{subfiles@{subfiles}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{subfiles}{subfiles}}
{\footnotesize\ttfamily std\+::vector$<$std\+::vector$<$\mbox{\hyperlink{classaare_1_1SubFile}{Sub\+File}} \texorpdfstring{$\ast$}{*}$>$ $>$ aare\+::\+Raw\+File\+::subfiles\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1RawFile_a333f2ee8aec487d0e4cbf7973fafaec4}\label{classaare_1_1RawFile_a333f2ee8aec487d0e4cbf7973fafaec4}
\index{aare::RawFile@{aare::RawFile}!timing\_mode@{timing\_mode}}
\index{timing\_mode@{timing\_mode}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{timing\_mode}{timing\_mode}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespaceaare_a180255836568df302c95b5ca87dc5355}{Timing\+Mode}} aare\+::\+Raw\+File\+::timing\+\_\+mode\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1FileInterface_a44cbe933bbd2cae1f48213121d15bce2}\label{classaare_1_1FileInterface_a44cbe933bbd2cae1f48213121d15bce2}
\index{aare::RawFile@{aare::RawFile}!version@{version}}
\index{version@{version}!aare::RawFile@{aare::RawFile}}
\doxysubsubsection{\texorpdfstring{version}{version}}
{\footnotesize\ttfamily std\+::string aare\+::\+File\+Interface\+::version\hspace{0.3cm}{\ttfamily [inherited]}}
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item
file\+\_\+io/include/aare/file\+\_\+io/\mbox{\hyperlink{RawFile_8hpp}{Raw\+File.\+hpp}}\item
file\+\_\+io/src/\mbox{\hyperlink{RawFile_8cpp}{Raw\+File.\+cpp}}\end{DoxyCompactItemize}

View File

@ -0,0 +1,295 @@
\doxysection{aare\+::Sub\+File Class Reference}
\hypertarget{classaare_1_1SubFile}{}\label{classaare_1_1SubFile}\index{aare::SubFile@{aare::SubFile}}
Class to read a subfile from a \doxylink{classaare_1_1RawFile}{Raw\+File}.
{\ttfamily \#include $<$Sub\+File.\+hpp$>$}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{classaare_1_1SubFile_a502c8395f5e6536064dd896987fb8128}{Sub\+File}} (std\+::filesystem\+::path fname, \mbox{\hyperlink{namespaceaare_a5b95afba95553c1e118e1478c69042f7}{Detector\+Type}} detector, ssize\+\_\+t rows, ssize\+\_\+t cols, uint16\+\_\+t bitdepth)
\begin{DoxyCompactList}\small\item\em \doxylink{classaare_1_1SubFile}{Sub\+File} constructor. \end{DoxyCompactList}\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1SubFile_a660d0c9ccb8d0e79d9f17bbdea910a45}{read\+\_\+impl\+\_\+normal}} (std\+::byte \texorpdfstring{$\ast$}{*}buffer)
\begin{DoxyCompactList}\small\item\em read the subfile into a buffer \end{DoxyCompactList}\item
{\footnotesize template$<$typename Data\+Type $>$ }\\size\+\_\+t \mbox{\hyperlink{classaare_1_1SubFile_af8977099c5a78c5d76d3fb3f41d450de}{read\+\_\+impl\+\_\+flip}} (std\+::byte \texorpdfstring{$\ast$}{*}buffer)
\begin{DoxyCompactList}\small\item\em read the subfile into a buffer with the bytes flipped \end{DoxyCompactList}\item
{\footnotesize template$<$typename Data\+Type $>$ }\\size\+\_\+t \mbox{\hyperlink{classaare_1_1SubFile_aa41e65b3174ad83c7eee101421104c69}{read\+\_\+impl\+\_\+reorder}} (std\+::byte \texorpdfstring{$\ast$}{*}buffer)
\begin{DoxyCompactList}\small\item\em read the subfile into a buffer with the bytes reordered \end{DoxyCompactList}\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1SubFile_a4f13c03f410dfae1440d3d7126914416}{get\+\_\+part}} (std\+::byte \texorpdfstring{$\ast$}{*}buffer, int \mbox{\hyperlink{classaare_1_1SubFile_adb165b1e12b49ad58dfac71a9ad5e64f}{frame\+\_\+number}})
\begin{DoxyCompactList}\small\item\em read the subfile into a buffer with the bytes reordered and flipped \end{DoxyCompactList}\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1SubFile_adb165b1e12b49ad58dfac71a9ad5e64f}{frame\+\_\+number}} (int frame\+\_\+index)
\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1SubFile_a3d54db8c48d87c4da2c9c7e263a8f953}{bytes\+\_\+per\+\_\+part}} ()
\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1SubFile_a90d1b67477a665badbf23fc582fe11d2}{pixels\+\_\+per\+\_\+part}} ()
\end{DoxyCompactItemize}
\doxysubsubsection*{Protected Types}
\begin{DoxyCompactItemize}
\item
using \mbox{\hyperlink{classaare_1_1SubFile_a15fca3d77492479d07d9e1490b0397b7}{pfunc}} = size\+\_\+t(Sub\+File\+::\texorpdfstring{$\ast$}{*})(std\+::byte \texorpdfstring{$\ast$}{*})
\begin{DoxyCompactList}\small\item\em type of the read\+\_\+impl function pointer \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{classaare_1_1SubFile_a15fca3d77492479d07d9e1490b0397b7}{pfunc}} \mbox{\hyperlink{classaare_1_1SubFile_a6581cd31c90c530b8ab4d4c3c1f24c11}{read\+\_\+impl}} = nullptr
\item
std\+::map$<$ std\+::pair$<$ \mbox{\hyperlink{namespaceaare_a5b95afba95553c1e118e1478c69042f7}{Detector\+Type}}, int $>$, \mbox{\hyperlink{classaare_1_1SubFile_a15fca3d77492479d07d9e1490b0397b7}{pfunc}} $>$ \mbox{\hyperlink{classaare_1_1SubFile_ac0f3eb666f5ce7d789c98e3e48adb0c1}{read\+\_\+impl\+\_\+map}}
\begin{DoxyCompactList}\small\item\em map to store the read\+\_\+impl functions for different detectors \end{DoxyCompactList}\item
FILE \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1SubFile_aaee4e9dddec3bbfa3267d1ba341b4282}{fp}} = nullptr
\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1SubFile_acd8a2bd749eaf02f1413af755e9c8108}{m\+\_\+bitdepth}}
\item
std\+::filesystem\+::path \mbox{\hyperlink{classaare_1_1SubFile_a81226b922c7a22effced3f88658e5a82}{m\+\_\+fname}}
\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1SubFile_a16592f71e1f546fce6a00707768e6fad}{m\+\_\+rows}} \{\}
\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1SubFile_af5a74f674ac2a626ff6b8a761a6558ee}{m\+\_\+cols}} \{\}
\item
ssize\+\_\+t \mbox{\hyperlink{classaare_1_1SubFile_abf8c8d431ddd4e8e7154fe01b415e8cc}{n\+\_\+frames}} \{\}
\item
int \mbox{\hyperlink{classaare_1_1SubFile_a9651937b2a83af293c1330b86aa1c884}{m\+\_\+sub\+\_\+file\+\_\+index\+\_\+}} \{\}
\end{DoxyCompactItemize}
\doxysubsection{Detailed Description}
Class to read a subfile from a \doxylink{classaare_1_1RawFile}{Raw\+File}.
\doxysubsection{Member Typedef Documentation}
\Hypertarget{classaare_1_1SubFile_a15fca3d77492479d07d9e1490b0397b7}\label{classaare_1_1SubFile_a15fca3d77492479d07d9e1490b0397b7}
\index{aare::SubFile@{aare::SubFile}!pfunc@{pfunc}}
\index{pfunc@{pfunc}!aare::SubFile@{aare::SubFile}}
\doxysubsubsection{\texorpdfstring{pfunc}{pfunc}}
{\footnotesize\ttfamily using \mbox{\hyperlink{classaare_1_1SubFile_a15fca3d77492479d07d9e1490b0397b7}{aare\+::\+Sub\+File\+::pfunc}} = size\+\_\+t (Sub\+File\+::\texorpdfstring{$\ast$}{*})(std\+::byte \texorpdfstring{$\ast$}{*})\hspace{0.3cm}{\ttfamily [protected]}}
type of the read\+\_\+impl function pointer
\begin{DoxyParams}{Parameters}
{\em buffer} & pointer to the buffer to read the data into \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes read
\end{DoxyReturn}
\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classaare_1_1SubFile_a502c8395f5e6536064dd896987fb8128}\label{classaare_1_1SubFile_a502c8395f5e6536064dd896987fb8128}
\index{aare::SubFile@{aare::SubFile}!SubFile@{SubFile}}
\index{SubFile@{SubFile}!aare::SubFile@{aare::SubFile}}
\doxysubsubsection{\texorpdfstring{SubFile()}{SubFile()}}
{\footnotesize\ttfamily aare\+::\+Sub\+File\+::\+Sub\+File (\begin{DoxyParamCaption}\item[{std\+::filesystem\+::path}]{fname, }\item[{\mbox{\hyperlink{namespaceaare_a5b95afba95553c1e118e1478c69042f7}{Detector\+Type}}}]{detector, }\item[{ssize\+\_\+t}]{rows, }\item[{ssize\+\_\+t}]{cols, }\item[{uint16\+\_\+t}]{bitdepth }\end{DoxyParamCaption})}
\doxylink{classaare_1_1SubFile}{Sub\+File} constructor.
\begin{DoxyParams}{Parameters}
{\em fname} & path to the subfile \\
\hline
{\em detector} & detector type \\
\hline
{\em rows} & number of rows in the subfile \\
\hline
{\em cols} & number of columns in the subfile \\
\hline
{\em bitdepth} & bitdepth of the subfile \\
\hline
\end{DoxyParams}
\begin{DoxyExceptions}{Exceptions}
{\em std\+::invalid\+\_\+argument} & if the detector,type pair is not supported \\
\hline
\end{DoxyExceptions}
\doxysubsection{Member Function Documentation}
\Hypertarget{classaare_1_1SubFile_a3d54db8c48d87c4da2c9c7e263a8f953}\label{classaare_1_1SubFile_a3d54db8c48d87c4da2c9c7e263a8f953}
\index{aare::SubFile@{aare::SubFile}!bytes\_per\_part@{bytes\_per\_part}}
\index{bytes\_per\_part@{bytes\_per\_part}!aare::SubFile@{aare::SubFile}}
\doxysubsubsection{\texorpdfstring{bytes\_per\_part()}{bytes\_per\_part()}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+Sub\+File\+::bytes\+\_\+per\+\_\+part (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1SubFile_adb165b1e12b49ad58dfac71a9ad5e64f}\label{classaare_1_1SubFile_adb165b1e12b49ad58dfac71a9ad5e64f}
\index{aare::SubFile@{aare::SubFile}!frame\_number@{frame\_number}}
\index{frame\_number@{frame\_number}!aare::SubFile@{aare::SubFile}}
\doxysubsubsection{\texorpdfstring{frame\_number()}{frame\_number()}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+Sub\+File\+::frame\+\_\+number (\begin{DoxyParamCaption}\item[{int}]{frame\+\_\+index }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1SubFile_a4f13c03f410dfae1440d3d7126914416}\label{classaare_1_1SubFile_a4f13c03f410dfae1440d3d7126914416}
\index{aare::SubFile@{aare::SubFile}!get\_part@{get\_part}}
\index{get\_part@{get\_part}!aare::SubFile@{aare::SubFile}}
\doxysubsubsection{\texorpdfstring{get\_part()}{get\_part()}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+Sub\+File\+::get\+\_\+part (\begin{DoxyParamCaption}\item[{std\+::byte \texorpdfstring{$\ast$}{*}}]{buffer, }\item[{int}]{frame\+\_\+number }\end{DoxyParamCaption})}
read the subfile into a buffer with the bytes reordered and flipped
\begin{DoxyParams}{Parameters}
{\em buffer} & pointer to the buffer to read the data into \\
\hline
{\em frame\+\_\+number} & frame number to read \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes read
\end{DoxyReturn}
\Hypertarget{classaare_1_1SubFile_a90d1b67477a665badbf23fc582fe11d2}\label{classaare_1_1SubFile_a90d1b67477a665badbf23fc582fe11d2}
\index{aare::SubFile@{aare::SubFile}!pixels\_per\_part@{pixels\_per\_part}}
\index{pixels\_per\_part@{pixels\_per\_part}!aare::SubFile@{aare::SubFile}}
\doxysubsubsection{\texorpdfstring{pixels\_per\_part()}{pixels\_per\_part()}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+Sub\+File\+::pixels\+\_\+per\+\_\+part (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1SubFile_af8977099c5a78c5d76d3fb3f41d450de}\label{classaare_1_1SubFile_af8977099c5a78c5d76d3fb3f41d450de}
\index{aare::SubFile@{aare::SubFile}!read\_impl\_flip@{read\_impl\_flip}}
\index{read\_impl\_flip@{read\_impl\_flip}!aare::SubFile@{aare::SubFile}}
\doxysubsubsection{\texorpdfstring{read\_impl\_flip()}{read\_impl\_flip()}}
{\footnotesize\ttfamily template$<$typename Data\+Type $>$ \\
size\+\_\+t aare\+::\+Sub\+File\+::read\+\_\+impl\+\_\+flip (\begin{DoxyParamCaption}\item[{std\+::byte \texorpdfstring{$\ast$}{*}}]{buffer }\end{DoxyParamCaption})}
read the subfile into a buffer with the bytes flipped
\begin{DoxyParams}{Parameters}
{\em buffer} & pointer to the buffer to read the data into \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes read
\end{DoxyReturn}
\Hypertarget{classaare_1_1SubFile_a660d0c9ccb8d0e79d9f17bbdea910a45}\label{classaare_1_1SubFile_a660d0c9ccb8d0e79d9f17bbdea910a45}
\index{aare::SubFile@{aare::SubFile}!read\_impl\_normal@{read\_impl\_normal}}
\index{read\_impl\_normal@{read\_impl\_normal}!aare::SubFile@{aare::SubFile}}
\doxysubsubsection{\texorpdfstring{read\_impl\_normal()}{read\_impl\_normal()}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+Sub\+File\+::read\+\_\+impl\+\_\+normal (\begin{DoxyParamCaption}\item[{std\+::byte \texorpdfstring{$\ast$}{*}}]{buffer }\end{DoxyParamCaption})}
read the subfile into a buffer
\begin{DoxyParams}{Parameters}
{\em buffer} & pointer to the buffer to read the data into \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes read
\end{DoxyReturn}
\Hypertarget{classaare_1_1SubFile_aa41e65b3174ad83c7eee101421104c69}\label{classaare_1_1SubFile_aa41e65b3174ad83c7eee101421104c69}
\index{aare::SubFile@{aare::SubFile}!read\_impl\_reorder@{read\_impl\_reorder}}
\index{read\_impl\_reorder@{read\_impl\_reorder}!aare::SubFile@{aare::SubFile}}
\doxysubsubsection{\texorpdfstring{read\_impl\_reorder()}{read\_impl\_reorder()}}
{\footnotesize\ttfamily template$<$typename Data\+Type $>$ \\
size\+\_\+t aare\+::\+Sub\+File\+::read\+\_\+impl\+\_\+reorder (\begin{DoxyParamCaption}\item[{std\+::byte \texorpdfstring{$\ast$}{*}}]{buffer }\end{DoxyParamCaption})}
read the subfile into a buffer with the bytes reordered
\begin{DoxyParams}{Parameters}
{\em buffer} & pointer to the buffer to read the data into \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes read
\end{DoxyReturn}
\doxysubsection{Field Documentation}
\Hypertarget{classaare_1_1SubFile_aaee4e9dddec3bbfa3267d1ba341b4282}\label{classaare_1_1SubFile_aaee4e9dddec3bbfa3267d1ba341b4282}
\index{aare::SubFile@{aare::SubFile}!fp@{fp}}
\index{fp@{fp}!aare::SubFile@{aare::SubFile}}
\doxysubsubsection{\texorpdfstring{fp}{fp}}
{\footnotesize\ttfamily FILE\texorpdfstring{$\ast$}{*} aare\+::\+Sub\+File\+::fp = nullptr\hspace{0.3cm}{\ttfamily [protected]}}
\Hypertarget{classaare_1_1SubFile_acd8a2bd749eaf02f1413af755e9c8108}\label{classaare_1_1SubFile_acd8a2bd749eaf02f1413af755e9c8108}
\index{aare::SubFile@{aare::SubFile}!m\_bitdepth@{m\_bitdepth}}
\index{m\_bitdepth@{m\_bitdepth}!aare::SubFile@{aare::SubFile}}
\doxysubsubsection{\texorpdfstring{m\_bitdepth}{m\_bitdepth}}
{\footnotesize\ttfamily ssize\+\_\+t aare\+::\+Sub\+File\+::m\+\_\+bitdepth\hspace{0.3cm}{\ttfamily [protected]}}
\Hypertarget{classaare_1_1SubFile_af5a74f674ac2a626ff6b8a761a6558ee}\label{classaare_1_1SubFile_af5a74f674ac2a626ff6b8a761a6558ee}
\index{aare::SubFile@{aare::SubFile}!m\_cols@{m\_cols}}
\index{m\_cols@{m\_cols}!aare::SubFile@{aare::SubFile}}
\doxysubsubsection{\texorpdfstring{m\_cols}{m\_cols}}
{\footnotesize\ttfamily ssize\+\_\+t aare\+::\+Sub\+File\+::m\+\_\+cols \{\}\hspace{0.3cm}{\ttfamily [protected]}}
\Hypertarget{classaare_1_1SubFile_a81226b922c7a22effced3f88658e5a82}\label{classaare_1_1SubFile_a81226b922c7a22effced3f88658e5a82}
\index{aare::SubFile@{aare::SubFile}!m\_fname@{m\_fname}}
\index{m\_fname@{m\_fname}!aare::SubFile@{aare::SubFile}}
\doxysubsubsection{\texorpdfstring{m\_fname}{m\_fname}}
{\footnotesize\ttfamily std\+::filesystem\+::path aare\+::\+Sub\+File\+::m\+\_\+fname\hspace{0.3cm}{\ttfamily [protected]}}
\Hypertarget{classaare_1_1SubFile_a16592f71e1f546fce6a00707768e6fad}\label{classaare_1_1SubFile_a16592f71e1f546fce6a00707768e6fad}
\index{aare::SubFile@{aare::SubFile}!m\_rows@{m\_rows}}
\index{m\_rows@{m\_rows}!aare::SubFile@{aare::SubFile}}
\doxysubsubsection{\texorpdfstring{m\_rows}{m\_rows}}
{\footnotesize\ttfamily ssize\+\_\+t aare\+::\+Sub\+File\+::m\+\_\+rows \{\}\hspace{0.3cm}{\ttfamily [protected]}}
\Hypertarget{classaare_1_1SubFile_a9651937b2a83af293c1330b86aa1c884}\label{classaare_1_1SubFile_a9651937b2a83af293c1330b86aa1c884}
\index{aare::SubFile@{aare::SubFile}!m\_sub\_file\_index\_@{m\_sub\_file\_index\_}}
\index{m\_sub\_file\_index\_@{m\_sub\_file\_index\_}!aare::SubFile@{aare::SubFile}}
\doxysubsubsection{\texorpdfstring{m\_sub\_file\_index\_}{m\_sub\_file\_index\_}}
{\footnotesize\ttfamily int aare\+::\+Sub\+File\+::m\+\_\+sub\+\_\+file\+\_\+index\+\_\+ \{\}\hspace{0.3cm}{\ttfamily [protected]}}
\Hypertarget{classaare_1_1SubFile_abf8c8d431ddd4e8e7154fe01b415e8cc}\label{classaare_1_1SubFile_abf8c8d431ddd4e8e7154fe01b415e8cc}
\index{aare::SubFile@{aare::SubFile}!n\_frames@{n\_frames}}
\index{n\_frames@{n\_frames}!aare::SubFile@{aare::SubFile}}
\doxysubsubsection{\texorpdfstring{n\_frames}{n\_frames}}
{\footnotesize\ttfamily ssize\+\_\+t aare\+::\+Sub\+File\+::n\+\_\+frames \{\}\hspace{0.3cm}{\ttfamily [protected]}}
\Hypertarget{classaare_1_1SubFile_a6581cd31c90c530b8ab4d4c3c1f24c11}\label{classaare_1_1SubFile_a6581cd31c90c530b8ab4d4c3c1f24c11}
\index{aare::SubFile@{aare::SubFile}!read\_impl@{read\_impl}}
\index{read\_impl@{read\_impl}!aare::SubFile@{aare::SubFile}}
\doxysubsubsection{\texorpdfstring{read\_impl}{read\_impl}}
{\footnotesize\ttfamily \mbox{\hyperlink{classaare_1_1SubFile_a15fca3d77492479d07d9e1490b0397b7}{pfunc}} aare\+::\+Sub\+File\+::read\+\_\+impl = nullptr\hspace{0.3cm}{\ttfamily [protected]}}
\Hypertarget{classaare_1_1SubFile_ac0f3eb666f5ce7d789c98e3e48adb0c1}\label{classaare_1_1SubFile_ac0f3eb666f5ce7d789c98e3e48adb0c1}
\index{aare::SubFile@{aare::SubFile}!read\_impl\_map@{read\_impl\_map}}
\index{read\_impl\_map@{read\_impl\_map}!aare::SubFile@{aare::SubFile}}
\doxysubsubsection{\texorpdfstring{read\_impl\_map}{read\_impl\_map}}
{\footnotesize\ttfamily std\+::map$<$std\+::pair$<$\mbox{\hyperlink{namespaceaare_a5b95afba95553c1e118e1478c69042f7}{Detector\+Type}}, int$>$, \mbox{\hyperlink{classaare_1_1SubFile_a15fca3d77492479d07d9e1490b0397b7}{pfunc}}$>$ aare\+::\+Sub\+File\+::read\+\_\+impl\+\_\+map\hspace{0.3cm}{\ttfamily [protected]}}
{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{=\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\{\mbox{\hyperlink{namespaceaare_a5b95afba95553c1e118e1478c69042f7a0947b28848519e2e61c3f8561dedf7d0}{DetectorType::Moench}},\ 16\},\ \&SubFile::read\_impl\_reorder<uint16\_t>\},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\{\mbox{\hyperlink{namespaceaare_a5b95afba95553c1e118e1478c69042f7ab2c7db922623442a04314d3c941a336b}{DetectorType::Jungfrau}},\ 16\},\ \&\mbox{\hyperlink{classaare_1_1SubFile_a660d0c9ccb8d0e79d9f17bbdea910a45}{SubFile::read\_impl\_normal}}\},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\{\mbox{\hyperlink{namespaceaare_a5b95afba95553c1e118e1478c69042f7a8fcb8dbe4124015503e7a92e13ebe66c}{DetectorType::ChipTestBoard}},\ 16\},\ \&\mbox{\hyperlink{classaare_1_1SubFile_a660d0c9ccb8d0e79d9f17bbdea910a45}{SubFile::read\_impl\_normal}}\},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\{\mbox{\hyperlink{namespaceaare_a5b95afba95553c1e118e1478c69042f7ae62a69cfc990501180f9457056826208}{DetectorType::Mythen3}},\ 32\},\ \&\mbox{\hyperlink{classaare_1_1SubFile_a660d0c9ccb8d0e79d9f17bbdea910a45}{SubFile::read\_impl\_normal}}\},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\{\mbox{\hyperlink{namespaceaare_a5b95afba95553c1e118e1478c69042f7a36df9c5ff09bbd406715bc0f8beec72e}{DetectorType::Eiger}},\ 32\},\ \&\mbox{\hyperlink{classaare_1_1SubFile_a660d0c9ccb8d0e79d9f17bbdea910a45}{SubFile::read\_impl\_normal}}\},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\{\mbox{\hyperlink{namespaceaare_a5b95afba95553c1e118e1478c69042f7a36df9c5ff09bbd406715bc0f8beec72e}{DetectorType::Eiger}},\ 16\},\ \&\mbox{\hyperlink{classaare_1_1SubFile_a660d0c9ccb8d0e79d9f17bbdea910a45}{SubFile::read\_impl\_normal}}\}}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \}}
\end{DoxyCode}
map to store the read\+\_\+impl functions for different detectors
\begin{DoxyNote}{Note}
the key is a pair of Detector\+Type and bitdepth
the value is a pointer to the read\+\_\+impl function specific for the detector
the read\+\_\+impl function will be set to the appropriate function in the constructor
\end{DoxyNote}
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item
file\+\_\+io/include/aare/file\+\_\+io/\mbox{\hyperlink{SubFile_8hpp}{Sub\+File.\+hpp}}\item
file\+\_\+io/src/\mbox{\hyperlink{SubFile_8cpp}{Sub\+File.\+cpp}}\end{DoxyCompactItemize}

Binary file not shown.

View File

@ -0,0 +1,203 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 121.212120
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 4.125000 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 2 def
/cols 2 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(aare::ZmqSocket) cw
(aare::ZmqSocketReceiver) cw
(aare::ZmqSocketSender) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(aare::ZmqSocket) 0.500000 1.000000 box
(aare::ZmqSocketReceiver) 0.000000 0.000000 box
(aare::ZmqSocketSender) 1.000000 0.000000 box
% ----- relations -----
solid
1 0.500000 0.250000 out
solid
0.000000 1.000000 1.000000 conn
solid
0 0.000000 0.750000 in
solid
0 1.000000 0.750000 in

Binary file not shown.

View File

@ -0,0 +1,172 @@
\doxysection{aare\+::Zmq\+Socket Class Reference}
\hypertarget{classaare_1_1ZmqSocket}{}\label{classaare_1_1ZmqSocket}\index{aare::ZmqSocket@{aare::ZmqSocket}}
{\ttfamily \#include $<$Zmq\+Socket.\+hpp$>$}
Inheritance diagram for aare\+::Zmq\+Socket\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classaare_1_1ZmqSocket}
\end{center}
\end{figure}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{classaare_1_1ZmqSocket_a1b9bd643c6f86733fc198ad39396cbc8}{Zmq\+Socket}} ()=default
\item
\mbox{\hyperlink{classaare_1_1ZmqSocket_a8608b7b4aeafc0349763bec3a9f26503}{\texorpdfstring{$\sim$}{\string~}\+Zmq\+Socket}} ()
\item
\mbox{\hyperlink{classaare_1_1ZmqSocket_ab6fe77359ecda3e89d969b96cbcc2f2f}{Zmq\+Socket}} (const \mbox{\hyperlink{classaare_1_1ZmqSocket}{Zmq\+Socket}} \&)=delete
\item
\mbox{\hyperlink{classaare_1_1ZmqSocket}{Zmq\+Socket}} \mbox{\hyperlink{classaare_1_1ZmqSocket_a2bda9d69955c0b9d6f917aff2eeacc75}{operator=}} (const \mbox{\hyperlink{classaare_1_1ZmqSocket}{Zmq\+Socket}} \&)=delete
\item
\mbox{\hyperlink{classaare_1_1ZmqSocket_a462d2dc5a4bc97428a9ddb911dbca4af}{Zmq\+Socket}} (\mbox{\hyperlink{classaare_1_1ZmqSocket}{Zmq\+Socket}} \&\&)=delete
\item
void \mbox{\hyperlink{classaare_1_1ZmqSocket_a0eab196c0b514be8c49a3fd98d758778}{disconnect}} ()
\item
void \mbox{\hyperlink{classaare_1_1ZmqSocket_a0223c4d123eb7aec9cd1464509941a99}{set\+\_\+zmq\+\_\+hwm}} (int hwm)
\item
void \mbox{\hyperlink{classaare_1_1ZmqSocket_ab1f26596ce66e2ca7d4b26ee912b433c}{set\+\_\+timeout\+\_\+ms}} (int n)
\item
void \mbox{\hyperlink{classaare_1_1ZmqSocket_a755a2e592ed706976c0fbf000eb70b96}{set\+\_\+potential\+\_\+frame\+\_\+size}} (size\+\_\+t size)
\end{DoxyCompactItemize}
\doxysubsubsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item
void \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1ZmqSocket_ab4b7264f583904f1c3d3181377295204}{m\+\_\+context}} \{nullptr\}
\item
void \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1ZmqSocket_a818f6534a600be8422c980d193c85b94}{m\+\_\+socket}} \{nullptr\}
\item
std\+::string \mbox{\hyperlink{classaare_1_1ZmqSocket_ab7bfda5aee365ef499a6605b7426ec79}{m\+\_\+endpoint}}
\item
int \mbox{\hyperlink{classaare_1_1ZmqSocket_a13c8da9738e41cf6e884ed0c070ced63}{m\+\_\+zmq\+\_\+hwm}} \{1000\}
\item
int \mbox{\hyperlink{classaare_1_1ZmqSocket_a6b4316d6f9edfdac66f5e6393d3eaebf}{m\+\_\+timeout\+\_\+ms}} \{1000\}
\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1ZmqSocket_ab662a79c5fb770399567277523a168d4}{m\+\_\+potential\+\_\+frame\+\_\+size}} \{1024 \texorpdfstring{$\ast$}{*} 1024\}
\item
char \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1ZmqSocket_acf6efc2e696efcc0780c0b174e43ae6d}{m\+\_\+header\+\_\+buffer}} = new char\mbox{[}\mbox{\hyperlink{classaare_1_1ZmqSocket_aeff0afb3278a5474ddb2525caa8375b9}{m\+\_\+max\+\_\+header\+\_\+size}}\mbox{]}
\end{DoxyCompactItemize}
\doxysubsubsection*{Static Protected Attributes}
\begin{DoxyCompactItemize}
\item
static constexpr size\+\_\+t \mbox{\hyperlink{classaare_1_1ZmqSocket_aeff0afb3278a5474ddb2525caa8375b9}{m\+\_\+max\+\_\+header\+\_\+size}} = 1024
\end{DoxyCompactItemize}
\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classaare_1_1ZmqSocket_a1b9bd643c6f86733fc198ad39396cbc8}\label{classaare_1_1ZmqSocket_a1b9bd643c6f86733fc198ad39396cbc8}
\index{aare::ZmqSocket@{aare::ZmqSocket}!ZmqSocket@{ZmqSocket}}
\index{ZmqSocket@{ZmqSocket}!aare::ZmqSocket@{aare::ZmqSocket}}
\doxysubsubsection{\texorpdfstring{ZmqSocket()}{ZmqSocket()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily aare\+::\+Zmq\+Socket\+::\+Zmq\+Socket (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [default]}}
\Hypertarget{classaare_1_1ZmqSocket_a8608b7b4aeafc0349763bec3a9f26503}\label{classaare_1_1ZmqSocket_a8608b7b4aeafc0349763bec3a9f26503}
\index{aare::ZmqSocket@{aare::ZmqSocket}!````~ZmqSocket@{\texorpdfstring{$\sim$}{\string~}ZmqSocket}}
\index{````~ZmqSocket@{\texorpdfstring{$\sim$}{\string~}ZmqSocket}!aare::ZmqSocket@{aare::ZmqSocket}}
\doxysubsubsection{\texorpdfstring{\texorpdfstring{$\sim$}{\string~}ZmqSocket()}{\string~ZmqSocket()}}
{\footnotesize\ttfamily aare\+::\+Zmq\+Socket\+::\texorpdfstring{$\sim$}{\string~}\+Zmq\+Socket (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1ZmqSocket_ab6fe77359ecda3e89d969b96cbcc2f2f}\label{classaare_1_1ZmqSocket_ab6fe77359ecda3e89d969b96cbcc2f2f}
\index{aare::ZmqSocket@{aare::ZmqSocket}!ZmqSocket@{ZmqSocket}}
\index{ZmqSocket@{ZmqSocket}!aare::ZmqSocket@{aare::ZmqSocket}}
\doxysubsubsection{\texorpdfstring{ZmqSocket()}{ZmqSocket()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily aare\+::\+Zmq\+Socket\+::\+Zmq\+Socket (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classaare_1_1ZmqSocket}{Zmq\+Socket}} \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [delete]}}
\Hypertarget{classaare_1_1ZmqSocket_a462d2dc5a4bc97428a9ddb911dbca4af}\label{classaare_1_1ZmqSocket_a462d2dc5a4bc97428a9ddb911dbca4af}
\index{aare::ZmqSocket@{aare::ZmqSocket}!ZmqSocket@{ZmqSocket}}
\index{ZmqSocket@{ZmqSocket}!aare::ZmqSocket@{aare::ZmqSocket}}
\doxysubsubsection{\texorpdfstring{ZmqSocket()}{ZmqSocket()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily aare\+::\+Zmq\+Socket\+::\+Zmq\+Socket (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classaare_1_1ZmqSocket}{Zmq\+Socket}} \&\&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [delete]}}
\doxysubsection{Member Function Documentation}
\Hypertarget{classaare_1_1ZmqSocket_a0eab196c0b514be8c49a3fd98d758778}\label{classaare_1_1ZmqSocket_a0eab196c0b514be8c49a3fd98d758778}
\index{aare::ZmqSocket@{aare::ZmqSocket}!disconnect@{disconnect}}
\index{disconnect@{disconnect}!aare::ZmqSocket@{aare::ZmqSocket}}
\doxysubsubsection{\texorpdfstring{disconnect()}{disconnect()}}
{\footnotesize\ttfamily void aare\+::\+Zmq\+Socket\+::disconnect (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1ZmqSocket_a2bda9d69955c0b9d6f917aff2eeacc75}\label{classaare_1_1ZmqSocket_a2bda9d69955c0b9d6f917aff2eeacc75}
\index{aare::ZmqSocket@{aare::ZmqSocket}!operator=@{operator=}}
\index{operator=@{operator=}!aare::ZmqSocket@{aare::ZmqSocket}}
\doxysubsubsection{\texorpdfstring{operator=()}{operator=()}}
{\footnotesize\ttfamily \mbox{\hyperlink{classaare_1_1ZmqSocket}{Zmq\+Socket}} aare\+::\+Zmq\+Socket\+::operator= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classaare_1_1ZmqSocket}{Zmq\+Socket}} \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [delete]}}
\Hypertarget{classaare_1_1ZmqSocket_a755a2e592ed706976c0fbf000eb70b96}\label{classaare_1_1ZmqSocket_a755a2e592ed706976c0fbf000eb70b96}
\index{aare::ZmqSocket@{aare::ZmqSocket}!set\_potential\_frame\_size@{set\_potential\_frame\_size}}
\index{set\_potential\_frame\_size@{set\_potential\_frame\_size}!aare::ZmqSocket@{aare::ZmqSocket}}
\doxysubsubsection{\texorpdfstring{set\_potential\_frame\_size()}{set\_potential\_frame\_size()}}
{\footnotesize\ttfamily void aare\+::\+Zmq\+Socket\+::set\+\_\+potential\+\_\+frame\+\_\+size (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{size }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1ZmqSocket_ab1f26596ce66e2ca7d4b26ee912b433c}\label{classaare_1_1ZmqSocket_ab1f26596ce66e2ca7d4b26ee912b433c}
\index{aare::ZmqSocket@{aare::ZmqSocket}!set\_timeout\_ms@{set\_timeout\_ms}}
\index{set\_timeout\_ms@{set\_timeout\_ms}!aare::ZmqSocket@{aare::ZmqSocket}}
\doxysubsubsection{\texorpdfstring{set\_timeout\_ms()}{set\_timeout\_ms()}}
{\footnotesize\ttfamily void aare\+::\+Zmq\+Socket\+::set\+\_\+timeout\+\_\+ms (\begin{DoxyParamCaption}\item[{int}]{n }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1ZmqSocket_a0223c4d123eb7aec9cd1464509941a99}\label{classaare_1_1ZmqSocket_a0223c4d123eb7aec9cd1464509941a99}
\index{aare::ZmqSocket@{aare::ZmqSocket}!set\_zmq\_hwm@{set\_zmq\_hwm}}
\index{set\_zmq\_hwm@{set\_zmq\_hwm}!aare::ZmqSocket@{aare::ZmqSocket}}
\doxysubsubsection{\texorpdfstring{set\_zmq\_hwm()}{set\_zmq\_hwm()}}
{\footnotesize\ttfamily void aare\+::\+Zmq\+Socket\+::set\+\_\+zmq\+\_\+hwm (\begin{DoxyParamCaption}\item[{int}]{hwm }\end{DoxyParamCaption})}
\doxysubsection{Field Documentation}
\Hypertarget{classaare_1_1ZmqSocket_ab4b7264f583904f1c3d3181377295204}\label{classaare_1_1ZmqSocket_ab4b7264f583904f1c3d3181377295204}
\index{aare::ZmqSocket@{aare::ZmqSocket}!m\_context@{m\_context}}
\index{m\_context@{m\_context}!aare::ZmqSocket@{aare::ZmqSocket}}
\doxysubsubsection{\texorpdfstring{m\_context}{m\_context}}
{\footnotesize\ttfamily void\texorpdfstring{$\ast$}{*} aare\+::\+Zmq\+Socket\+::m\+\_\+context \{nullptr\}\hspace{0.3cm}{\ttfamily [protected]}}
\Hypertarget{classaare_1_1ZmqSocket_ab7bfda5aee365ef499a6605b7426ec79}\label{classaare_1_1ZmqSocket_ab7bfda5aee365ef499a6605b7426ec79}
\index{aare::ZmqSocket@{aare::ZmqSocket}!m\_endpoint@{m\_endpoint}}
\index{m\_endpoint@{m\_endpoint}!aare::ZmqSocket@{aare::ZmqSocket}}
\doxysubsubsection{\texorpdfstring{m\_endpoint}{m\_endpoint}}
{\footnotesize\ttfamily std\+::string aare\+::\+Zmq\+Socket\+::m\+\_\+endpoint\hspace{0.3cm}{\ttfamily [protected]}}
\Hypertarget{classaare_1_1ZmqSocket_acf6efc2e696efcc0780c0b174e43ae6d}\label{classaare_1_1ZmqSocket_acf6efc2e696efcc0780c0b174e43ae6d}
\index{aare::ZmqSocket@{aare::ZmqSocket}!m\_header\_buffer@{m\_header\_buffer}}
\index{m\_header\_buffer@{m\_header\_buffer}!aare::ZmqSocket@{aare::ZmqSocket}}
\doxysubsubsection{\texorpdfstring{m\_header\_buffer}{m\_header\_buffer}}
{\footnotesize\ttfamily char\texorpdfstring{$\ast$}{*} aare\+::\+Zmq\+Socket\+::m\+\_\+header\+\_\+buffer = new char\mbox{[}\mbox{\hyperlink{classaare_1_1ZmqSocket_aeff0afb3278a5474ddb2525caa8375b9}{m\+\_\+max\+\_\+header\+\_\+size}}\mbox{]}\hspace{0.3cm}{\ttfamily [protected]}}
\Hypertarget{classaare_1_1ZmqSocket_aeff0afb3278a5474ddb2525caa8375b9}\label{classaare_1_1ZmqSocket_aeff0afb3278a5474ddb2525caa8375b9}
\index{aare::ZmqSocket@{aare::ZmqSocket}!m\_max\_header\_size@{m\_max\_header\_size}}
\index{m\_max\_header\_size@{m\_max\_header\_size}!aare::ZmqSocket@{aare::ZmqSocket}}
\doxysubsubsection{\texorpdfstring{m\_max\_header\_size}{m\_max\_header\_size}}
{\footnotesize\ttfamily constexpr size\+\_\+t aare\+::\+Zmq\+Socket\+::m\+\_\+max\+\_\+header\+\_\+size = 1024\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [constexpr]}, {\ttfamily [protected]}}
\Hypertarget{classaare_1_1ZmqSocket_ab662a79c5fb770399567277523a168d4}\label{classaare_1_1ZmqSocket_ab662a79c5fb770399567277523a168d4}
\index{aare::ZmqSocket@{aare::ZmqSocket}!m\_potential\_frame\_size@{m\_potential\_frame\_size}}
\index{m\_potential\_frame\_size@{m\_potential\_frame\_size}!aare::ZmqSocket@{aare::ZmqSocket}}
\doxysubsubsection{\texorpdfstring{m\_potential\_frame\_size}{m\_potential\_frame\_size}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+Zmq\+Socket\+::m\+\_\+potential\+\_\+frame\+\_\+size \{1024 \texorpdfstring{$\ast$}{*} 1024\}\hspace{0.3cm}{\ttfamily [protected]}}
\Hypertarget{classaare_1_1ZmqSocket_a818f6534a600be8422c980d193c85b94}\label{classaare_1_1ZmqSocket_a818f6534a600be8422c980d193c85b94}
\index{aare::ZmqSocket@{aare::ZmqSocket}!m\_socket@{m\_socket}}
\index{m\_socket@{m\_socket}!aare::ZmqSocket@{aare::ZmqSocket}}
\doxysubsubsection{\texorpdfstring{m\_socket}{m\_socket}}
{\footnotesize\ttfamily void\texorpdfstring{$\ast$}{*} aare\+::\+Zmq\+Socket\+::m\+\_\+socket \{nullptr\}\hspace{0.3cm}{\ttfamily [protected]}}
\Hypertarget{classaare_1_1ZmqSocket_a6b4316d6f9edfdac66f5e6393d3eaebf}\label{classaare_1_1ZmqSocket_a6b4316d6f9edfdac66f5e6393d3eaebf}
\index{aare::ZmqSocket@{aare::ZmqSocket}!m\_timeout\_ms@{m\_timeout\_ms}}
\index{m\_timeout\_ms@{m\_timeout\_ms}!aare::ZmqSocket@{aare::ZmqSocket}}
\doxysubsubsection{\texorpdfstring{m\_timeout\_ms}{m\_timeout\_ms}}
{\footnotesize\ttfamily int aare\+::\+Zmq\+Socket\+::m\+\_\+timeout\+\_\+ms \{1000\}\hspace{0.3cm}{\ttfamily [protected]}}
\Hypertarget{classaare_1_1ZmqSocket_a13c8da9738e41cf6e884ed0c070ced63}\label{classaare_1_1ZmqSocket_a13c8da9738e41cf6e884ed0c070ced63}
\index{aare::ZmqSocket@{aare::ZmqSocket}!m\_zmq\_hwm@{m\_zmq\_hwm}}
\index{m\_zmq\_hwm@{m\_zmq\_hwm}!aare::ZmqSocket@{aare::ZmqSocket}}
\doxysubsubsection{\texorpdfstring{m\_zmq\_hwm}{m\_zmq\_hwm}}
{\footnotesize\ttfamily int aare\+::\+Zmq\+Socket\+::m\+\_\+zmq\+\_\+hwm \{1000\}\hspace{0.3cm}{\ttfamily [protected]}}
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item
network\+\_\+io/include/aare/network\+\_\+io/\mbox{\hyperlink{ZmqSocket_8hpp}{Zmq\+Socket.\+hpp}}\item
network\+\_\+io/src/\mbox{\hyperlink{ZmqSocket_8cpp}{Zmq\+Socket.\+cpp}}\end{DoxyCompactItemize}

View File

@ -0,0 +1,197 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 242.424240
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 2.062500 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 2 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(aare::ZmqSocketReceiver) cw
(aare::ZmqSocket) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(aare::ZmqSocketReceiver) 0.000000 0.000000 box
(aare::ZmqSocket) 0.000000 1.000000 box
% ----- relations -----
solid
0 0.000000 0.000000 out
solid
1 0.000000 1.000000 in

Binary file not shown.

View File

@ -0,0 +1,212 @@
\doxysection{aare\+::Zmq\+Socket\+Receiver Class Reference}
\hypertarget{classaare_1_1ZmqSocketReceiver}{}\label{classaare_1_1ZmqSocketReceiver}\index{aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}}
{\ttfamily \#include $<$Zmq\+Socket\+Receiver.\+hpp$>$}
Inheritance diagram for aare\+::Zmq\+Socket\+Receiver\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classaare_1_1ZmqSocketReceiver}
\end{center}
\end{figure}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{classaare_1_1ZmqSocketReceiver_a87fbc4290acdc25ef161e1b63edeba38}{Zmq\+Socket\+Receiver}} (const std\+::string \&endpoint)
\begin{DoxyCompactList}\small\item\em Construct a new \doxylink{classaare_1_1ZmqSocketReceiver}{Zmq\+Socket\+Receiver} object. \end{DoxyCompactList}\item
void \mbox{\hyperlink{classaare_1_1ZmqSocketReceiver_aaa2bca0e37c80eb2c7e60cd77a819f6b}{connect}} ()
\begin{DoxyCompactList}\small\item\em Connect to the given endpoint subscribe to a Zmq published. \end{DoxyCompactList}\item
std\+::vector$<$ \mbox{\hyperlink{structaare_1_1ZmqFrame}{Zmq\+Frame}} $>$ \mbox{\hyperlink{classaare_1_1ZmqSocketReceiver_a9e0648acf762956515ea0db29e0466de}{receive\+\_\+n}} ()
\item
void \mbox{\hyperlink{classaare_1_1ZmqSocket_a0eab196c0b514be8c49a3fd98d758778}{disconnect}} ()
\item
void \mbox{\hyperlink{classaare_1_1ZmqSocket_a0223c4d123eb7aec9cd1464509941a99}{set\+\_\+zmq\+\_\+hwm}} (int hwm)
\item
void \mbox{\hyperlink{classaare_1_1ZmqSocket_ab1f26596ce66e2ca7d4b26ee912b433c}{set\+\_\+timeout\+\_\+ms}} (int n)
\item
void \mbox{\hyperlink{classaare_1_1ZmqSocket_a755a2e592ed706976c0fbf000eb70b96}{set\+\_\+potential\+\_\+frame\+\_\+size}} (size\+\_\+t size)
\end{DoxyCompactItemize}
\doxysubsubsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item
void \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1ZmqSocket_ab4b7264f583904f1c3d3181377295204}{m\+\_\+context}} \{nullptr\}
\item
void \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1ZmqSocket_a818f6534a600be8422c980d193c85b94}{m\+\_\+socket}} \{nullptr\}
\item
std\+::string \mbox{\hyperlink{classaare_1_1ZmqSocket_ab7bfda5aee365ef499a6605b7426ec79}{m\+\_\+endpoint}}
\item
int \mbox{\hyperlink{classaare_1_1ZmqSocket_a13c8da9738e41cf6e884ed0c070ced63}{m\+\_\+zmq\+\_\+hwm}} \{1000\}
\item
int \mbox{\hyperlink{classaare_1_1ZmqSocket_a6b4316d6f9edfdac66f5e6393d3eaebf}{m\+\_\+timeout\+\_\+ms}} \{1000\}
\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1ZmqSocket_ab662a79c5fb770399567277523a168d4}{m\+\_\+potential\+\_\+frame\+\_\+size}} \{1024 \texorpdfstring{$\ast$}{*} 1024\}
\item
char \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1ZmqSocket_acf6efc2e696efcc0780c0b174e43ae6d}{m\+\_\+header\+\_\+buffer}} = new char\mbox{[}\mbox{\hyperlink{classaare_1_1ZmqSocket_aeff0afb3278a5474ddb2525caa8375b9}{m\+\_\+max\+\_\+header\+\_\+size}}\mbox{]}
\end{DoxyCompactItemize}
\doxysubsubsection*{Static Protected Attributes}
\begin{DoxyCompactItemize}
\item
static constexpr size\+\_\+t \mbox{\hyperlink{classaare_1_1ZmqSocket_aeff0afb3278a5474ddb2525caa8375b9}{m\+\_\+max\+\_\+header\+\_\+size}} = 1024
\end{DoxyCompactItemize}
\doxysubsubsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item
int \mbox{\hyperlink{classaare_1_1ZmqSocketReceiver_afd4ee1a6ca11bac4bd8ed0688c05addd}{receive\+\_\+data}} (std\+::byte \texorpdfstring{$\ast$}{*}data, size\+\_\+t size)
\begin{DoxyCompactList}\small\item\em receive data following a \doxylink{structaare_1_1ZmqHeader}{Zmq\+Header} \end{DoxyCompactList}\item
\mbox{\hyperlink{structaare_1_1ZmqFrame}{Zmq\+Frame}} \mbox{\hyperlink{classaare_1_1ZmqSocketReceiver_aed81980b6f96cbb48e3bd40b9c455d60}{receive\+\_\+zmqframe}} ()
\item
\mbox{\hyperlink{structaare_1_1ZmqHeader}{Zmq\+Header}} \mbox{\hyperlink{classaare_1_1ZmqSocketReceiver_ab15e227a1f5446377755b126644d6c0b}{receive\+\_\+header}} ()
\begin{DoxyCompactList}\small\item\em receive a \doxylink{structaare_1_1ZmqHeader}{Zmq\+Header} \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classaare_1_1ZmqSocketReceiver_a87fbc4290acdc25ef161e1b63edeba38}\label{classaare_1_1ZmqSocketReceiver_a87fbc4290acdc25ef161e1b63edeba38}
\index{aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}!ZmqSocketReceiver@{ZmqSocketReceiver}}
\index{ZmqSocketReceiver@{ZmqSocketReceiver}!aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}}
\doxysubsubsection{\texorpdfstring{ZmqSocketReceiver()}{ZmqSocketReceiver()}}
{\footnotesize\ttfamily aare\+::\+Zmq\+Socket\+Receiver\+::\+Zmq\+Socket\+Receiver (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{endpoint }\end{DoxyParamCaption})}
Construct a new \doxylink{classaare_1_1ZmqSocketReceiver}{Zmq\+Socket\+Receiver} object.
\doxysubsection{Member Function Documentation}
\Hypertarget{classaare_1_1ZmqSocketReceiver_aaa2bca0e37c80eb2c7e60cd77a819f6b}\label{classaare_1_1ZmqSocketReceiver_aaa2bca0e37c80eb2c7e60cd77a819f6b}
\index{aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}!connect@{connect}}
\index{connect@{connect}!aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}}
\doxysubsubsection{\texorpdfstring{connect()}{connect()}}
{\footnotesize\ttfamily void aare\+::\+Zmq\+Socket\+Receiver\+::connect (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Connect to the given endpoint subscribe to a Zmq published.
\Hypertarget{classaare_1_1ZmqSocket_a0eab196c0b514be8c49a3fd98d758778}\label{classaare_1_1ZmqSocket_a0eab196c0b514be8c49a3fd98d758778}
\index{aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}!disconnect@{disconnect}}
\index{disconnect@{disconnect}!aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}}
\doxysubsubsection{\texorpdfstring{disconnect()}{disconnect()}}
{\footnotesize\ttfamily void aare\+::\+Zmq\+Socket\+::disconnect (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1ZmqSocketReceiver_afd4ee1a6ca11bac4bd8ed0688c05addd}\label{classaare_1_1ZmqSocketReceiver_afd4ee1a6ca11bac4bd8ed0688c05addd}
\index{aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}!receive\_data@{receive\_data}}
\index{receive\_data@{receive\_data}!aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}}
\doxysubsubsection{\texorpdfstring{receive\_data()}{receive\_data()}}
{\footnotesize\ttfamily int aare\+::\+Zmq\+Socket\+Receiver\+::receive\+\_\+data (\begin{DoxyParamCaption}\item[{std\+::byte \texorpdfstring{$\ast$}{*}}]{data, }\item[{size\+\_\+t}]{size }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}
receive data following a \doxylink{structaare_1_1ZmqHeader}{Zmq\+Header}
\begin{DoxyParams}{Parameters}
{\em data} & pointer to data \\
\hline
{\em size} & size of data \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\doxylink{structaare_1_1ZmqHeader}{Zmq\+Header}
\end{DoxyReturn}
\Hypertarget{classaare_1_1ZmqSocketReceiver_ab15e227a1f5446377755b126644d6c0b}\label{classaare_1_1ZmqSocketReceiver_ab15e227a1f5446377755b126644d6c0b}
\index{aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}!receive\_header@{receive\_header}}
\index{receive\_header@{receive\_header}!aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}}
\doxysubsubsection{\texorpdfstring{receive\_header()}{receive\_header()}}
{\footnotesize\ttfamily \mbox{\hyperlink{structaare_1_1ZmqHeader}{Zmq\+Header}} aare\+::\+Zmq\+Socket\+Receiver\+::receive\+\_\+header (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}
receive a \doxylink{structaare_1_1ZmqHeader}{Zmq\+Header}
\begin{DoxyReturn}{Returns}
\doxylink{structaare_1_1ZmqHeader}{Zmq\+Header}
\end{DoxyReturn}
\Hypertarget{classaare_1_1ZmqSocketReceiver_a9e0648acf762956515ea0db29e0466de}\label{classaare_1_1ZmqSocketReceiver_a9e0648acf762956515ea0db29e0466de}
\index{aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}!receive\_n@{receive\_n}}
\index{receive\_n@{receive\_n}!aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}}
\doxysubsubsection{\texorpdfstring{receive\_n()}{receive\_n()}}
{\footnotesize\ttfamily std\+::vector$<$ \mbox{\hyperlink{structaare_1_1ZmqFrame}{Zmq\+Frame}} $>$ aare\+::\+Zmq\+Socket\+Receiver\+::receive\+\_\+n (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
\Hypertarget{classaare_1_1ZmqSocketReceiver_aed81980b6f96cbb48e3bd40b9c455d60}\label{classaare_1_1ZmqSocketReceiver_aed81980b6f96cbb48e3bd40b9c455d60}
\index{aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}!receive\_zmqframe@{receive\_zmqframe}}
\index{receive\_zmqframe@{receive\_zmqframe}!aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}}
\doxysubsubsection{\texorpdfstring{receive\_zmqframe()}{receive\_zmqframe()}}
{\footnotesize\ttfamily \mbox{\hyperlink{structaare_1_1ZmqFrame}{Zmq\+Frame}} aare\+::\+Zmq\+Socket\+Receiver\+::receive\+\_\+zmqframe (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1ZmqSocket_a755a2e592ed706976c0fbf000eb70b96}\label{classaare_1_1ZmqSocket_a755a2e592ed706976c0fbf000eb70b96}
\index{aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}!set\_potential\_frame\_size@{set\_potential\_frame\_size}}
\index{set\_potential\_frame\_size@{set\_potential\_frame\_size}!aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}}
\doxysubsubsection{\texorpdfstring{set\_potential\_frame\_size()}{set\_potential\_frame\_size()}}
{\footnotesize\ttfamily void aare\+::\+Zmq\+Socket\+::set\+\_\+potential\+\_\+frame\+\_\+size (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{size }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1ZmqSocket_ab1f26596ce66e2ca7d4b26ee912b433c}\label{classaare_1_1ZmqSocket_ab1f26596ce66e2ca7d4b26ee912b433c}
\index{aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}!set\_timeout\_ms@{set\_timeout\_ms}}
\index{set\_timeout\_ms@{set\_timeout\_ms}!aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}}
\doxysubsubsection{\texorpdfstring{set\_timeout\_ms()}{set\_timeout\_ms()}}
{\footnotesize\ttfamily void aare\+::\+Zmq\+Socket\+::set\+\_\+timeout\+\_\+ms (\begin{DoxyParamCaption}\item[{int}]{n }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1ZmqSocket_a0223c4d123eb7aec9cd1464509941a99}\label{classaare_1_1ZmqSocket_a0223c4d123eb7aec9cd1464509941a99}
\index{aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}!set\_zmq\_hwm@{set\_zmq\_hwm}}
\index{set\_zmq\_hwm@{set\_zmq\_hwm}!aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}}
\doxysubsubsection{\texorpdfstring{set\_zmq\_hwm()}{set\_zmq\_hwm()}}
{\footnotesize\ttfamily void aare\+::\+Zmq\+Socket\+::set\+\_\+zmq\+\_\+hwm (\begin{DoxyParamCaption}\item[{int}]{hwm }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}
\doxysubsection{Field Documentation}
\Hypertarget{classaare_1_1ZmqSocket_ab4b7264f583904f1c3d3181377295204}\label{classaare_1_1ZmqSocket_ab4b7264f583904f1c3d3181377295204}
\index{aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}!m\_context@{m\_context}}
\index{m\_context@{m\_context}!aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}}
\doxysubsubsection{\texorpdfstring{m\_context}{m\_context}}
{\footnotesize\ttfamily void\texorpdfstring{$\ast$}{*} aare\+::\+Zmq\+Socket\+::m\+\_\+context \{nullptr\}\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [inherited]}}
\Hypertarget{classaare_1_1ZmqSocket_ab7bfda5aee365ef499a6605b7426ec79}\label{classaare_1_1ZmqSocket_ab7bfda5aee365ef499a6605b7426ec79}
\index{aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}!m\_endpoint@{m\_endpoint}}
\index{m\_endpoint@{m\_endpoint}!aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}}
\doxysubsubsection{\texorpdfstring{m\_endpoint}{m\_endpoint}}
{\footnotesize\ttfamily std\+::string aare\+::\+Zmq\+Socket\+::m\+\_\+endpoint\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [inherited]}}
\Hypertarget{classaare_1_1ZmqSocket_acf6efc2e696efcc0780c0b174e43ae6d}\label{classaare_1_1ZmqSocket_acf6efc2e696efcc0780c0b174e43ae6d}
\index{aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}!m\_header\_buffer@{m\_header\_buffer}}
\index{m\_header\_buffer@{m\_header\_buffer}!aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}}
\doxysubsubsection{\texorpdfstring{m\_header\_buffer}{m\_header\_buffer}}
{\footnotesize\ttfamily char\texorpdfstring{$\ast$}{*} aare\+::\+Zmq\+Socket\+::m\+\_\+header\+\_\+buffer = new char\mbox{[}\mbox{\hyperlink{classaare_1_1ZmqSocket_aeff0afb3278a5474ddb2525caa8375b9}{m\+\_\+max\+\_\+header\+\_\+size}}\mbox{]}\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [inherited]}}
\Hypertarget{classaare_1_1ZmqSocket_aeff0afb3278a5474ddb2525caa8375b9}\label{classaare_1_1ZmqSocket_aeff0afb3278a5474ddb2525caa8375b9}
\index{aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}!m\_max\_header\_size@{m\_max\_header\_size}}
\index{m\_max\_header\_size@{m\_max\_header\_size}!aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}}
\doxysubsubsection{\texorpdfstring{m\_max\_header\_size}{m\_max\_header\_size}}
{\footnotesize\ttfamily constexpr size\+\_\+t aare\+::\+Zmq\+Socket\+::m\+\_\+max\+\_\+header\+\_\+size = 1024\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [constexpr]}, {\ttfamily [protected]}, {\ttfamily [inherited]}}
\Hypertarget{classaare_1_1ZmqSocket_ab662a79c5fb770399567277523a168d4}\label{classaare_1_1ZmqSocket_ab662a79c5fb770399567277523a168d4}
\index{aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}!m\_potential\_frame\_size@{m\_potential\_frame\_size}}
\index{m\_potential\_frame\_size@{m\_potential\_frame\_size}!aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}}
\doxysubsubsection{\texorpdfstring{m\_potential\_frame\_size}{m\_potential\_frame\_size}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+Zmq\+Socket\+::m\+\_\+potential\+\_\+frame\+\_\+size \{1024 \texorpdfstring{$\ast$}{*} 1024\}\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [inherited]}}
\Hypertarget{classaare_1_1ZmqSocket_a818f6534a600be8422c980d193c85b94}\label{classaare_1_1ZmqSocket_a818f6534a600be8422c980d193c85b94}
\index{aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}!m\_socket@{m\_socket}}
\index{m\_socket@{m\_socket}!aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}}
\doxysubsubsection{\texorpdfstring{m\_socket}{m\_socket}}
{\footnotesize\ttfamily void\texorpdfstring{$\ast$}{*} aare\+::\+Zmq\+Socket\+::m\+\_\+socket \{nullptr\}\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [inherited]}}
\Hypertarget{classaare_1_1ZmqSocket_a6b4316d6f9edfdac66f5e6393d3eaebf}\label{classaare_1_1ZmqSocket_a6b4316d6f9edfdac66f5e6393d3eaebf}
\index{aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}!m\_timeout\_ms@{m\_timeout\_ms}}
\index{m\_timeout\_ms@{m\_timeout\_ms}!aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}}
\doxysubsubsection{\texorpdfstring{m\_timeout\_ms}{m\_timeout\_ms}}
{\footnotesize\ttfamily int aare\+::\+Zmq\+Socket\+::m\+\_\+timeout\+\_\+ms \{1000\}\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [inherited]}}
\Hypertarget{classaare_1_1ZmqSocket_a13c8da9738e41cf6e884ed0c070ced63}\label{classaare_1_1ZmqSocket_a13c8da9738e41cf6e884ed0c070ced63}
\index{aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}!m\_zmq\_hwm@{m\_zmq\_hwm}}
\index{m\_zmq\_hwm@{m\_zmq\_hwm}!aare::ZmqSocketReceiver@{aare::ZmqSocketReceiver}}
\doxysubsubsection{\texorpdfstring{m\_zmq\_hwm}{m\_zmq\_hwm}}
{\footnotesize\ttfamily int aare\+::\+Zmq\+Socket\+::m\+\_\+zmq\+\_\+hwm \{1000\}\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [inherited]}}
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item
network\+\_\+io/include/aare/network\+\_\+io/\mbox{\hyperlink{ZmqSocketReceiver_8hpp}{Zmq\+Socket\+Receiver.\+hpp}}\item
network\+\_\+io/src/\mbox{\hyperlink{ZmqSocketReceiver_8cpp}{Zmq\+Socket\+Receiver.\+cpp}}\end{DoxyCompactItemize}

View File

@ -0,0 +1,197 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 258.064514
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 1.937500 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 2 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(aare::ZmqSocketSender) cw
(aare::ZmqSocket) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(aare::ZmqSocketSender) 0.000000 0.000000 box
(aare::ZmqSocket) 0.000000 1.000000 box
% ----- relations -----
solid
0 0.000000 0.000000 out
solid
1 0.000000 1.000000 in

Binary file not shown.

View File

@ -0,0 +1,205 @@
\doxysection{aare\+::Zmq\+Socket\+Sender Class Reference}
\hypertarget{classaare_1_1ZmqSocketSender}{}\label{classaare_1_1ZmqSocketSender}\index{aare::ZmqSocketSender@{aare::ZmqSocketSender}}
{\ttfamily \#include $<$Zmq\+Socket\+Sender.\+hpp$>$}
Inheritance diagram for aare\+::Zmq\+Socket\+Sender\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classaare_1_1ZmqSocketSender}
\end{center}
\end{figure}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{classaare_1_1ZmqSocketSender_afd60d922beacfcc0deb61a7ad18c09c7}{Zmq\+Socket\+Sender}} (const std\+::string \&endpoint)
\item
void \mbox{\hyperlink{classaare_1_1ZmqSocketSender_ab1f579fa0235552acaad322119093b60}{bind}} ()
\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1ZmqSocketSender_a98ac84ddeaafca6a0df9cbfe95a64321}{send}} (const \mbox{\hyperlink{structaare_1_1ZmqHeader}{Zmq\+Header}} \&header, const std\+::byte \texorpdfstring{$\ast$}{*}data, size\+\_\+t size)
\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1ZmqSocketSender_a068e0ddf27ab1b0f6e836c08d0b4f9a1}{send}} (const \mbox{\hyperlink{structaare_1_1ZmqFrame}{Zmq\+Frame}} \&zmq\+\_\+frame)
\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1ZmqSocketSender_a2660e9dead1d2f5166bb671a11c8c124}{send}} (const std\+::vector$<$ \mbox{\hyperlink{structaare_1_1ZmqFrame}{Zmq\+Frame}} $>$ \&zmq\+\_\+frames)
\item
void \mbox{\hyperlink{classaare_1_1ZmqSocket_a0eab196c0b514be8c49a3fd98d758778}{disconnect}} ()
\item
void \mbox{\hyperlink{classaare_1_1ZmqSocket_a0223c4d123eb7aec9cd1464509941a99}{set\+\_\+zmq\+\_\+hwm}} (int hwm)
\item
void \mbox{\hyperlink{classaare_1_1ZmqSocket_ab1f26596ce66e2ca7d4b26ee912b433c}{set\+\_\+timeout\+\_\+ms}} (int n)
\item
void \mbox{\hyperlink{classaare_1_1ZmqSocket_a755a2e592ed706976c0fbf000eb70b96}{set\+\_\+potential\+\_\+frame\+\_\+size}} (size\+\_\+t size)
\end{DoxyCompactItemize}
\doxysubsubsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item
void \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1ZmqSocket_ab4b7264f583904f1c3d3181377295204}{m\+\_\+context}} \{nullptr\}
\item
void \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1ZmqSocket_a818f6534a600be8422c980d193c85b94}{m\+\_\+socket}} \{nullptr\}
\item
std\+::string \mbox{\hyperlink{classaare_1_1ZmqSocket_ab7bfda5aee365ef499a6605b7426ec79}{m\+\_\+endpoint}}
\item
int \mbox{\hyperlink{classaare_1_1ZmqSocket_a13c8da9738e41cf6e884ed0c070ced63}{m\+\_\+zmq\+\_\+hwm}} \{1000\}
\item
int \mbox{\hyperlink{classaare_1_1ZmqSocket_a6b4316d6f9edfdac66f5e6393d3eaebf}{m\+\_\+timeout\+\_\+ms}} \{1000\}
\item
size\+\_\+t \mbox{\hyperlink{classaare_1_1ZmqSocket_ab662a79c5fb770399567277523a168d4}{m\+\_\+potential\+\_\+frame\+\_\+size}} \{1024 \texorpdfstring{$\ast$}{*} 1024\}
\item
char \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1ZmqSocket_acf6efc2e696efcc0780c0b174e43ae6d}{m\+\_\+header\+\_\+buffer}} = new char\mbox{[}\mbox{\hyperlink{classaare_1_1ZmqSocket_aeff0afb3278a5474ddb2525caa8375b9}{m\+\_\+max\+\_\+header\+\_\+size}}\mbox{]}
\end{DoxyCompactItemize}
\doxysubsubsection*{Static Protected Attributes}
\begin{DoxyCompactItemize}
\item
static constexpr size\+\_\+t \mbox{\hyperlink{classaare_1_1ZmqSocket_aeff0afb3278a5474ddb2525caa8375b9}{m\+\_\+max\+\_\+header\+\_\+size}} = 1024
\end{DoxyCompactItemize}
\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classaare_1_1ZmqSocketSender_afd60d922beacfcc0deb61a7ad18c09c7}\label{classaare_1_1ZmqSocketSender_afd60d922beacfcc0deb61a7ad18c09c7}
\index{aare::ZmqSocketSender@{aare::ZmqSocketSender}!ZmqSocketSender@{ZmqSocketSender}}
\index{ZmqSocketSender@{ZmqSocketSender}!aare::ZmqSocketSender@{aare::ZmqSocketSender}}
\doxysubsubsection{\texorpdfstring{ZmqSocketSender()}{ZmqSocketSender()}}
{\footnotesize\ttfamily aare\+::\+Zmq\+Socket\+Sender\+::\+Zmq\+Socket\+Sender (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{endpoint }\end{DoxyParamCaption})}
Constructor
\begin{DoxyParams}{Parameters}
{\em endpoint} & ZMQ endpoint \\
\hline
\end{DoxyParams}
\doxysubsection{Member Function Documentation}
\Hypertarget{classaare_1_1ZmqSocketSender_ab1f579fa0235552acaad322119093b60}\label{classaare_1_1ZmqSocketSender_ab1f579fa0235552acaad322119093b60}
\index{aare::ZmqSocketSender@{aare::ZmqSocketSender}!bind@{bind}}
\index{bind@{bind}!aare::ZmqSocketSender@{aare::ZmqSocketSender}}
\doxysubsubsection{\texorpdfstring{bind()}{bind()}}
{\footnotesize\ttfamily void aare\+::\+Zmq\+Socket\+Sender\+::bind (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
bind to the given port \Hypertarget{classaare_1_1ZmqSocket_a0eab196c0b514be8c49a3fd98d758778}\label{classaare_1_1ZmqSocket_a0eab196c0b514be8c49a3fd98d758778}
\index{aare::ZmqSocketSender@{aare::ZmqSocketSender}!disconnect@{disconnect}}
\index{disconnect@{disconnect}!aare::ZmqSocketSender@{aare::ZmqSocketSender}}
\doxysubsubsection{\texorpdfstring{disconnect()}{disconnect()}}
{\footnotesize\ttfamily void aare\+::\+Zmq\+Socket\+::disconnect (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1ZmqSocketSender_a2660e9dead1d2f5166bb671a11c8c124}\label{classaare_1_1ZmqSocketSender_a2660e9dead1d2f5166bb671a11c8c124}
\index{aare::ZmqSocketSender@{aare::ZmqSocketSender}!send@{send}}
\index{send@{send}!aare::ZmqSocketSender@{aare::ZmqSocketSender}}
\doxysubsubsection{\texorpdfstring{send()}{send()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+Zmq\+Socket\+Sender\+::send (\begin{DoxyParamCaption}\item[{const std\+::vector$<$ \mbox{\hyperlink{structaare_1_1ZmqFrame}{Zmq\+Frame}} $>$ \&}]{zmq\+\_\+frames }\end{DoxyParamCaption})}
Send a vector of headers and frames
\begin{DoxyParams}{Parameters}
{\em zmq\+\_\+frames} & vector of \doxylink{structaare_1_1ZmqFrame}{Zmq\+Frame} \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes sent
\end{DoxyReturn}
\Hypertarget{classaare_1_1ZmqSocketSender_a068e0ddf27ab1b0f6e836c08d0b4f9a1}\label{classaare_1_1ZmqSocketSender_a068e0ddf27ab1b0f6e836c08d0b4f9a1}
\index{aare::ZmqSocketSender@{aare::ZmqSocketSender}!send@{send}}
\index{send@{send}!aare::ZmqSocketSender@{aare::ZmqSocketSender}}
\doxysubsubsection{\texorpdfstring{send()}{send()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+Zmq\+Socket\+Sender\+::send (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structaare_1_1ZmqFrame}{Zmq\+Frame}} \&}]{zmq\+\_\+frame }\end{DoxyParamCaption})}
Send a frame with a header
\begin{DoxyParams}{Parameters}
{\em \doxylink{structaare_1_1ZmqFrame}{Zmq\+Frame}} & that contains a header and a frame \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes sent
\end{DoxyReturn}
\Hypertarget{classaare_1_1ZmqSocketSender_a98ac84ddeaafca6a0df9cbfe95a64321}\label{classaare_1_1ZmqSocketSender_a98ac84ddeaafca6a0df9cbfe95a64321}
\index{aare::ZmqSocketSender@{aare::ZmqSocketSender}!send@{send}}
\index{send@{send}!aare::ZmqSocketSender@{aare::ZmqSocketSender}}
\doxysubsubsection{\texorpdfstring{send()}{send()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+Zmq\+Socket\+Sender\+::send (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structaare_1_1ZmqHeader}{Zmq\+Header}} \&}]{header, }\item[{const std\+::byte \texorpdfstring{$\ast$}{*}}]{data, }\item[{size\+\_\+t}]{size }\end{DoxyParamCaption})}
send a header and data
\begin{DoxyParams}{Parameters}
{\em header} & \\
\hline
{\em data} & pointer to data \\
\hline
{\em size} & size of data \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes sent
\end{DoxyReturn}
\Hypertarget{classaare_1_1ZmqSocket_a755a2e592ed706976c0fbf000eb70b96}\label{classaare_1_1ZmqSocket_a755a2e592ed706976c0fbf000eb70b96}
\index{aare::ZmqSocketSender@{aare::ZmqSocketSender}!set\_potential\_frame\_size@{set\_potential\_frame\_size}}
\index{set\_potential\_frame\_size@{set\_potential\_frame\_size}!aare::ZmqSocketSender@{aare::ZmqSocketSender}}
\doxysubsubsection{\texorpdfstring{set\_potential\_frame\_size()}{set\_potential\_frame\_size()}}
{\footnotesize\ttfamily void aare\+::\+Zmq\+Socket\+::set\+\_\+potential\+\_\+frame\+\_\+size (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{size }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1ZmqSocket_ab1f26596ce66e2ca7d4b26ee912b433c}\label{classaare_1_1ZmqSocket_ab1f26596ce66e2ca7d4b26ee912b433c}
\index{aare::ZmqSocketSender@{aare::ZmqSocketSender}!set\_timeout\_ms@{set\_timeout\_ms}}
\index{set\_timeout\_ms@{set\_timeout\_ms}!aare::ZmqSocketSender@{aare::ZmqSocketSender}}
\doxysubsubsection{\texorpdfstring{set\_timeout\_ms()}{set\_timeout\_ms()}}
{\footnotesize\ttfamily void aare\+::\+Zmq\+Socket\+::set\+\_\+timeout\+\_\+ms (\begin{DoxyParamCaption}\item[{int}]{n }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}
\Hypertarget{classaare_1_1ZmqSocket_a0223c4d123eb7aec9cd1464509941a99}\label{classaare_1_1ZmqSocket_a0223c4d123eb7aec9cd1464509941a99}
\index{aare::ZmqSocketSender@{aare::ZmqSocketSender}!set\_zmq\_hwm@{set\_zmq\_hwm}}
\index{set\_zmq\_hwm@{set\_zmq\_hwm}!aare::ZmqSocketSender@{aare::ZmqSocketSender}}
\doxysubsubsection{\texorpdfstring{set\_zmq\_hwm()}{set\_zmq\_hwm()}}
{\footnotesize\ttfamily void aare\+::\+Zmq\+Socket\+::set\+\_\+zmq\+\_\+hwm (\begin{DoxyParamCaption}\item[{int}]{hwm }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}
\doxysubsection{Field Documentation}
\Hypertarget{classaare_1_1ZmqSocket_ab4b7264f583904f1c3d3181377295204}\label{classaare_1_1ZmqSocket_ab4b7264f583904f1c3d3181377295204}
\index{aare::ZmqSocketSender@{aare::ZmqSocketSender}!m\_context@{m\_context}}
\index{m\_context@{m\_context}!aare::ZmqSocketSender@{aare::ZmqSocketSender}}
\doxysubsubsection{\texorpdfstring{m\_context}{m\_context}}
{\footnotesize\ttfamily void\texorpdfstring{$\ast$}{*} aare\+::\+Zmq\+Socket\+::m\+\_\+context \{nullptr\}\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [inherited]}}
\Hypertarget{classaare_1_1ZmqSocket_ab7bfda5aee365ef499a6605b7426ec79}\label{classaare_1_1ZmqSocket_ab7bfda5aee365ef499a6605b7426ec79}
\index{aare::ZmqSocketSender@{aare::ZmqSocketSender}!m\_endpoint@{m\_endpoint}}
\index{m\_endpoint@{m\_endpoint}!aare::ZmqSocketSender@{aare::ZmqSocketSender}}
\doxysubsubsection{\texorpdfstring{m\_endpoint}{m\_endpoint}}
{\footnotesize\ttfamily std\+::string aare\+::\+Zmq\+Socket\+::m\+\_\+endpoint\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [inherited]}}
\Hypertarget{classaare_1_1ZmqSocket_acf6efc2e696efcc0780c0b174e43ae6d}\label{classaare_1_1ZmqSocket_acf6efc2e696efcc0780c0b174e43ae6d}
\index{aare::ZmqSocketSender@{aare::ZmqSocketSender}!m\_header\_buffer@{m\_header\_buffer}}
\index{m\_header\_buffer@{m\_header\_buffer}!aare::ZmqSocketSender@{aare::ZmqSocketSender}}
\doxysubsubsection{\texorpdfstring{m\_header\_buffer}{m\_header\_buffer}}
{\footnotesize\ttfamily char\texorpdfstring{$\ast$}{*} aare\+::\+Zmq\+Socket\+::m\+\_\+header\+\_\+buffer = new char\mbox{[}\mbox{\hyperlink{classaare_1_1ZmqSocket_aeff0afb3278a5474ddb2525caa8375b9}{m\+\_\+max\+\_\+header\+\_\+size}}\mbox{]}\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [inherited]}}
\Hypertarget{classaare_1_1ZmqSocket_aeff0afb3278a5474ddb2525caa8375b9}\label{classaare_1_1ZmqSocket_aeff0afb3278a5474ddb2525caa8375b9}
\index{aare::ZmqSocketSender@{aare::ZmqSocketSender}!m\_max\_header\_size@{m\_max\_header\_size}}
\index{m\_max\_header\_size@{m\_max\_header\_size}!aare::ZmqSocketSender@{aare::ZmqSocketSender}}
\doxysubsubsection{\texorpdfstring{m\_max\_header\_size}{m\_max\_header\_size}}
{\footnotesize\ttfamily constexpr size\+\_\+t aare\+::\+Zmq\+Socket\+::m\+\_\+max\+\_\+header\+\_\+size = 1024\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [constexpr]}, {\ttfamily [protected]}, {\ttfamily [inherited]}}
\Hypertarget{classaare_1_1ZmqSocket_ab662a79c5fb770399567277523a168d4}\label{classaare_1_1ZmqSocket_ab662a79c5fb770399567277523a168d4}
\index{aare::ZmqSocketSender@{aare::ZmqSocketSender}!m\_potential\_frame\_size@{m\_potential\_frame\_size}}
\index{m\_potential\_frame\_size@{m\_potential\_frame\_size}!aare::ZmqSocketSender@{aare::ZmqSocketSender}}
\doxysubsubsection{\texorpdfstring{m\_potential\_frame\_size}{m\_potential\_frame\_size}}
{\footnotesize\ttfamily size\+\_\+t aare\+::\+Zmq\+Socket\+::m\+\_\+potential\+\_\+frame\+\_\+size \{1024 \texorpdfstring{$\ast$}{*} 1024\}\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [inherited]}}
\Hypertarget{classaare_1_1ZmqSocket_a818f6534a600be8422c980d193c85b94}\label{classaare_1_1ZmqSocket_a818f6534a600be8422c980d193c85b94}
\index{aare::ZmqSocketSender@{aare::ZmqSocketSender}!m\_socket@{m\_socket}}
\index{m\_socket@{m\_socket}!aare::ZmqSocketSender@{aare::ZmqSocketSender}}
\doxysubsubsection{\texorpdfstring{m\_socket}{m\_socket}}
{\footnotesize\ttfamily void\texorpdfstring{$\ast$}{*} aare\+::\+Zmq\+Socket\+::m\+\_\+socket \{nullptr\}\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [inherited]}}
\Hypertarget{classaare_1_1ZmqSocket_a6b4316d6f9edfdac66f5e6393d3eaebf}\label{classaare_1_1ZmqSocket_a6b4316d6f9edfdac66f5e6393d3eaebf}
\index{aare::ZmqSocketSender@{aare::ZmqSocketSender}!m\_timeout\_ms@{m\_timeout\_ms}}
\index{m\_timeout\_ms@{m\_timeout\_ms}!aare::ZmqSocketSender@{aare::ZmqSocketSender}}
\doxysubsubsection{\texorpdfstring{m\_timeout\_ms}{m\_timeout\_ms}}
{\footnotesize\ttfamily int aare\+::\+Zmq\+Socket\+::m\+\_\+timeout\+\_\+ms \{1000\}\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [inherited]}}
\Hypertarget{classaare_1_1ZmqSocket_a13c8da9738e41cf6e884ed0c070ced63}\label{classaare_1_1ZmqSocket_a13c8da9738e41cf6e884ed0c070ced63}
\index{aare::ZmqSocketSender@{aare::ZmqSocketSender}!m\_zmq\_hwm@{m\_zmq\_hwm}}
\index{m\_zmq\_hwm@{m\_zmq\_hwm}!aare::ZmqSocketSender@{aare::ZmqSocketSender}}
\doxysubsubsection{\texorpdfstring{m\_zmq\_hwm}{m\_zmq\_hwm}}
{\footnotesize\ttfamily int aare\+::\+Zmq\+Socket\+::m\+\_\+zmq\+\_\+hwm \{1000\}\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [inherited]}}
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item
network\+\_\+io/include/aare/network\+\_\+io/\mbox{\hyperlink{ZmqSocketSender_8hpp}{Zmq\+Socket\+Sender.\+hpp}}\item
network\+\_\+io/src/\mbox{\hyperlink{ZmqSocketSender_8cpp}{Zmq\+Socket\+Sender.\+cpp}}\end{DoxyCompactItemize}

View File

@ -0,0 +1,188 @@
\doxysection{aare\+::logger\+::Logger Class Reference}
\hypertarget{classaare_1_1logger_1_1Logger}{}\label{classaare_1_1logger_1_1Logger}\index{aare::logger::Logger@{aare::logger::Logger}}
{\ttfamily \#include $<$logger.\+hpp$>$}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item
void \mbox{\hyperlink{classaare_1_1logger_1_1Logger_ad758e0a3ba1dafbf37bb9b27f128037e}{set\+\_\+output\+\_\+file}} (std\+::string filename)
\item
void \mbox{\hyperlink{classaare_1_1logger_1_1Logger_a38d6998a952960955503110b6c548a7c}{set\+\_\+streams}} (std\+::streambuf \texorpdfstring{$\ast$}{*}out, std\+::streambuf \texorpdfstring{$\ast$}{*}err)
\item
void \mbox{\hyperlink{classaare_1_1logger_1_1Logger_a9347723aa8f9211a409545eb42a35bbb}{set\+\_\+streams}} (std\+::streambuf \texorpdfstring{$\ast$}{*}out)
\item
void \mbox{\hyperlink{classaare_1_1logger_1_1Logger_a58c7bf903ae895639465882ce3389cd5}{set\+\_\+verbosity}} (\mbox{\hyperlink{namespaceaare_1_1logger_af49e00b36677b44ea78813c109b697ed}{LOGGING\+\_\+\+LEVEL}} level)
\item
\mbox{\hyperlink{classaare_1_1logger_1_1Logger_a6a814b3ec1da07895fb5a4e0730ae73b}{Logger}} ()
\item
\mbox{\hyperlink{classaare_1_1logger_1_1Logger_a4e6fb5d7897b38221180b402f8b961a2}{\texorpdfstring{$\sim$}{\string~}\+Logger}} ()
\item
{\footnotesize template$<$\mbox{\hyperlink{namespaceaare_1_1logger_af49e00b36677b44ea78813c109b697ed}{LOGGING\+\_\+\+LEVEL}} level, typename... Strings$>$ }\\void \mbox{\hyperlink{classaare_1_1logger_1_1Logger_a6af7cdd6470c45c75ead18beef5acc05}{log}} (const Strings... s)
\item
{\footnotesize template$<$typename... Strings$>$ }\\void \mbox{\hyperlink{classaare_1_1logger_1_1Logger_a8e7bb30772e8172de56816f5a8064a92}{debug}} (const Strings... s)
\item
{\footnotesize template$<$typename... Strings$>$ }\\void \mbox{\hyperlink{classaare_1_1logger_1_1Logger_a8771c669369560459142d57bd2039a3a}{info}} (const Strings... s)
\item
{\footnotesize template$<$typename... Strings$>$ }\\void \mbox{\hyperlink{classaare_1_1logger_1_1Logger_a69ddcaa771a0e307e6b7cc6695073eb7}{warn}} (const Strings... s)
\item
{\footnotesize template$<$typename... Strings$>$ }\\void \mbox{\hyperlink{classaare_1_1logger_1_1Logger_af1f0c59605d44733cd2520d7820e9cc4}{error}} (const Strings... s)
\end{DoxyCompactItemize}
\doxysubsubsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item
{\footnotesize template$<$\mbox{\hyperlink{namespaceaare_1_1logger_af49e00b36677b44ea78813c109b697ed}{LOGGING\+\_\+\+LEVEL}} level$>$ }\\void \mbox{\hyperlink{classaare_1_1logger_1_1Logger_ae1700009b33adc5a9c6f0b2c017feece}{log\+\_\+}} ()
\item
{\footnotesize template$<$\mbox{\hyperlink{namespaceaare_1_1logger_af49e00b36677b44ea78813c109b697ed}{LOGGING\+\_\+\+LEVEL}} level, typename First , typename... Strings$>$ }\\void \mbox{\hyperlink{classaare_1_1logger_1_1Logger_adc97b62fee1726187426212fac981485}{log\+\_\+}} (First arg, const Strings... s)
\end{DoxyCompactItemize}
\doxysubsubsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item
std\+::streambuf \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1logger_1_1Logger_ae2e6694d5ed4e385a8fff81cfa31b881}{standard\+\_\+buf}} = std\+::cout.\+rdbuf()
\item
std\+::streambuf \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1logger_1_1Logger_acd26de11ebd34bac7530994cfad21c47}{error\+\_\+buf}} = std\+::cerr.\+rdbuf()
\item
std\+::ostream \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1logger_1_1Logger_a9a97e0af9b628e0b44f1650503e3703b}{standard\+\_\+output}}
\item
std\+::ostream \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classaare_1_1logger_1_1Logger_aacddc9dbc5f3909779766a6290cfa9e2}{error\+\_\+output}}
\item
\mbox{\hyperlink{namespaceaare_1_1logger_af49e00b36677b44ea78813c109b697ed}{LOGGING\+\_\+\+LEVEL}} \mbox{\hyperlink{classaare_1_1logger_1_1Logger_a8442d8748d3441ada95d85c95fd2ba9f}{VERBOSITY\+\_\+\+LEVEL}} = \mbox{\hyperlink{namespaceaare_1_1logger_af49e00b36677b44ea78813c109b697edaa299d78fc1de06730cc5c9e63992071f}{LOGGING\+\_\+\+LEVEL\+::\+INFO}}
\item
std\+::ofstream \mbox{\hyperlink{classaare_1_1logger_1_1Logger_a4b40d1254643c48085df472a850edf14}{out\+\_\+file}}
\end{DoxyCompactItemize}
\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classaare_1_1logger_1_1Logger_a6a814b3ec1da07895fb5a4e0730ae73b}\label{classaare_1_1logger_1_1Logger_a6a814b3ec1da07895fb5a4e0730ae73b}
\index{aare::logger::Logger@{aare::logger::Logger}!Logger@{Logger}}
\index{Logger@{Logger}!aare::logger::Logger@{aare::logger::Logger}}
\doxysubsubsection{\texorpdfstring{Logger()}{Logger()}}
{\footnotesize\ttfamily aare\+::logger\+::\+Logger\+::\+Logger (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1logger_1_1Logger_a4e6fb5d7897b38221180b402f8b961a2}\label{classaare_1_1logger_1_1Logger_a4e6fb5d7897b38221180b402f8b961a2}
\index{aare::logger::Logger@{aare::logger::Logger}!````~Logger@{\texorpdfstring{$\sim$}{\string~}Logger}}
\index{````~Logger@{\texorpdfstring{$\sim$}{\string~}Logger}!aare::logger::Logger@{aare::logger::Logger}}
\doxysubsubsection{\texorpdfstring{\texorpdfstring{$\sim$}{\string~}Logger()}{\string~Logger()}}
{\footnotesize\ttfamily aare\+::logger\+::\+Logger\+::\texorpdfstring{$\sim$}{\string~}\+Logger (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\doxysubsection{Member Function Documentation}
\Hypertarget{classaare_1_1logger_1_1Logger_a8e7bb30772e8172de56816f5a8064a92}\label{classaare_1_1logger_1_1Logger_a8e7bb30772e8172de56816f5a8064a92}
\index{aare::logger::Logger@{aare::logger::Logger}!debug@{debug}}
\index{debug@{debug}!aare::logger::Logger@{aare::logger::Logger}}
\doxysubsubsection{\texorpdfstring{debug()}{debug()}}
{\footnotesize\ttfamily template$<$typename... Strings$>$ \\
void aare\+::logger\+::\+Logger\+::debug (\begin{DoxyParamCaption}\item[{const Strings...}]{s }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1logger_1_1Logger_af1f0c59605d44733cd2520d7820e9cc4}\label{classaare_1_1logger_1_1Logger_af1f0c59605d44733cd2520d7820e9cc4}
\index{aare::logger::Logger@{aare::logger::Logger}!error@{error}}
\index{error@{error}!aare::logger::Logger@{aare::logger::Logger}}
\doxysubsubsection{\texorpdfstring{error()}{error()}}
{\footnotesize\ttfamily template$<$typename... Strings$>$ \\
void aare\+::logger\+::\+Logger\+::error (\begin{DoxyParamCaption}\item[{const Strings...}]{s }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1logger_1_1Logger_a8771c669369560459142d57bd2039a3a}\label{classaare_1_1logger_1_1Logger_a8771c669369560459142d57bd2039a3a}
\index{aare::logger::Logger@{aare::logger::Logger}!info@{info}}
\index{info@{info}!aare::logger::Logger@{aare::logger::Logger}}
\doxysubsubsection{\texorpdfstring{info()}{info()}}
{\footnotesize\ttfamily template$<$typename... Strings$>$ \\
void aare\+::logger\+::\+Logger\+::info (\begin{DoxyParamCaption}\item[{const Strings...}]{s }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1logger_1_1Logger_a6af7cdd6470c45c75ead18beef5acc05}\label{classaare_1_1logger_1_1Logger_a6af7cdd6470c45c75ead18beef5acc05}
\index{aare::logger::Logger@{aare::logger::Logger}!log@{log}}
\index{log@{log}!aare::logger::Logger@{aare::logger::Logger}}
\doxysubsubsection{\texorpdfstring{log()}{log()}}
{\footnotesize\ttfamily template$<$\mbox{\hyperlink{namespaceaare_1_1logger_af49e00b36677b44ea78813c109b697ed}{LOGGING\+\_\+\+LEVEL}} level, typename... Strings$>$ \\
void aare\+::logger\+::\+Logger\+::log (\begin{DoxyParamCaption}\item[{const Strings...}]{s }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1logger_1_1Logger_ae1700009b33adc5a9c6f0b2c017feece}\label{classaare_1_1logger_1_1Logger_ae1700009b33adc5a9c6f0b2c017feece}
\index{aare::logger::Logger@{aare::logger::Logger}!log\_@{log\_}}
\index{log\_@{log\_}!aare::logger::Logger@{aare::logger::Logger}}
\doxysubsubsection{\texorpdfstring{log\_()}{log\_()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$\mbox{\hyperlink{namespaceaare_1_1logger_af49e00b36677b44ea78813c109b697ed}{LOGGING\+\_\+\+LEVEL}} level$>$ \\
void aare\+::logger\+::\+Logger\+::log\+\_\+ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}}
\Hypertarget{classaare_1_1logger_1_1Logger_adc97b62fee1726187426212fac981485}\label{classaare_1_1logger_1_1Logger_adc97b62fee1726187426212fac981485}
\index{aare::logger::Logger@{aare::logger::Logger}!log\_@{log\_}}
\index{log\_@{log\_}!aare::logger::Logger@{aare::logger::Logger}}
\doxysubsubsection{\texorpdfstring{log\_()}{log\_()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$\mbox{\hyperlink{namespaceaare_1_1logger_af49e00b36677b44ea78813c109b697ed}{LOGGING\+\_\+\+LEVEL}} level, typename First , typename... Strings$>$ \\
void aare\+::logger\+::\+Logger\+::log\+\_\+ (\begin{DoxyParamCaption}\item[{First}]{arg, }\item[{const Strings...}]{s }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}}
\Hypertarget{classaare_1_1logger_1_1Logger_ad758e0a3ba1dafbf37bb9b27f128037e}\label{classaare_1_1logger_1_1Logger_ad758e0a3ba1dafbf37bb9b27f128037e}
\index{aare::logger::Logger@{aare::logger::Logger}!set\_output\_file@{set\_output\_file}}
\index{set\_output\_file@{set\_output\_file}!aare::logger::Logger@{aare::logger::Logger}}
\doxysubsubsection{\texorpdfstring{set\_output\_file()}{set\_output\_file()}}
{\footnotesize\ttfamily void aare\+::logger\+::\+Logger\+::set\+\_\+output\+\_\+file (\begin{DoxyParamCaption}\item[{std\+::string}]{filename }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1logger_1_1Logger_a9347723aa8f9211a409545eb42a35bbb}\label{classaare_1_1logger_1_1Logger_a9347723aa8f9211a409545eb42a35bbb}
\index{aare::logger::Logger@{aare::logger::Logger}!set\_streams@{set\_streams}}
\index{set\_streams@{set\_streams}!aare::logger::Logger@{aare::logger::Logger}}
\doxysubsubsection{\texorpdfstring{set\_streams()}{set\_streams()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void aare\+::logger\+::\+Logger\+::set\+\_\+streams (\begin{DoxyParamCaption}\item[{std\+::streambuf \texorpdfstring{$\ast$}{*}}]{out }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1logger_1_1Logger_a38d6998a952960955503110b6c548a7c}\label{classaare_1_1logger_1_1Logger_a38d6998a952960955503110b6c548a7c}
\index{aare::logger::Logger@{aare::logger::Logger}!set\_streams@{set\_streams}}
\index{set\_streams@{set\_streams}!aare::logger::Logger@{aare::logger::Logger}}
\doxysubsubsection{\texorpdfstring{set\_streams()}{set\_streams()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void aare\+::logger\+::\+Logger\+::set\+\_\+streams (\begin{DoxyParamCaption}\item[{std\+::streambuf \texorpdfstring{$\ast$}{*}}]{out, }\item[{std\+::streambuf \texorpdfstring{$\ast$}{*}}]{err }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1logger_1_1Logger_a58c7bf903ae895639465882ce3389cd5}\label{classaare_1_1logger_1_1Logger_a58c7bf903ae895639465882ce3389cd5}
\index{aare::logger::Logger@{aare::logger::Logger}!set\_verbosity@{set\_verbosity}}
\index{set\_verbosity@{set\_verbosity}!aare::logger::Logger@{aare::logger::Logger}}
\doxysubsubsection{\texorpdfstring{set\_verbosity()}{set\_verbosity()}}
{\footnotesize\ttfamily void aare\+::logger\+::\+Logger\+::set\+\_\+verbosity (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespaceaare_1_1logger_af49e00b36677b44ea78813c109b697ed}{LOGGING\+\_\+\+LEVEL}}}]{level }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\Hypertarget{classaare_1_1logger_1_1Logger_a69ddcaa771a0e307e6b7cc6695073eb7}\label{classaare_1_1logger_1_1Logger_a69ddcaa771a0e307e6b7cc6695073eb7}
\index{aare::logger::Logger@{aare::logger::Logger}!warn@{warn}}
\index{warn@{warn}!aare::logger::Logger@{aare::logger::Logger}}
\doxysubsubsection{\texorpdfstring{warn()}{warn()}}
{\footnotesize\ttfamily template$<$typename... Strings$>$ \\
void aare\+::logger\+::\+Logger\+::warn (\begin{DoxyParamCaption}\item[{const Strings...}]{s }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
\doxysubsection{Field Documentation}
\Hypertarget{classaare_1_1logger_1_1Logger_acd26de11ebd34bac7530994cfad21c47}\label{classaare_1_1logger_1_1Logger_acd26de11ebd34bac7530994cfad21c47}
\index{aare::logger::Logger@{aare::logger::Logger}!error\_buf@{error\_buf}}
\index{error\_buf@{error\_buf}!aare::logger::Logger@{aare::logger::Logger}}
\doxysubsubsection{\texorpdfstring{error\_buf}{error\_buf}}
{\footnotesize\ttfamily std\+::streambuf\texorpdfstring{$\ast$}{*} aare\+::logger\+::\+Logger\+::error\+\_\+buf = std\+::cerr.\+rdbuf()\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1logger_1_1Logger_aacddc9dbc5f3909779766a6290cfa9e2}\label{classaare_1_1logger_1_1Logger_aacddc9dbc5f3909779766a6290cfa9e2}
\index{aare::logger::Logger@{aare::logger::Logger}!error\_output@{error\_output}}
\index{error\_output@{error\_output}!aare::logger::Logger@{aare::logger::Logger}}
\doxysubsubsection{\texorpdfstring{error\_output}{error\_output}}
{\footnotesize\ttfamily std\+::ostream\texorpdfstring{$\ast$}{*} aare\+::logger\+::\+Logger\+::error\+\_\+output\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1logger_1_1Logger_a4b40d1254643c48085df472a850edf14}\label{classaare_1_1logger_1_1Logger_a4b40d1254643c48085df472a850edf14}
\index{aare::logger::Logger@{aare::logger::Logger}!out\_file@{out\_file}}
\index{out\_file@{out\_file}!aare::logger::Logger@{aare::logger::Logger}}
\doxysubsubsection{\texorpdfstring{out\_file}{out\_file}}
{\footnotesize\ttfamily std\+::ofstream aare\+::logger\+::\+Logger\+::out\+\_\+file\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1logger_1_1Logger_ae2e6694d5ed4e385a8fff81cfa31b881}\label{classaare_1_1logger_1_1Logger_ae2e6694d5ed4e385a8fff81cfa31b881}
\index{aare::logger::Logger@{aare::logger::Logger}!standard\_buf@{standard\_buf}}
\index{standard\_buf@{standard\_buf}!aare::logger::Logger@{aare::logger::Logger}}
\doxysubsubsection{\texorpdfstring{standard\_buf}{standard\_buf}}
{\footnotesize\ttfamily std\+::streambuf\texorpdfstring{$\ast$}{*} aare\+::logger\+::\+Logger\+::standard\+\_\+buf = std\+::cout.\+rdbuf()\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1logger_1_1Logger_a9a97e0af9b628e0b44f1650503e3703b}\label{classaare_1_1logger_1_1Logger_a9a97e0af9b628e0b44f1650503e3703b}
\index{aare::logger::Logger@{aare::logger::Logger}!standard\_output@{standard\_output}}
\index{standard\_output@{standard\_output}!aare::logger::Logger@{aare::logger::Logger}}
\doxysubsubsection{\texorpdfstring{standard\_output}{standard\_output}}
{\footnotesize\ttfamily std\+::ostream\texorpdfstring{$\ast$}{*} aare\+::logger\+::\+Logger\+::standard\+\_\+output\hspace{0.3cm}{\ttfamily [private]}}
\Hypertarget{classaare_1_1logger_1_1Logger_a8442d8748d3441ada95d85c95fd2ba9f}\label{classaare_1_1logger_1_1Logger_a8442d8748d3441ada95d85c95fd2ba9f}
\index{aare::logger::Logger@{aare::logger::Logger}!VERBOSITY\_LEVEL@{VERBOSITY\_LEVEL}}
\index{VERBOSITY\_LEVEL@{VERBOSITY\_LEVEL}!aare::logger::Logger@{aare::logger::Logger}}
\doxysubsubsection{\texorpdfstring{VERBOSITY\_LEVEL}{VERBOSITY\_LEVEL}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespaceaare_1_1logger_af49e00b36677b44ea78813c109b697ed}{LOGGING\+\_\+\+LEVEL}} aare\+::logger\+::\+Logger\+::\+VERBOSITY\+\_\+\+LEVEL = \mbox{\hyperlink{namespaceaare_1_1logger_af49e00b36677b44ea78813c109b697edaa299d78fc1de06730cc5c9e63992071f}{LOGGING\+\_\+\+LEVEL\+::\+INFO}}\hspace{0.3cm}{\ttfamily [private]}}
The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item
utils/include/aare/utils/\mbox{\hyperlink{logger_8hpp}{logger.\+hpp}}\end{DoxyCompactItemize}

Some files were not shown because too many files have changed in this diff Show More