\doxysection{lo\+\_\+cpp.\+h}
\hypertarget{lo__cpp_8h_source}{}\label{lo__cpp_8h_source}\index{lo\_cpp.h@{lo\_cpp.h}}
\mbox{\hyperlink{lo__cpp_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00001}00001\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00002}00002\ \textcolor{preprocessor}{\#ifndef\ \_LO\_CPP\_H\_}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00003}00003\ \textcolor{preprocessor}{\#define\ \_LO\_CPP\_H\_}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00004}00004\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00005}00005\ \textcolor{preprocessor}{\#include\ <\mbox{\hyperlink{lo_8h}{lo/lo.h}}>}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00006}00006\ \textcolor{preprocessor}{\#include\ <lo/lo\_throw.h>}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00007}00007\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00008}00008\ \textcolor{preprocessor}{\#include\ <functional>}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00009}00009\ \textcolor{preprocessor}{\#include\ <memory>}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00010}00010\ \textcolor{preprocessor}{\#include\ <list>}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00011}00011\ \textcolor{preprocessor}{\#include\ <algorithm>}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00012}00012\ \textcolor{preprocessor}{\#include\ <unordered\_map>}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00013}00013\ \textcolor{preprocessor}{\#include\ <string>}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00014}00014\ \textcolor{preprocessor}{\#if\ \_\_cplusplus\ >=\ 201703L}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00015}00015\ \textcolor{preprocessor}{\#include\ <string\_view>}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00016}00016\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00017}00017\ \textcolor{preprocessor}{\#include\ <initializer\_list>}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00018}00018\ \textcolor{preprocessor}{\#ifndef\ LO\_USE\_EXCEPTIONS}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00019}00019\ \textcolor{preprocessor}{\#include\ <cassert>}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00020}00020\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00021}00021\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00025}00025\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00044}00044\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00045}00045\ \textcolor{preprocessor}{\#define\ LO\_ADD\_METHOD\_RT(ht,\ argtypes,\ args,\ rt,\ r,\ r1,\ r2)\ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00046}00046\ \textcolor{preprocessor}{\ \ \ \ template\ <typename\ H>\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00047}00047\ \textcolor{preprocessor}{\ \ \ \ Method\ add\_method(const\ string\_type\ path,\ const\ string\_type\ types,\ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00048}00048\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ H\&\&\ h,\ rt*\ \_unused=0)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00049}00049\ \textcolor{preprocessor}{\ \ \ \ \{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00050}00050\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ std::string\ key(path.s()\ +\ "{},"{}\ +\ types.s());\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00051}00051\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \_handlers[key].push\_front(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00052}00052\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ std::unique\_ptr<handler>(new\ handler\_type<r\ ht>(h)));\ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00053}00053\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ lo\_method\ m\ =\ \_add\_method(path,\ types,\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00054}00054\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ [](const\ char\ *path,\ const\ char\ *types,\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00055}00055\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ lo\_arg\ **argv,\ int\ argc,\ lo\_message\ msg,\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00056}00056\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ void\ *data)-\/>int\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00057}00057\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00058}00058\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ r1\ (*static\_cast<handler\_type<r\ ht>*>(data))\ args;\ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00059}00059\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ r2;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00060}00060\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \},\ \_handlers[key].front().get());\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00061}00061\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \_handlers[key].front()-\/>method\ =\ m;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00062}00062\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ return\ m;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00063}00063\ \textcolor{preprocessor}{\ \ \ \ \}}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00064}00064\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00065}00065\ \textcolor{preprocessor}{\#define\ RT\_INT(argtypes)\ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00066}00066\ \textcolor{preprocessor}{\ \ \ \ typename\ std::enable\_if<std::is\_same<decltype(h\ argtypes),\ int>::value,\ void>::type}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00067}00067\ \textcolor{preprocessor}{\#define\ RT\_VOID(argtypes)\ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00068}00068\ \textcolor{preprocessor}{\ \ \ \ typename\ std::enable\_if<std::is\_same<decltype(h\ argtypes),\ void>::value,\ void>::type}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00069}00069\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00070}00070\ \textcolor{preprocessor}{\#define\ LO\_ADD\_METHOD(ht,\ argtypes,\ args)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00071}00071\ \textcolor{preprocessor}{\ \ \ \ LO\_ADD\_METHOD\_RT(ht,\ argtypes,\ args,\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00072}00072\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ RT\_INT(argtypes),\ int,\ return,);\ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00073}00073\ \textcolor{preprocessor}{\ \ \ \ LO\_ADD\_METHOD\_RT(ht,\ argtypes,\ args,\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00074}00074\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ RT\_VOID(argtypes),\ void,\ ,\ return\ 0)}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00075}00075\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00076}00076\ \textcolor{keyword}{namespace\ }lo\ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00077}00077\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00078}00078\ \ \ \ \ \textcolor{comment}{//\ Helper\ classes\ to\ allow\ polymorphism\ on\ "{}const\ char\ *"{},}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00079}00079\ \ \ \ \ \textcolor{comment}{//\ "{}std::string"{},\ and\ "{}int"{}.}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00080}00080\ \ \ \ \ \textcolor{keyword}{class\ }string\_type\ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00081}00081\ \ \ \ \ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00082}00082\ \ \ \ \ \ \ \ \ string\_type(\textcolor{keyword}{const}\ string\_type\&\ s)\ \{\ \_s\ =\ s.\_s;\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00083}00083\ \ \ \ \ \ \ \ \ string\_type(\textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *s=0)\ \{\ \_s\ =\ s;\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00084}00084\ \ \ \ \ \ \ \ \ string\_type(\textcolor{keyword}{const}\ std::string\ \&s)\ \{\ \_s\ =\ s.c\_str();\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00085}00085\ \textcolor{preprocessor}{\#if\ \_\_cplusplus\ >=\ 201703L}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00086}00086\ \ \ \ \ \ \ \ \ string\_type(\textcolor{keyword}{const}\ std::string\_view\&\ s)\ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00087}00087\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (s[s.length()]==0)\ \_s\ =\ s.data();}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00088}00088\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \{\ \_p.reset(\textcolor{keyword}{new}\ std::string(s));\ \_s\ =\ \_p-\/>c\_str();\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00089}00089\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00090}00090\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00091}00091\ \ \ \ \ \ \ \ \ \textcolor{keyword}{operator}\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*()\ \textcolor{keyword}{const}\ \{\ \textcolor{keywordflow}{return}\ \_s;\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00092}00092\ \ \ \ \ \ \ \ \ std::string\ s()\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ \_s?\_s:\textcolor{stringliteral}{"{}"{}};\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00093}00093\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *\_s;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00094}00094\ \ \ \ \ \ \ \ \ std::unique\_ptr<std::string>\ \_p;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00095}00095\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00096}00096\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00097}00097\ \ \ \ \ \textcolor{keyword}{class\ }num\_string\_type\ :\ \textcolor{keyword}{public}\ string\_type\ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00098}00098\ \ \ \ \ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00099}00099\ \ \ \ \ \ \ \ \ num\_string\_type(\textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *s)\ :\ string\_type(s)\ \{\}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00100}00100\ \ \ \ \ \ \ \ \ num\_string\_type(\textcolor{keyword}{const}\ std::string\ \&s)\ :\ string\_type(s)\ \{\}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00101}00101\ \textcolor{preprocessor}{\#if\ \_\_cplusplus\ >=\ 201703L}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00102}00102\ \ \ \ \ \ \ \ \ num\_string\_type(\textcolor{keyword}{const}\ std::string\_view\&\ s)\ :\ string\_type(s)\ \{\}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00103}00103\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00104}00104\ \ \ \ \ \ \ \ \ num\_string\_type(\textcolor{keywordtype}{int}\ n)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00105}00105\ \ \ \ \ \ \ \ \ \ \ \{\_p.reset(\textcolor{keyword}{new}\ std::string(std::to\_string(n)));\ \_s\ =\ \_p-\/>c\_str();\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00106}00106\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00107}00107\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00108}00108\ \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00109}00109\ \textcolor{comment}{\ *\ Error\ handling:}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00110}00110\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00111}00111\ \textcolor{comment}{\ *\ Define\ LO\_USE\_EXCEPTIONS\ to\ throw\ the\ following\ exceptions\ instead}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00112}00112\ \textcolor{comment}{\ *\ of\ aborting\ on\ error.\ \ The\ alternative\ (and\ default)\ is\ that}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00113}00113\ \textcolor{comment}{\ *\ assert()\ will\ crash\ your\ program\ in\ debug\ mode,\ and\ you\ should}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00114}00114\ \textcolor{comment}{\ *\ check\ is\_valid()\ before\ operations\ that\ might\ break\ the\ assertion.}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00115}00115\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00116}00116\ \textcolor{comment}{\ *\ Note\ that\ in\ the\ latter\ case,\ the\ program\ may\ return\ a\ C++\ class}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00117}00117\ \textcolor{comment}{\ *\ that\ will\ not\ contain\ a\ valid\ liblo\ object,\ this\ is\ why}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00118}00118\ \textcolor{comment}{\ *\ LO\_CHECK\_AFTER\ does\ not\ do\ anything;\ it\ is\ up\ to\ user\ code\ to\ check}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00119}00119\ \textcolor{comment}{\ *\ is\_valid()\ after\ constructing\ Server()\ and\ ServerThread().\ On\ the}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00120}00120\ \textcolor{comment}{\ *\ contrary,\ when\ LO\_USE\_EXCEPTIONS\ is\ enabled,\ an\ Error\ exception}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00121}00121\ \textcolor{comment}{\ *\ will\ be\ thrown\ if\ the\ object\ was\ not\ successfully\ created.}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00122}00122\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00123}00123\ \textcolor{comment}{\ *\ Rules:}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00124}00124\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00125}00125\ \textcolor{comment}{\ *\ -\/\ Constructors\ that\ create\ underlying\ liblo\ objects\ shall\ either}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00126}00126\ \textcolor{comment}{\ *\ \ \ fail\ silently,\ depending\ on\ calling\ code\ to\ check\ is\_valid(),\ or}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00127}00127\ \textcolor{comment}{\ *\ \ \ throw\ lo::Error()\ in\ the\ case\ of\ LO\_USE\_EXCEPTIONS.}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00128}00128\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00129}00129\ \textcolor{comment}{\ *\ -\/\ Constructors\ that\ receive\ an\ existing\ liblo\ object\ do\ not\ throw}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00130}00130\ \textcolor{comment}{\ *\ \ \ any\ exceptions\ if\ the\ passed\ in\ object\ is\ nullptr.}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00131}00131\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00132}00132\ \textcolor{comment}{\ *\ -\/\ All\ other\ functions\ shall\ assert()\ or\ throw\ lo::Invalid()\ if\ the}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00133}00133\ \textcolor{comment}{\ *\ \ \ underlying\ liblo\ object\ is\ not\ valid.}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00134}00134\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00135}00135\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00136}00136\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00137}00137\ \textcolor{preprocessor}{\#ifdef\ LO\_USE\_EXCEPTIONS}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00138}00138\ \ \ \ \ \textcolor{keyword}{struct\ }Invalid\ \{\};}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00139}00139\ \ \ \ \ \textcolor{keyword}{struct\ }Error\ \{\};}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00140}00140\ \textcolor{preprocessor}{\#define\ LO\_CHECK\_BEFORE\ if\ (!is\_valid())\ throw\ Invalid();}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00141}00141\ \textcolor{preprocessor}{\#define\ LO\_CHECK\_AFTER\ if\ (!is\_valid())\ throw\ Error();}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00142}00142\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00143}00143\ \textcolor{preprocessor}{\#define\ LO\_CHECK\_BEFORE\ assert(is\_valid());}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00144}00144\ \textcolor{preprocessor}{\#define\ LO\_CHECK\_AFTER}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00145}00145\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00146}00146\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00147}00147\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classlo_1_1ServerThread}{ServerThread}};}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00148}00148\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00150}\mbox{\hyperlink{classlo_1_1Method}{00150}}\ \ \ \ \ \textcolor{keyword}{class\ }Method}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00151}00151\ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00152}00152\ \ \ \ \ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00153}00153\ \ \ \ \ \ \ \ \ Method(\mbox{\hyperlink{lo__types_8h_af7b2be2fe593905cfaa9149efff4cc28}{lo\_method}}\ m)\ :\ method(m)\ \{\}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00154}00154\ \ \ \ \ \ \ \ \ \textcolor{keyword}{operator}\ \mbox{\hyperlink{lo__types_8h_af7b2be2fe593905cfaa9149efff4cc28}{lo\_method}}()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00155}00155\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ \textcolor{keywordflow}{return}\ method;\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00156}00156\ \ \ \ \ \ \ \textcolor{keyword}{protected}:}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00157}00157\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lo__types_8h_af7b2be2fe593905cfaa9149efff4cc28}{lo\_method}}\ method;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00158}00158\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00159}00159\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00162}\mbox{\hyperlink{classlo_1_1Address}{00162}}\ \ \ \ \ \textcolor{keyword}{class\ }Address}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00163}00163\ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00164}00164\ \ \ \ \ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00165}00165\ \ \ \ \ \ \ \ \ Address(\textcolor{keyword}{const}\ string\_type\ \&host,\ \textcolor{keyword}{const}\ num\_string\_type\ \&port,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00166}00166\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ proto=LO\_UDP)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00167}00167\ \ \ \ \ \ \ \ \ \ \ \{\ address\ =\ \mbox{\hyperlink{group__liblo_gaceb4b068bc48c2b075e790910cab3075}{lo\_address\_new\_with\_proto}}(proto,\ host,\ port);\ owned=\textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00168}00168\ \ \ \ \ \ \ \ \ \ \ \ \ LO\_CHECK\_AFTER;\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00169}00169\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00170}00170\ \ \ \ \ \ \ \ \ Address(\textcolor{keyword}{const}\ string\_type\ \&url)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00171}00171\ \ \ \ \ \ \ \ \ \ \ \{\ address\ =\ \mbox{\hyperlink{group__liblo_ga1af2cb3c80393cba838f64dfcdc35620}{lo\_address\_new\_from\_url}}(url);\ owned=\textcolor{keyword}{true};\ LO\_CHECK\_AFTER;\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00172}00172\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00173}00173\ \ \ \ \ \ \ \ \ Address(\mbox{\hyperlink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{lo\_address}}\ a,\ \textcolor{keywordtype}{bool}\ \_owned=\textcolor{keyword}{true})}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00174}00174\ \ \ \ \ \ \ \ \ \ \ \{\ address\ =\ a;\ owned=\_owned;\ LO\_CHECK\_AFTER;\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00175}00175\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00176}00176\ \ \ \ \ \ \ \ \ \string~Address()}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00177}00177\ \ \ \ \ \ \ \ \ \ \ \{\ \textcolor{keywordflow}{if}\ (address\ \&\&\ owned)\ \mbox{\hyperlink{group__liblo_ga82b9a2d1d30214114eb5298f43aebac5}{lo\_address\_free}}(address);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00178}00178\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00179}00179\ \ \ \ \ \ \ \ \ Address\&\ operator=(Address\ b)\ \{\ b.swap(*\textcolor{keyword}{this});\ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00180}00180\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ swap(Address\&\ b)\ \textcolor{keywordflow}{throw}\ ()\ \{\ std::swap(this-\/>address,\ b.address);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00181}00181\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00182}00182\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ is\_valid()\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ address!=\textcolor{keyword}{nullptr};\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00183}00183\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00184}00184\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ ttl()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00185}00185\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblo_ga3652ba694ba3c153dc96917e7321131c}{lo\_address\_get\_ttl}}(address);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00186}00186\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00187}00187\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ set\_ttl(\textcolor{keywordtype}{int}\ ttl)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00188}00188\ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \mbox{\hyperlink{group__liblo_gacd72097b92411db148844d89071fd281}{lo\_address\_set\_ttl}}(address,\ ttl);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00189}00189\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00190}00190\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ send(\textcolor{keyword}{const}\ string\_type\ \&path)\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00191}00191\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblo_gafa4253874f97c2c16254ac57d2b7c987}{lo\_send}}(address,\ path,\ \textcolor{stringliteral}{"{}"{}});\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00192}00192\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00193}00193\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ In\ these\ functions\ we\ append\ "{}\$\$"{}\ to\ the\ type\ string,\ which}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00194}00194\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ simply\ instructs\ lo\_message\_add\_varargs()\ not\ to\ use}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00195}00195\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ LO\_MARKER\ checking\ at\ the\ end\ of\ the\ argument\ list.}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00196}00196\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ send(\textcolor{keyword}{const}\ string\_type\ \&path,\ \textcolor{keyword}{const}\ string\_type\ type,\ ...)\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00197}00197\ \textcolor{keyword}{\ \ \ \ \ \ \ \ }\{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00198}00198\ \ \ \ \ \ \ \ \ \ \ \ \ LO\_CHECK\_BEFORE;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00199}00199\ \ \ \ \ \ \ \ \ \ \ \ \ va\_list\ q;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00200}00200\ \ \ \ \ \ \ \ \ \ \ \ \ va\_start(q,\ type);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00201}00201\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lo__types_8h_a50be181dde1a8d313dbc7e48d4032210}{lo\_message}}\ m\ =\ \mbox{\hyperlink{group__liblolowlevel_ga1e938ecc9160a194424423b400019410}{lo\_message\_new}}();}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00202}00202\ \ \ \ \ \ \ \ \ \ \ \ \ std::string\ t\ =\ type.s()\ +\ \textcolor{stringliteral}{"{}\$\$"{}};}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00203}00203\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__liblolowlevel_ga9cd98b0c6ad5468692fd0b1936bd093f}{lo\_message\_add\_varargs}}(m,\ t.c\_str(),\ q);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00204}00204\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ r\ =\ \mbox{\hyperlink{group__liblolowlevel_ga175a13c6d81adf5c346cdca9bbdcf225}{lo\_send\_message}}(address,\ path,\ m);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00205}00205\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__liblolowlevel_ga93d3687e77ae20167b82830c917a3e50}{lo\_message\_free}}(m);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00206}00206\ \ \ \ \ \ \ \ \ \ \ \ \ va\_end(q);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00207}00207\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ r;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00208}00208\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00209}00209\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00210}00210\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ send(\mbox{\hyperlink{structlo__timetag}{lo\_timetag}}\ ts,\ \textcolor{keyword}{const}\ string\_type\ \&path,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00211}00211\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ string\_type\ type,\ ...)\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00212}00212\ \textcolor{keyword}{\ \ \ \ \ \ \ \ }\{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00213}00213\ \ \ \ \ \ \ \ \ \ \ \ \ LO\_CHECK\_BEFORE;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00214}00214\ \ \ \ \ \ \ \ \ \ \ \ \ va\_list\ q;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00215}00215\ \ \ \ \ \ \ \ \ \ \ \ \ va\_start(q,\ type);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00216}00216\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lo__types_8h_a50be181dde1a8d313dbc7e48d4032210}{lo\_message}}\ m\ =\ \mbox{\hyperlink{group__liblolowlevel_ga1e938ecc9160a194424423b400019410}{lo\_message\_new}}();}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00217}00217\ \ \ \ \ \ \ \ \ \ \ \ \ std::string\ t\ =\ std::string(type)\ +\ \textcolor{stringliteral}{"{}\$\$"{}};}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00218}00218\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__liblolowlevel_ga9cd98b0c6ad5468692fd0b1936bd093f}{lo\_message\_add\_varargs}}(m,\ t.c\_str(),\ q);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00219}00219\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lo__types_8h_ae30a81e4a90d9e6809e72afdf2ae768f}{lo\_bundle}}\ b\ =\ \mbox{\hyperlink{group__liblolowlevel_ga330a4a4e6227b185b3ec6219ff3e2859}{lo\_bundle\_new}}(ts);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00220}00220\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__liblolowlevel_ga1cc5e2eb20ce567a694f343764e25bb7}{lo\_bundle\_add\_message}}(b,\ path,\ m);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00221}00221\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ r\ =\ \mbox{\hyperlink{group__liblolowlevel_gad1138d0f777693ae0321e3da65aee53e}{lo\_send\_bundle}}(address,\ b);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00222}00222\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__liblolowlevel_ga2773611a57270837fff398b716fa8459}{lo\_bundle\_free\_messages}}(b);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00223}00223\ \ \ \ \ \ \ \ \ \ \ \ \ va\_end(q);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00224}00224\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ r;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00225}00225\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00226}00226\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00227}00227\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ send(\textcolor{keyword}{const}\ string\_type\ \&path,\ \mbox{\hyperlink{lo__types_8h_a50be181dde1a8d313dbc7e48d4032210}{lo\_message}}\ m)\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00228}00228\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga175a13c6d81adf5c346cdca9bbdcf225}{lo\_send\_message}}(address,\ path,\ m);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00229}00229\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00230}00230\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ send(\mbox{\hyperlink{lo__types_8h_ae30a81e4a90d9e6809e72afdf2ae768f}{lo\_bundle}}\ b)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00231}00231\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_gad1138d0f777693ae0321e3da65aee53e}{lo\_send\_bundle}}(address,\ b);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00232}00232\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00233}00233\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ send\_from(\mbox{\hyperlink{classlo_1_1ServerThread}{lo::ServerThread}}\ \&from,\ \textcolor{keyword}{const}\ string\_type\ \&path,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00234}00234\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ string\_type\ type,\ ...)\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00235}00235\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00236}00236\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ send\_from(\mbox{\hyperlink{lo__types_8h_a009a4f26c17bfcc1c31efc45499d09b8}{lo\_server}}\ from,\ \textcolor{keyword}{const}\ string\_type\ \&path,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00237}00237\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ string\_type\ type,\ ...)\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00238}00238\ \textcolor{keyword}{\ \ \ \ \ \ \ \ }\{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00239}00239\ \ \ \ \ \ \ \ \ \ \ \ \ LO\_CHECK\_BEFORE;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00240}00240\ \ \ \ \ \ \ \ \ \ \ \ \ va\_list\ q;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00241}00241\ \ \ \ \ \ \ \ \ \ \ \ \ va\_start(q,\ type);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00242}00242\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lo__types_8h_a50be181dde1a8d313dbc7e48d4032210}{lo\_message}}\ m\ =\ \mbox{\hyperlink{group__liblolowlevel_ga1e938ecc9160a194424423b400019410}{lo\_message\_new}}();}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00243}00243\ \ \ \ \ \ \ \ \ \ \ \ \ std::string\ t\ =\ std::string(type)\ +\ \textcolor{stringliteral}{"{}\$\$"{}};}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00244}00244\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__liblolowlevel_ga9cd98b0c6ad5468692fd0b1936bd093f}{lo\_message\_add\_varargs}}(m,\ t.c\_str(),\ q);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00245}00245\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ r\ =\ \mbox{\hyperlink{group__liblolowlevel_ga9d1aa7c1ee1ce60fe0cf7e3f1e5a6822}{lo\_send\_message\_from}}(address,\ from,\ path,\ m);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00246}00246\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__liblolowlevel_ga93d3687e77ae20167b82830c917a3e50}{lo\_message\_free}}(m);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00247}00247\ \ \ \ \ \ \ \ \ \ \ \ \ va\_end(q);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00248}00248\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ r;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00249}00249\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00250}00250\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00251}00251\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ send\_from(\mbox{\hyperlink{lo__types_8h_a009a4f26c17bfcc1c31efc45499d09b8}{lo\_server}}\ from,\ \mbox{\hyperlink{structlo__timetag}{lo\_timetag}}\ ts,\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00252}00252\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ string\_type\ \&path,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00253}00253\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ string\_type\ type,\ ...)\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00254}00254\ \textcolor{keyword}{\ \ \ \ \ \ \ \ }\{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00255}00255\ \ \ \ \ \ \ \ \ \ \ \ \ LO\_CHECK\_BEFORE;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00256}00256\ \ \ \ \ \ \ \ \ \ \ \ \ va\_list\ q;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00257}00257\ \ \ \ \ \ \ \ \ \ \ \ \ va\_start(q,\ type);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00258}00258\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lo__types_8h_a50be181dde1a8d313dbc7e48d4032210}{lo\_message}}\ m\ =\ \mbox{\hyperlink{group__liblolowlevel_ga1e938ecc9160a194424423b400019410}{lo\_message\_new}}();}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00259}00259\ \ \ \ \ \ \ \ \ \ \ \ \ std::string\ t\ =\ std::string(type)\ +\ \textcolor{stringliteral}{"{}\$\$"{}};}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00260}00260\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__liblolowlevel_ga9cd98b0c6ad5468692fd0b1936bd093f}{lo\_message\_add\_varargs}}(m,\ t.c\_str(),\ q);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00261}00261\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lo__types_8h_ae30a81e4a90d9e6809e72afdf2ae768f}{lo\_bundle}}\ b\ =\ \mbox{\hyperlink{group__liblolowlevel_ga330a4a4e6227b185b3ec6219ff3e2859}{lo\_bundle\_new}}(ts);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00262}00262\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__liblolowlevel_ga1cc5e2eb20ce567a694f343764e25bb7}{lo\_bundle\_add\_message}}(b,\ path,\ m);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00263}00263\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ r\ =\ \mbox{\hyperlink{group__liblolowlevel_gab5de220b7d6d7c2bf6b0ca4316a54b7a}{lo\_send\_bundle\_from}}(address,\ from,\ b);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00264}00264\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__liblolowlevel_ga2773611a57270837fff398b716fa8459}{lo\_bundle\_free\_messages}}(b);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00265}00265\ \ \ \ \ \ \ \ \ \ \ \ \ va\_end(q);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00266}00266\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ r;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00267}00267\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00268}00268\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00269}00269\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ send\_from(\mbox{\hyperlink{lo__types_8h_a009a4f26c17bfcc1c31efc45499d09b8}{lo\_server}}\ from,\ \textcolor{keyword}{const}\ string\_type\ \&path,\ \mbox{\hyperlink{lo__types_8h_a50be181dde1a8d313dbc7e48d4032210}{lo\_message}}\ m)\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00270}00270\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga9d1aa7c1ee1ce60fe0cf7e3f1e5a6822}{lo\_send\_message\_from}}(address,\ from,\ path,\ m);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00271}00271\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00272}00272\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ send\_from(\mbox{\hyperlink{classlo_1_1ServerThread}{lo::ServerThread}}\ \&from,\ \mbox{\hyperlink{lo__types_8h_ae30a81e4a90d9e6809e72afdf2ae768f}{lo\_bundle}}\ b)\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00273}00273\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00274}00274\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ send\_from(\mbox{\hyperlink{lo__types_8h_a009a4f26c17bfcc1c31efc45499d09b8}{lo\_server}}\ from,\ \mbox{\hyperlink{lo__types_8h_ae30a81e4a90d9e6809e72afdf2ae768f}{lo\_bundle}}\ b)\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00275}00275\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_gab5de220b7d6d7c2bf6b0ca4316a54b7a}{lo\_send\_bundle\_from}}(address,\ from,\ b);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00276}00276\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00277}00277\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ get\_errno()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00278}00278\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblo_ga407e1694a2ec58ee5b90c6390e0a5d53}{lo\_address\_errno}}(address);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00279}00279\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00280}00280\ \ \ \ \ \ \ \ \ std::string\ errstr()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00281}00281\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keyword}{auto}\ s(\mbox{\hyperlink{group__liblo_gafc6f04654d86ee1ddcce471a180392bf}{lo\_address\_errstr}}(address));\ \textcolor{keywordflow}{return}\ std::string(s?s:\textcolor{stringliteral}{"{}"{}});\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00282}00282\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00283}00283\ \ \ \ \ \ \ \ \ std::string\ hostname()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00284}00284\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keyword}{auto}\ s(\mbox{\hyperlink{group__liblolowlevel_ga0a6ba65c3b486c5a9a2f51fc90eb3235}{lo\_address\_get\_hostname}}(address));\ \textcolor{keywordflow}{return}\ std::string(s?s:\textcolor{stringliteral}{"{}"{}});\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00285}00285\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00286}00286\ \ \ \ \ \ \ \ \ std::string\ port()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00287}00287\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keyword}{auto}\ s(\mbox{\hyperlink{group__liblolowlevel_gac3262b6d9adca5ee008a3411a24d1b0c}{lo\_address\_get\_port}}(address));\ \textcolor{keywordflow}{return}\ std::string(s?s:\textcolor{stringliteral}{"{}"{}});\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00288}00288\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00289}00289\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ protocol()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00290}00290\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_gaaae09ebb4cf42e92504fe9aa7e7b2184}{lo\_address\_get\_protocol}}(address);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00291}00291\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00292}00292\ \ \ \ \ \ \ \ \ std::string\ url()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00293}00293\ \textcolor{keyword}{\ \ \ \ \ \ \ \ }\{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00294}00294\ \ \ \ \ \ \ \ \ \ \ \ \ LO\_CHECK\_BEFORE;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00295}00295\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{char}*\ s(\mbox{\hyperlink{group__liblolowlevel_gad08a0fedc030283b708171cb7228292c}{lo\_address\_get\_url}}(address));}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00296}00296\ \ \ \ \ \ \ \ \ \ \ \ \ std::string\ result(s?s:\textcolor{stringliteral}{"{}"{}});}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00297}00297\ \ \ \ \ \ \ \ \ \ \ \ \ free(s);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00298}00298\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00299}00299\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00300}00300\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00301}00301\ \ \ \ \ \ \ \ \ std::string\ iface()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00302}00302\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keyword}{auto}\ s(\mbox{\hyperlink{group__liblolowlevel_ga92193435fca050595a66b1b93b59a9b8}{lo\_address\_get\_iface}}(address));\ \textcolor{keywordflow}{return}\ std::string(s?s:\textcolor{stringliteral}{"{}"{}});\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00303}00303\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00304}00304\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ set\_iface(\textcolor{keyword}{const}\ string\_type\ \&iface,\ \textcolor{keyword}{const}\ string\_type\ \&ip)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00305}00305\ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \mbox{\hyperlink{group__liblolowlevel_ga734c5864de14a04c9e58f82d6efe4624}{lo\_address\_set\_iface}}(address,\ iface,\ ip);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00306}00306\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00307}00307\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ set\_tcp\_nodelay(\textcolor{keywordtype}{int}\ enable)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00308}00308\ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga9d73ff7267077cc69f632cbfeb30a23e}{lo\_address\_set\_tcp\_nodelay}}(address,\ enable);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00309}00309\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00310}00310\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ set\_stream\_slip(\mbox{\hyperlink{group__liblolowlevel_ga302dd4ed3490f756b29013162a24a704}{lo\_slip\_encoding}}\ encoding)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00311}00311\ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga7cc8e328923b75ca4f6ca55da10b170a}{lo\_address\_set\_stream\_slip}}(address,\ encoding);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00312}00312\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00313}00313\ \ \ \ \ \ \ \ \ \textcolor{keyword}{operator}\ \mbox{\hyperlink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{lo\_address}}()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00314}00314\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ \textcolor{keywordflow}{return}\ address;\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00315}00315\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00316}00316\ \ \ \ \ \ \ \textcolor{keyword}{protected}:}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00317}00317\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{lo\_address}}\ address;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00318}00318\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ owned;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00319}00319\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00320}00320\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00322}\mbox{\hyperlink{classlo_1_1Message}{00322}}\ \ \ \ \ \textcolor{keyword}{class\ }Message}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00323}00323\ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00324}00324\ \ \ \ \ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00325}00325\ \ \ \ \ \ \ \ \ Message()}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00326}00326\ \ \ \ \ \ \ \ \ \ \ \ \ :\ message(\mbox{\hyperlink{group__liblolowlevel_ga1e938ecc9160a194424423b400019410}{lo\_message\_new}}())\ \{\ \textcolor{keywordflow}{if}\ (message)\ \mbox{\hyperlink{group__liblolowlevel_gae4007dd073375b8448a0c8efcb39da52}{lo\_message\_incref}}(message);\ LO\_CHECK\_AFTER;\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00327}00327\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00328}00328\ \ \ \ \ \ \ \ \ Message(\mbox{\hyperlink{lo__types_8h_a50be181dde1a8d313dbc7e48d4032210}{lo\_message}}\ m)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00329}00329\ \ \ \ \ \ \ \ \ \ \ \ \ :\ message(m)\ \{\ \textcolor{keywordflow}{if}\ (m)\ \{\ \mbox{\hyperlink{group__liblolowlevel_gae4007dd073375b8448a0c8efcb39da52}{lo\_message\_incref}}(m);\ \}\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00330}00330\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00331}00331\ \ \ \ \ \ \ \ \ Message(\textcolor{keyword}{const}\ Message\ \&m)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00332}00332\ \ \ \ \ \ \ \ \ \ \ \ \ :\ message(m.message)\ \{\ \textcolor{keywordflow}{if}\ (m.message)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00333}00333\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__liblolowlevel_gae4007dd073375b8448a0c8efcb39da52}{lo\_message\_incref}}(m.message);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00334}00334\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00335}00335\ \ \ \ \ \ \ \ \ Message(\textcolor{keyword}{const}\ string\_type\ types,\ ...)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00336}00336\ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00337}00337\ \ \ \ \ \ \ \ \ \ \ \ \ message\ =\ \mbox{\hyperlink{group__liblolowlevel_ga1e938ecc9160a194424423b400019410}{lo\_message\_new}}();}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00338}00338\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (message)\ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00339}00339\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__liblolowlevel_gae4007dd073375b8448a0c8efcb39da52}{lo\_message\_incref}}(message);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00340}00340\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ va\_list\ q;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00341}00341\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ va\_start(q,\ types);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00342}00342\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ std::string\ t(std::string(types)+\textcolor{stringliteral}{"{}\$\$"{}});}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00343}00343\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ add\_varargs(t.c\_str(),\ q);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00344}00344\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ va\_end(q);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00345}00345\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00346}00346\ \ \ \ \ \ \ \ \ \ \ \ \ LO\_CHECK\_AFTER;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00347}00347\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00348}00348\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00349}00349\ \ \ \ \ \ \ \ \ \string~Message()}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00350}00350\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ \textcolor{keywordflow}{if}\ (message)\ \mbox{\hyperlink{group__liblolowlevel_ga93d3687e77ae20167b82830c917a3e50}{lo\_message\_free}}(message);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00351}00351\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00352}00352\ \ \ \ \ \ \ \ \ Message\&\ operator=(Message\ m)\ \{\ m.swap(*\textcolor{keyword}{this});\ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00353}00353\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ swap(Message\&\ m)\ \textcolor{keywordflow}{throw}\ ()\ \{\ std::swap(this-\/>message,\ m.message);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00354}00354\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00355}00355\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ is\_valid()\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ message!=\textcolor{keyword}{nullptr};\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00356}00356\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00357}00357\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add(\textcolor{keyword}{const}\ string\_type\ types,\ ...)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00358}00358\ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00359}00359\ \ \ \ \ \ \ \ \ \ \ \ \ LO\_CHECK\_BEFORE;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00360}00360\ \ \ \ \ \ \ \ \ \ \ \ \ va\_list\ q;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00361}00361\ \ \ \ \ \ \ \ \ \ \ \ \ va\_start(q,\ types);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00362}00362\ \ \ \ \ \ \ \ \ \ \ \ \ std::string\ t(std::string(types)+\textcolor{stringliteral}{"{}\$\$"{}});}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00363}00363\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ ret\ =\ add\_varargs(t.c\_str(),\ q);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00364}00364\ \ \ \ \ \ \ \ \ \ \ \ \ va\_end(q);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00365}00365\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ ret;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00366}00366\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00367}00367\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00368}00368\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add\_varargs(\textcolor{keyword}{const}\ string\_type\ \&types,\ va\_list\ ap)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00369}00369\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga9cd98b0c6ad5468692fd0b1936bd093f}{lo\_message\_add\_varargs}}(message,\ types,\ ap);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00370}00370\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00371}00371\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add\_int32(int32\_t\ a)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00372}00372\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga7c9df1bd975a32fb6c8105e6fe327149}{lo\_message\_add\_int32}}(message,\ a);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00373}00373\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00374}00374\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add\_float(\textcolor{keywordtype}{float}\ a)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00375}00375\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga42815097ea691fd1ec0798beca7f8e5e}{lo\_message\_add\_float}}(message,\ a);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00376}00376\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00377}00377\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add\_string(\textcolor{keyword}{const}\ string\_type\ \&a)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00378}00378\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga4ff414b1b3d87454668dfd728b830888}{lo\_message\_add\_string}}(message,\ a);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00379}00379\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00380}00380\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add\_blob(\mbox{\hyperlink{lo__types_8h_a8f2b43f1b0709fab80bedc5a63f277f2}{lo\_blob}}\ a)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00381}00381\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_gac0ae2fc81d2a48fe63b0803637997fd4}{lo\_message\_add\_blob}}(message,\ a);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00382}00382\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00383}00383\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add\_int64(int64\_t\ a)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00384}00384\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga282ef81387abab0ce18f7479a4a817b5}{lo\_message\_add\_int64}}(message,\ a);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00385}00385\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00386}00386\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add\_timetag(\mbox{\hyperlink{structlo__timetag}{lo\_timetag}}\ a)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00387}00387\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga03f8eafa4ba598c545f30e17b23d1c89}{lo\_message\_add\_timetag}}(message,\ a);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00388}00388\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00389}00389\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add\_double(\textcolor{keywordtype}{double}\ a)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00390}00390\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_gadd3a8441ad5a749c43694e77594cf47b}{lo\_message\_add\_double}}(message,\ a);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00391}00391\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00392}00392\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add\_symbol(\textcolor{keyword}{const}\ string\_type\ \&a)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00393}00393\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga90e4dab46ecaabab4e34214429d622a7}{lo\_message\_add\_symbol}}(message,\ a);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00394}00394\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00395}00395\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add\_char(\textcolor{keywordtype}{char}\ a)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00396}00396\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_gab2423db077dea59c4049103819d2810b}{lo\_message\_add\_char}}(message,\ a);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00397}00397\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00398}00398\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add\_midi(uint8\_t\ a[4])}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00399}00399\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_gaaea6ac25787de608199a988dc214f32e}{lo\_message\_add\_midi}}(message,\ a);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00400}00400\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00401}00401\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add\_bool(\textcolor{keywordtype}{bool}\ b)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00402}00402\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00403}00403\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (b)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00404}00404\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga9da3df4838126910171a8e45ea34e9ec}{lo\_message\_add\_true}}(message);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00405}00405\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00406}00406\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga1c8a136e87e3d2befeb466e0a8a5a4ad}{lo\_message\_add\_false}}(message);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00407}00407\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00408}00408\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add\_true()}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00409}00409\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga9da3df4838126910171a8e45ea34e9ec}{lo\_message\_add\_true}}(message);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00410}00410\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00411}00411\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add\_false()}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00412}00412\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga1c8a136e87e3d2befeb466e0a8a5a4ad}{lo\_message\_add\_false}}(message);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00413}00413\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00414}00414\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add\_nil()}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00415}00415\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_gabd3cd7f86137ae1a180e33c3bc5c9644}{lo\_message\_add\_nil}}(message);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00416}00416\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00417}00417\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add\_infinitum()}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00418}00418\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga4cbd7d3834a67446b15f53acf316a72a}{lo\_message\_add\_infinitum}}(message);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00419}00419\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00420}00420\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Note,\ for\ polymorphic\ versions\ of\ "{}add"{},\ below,\ we\ can't\ do}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00421}00421\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ this\ for\ "{}string"{}\ or\ "{}symbol"{}\ types,\ since\ it\ is\ ambiguous}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00422}00422\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ with\ "{}add(types,\ ...)"{}\ above.}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00423}00423\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00424}00424\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add(int32\_t\ a)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00425}00425\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga7c9df1bd975a32fb6c8105e6fe327149}{lo\_message\_add\_int32}}(message,\ a);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00426}00426\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00427}00427\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add(\textcolor{keywordtype}{float}\ a)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00428}00428\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga42815097ea691fd1ec0798beca7f8e5e}{lo\_message\_add\_float}}(message,\ a);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00429}00429\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00430}00430\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add(\mbox{\hyperlink{lo__types_8h_a8f2b43f1b0709fab80bedc5a63f277f2}{lo\_blob}}\ a)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00431}00431\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_gac0ae2fc81d2a48fe63b0803637997fd4}{lo\_message\_add\_blob}}(message,\ a);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00432}00432\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00433}00433\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add(int64\_t\ a)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00434}00434\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga282ef81387abab0ce18f7479a4a817b5}{lo\_message\_add\_int64}}(message,\ a);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00435}00435\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00436}00436\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add(\mbox{\hyperlink{structlo__timetag}{lo\_timetag}}\ a)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00437}00437\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga03f8eafa4ba598c545f30e17b23d1c89}{lo\_message\_add\_timetag}}(message,\ a);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00438}00438\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00439}00439\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add(\textcolor{keywordtype}{double}\ a)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00440}00440\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_gadd3a8441ad5a749c43694e77594cf47b}{lo\_message\_add\_double}}(message,\ a);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00441}00441\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00442}00442\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add(\textcolor{keywordtype}{char}\ a)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00443}00443\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_gab2423db077dea59c4049103819d2810b}{lo\_message\_add\_char}}(message,\ a);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00444}00444\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00445}00445\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add(uint8\_t\ a[4])}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00446}00446\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_gaaea6ac25787de608199a988dc214f32e}{lo\_message\_add\_midi}}(message,\ a);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00447}00447\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00448}00448\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add(\textcolor{keywordtype}{bool}\ b)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00449}00449\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00450}00450\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (b)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00451}00451\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga9da3df4838126910171a8e45ea34e9ec}{lo\_message\_add\_true}}(message);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00452}00452\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00453}00453\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga1c8a136e87e3d2befeb466e0a8a5a4ad}{lo\_message\_add\_false}}(message);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00454}00454\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00455}00455\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classlo_1_1Address}{Address}}\ source()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00456}00456\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classlo_1_1Address}{Address}}(\mbox{\hyperlink{group__liblolowlevel_ga1f4e07e4f8b67edc98f4b300412a3dbb}{lo\_message\_get\_source}}(message),\ \textcolor{keyword}{false});\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00457}00457\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00458}00458\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structlo__timetag}{lo\_timetag}}\ timestamp()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00459}00459\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga164e068064afa94454eb6515b9b1748d}{lo\_message\_get\_timestamp}}(message);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00460}00460\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00461}00461\ \ \ \ \ \ \ \ \ std::string\ types()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00462}00462\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00463}00463\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ s(\mbox{\hyperlink{group__liblolowlevel_ga28e65c9e17a6762f12ff1198bc8c973d}{lo\_message\_get\_types}}(message));\ \textcolor{keywordflow}{return}\ std::string(s?s:\textcolor{stringliteral}{"{}"{}});\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00464}00464\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00465}00465\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ argc()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00466}00466\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga5b391362eda2c6019011f3db55049db3}{lo\_message\_get\_argc}}(message);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00467}00467\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00468}00468\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{unionlo__arg}{lo\_arg}}\ **argv()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00469}00469\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga61c0a4447539d52b95a0aa11af420067}{lo\_message\_get\_argv}}(message);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00470}00470\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00471}00471\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{size\_t}\ length(\textcolor{keyword}{const}\ string\_type\ \&path)\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00472}00472\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga0855039d071b7031727213272857c27e}{lo\_message\_length}}(message,\ path);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00473}00473\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00474}00474\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ *serialise(\textcolor{keyword}{const}\ string\_type\ \&path,\ \textcolor{keywordtype}{void}\ *to,\ \textcolor{keywordtype}{size\_t}\ *size)\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00475}00475\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga0319fda67dba973cbda0c0614cd2e572}{lo\_message\_serialise}}(message,\ path,\ to,\ size);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00476}00476\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00477}00477\ \ \ \ \ \ \ \ \ \textcolor{keyword}{typedef}\ std::pair<int,\ Message>\ maybe;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00478}00478\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00479}00479\ \ \ \ \ \ \ \ \ \textcolor{keyword}{static}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00480}00480\ \ \ \ \ \ \ \ \ maybe\ deserialise(\textcolor{keywordtype}{void}\ *data,\ \textcolor{keywordtype}{size\_t}\ size)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00481}00481\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ \textcolor{keywordtype}{int}\ result\ =\ 0;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00482}00482\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lo__types_8h_a50be181dde1a8d313dbc7e48d4032210}{lo\_message}}\ m\ =\ \mbox{\hyperlink{group__liblolowlevel_ga2f4644b2a1aae0d0eee456fe93ac158e}{lo\_message\_deserialise}}(data,\ size,\ \&result);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00483}00483\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ maybe(result,\ m);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00484}00484\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00485}00485\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ print()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00486}00486\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \mbox{\hyperlink{group__pp_ga5fa7f79f6f490d9a462d6cd894df3b76}{lo\_message\_pp}}(message);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00487}00487\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00488}00488\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classlo_1_1Message}{lo::Message}}\ clone()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00489}00489\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classlo_1_1Message}{lo::Message}}(\mbox{\hyperlink{group__liblolowlevel_ga8cf4889aa1b479e3b6eaf8847c3b9e4f}{lo\_message\_clone}}(message));\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00490}00490\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00491}00491\ \ \ \ \ \ \ \ \ \textcolor{keyword}{operator}\ \mbox{\hyperlink{lo__types_8h_a50be181dde1a8d313dbc7e48d4032210}{lo\_message}}()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00492}00492\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ \textcolor{keywordflow}{return}\ message;\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00493}00493\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00494}00494\ \ \ \ \ \ \ \textcolor{keyword}{protected}:}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00495}00495\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lo__types_8h_a50be181dde1a8d313dbc7e48d4032210}{lo\_message}}\ message;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00496}00496\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00497}00497\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00499}\mbox{\hyperlink{classlo_1_1Server}{00499}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classlo_1_1Server_abf695f157836b714e1e250b47bc018b3}{Server}}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00500}00500\ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00501}00501\ \ \ \ \ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00503}\mbox{\hyperlink{classlo_1_1Server_abf695f157836b714e1e250b47bc018b3}{00503}}\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classlo_1_1Server_abf695f157836b714e1e250b47bc018b3}{Server}}(\mbox{\hyperlink{lo__types_8h_a009a4f26c17bfcc1c31efc45499d09b8}{lo\_server}}\ s)\ :\ server(s)\ \{\}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00504}00504\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00506}00506\ \ \ \ \ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ E>}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00507}\mbox{\hyperlink{classlo_1_1Server_a65262c3e0bebd348fe07474dfee59150}{00507}}\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classlo_1_1Server_a65262c3e0bebd348fe07474dfee59150}{Server}}(\textcolor{keyword}{const}\ num\_string\_type\ \&port,\ E\&\&\ e)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00508}00508\ \ \ \ \ \ \ \ \ \ \ \ \ :\ \mbox{\hyperlink{classlo_1_1Server_abf695f157836b714e1e250b47bc018b3}{Server}}(\mbox{\hyperlink{group__liblolowlevel_ga78cfb23346e44465695293d4393447ae}{lo\_server\_new}}(port,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00509}00509\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [](int\ num,\ const\ char\ *msg,\ const\ char\ *where)\{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00510}00510\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ h\ =\ \textcolor{keyword}{static\_cast<}handler\_error*\textcolor{keyword}{>}(lo\_error\_get\_context());}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00511}00511\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (h)\ (*h)(num,\ msg,\ where);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00512}00512\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}))}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00513}00513\ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00514}00514\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (server)\ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00515}00515\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ lo\_server\_set\_error\_context(server,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00516}00516\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\_error\_handler\ =\ std::unique\_ptr<handler>(}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00517}00517\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{new}\ handler\_error(e))).get());}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00518}00518\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00519}00519\ \ \ \ \ \ \ \ \ \ \ \ \ LO\_CHECK\_AFTER;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00520}00520\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00521}00521\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00523}00523\ \ \ \ \ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ E>}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00524}\mbox{\hyperlink{classlo_1_1Server_a56985c15c0efa0c1d61ffb25bbdc47a3}{00524}}\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classlo_1_1Server_a56985c15c0efa0c1d61ffb25bbdc47a3}{Server}}(\textcolor{keyword}{const}\ num\_string\_type\ \&port,\ \textcolor{keywordtype}{int}\ proto,\ E\&\&\ e=0)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00525}00525\ \ \ \ \ \ \ \ \ \ \ \ \ :\ \mbox{\hyperlink{classlo_1_1Server_abf695f157836b714e1e250b47bc018b3}{Server}}(\mbox{\hyperlink{group__liblolowlevel_ga4afa474b11ed0d4511857ae79c56aaa1}{lo\_server\_new\_with\_proto}}(port,\ proto,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00526}00526\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [](int\ num,\ const\ char\ *msg,\ const\ char\ *where)\{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00527}00527\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ h\ =\ \textcolor{keyword}{static\_cast<}handler\_error*\textcolor{keyword}{>}(lo\_error\_get\_context());}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00528}00528\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (*h)(num,\ msg,\ where);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00529}00529\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}))}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00530}00530\ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00531}00531\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (server)\ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00532}00532\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ lo\_server\_set\_error\_context(server,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00533}00533\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\_error\_handler\ =\ std::unique\_ptr<handler>(}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00534}00534\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{new}\ handler\_error(e))).get());}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00535}00535\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00536}00536\ \ \ \ \ \ \ \ \ \ \ \ \ LO\_CHECK\_AFTER;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00537}00537\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00538}00538\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00541}00541\ \ \ \ \ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ E>}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00542}\mbox{\hyperlink{classlo_1_1Server_a93a05e892f41d45d1069c77a15a2c16d}{00542}}\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classlo_1_1Server_a93a05e892f41d45d1069c77a15a2c16d}{Server}}(\textcolor{keyword}{const}\ string\_type\ \&group,\ \textcolor{keyword}{const}\ num\_string\_type\ \&port,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00543}00543\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ string\_type\ \&iface=0,\ \textcolor{keyword}{const}\ string\_type\ \&ip=0,\ E\&\&\ e=0)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00544}00544\ \ \ \ \ \ \ \ \ \ \ \ \ :\ \mbox{\hyperlink{classlo_1_1Server_abf695f157836b714e1e250b47bc018b3}{Server}}((!iface.\_s\ ||\ !ip.\_s)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00545}00545\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ?\ \mbox{\hyperlink{group__liblolowlevel_gadec49f210324f499f2e9593df20128cb}{lo\_server\_new\_multicast\_iface}}(group,\ port,\ iface,\ ip,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00546}00546\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [](int\ num,\ const\ char\ *msg,\ const\ char\ *where)\{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00547}00547\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ h\ =\ \textcolor{keyword}{static\_cast<}handler\_error*\textcolor{keyword}{>}(lo\_error\_get\_context());}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00548}00548\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (*h)(num,\ msg,\ where);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00549}00549\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \})}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00550}00550\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ \mbox{\hyperlink{group__liblolowlevel_ga849f4517a29ad850069cf8f2976a9284}{lo\_server\_new\_multicast}}(group,\ port,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00551}00551\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [](int\ num,\ const\ char\ *msg,\ const\ char\ *where)\{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00552}00552\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ h\ =\ \textcolor{keyword}{static\_cast<}handler\_error*\textcolor{keyword}{>}(lo\_error\_get\_context());}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00553}00553\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (*h)(num,\ msg,\ where);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00554}00554\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}))}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00555}00555\ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00556}00556\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (server)\ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00557}00557\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ lo\_server\_set\_error\_context(server,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00558}00558\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\_error\_handler\ =\ std::unique\_ptr<handler>(}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00559}00559\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{new}\ handler\_error(e))).get());}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00560}00560\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00561}00561\ \ \ \ \ \ \ \ \ \ \ \ \ LO\_CHECK\_AFTER;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00562}00562\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00563}00563\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00565}\mbox{\hyperlink{classlo_1_1Server_a357459bdcea45875a1485b26e9bfcfaa}{00565}}\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classlo_1_1Server_a357459bdcea45875a1485b26e9bfcfaa}{Server}}(\textcolor{keyword}{const}\ num\_string\_type\ \&port,\ \mbox{\hyperlink{lo__types_8h_aa4406d5e90db364c02337656e6c95250}{lo\_err\_handler}}\ err\_h=0)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00566}00566\ \ \ \ \ \ \ \ \ \ \ \ \ :\ \mbox{\hyperlink{classlo_1_1Server_abf695f157836b714e1e250b47bc018b3}{Server}}(\mbox{\hyperlink{group__liblolowlevel_ga78cfb23346e44465695293d4393447ae}{lo\_server\_new}}(port,\ err\_h))\ \{\ LO\_CHECK\_AFTER;\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00567}00567\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00569}\mbox{\hyperlink{classlo_1_1Server_a499a9175c5908a9947cc413316d7fb3d}{00569}}\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classlo_1_1Server_a499a9175c5908a9947cc413316d7fb3d}{Server}}(\textcolor{keyword}{const}\ num\_string\_type\ \&port,\ \textcolor{keywordtype}{int}\ proto,\ \mbox{\hyperlink{lo__types_8h_aa4406d5e90db364c02337656e6c95250}{lo\_err\_handler}}\ err\_h=0)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00570}00570\ \ \ \ \ \ \ \ \ \ \ \ \ :\ \mbox{\hyperlink{classlo_1_1Server_abf695f157836b714e1e250b47bc018b3}{Server}}(\mbox{\hyperlink{group__liblolowlevel_ga4afa474b11ed0d4511857ae79c56aaa1}{lo\_server\_new\_with\_proto}}(port,\ proto,\ err\_h))}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00571}00571\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_AFTER;\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00572}00572\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00575}\mbox{\hyperlink{classlo_1_1Server_a260c1a07f5a0af5057ab97b8c0efe026}{00575}}\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classlo_1_1Server_a260c1a07f5a0af5057ab97b8c0efe026}{Server}}(\textcolor{keyword}{const}\ string\_type\ \&group,\ \textcolor{keyword}{const}\ num\_string\_type\ \&port,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00576}00576\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ string\_type\ \&iface=\textcolor{stringliteral}{"{}"{}},\ \textcolor{keyword}{const}\ string\_type\ \&ip=\textcolor{stringliteral}{"{}"{}},\ \mbox{\hyperlink{lo__types_8h_aa4406d5e90db364c02337656e6c95250}{lo\_err\_handler}}\ err\_h=0)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00577}00577\ \ \ \ \ \ \ \ \ \ \ \ \ :\ \mbox{\hyperlink{classlo_1_1Server_abf695f157836b714e1e250b47bc018b3}{Server}}((iface.\_s\ ||\ ip.\_s)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00578}00578\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ?\ \mbox{\hyperlink{group__liblolowlevel_gadec49f210324f499f2e9593df20128cb}{lo\_server\_new\_multicast\_iface}}(group,\ port,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00579}00579\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ iface,\ ip,\ err\_h)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00580}00580\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ \mbox{\hyperlink{group__liblolowlevel_ga849f4517a29ad850069cf8f2976a9284}{lo\_server\_new\_multicast}}(group,\ port,\ err\_h))}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00581}00581\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_AFTER;\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00582}00582\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00584}\mbox{\hyperlink{classlo_1_1Server_a207eee1c209e04d2fc683ecb8ce86470}{00584}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{virtual}\ \mbox{\hyperlink{classlo_1_1Server_a207eee1c209e04d2fc683ecb8ce86470}{\string~Server}}()}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00585}00585\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ \textcolor{keywordflow}{if}\ (server)\ \mbox{\hyperlink{group__liblolowlevel_gad3dc9193e1eef0d71a4b046242b64216}{lo\_server\_free}}(server);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00586}00586\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00587}00587\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ is\_valid()\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ server!=\textcolor{keyword}{nullptr};\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00588}00588\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00589}00589\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Regular\ old\ liblo\ method\ handlers}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00590}00590\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00593}\mbox{\hyperlink{classlo_1_1Server_aeea7b42e48809faf081c1b2bc3f2769c}{00593}}\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classlo_1_1Method}{Method}}\ \mbox{\hyperlink{classlo_1_1Server_aeea7b42e48809faf081c1b2bc3f2769c}{add\_method}}(\textcolor{keyword}{const}\ string\_type\ \&path,\ \textcolor{keyword}{const}\ string\_type\ \&types,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00594}00594\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lo__types_8h_a5b38e0822e47acaa3c7267348f50f66c}{lo\_method\_handler}}\ h,\ \textcolor{keywordtype}{void}\ *data)\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00595}00595\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \_add\_method(path,\ types,\ h,\ data);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00596}00596\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00597}00597\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Alternative\ callback\ prototypes}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00598}00598\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00601}\mbox{\hyperlink{classlo_1_1Server_aadd89f1021f8437246bc640834ce7522}{00601}}\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classlo_1_1Server_aadd89f1021f8437246bc640834ce7522}{LO\_ADD\_METHOD}}(\ (\textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*,\ \mbox{\hyperlink{unionlo__arg}{lo\_arg}}**,\ \textcolor{keywordtype}{int}),}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00602}00602\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ((\textcolor{keywordtype}{char}*)0,\ (\textcolor{keywordtype}{char}*)0,\ (\mbox{\hyperlink{unionlo__arg}{lo\_arg}}**)0,\ (\textcolor{keywordtype}{int})0),}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00603}00603\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (path,\ types,\ argv,\ argc)\ );}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00604}00604\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00607}\mbox{\hyperlink{classlo_1_1Server_a79293c21b7b389e32178d91f9774021f}{00607}}\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classlo_1_1Server_a79293c21b7b389e32178d91f9774021f}{LO\_ADD\_METHOD}}(\ (\textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*,\ \mbox{\hyperlink{unionlo__arg}{lo\_arg}}**,\ \textcolor{keywordtype}{int}),}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00608}00608\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ((\textcolor{keywordtype}{char}*)0,\ (\mbox{\hyperlink{unionlo__arg}{lo\_arg}}**)0,\ (\textcolor{keywordtype}{int})0),}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00609}00609\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (types,\ argv,\ argc)\ );}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00610}00610\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classlo_1_1Server_aadd89f1021f8437246bc640834ce7522}{LO\_ADD\_METHOD}}(\ (\textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*,\ \mbox{\hyperlink{unionlo__arg}{lo\_arg}}**,\ \textcolor{keywordtype}{int},\ \textcolor{keyword}{const}\ Message\&),}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00611}00611\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ((\textcolor{keywordtype}{char}*)0,\ (\mbox{\hyperlink{unionlo__arg}{lo\_arg}}**)0,\ (\textcolor{keywordtype}{int})0,\ Message((\mbox{\hyperlink{lo__types_8h_a50be181dde1a8d313dbc7e48d4032210}{lo\_message}})0)),}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00612}00612\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (types,\ argv,\ argc,\ Message(msg))\ );}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00613}00613\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classlo_1_1Server_aadd89f1021f8437246bc640834ce7522}{LO\_ADD\_METHOD}}(\ (\textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*,\ \textcolor{keyword}{const}\ Message\&),}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00614}00614\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ((\textcolor{keywordtype}{char}*)0,\ Message((\mbox{\hyperlink{lo__types_8h_a50be181dde1a8d313dbc7e48d4032210}{lo\_message}})0)),}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00615}00615\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (path,\ Message(msg))\ );}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00616}00616\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classlo_1_1Server_aadd89f1021f8437246bc640834ce7522}{LO\_ADD\_METHOD}}(\ (\mbox{\hyperlink{unionlo__arg}{lo\_arg}}**,\ \textcolor{keywordtype}{int}),\ ((\mbox{\hyperlink{unionlo__arg}{lo\_arg}}**)0,\ (\textcolor{keywordtype}{int})0),\ (argv,\ argc)\ )}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00617}00617\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classlo_1_1Server_aadd89f1021f8437246bc640834ce7522}{LO\_ADD\_METHOD}}(\ (\mbox{\hyperlink{unionlo__arg}{lo\_arg}}**,\ \textcolor{keywordtype}{int},\ \textcolor{keyword}{const}\ Message\&\ ),}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00618}00618\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ((\mbox{\hyperlink{unionlo__arg}{lo\_arg}}**)0,\ (\textcolor{keywordtype}{int})0,\ Message((\mbox{\hyperlink{lo__types_8h_a50be181dde1a8d313dbc7e48d4032210}{lo\_message}})0)),}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00619}00619\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (argv,\ argc,\ Message(msg))\ );}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00620}00620\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classlo_1_1Server_aadd89f1021f8437246bc640834ce7522}{LO\_ADD\_METHOD}}(\ (\textcolor{keyword}{const}\ Message\&),}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00621}00621\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (Message((\mbox{\hyperlink{lo__types_8h_a50be181dde1a8d313dbc7e48d4032210}{lo\_message}})0)),}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00622}00622\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (Message(msg))\ );}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00623}00623\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classlo_1_1Server_aadd89f1021f8437246bc640834ce7522}{LO\_ADD\_METHOD}}(\ (),\ (),\ ()\ );}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00624}00624\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00625}00625\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ del\_method(\textcolor{keyword}{const}\ string\_type\ \&path,\ \textcolor{keyword}{const}\ string\_type\ \&typespec)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00626}00626\ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00627}00627\ \ \ \ \ \ \ \ \ \ \ \ \ LO\_CHECK\_BEFORE;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00628}00628\ \ \ \ \ \ \ \ \ \ \ \ \ \_handlers.erase(path.s()\ +\ \textcolor{stringliteral}{"{},"{}}\ +\ typespec.s());}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00629}00629\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__liblolowlevel_gaf834a6d62de7dcceaede62325e74c763}{lo\_server\_del\_method}}(server,\ path,\ typespec);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00630}00630\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00631}00631\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00632}00632\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00633}00633\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ del\_method(\textcolor{keyword}{const}\ \mbox{\hyperlink{lo__types_8h_af7b2be2fe593905cfaa9149efff4cc28}{lo\_method}}\&\ m)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00634}00634\ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00635}00635\ \ \ \ \ \ \ \ \ \ \ LO\_CHECK\_BEFORE;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00636}00636\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keyword}{auto}\ \&i\ :\ \_handlers)\ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00637}00637\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ it\ =\ std::remove\_if(i.second.begin(),\ i.second.end(),}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00638}00638\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [\&](std::unique\_ptr<handler>\&\ h)\{return\ h-\/>method\ ==\ m;\});}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00639}00639\ \ \ \ \ \ \ \ \ \ \ \ \ i.second.erase(it,\ i.second.end());}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00640}00640\ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00641}00641\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_gabbeecd7e7f337906e13654b7f35253fd}{lo\_server\_del\_lo\_method}}(server,\ m);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00642}00642\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00643}00643\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00644}00644\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ dispatch\_data(\textcolor{keywordtype}{void}\ *data,\ \textcolor{keywordtype}{size\_t}\ size)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00645}00645\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga9e96445401c94c3751de27f8db1a0b50}{lo\_server\_dispatch\_data}}(server,\ data,\ size);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00646}00646\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00647}00647\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ wait(\textcolor{keywordtype}{int}\ timeout)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00648}00648\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga33cdcfbab89d58f82175386a76698822}{lo\_server\_wait}}(server,\ timeout);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00649}00649\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00650}00650\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ recv()}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00651}00651\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_gaebef3611d24e4b5f60f16cce76a9e271}{lo\_server\_recv}}(server);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00652}00652\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00653}00653\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ recv(\textcolor{keywordtype}{int}\ timeout)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00654}00654\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga784a257252d05cc0e7210f4691f0661b}{lo\_server\_recv\_noblock}}(server,\ timeout);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00655}00655\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00656}00656\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add\_bundle\_handlers(\mbox{\hyperlink{lo__types_8h_a056b3149631bb154049fa12101838b35}{lo\_bundle\_start\_handler}}\ sh,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00657}00657\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lo__types_8h_ad5445ab4f0e562d715162d2ab7bbe85f}{lo\_bundle\_end\_handler}}\ eh,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00658}00658\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ *user\_data)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00659}00659\ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00660}00660\ \ \ \ \ \ \ \ \ \ \ \ \ LO\_CHECK\_BEFORE;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00661}00661\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga1411fdb0c8037a4dd3ab19af35df50ac}{lo\_server\_add\_bundle\_handlers}}(server,\ sh,\ eh,\ user\_data);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00662}00662\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00663}00663\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00664}00664\ \ \ \ \ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ S,\ \textcolor{keyword}{typename}\ E>}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00665}00665\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add\_bundle\_handlers(S\&\&\ s,\ E\&\&\ e)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00666}00666\ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00667}00667\ \ \ \ \ \ \ \ \ \ \ \ \ \_bundle\_handlers.reset(\textcolor{keyword}{new}\ std::pair<handler\_bundle\_start,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00668}00668\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ handler\_bundle\_end>(}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00669}00669\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ handler\_bundle\_start(s),}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00670}00670\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ handler\_bundle\_end(e)));}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00671}00671\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga1411fdb0c8037a4dd3ab19af35df50ac}{lo\_server\_add\_bundle\_handlers}}(}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00672}00672\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ server,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00673}00673\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [](lo\_timetag\ time,\ \textcolor{keywordtype}{void}\ *user\_data)-\/>\textcolor{keywordtype}{int}\{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00674}00674\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ h\ =\ (std::pair<handler\_bundle\_start,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00675}00675\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ handler\_bundle\_end>*)\ user\_data;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00676}00676\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ h-\/>first(time);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00677}00677\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00678}00678\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \},}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00679}00679\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [](\textcolor{keywordtype}{void}\ *user\_data)-\/>int\{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00680}00680\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ h\ =\ (std::pair<handler\_bundle\_start,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00681}00681\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ handler\_bundle\_end>*)\ user\_data;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00682}00682\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ h-\/>second();}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00683}00683\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00684}00684\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \},}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00685}00685\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_bundle\_handlers.get());}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00686}00686\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00687}00687\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00688}00688\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ socket\_fd()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00689}00689\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_gae11ca5a5b4ec2943d5a04642ba5052ae}{lo\_server\_get\_socket\_fd}}(server);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00690}00690\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00691}00691\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ port()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00692}00692\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga532ef6e1b8675b23e65dd19eeb648c1d}{lo\_server\_get\_port}}(server);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00693}00693\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00694}00694\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ protocol()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00695}00695\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_gab40a599fe8440512b18479dac333e89f}{lo\_server\_get\_protocol}}(server);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00696}00696\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00697}00697\ \ \ \ \ \ \ \ \ std::string\ url()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00698}00698\ \textcolor{keyword}{\ \ \ \ \ \ \ \ }\{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00699}00699\ \ \ \ \ \ \ \ \ \ \ \ \ LO\_CHECK\_BEFORE;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00700}00700\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{char}*\ s(\mbox{\hyperlink{group__liblolowlevel_ga18cdac28445b16ff0f7c26c213d8e9eb}{lo\_server\_get\_url}}(server));}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00701}00701\ \ \ \ \ \ \ \ \ \ \ \ \ std::string\ result(s?s:\textcolor{stringliteral}{"{}"{}});}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00702}00702\ \ \ \ \ \ \ \ \ \ \ \ \ free(s);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00703}00703\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00704}00704\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00705}00705\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00706}00706\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ enable\_queue(\textcolor{keywordtype}{int}\ queue\_enabled,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00707}00707\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ dispatch\_remaining=1)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00708}00708\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00709}00709\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga3e23b9b6027042e136f344d001431ac6}{lo\_server\_enable\_queue}}(server,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00710}00710\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ queue\_enabled,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00711}00711\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dispatch\_remaining);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00712}00712\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00713}00713\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ events\_pending()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00714}00714\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga04feb1063c3f4df6fec41405b28dd99a}{lo\_server\_events\_pending}}(server);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00715}00715\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00716}00716\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ next\_event\_delay()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00717}00717\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga750076fdd75e2a7d3e442f6bd5968fb9}{lo\_server\_next\_event\_delay}}(server);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00718}00718\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00719}00719\ \ \ \ \ \ \ \ \ \textcolor{keyword}{operator}\ \mbox{\hyperlink{lo__types_8h_a009a4f26c17bfcc1c31efc45499d09b8}{lo\_server}}()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00720}00720\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ \textcolor{keywordflow}{return}\ server;\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00721}00721\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00722}00722\ \ \ \ \ \ \ \textcolor{keyword}{protected}:}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00723}00723\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lo__types_8h_a009a4f26c17bfcc1c31efc45499d09b8}{lo\_server}}\ server;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00724}00724\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00725}00725\ \ \ \ \ \ \ \ \ \textcolor{keyword}{friend}\ \textcolor{keyword}{class\ }ServerThread;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00726}00726\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00727}00727\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }handler\ \{\ Method\ method;\ handler(Method\ m):method(m)\{\}\ \};}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00728}00728\ \ \ \ \ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T>}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00729}00729\ \ \ \ \ \ \ \ \ \textcolor{keyword}{class\ }handler\_type\ :\ \textcolor{keyword}{public}\ handler,\ \textcolor{keyword}{public}\ std::function<T>\ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00730}00730\ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{public}:\ \textcolor{keyword}{template}<\textcolor{keyword}{typename}\ H>handler\_type(H\&\&\ h,\ Method\ m=0)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00731}00731\ \ \ \ \ \ \ \ \ \ \ \ \ :\ handler(m),\ std::function<T>(h)\ \{\}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00732}00732\ \ \ \ \ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00733}00733\ \ \ \ \ \ \ \ \ \textcolor{keyword}{typedef}\ handler\_type<void(\textcolor{keywordtype}{int},\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *)>\ handler\_error;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00734}00734\ \ \ \ \ \ \ \ \ \textcolor{keyword}{typedef}\ handler\_type<void(\textcolor{keywordtype}{int},\ \textcolor{keyword}{const}\ std::string\&,\ \textcolor{keyword}{const}\ std::string\&)>\ handler\_error\_s;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00735}00735\ \ \ \ \ \ \ \ \ \textcolor{keyword}{typedef}\ handler\_type<void(lo\_timetag)>\ handler\_bundle\_start;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00736}00736\ \ \ \ \ \ \ \ \ \textcolor{keyword}{typedef}\ handler\_type<void()>\ handler\_bundle\_end;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00737}00737\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00738}00738\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Keep\ std::functions\ here\ so\ they\ are\ freed\ correctly}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00739}00739\ \ \ \ \ \ \ \ \ std::unordered\_map<std::string,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00740}00740\ \ \ \ \ \ \ \ \ \ \ \ \ std::list<std::unique\_ptr<handler>>>\ \_handlers;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00741}00741\ \ \ \ \ \ \ \ \ std::unique\_ptr<handler>\ \_error\_handler;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00742}00742\ \ \ \ \ \ \ \ \ std::unique\_ptr<std::pair<handler\_bundle\_start,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00743}00743\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ handler\_bundle\_end>>\ \_bundle\_handlers;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00744}00744\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00745}00745\ \ \ \ \ \ \ \ \ \textcolor{keyword}{virtual}\ Method\ \_add\_method(\textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *path,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *types,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00746}00746\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lo__types_8h_a5b38e0822e47acaa3c7267348f50f66c}{lo\_method\_handler}}\ h,\ \textcolor{keywordtype}{void}\ *data)\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00747}00747\ \textcolor{keyword}{\ \ \ \ \ \ \ \ }\{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00748}00748\ \ \ \ \ \ \ \ \ \ \ \ \ LO\_CHECK\_BEFORE;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00749}00749\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga56c5f1d587c215c27e92e6436e12b1a3}{lo\_server\_add\_method}}(server,\ path,\ types,\ h,\ data);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00750}00750\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00751}00751\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00752}00752\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00754}\mbox{\hyperlink{classlo_1_1ServerThread}{00754}}\ \ \ \ \ \textcolor{keyword}{class\ }ServerThread\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classlo_1_1Server_abf695f157836b714e1e250b47bc018b3}{Server}}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00755}00755\ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00756}00756\ \ \ \ \ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00757}00757\ \ \ \ \ \ \ \ \ ServerThread(\textcolor{keyword}{const}\ num\_string\_type\ \&port,\ \mbox{\hyperlink{lo__types_8h_aa4406d5e90db364c02337656e6c95250}{lo\_err\_handler}}\ err\_h=0)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00758}00758\ \ \ \ \ \ \ \ \ \ \ :\ \mbox{\hyperlink{classlo_1_1Server_abf695f157836b714e1e250b47bc018b3}{Server}}(0)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00759}00759\ \ \ \ \ \ \ \ \ \{\ server\_thread\ =\ \mbox{\hyperlink{lo__serverthread_8h_abe3e0c31189adfd7624de6c507b610ba}{lo\_server\_thread\_new}}(port,\ err\_h);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00760}00760\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (server\_thread)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00761}00761\ \ \ \ \ \ \ \ \ \ \ \ \ server\ =\ \mbox{\hyperlink{lo__serverthread_8h_ab968d51fa6e0d4bea92e3f84f5556161}{lo\_server\_thread\_get\_server}}(server\_thread);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00762}00762\ \ \ \ \ \ \ \ \ \ \ LO\_CHECK\_AFTER;\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00763}00763\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00764}00764\ \ \ \ \ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ E>}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00765}00765\ \ \ \ \ \ \ \ \ ServerThread(\textcolor{keyword}{const}\ num\_string\_type\ \&port,\ E\&\&\ e)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00766}00766\ \ \ \ \ \ \ \ \ \ \ \ \ :\ \mbox{\hyperlink{classlo_1_1Server_abf695f157836b714e1e250b47bc018b3}{Server}}(0)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00767}00767\ \ \ \ \ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00768}00768\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ server\_thread\ =\ \mbox{\hyperlink{lo__serverthread_8h_abe3e0c31189adfd7624de6c507b610ba}{lo\_server\_thread\_new}}(port,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00769}00769\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [](\textcolor{keywordtype}{int}\ num,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *msg,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *where)\{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00770}00770\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ h\ =\ \textcolor{keyword}{static\_cast<}handler\_error*\textcolor{keyword}{>}(lo\_error\_get\_context());}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00771}00771\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ TODO:\ Can't\ call\ "{}e"{}\ yet\ since\ error\ context\ is\ not\ yet}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00772}00772\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ provided,\ port\ unavailable\ errors\ will\ not\ be\ reported!}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00773}00773\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (h)\ (*h)(num,\ msg,\ where);\});}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00774}00774\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (server\_thread)\ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00775}00775\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ server\ =\ \mbox{\hyperlink{lo__serverthread_8h_ab968d51fa6e0d4bea92e3f84f5556161}{lo\_server\_thread\_get\_server}}(server\_thread);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00776}00776\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ h\ =\ \textcolor{keyword}{new}\ handler\_error(e);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00777}00777\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_error\_handler.reset(h);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00778}00778\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ lo\_server\_thread\_set\_error\_context(server\_thread,\ h);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00779}00779\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ lo\_server\_set\_error\_context(server,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00780}00780\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\_error\_handler\ =\ std::unique\_ptr<handler>(}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00781}00781\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{new}\ handler\_error(e))).get());}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00782}00782\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00783}00783\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ LO\_CHECK\_AFTER;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00784}00784\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00785}00785\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00786}00786\ \ \ \ \ \ \ \ \ ServerThread(\textcolor{keyword}{const}\ num\_string\_type\ \&port,\ \textcolor{keywordtype}{int}\ proto,\ \mbox{\hyperlink{lo__types_8h_aa4406d5e90db364c02337656e6c95250}{lo\_err\_handler}}\ err\_h)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00787}00787\ \ \ \ \ \ \ \ \ \ \ :\ \mbox{\hyperlink{classlo_1_1Server_abf695f157836b714e1e250b47bc018b3}{Server}}(0)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00788}00788\ \ \ \ \ \ \ \ \ \{\ server\_thread\ =\ \mbox{\hyperlink{lo__serverthread_8h_a6713cedfb0b2c4f066ec8a19366bf095}{lo\_server\_thread\_new\_with\_proto}}(port,\ proto,\ err\_h);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00789}00789\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (server\_thread)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00790}00790\ \ \ \ \ \ \ \ \ \ \ \ \ server\ =\ \mbox{\hyperlink{lo__serverthread_8h_ab968d51fa6e0d4bea92e3f84f5556161}{lo\_server\_thread\_get\_server}}(server\_thread);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00791}00791\ \ \ \ \ \ \ \ \ \ \ LO\_CHECK\_AFTER;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00792}00792\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00793}00793\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00794}00794\ \ \ \ \ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ E>}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00795}00795\ \ \ \ \ \ \ \ \ ServerThread(\textcolor{keyword}{const}\ num\_string\_type\ \&port,\ \textcolor{keywordtype}{int}\ proto,\ E\&\&\ e)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00796}00796\ \ \ \ \ \ \ \ \ \ \ \ \ :\ \mbox{\hyperlink{classlo_1_1Server_abf695f157836b714e1e250b47bc018b3}{Server}}(0)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00797}00797\ \ \ \ \ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00798}00798\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ server\_thread\ =\ \mbox{\hyperlink{lo__serverthread_8h_a6713cedfb0b2c4f066ec8a19366bf095}{lo\_server\_thread\_new\_with\_proto}}(port,\ proto,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00799}00799\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [](\textcolor{keywordtype}{int}\ num,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *msg,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *where)\{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00800}00800\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ h\ =\ \textcolor{keyword}{static\_cast<}handler\_error*\textcolor{keyword}{>}(lo\_error\_get\_context());}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00801}00801\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ TODO:\ Can't\ call\ "{}e"{}\ yet\ since\ error\ context\ is\ not\ yet}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00802}00802\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ provided,\ port\ unavailable\ errors\ will\ not\ be\ reported!}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00803}00803\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (h)\ (*h)(num,\ msg,\ where);\});}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00804}00804\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (server\_thread)\ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00805}00805\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ server\ =\ \mbox{\hyperlink{lo__serverthread_8h_ab968d51fa6e0d4bea92e3f84f5556161}{lo\_server\_thread\_get\_server}}(server\_thread);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00806}00806\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ h\ =\ \textcolor{keyword}{new}\ handler\_error(e);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00807}00807\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_error\_handler.reset(h);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00808}00808\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ lo\_server\_thread\_set\_error\_context(server\_thread,\ h);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00809}00809\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ lo\_server\_set\_error\_context(server,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00810}00810\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\_error\_handler\ =\ std::unique\_ptr<handler>(}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00811}00811\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{new}\ handler\_error(e))).get());}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00812}00812\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00813}00813\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ LO\_CHECK\_AFTER;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00814}00814\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00815}00815\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00816}00816\ \ \ \ \ \ \ \ \ ServerThread(\textcolor{keyword}{const}\ string\_type\ \&group,\ \textcolor{keyword}{const}\ num\_string\_type\ \&port,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00817}00817\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ string\_type\ \&iface,\ \textcolor{keyword}{const}\ string\_type\ \&ip,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00818}00818\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lo__types_8h_aa4406d5e90db364c02337656e6c95250}{lo\_err\_handler}}\ err\_h=0)\ :\ \mbox{\hyperlink{classlo_1_1Server_abf695f157836b714e1e250b47bc018b3}{Server}}(0)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00819}00819\ \ \ \ \ \ \ \ \ \{\ \textcolor{keywordflow}{if}\ (iface.\_s\ ||\ ip.\_s)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00820}00820\ \ \ \ \ \ \ \ \ \ \ \ \ server\_thread\ =\ \mbox{\hyperlink{lo__serverthread_8h_ad6d57101bbdaa6571ed76373b2c3a50a}{lo\_server\_thread\_new\_multicast\_iface}}(group,\ port,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00821}00821\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ iface,\ ip,\ err\_h);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00822}00822\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00823}00823\ \ \ \ \ \ \ \ \ \ \ \ \ server\_thread\ =\ \mbox{\hyperlink{lo__serverthread_8h_a0fa9fcae4eabe09847d46b134dc33aa4}{lo\_server\_thread\_new\_multicast}}(group,\ port,\ err\_h);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00824}00824\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (server\_thread)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00825}00825\ \ \ \ \ \ \ \ \ \ \ \ \ server\ =\ \mbox{\hyperlink{lo__serverthread_8h_ab968d51fa6e0d4bea92e3f84f5556161}{lo\_server\_thread\_get\_server}}(server\_thread);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00826}00826\ \ \ \ \ \ \ \ \ \ \ LO\_CHECK\_AFTER;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00827}00827\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00828}00828\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00829}00829\ \ \ \ \ \ \ \ \ \textcolor{keyword}{virtual}\ \string~ServerThread()}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00830}00830\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ server\ =\ 0;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00831}00831\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (server\_thread)\ \mbox{\hyperlink{lo__serverthread_8h_ad72be3f2a81b9583ad69dd007080c0e5}{lo\_server\_thread\_free}}(server\_thread);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00832}00832\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00833}00833\ \ \ \ \ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ I,\ \textcolor{keyword}{typename}\ C>}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00834}00834\ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ set\_callbacks(I\&\&\ init,\ C\&\&\ cleanup)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00835}00835\ \ \ \ \ \ \ \ \ \ \ \ \ -\/>\ \textcolor{keyword}{typename}\ std::enable\_if<}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00836}00836\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ std::is\_same<\textcolor{keyword}{decltype}(init()),\ \textcolor{keywordtype}{int}>::value,\ \textcolor{keywordtype}{void}>::type}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00837}00837\ \ \ \ \ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00838}00838\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ LO\_CHECK\_BEFORE;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00839}00839\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (server\_thread)\ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00840}00840\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_cb\_handlers.reset(\textcolor{keyword}{new}\ handler\_cb\_pair(init,\ cleanup));}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00841}00841\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lo__serverthread_8h_ab4d5248ecc0d55e46c0f025e727ceb52}{lo\_server\_thread\_set\_callbacks}}(server\_thread,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00842}00842\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [](\mbox{\hyperlink{lo__types_8h_ade4a4a955cce22c288e0b1b756e4b1cb}{lo\_server\_thread}}\ s,\ \textcolor{keywordtype}{void}\ *c)\{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00843}00843\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ cb\ =\ (handler\_cb\_pair*)c;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00844}00844\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ (cb-\/>first)();}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00845}00845\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \},}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00846}00846\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [](\mbox{\hyperlink{lo__types_8h_ade4a4a955cce22c288e0b1b756e4b1cb}{lo\_server\_thread}}\ s,\ \textcolor{keywordtype}{void}\ *c)\{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00847}00847\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ cb\ =\ (handler\_cb\_pair*)c;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00848}00848\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (cb-\/>second)();}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00849}00849\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \},\ \_cb\_handlers.get());}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00850}00850\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00851}00851\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00852}00852\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00853}00853\ \ \ \ \ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ I,\ \textcolor{keyword}{typename}\ C>}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00854}00854\ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ set\_callbacks(I\&\&\ init,\ C\&\&\ cleanup)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00855}00855\ \ \ \ \ \ \ \ \ \ \ \ \ -\/>\ \textcolor{keyword}{typename}\ std::enable\_if<}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00856}00856\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ std::is\_same<\textcolor{keyword}{decltype}(init()),\ \textcolor{keywordtype}{void}>::value,\ \textcolor{keywordtype}{void}>::type}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00857}00857\ \ \ \ \ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00858}00858\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (server\_thread)\ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00859}00859\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_cb\_handlers.reset(}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00860}00860\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (handler\_cb\_pair*)\textcolor{keyword}{new}\ handler\_cb\_pair\_void(init,\ cleanup));}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00861}00861\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lo__serverthread_8h_ab4d5248ecc0d55e46c0f025e727ceb52}{lo\_server\_thread\_set\_callbacks}}(server\_thread,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00862}00862\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [](\mbox{\hyperlink{lo__types_8h_ade4a4a955cce22c288e0b1b756e4b1cb}{lo\_server\_thread}}\ s,\ \textcolor{keywordtype}{void}\ *c)\{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00863}00863\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ cb\ =\ (handler\_cb\_pair\_void*)c;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00864}00864\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (cb-\/>first)();\ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00865}00865\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \},}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00866}00866\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [](\mbox{\hyperlink{lo__types_8h_ade4a4a955cce22c288e0b1b756e4b1cb}{lo\_server\_thread}}\ s,\ \textcolor{keywordtype}{void}\ *c)\{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00867}00867\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ cb\ =\ (handler\_cb\_pair\_void*)c;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00868}00868\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (cb-\/>second)();}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00869}00869\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \},\ \_cb\_handlers.get());}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00870}00870\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00871}00871\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00872}00872\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00873}00873\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ start()\ \{\ LO\_CHECK\_BEFORE;\ \mbox{\hyperlink{lo__serverthread_8h_a4b284c1b96d0354c5de4ff7ba5a44fbc}{lo\_server\_thread\_start}}(server\_thread);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00874}00874\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ stop()\ \{\ LO\_CHECK\_BEFORE;\ \mbox{\hyperlink{lo__serverthread_8h_a06992ac46b04e58cb77d7c519a578f57}{lo\_server\_thread\_stop}}(server\_thread);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00875}00875\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00876}00876\ \ \ \ \ \ \ \ \ \textcolor{keyword}{operator}\ \mbox{\hyperlink{lo__types_8h_ade4a4a955cce22c288e0b1b756e4b1cb}{lo\_server\_thread}}()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00877}00877\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ \textcolor{keywordflow}{return}\ server\_thread;\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00878}00878\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00879}00879\ \ \ \ \ \ \ \textcolor{keyword}{protected}:}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00880}00880\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lo__types_8h_ade4a4a955cce22c288e0b1b756e4b1cb}{lo\_server\_thread}}\ server\_thread;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00881}00881\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00882}00882\ \ \ \ \ \ \ \ \ \textcolor{keyword}{typedef}\ std::pair<handler\_type<int()>,handler\_type<void()>>\ handler\_cb\_pair;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00883}00883\ \ \ \ \ \ \ \ \ \textcolor{keyword}{typedef}\ std::pair<handler\_type<void()>,handler\_type<void()>>\ handler\_cb\_pair\_void;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00884}00884\ \ \ \ \ \ \ \ \ std::unique\_ptr<handler\_cb\_pair>\ \_cb\_handlers;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00885}00885\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00886}00886\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Regular\ old\ liblo\ method\ handlers}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00887}00887\ \ \ \ \ \ \ \ \ \textcolor{keyword}{virtual}\ \mbox{\hyperlink{classlo_1_1Method}{Method}}\ \_add\_method(\textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *path,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *types,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00888}00888\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lo__types_8h_a5b38e0822e47acaa3c7267348f50f66c}{lo\_method\_handler}}\ h,\ \textcolor{keywordtype}{void}\ *data)\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00889}00889\ \textcolor{keyword}{\ \ \ \ \ \ \ \ }\{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00890}00890\ \ \ \ \ \ \ \ \ \ \ \ \ LO\_CHECK\_BEFORE;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00891}00891\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{lo__serverthread_8h_af500729c76fd5bb4798d350b6307adc1}{lo\_server\_thread\_add\_method}}(server\_thread,\ path,\ types,\ h,\ data);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00892}00892\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00893}00893\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00894}00894\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00895}00895\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ This\ function\ needed\ since\ lo::ServerThread\ doesn't}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00896}00896\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ properly\ auto-\/upcast\ to\ lo::Server\ -\/>\ lo\_server.\ \ (Because}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00897}00897\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ both\ lo\_server\ and\ lo\_serverthread\ are\ typedef'd\ as\ void*)}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00898}00898\ \ \ \ \ \ \ \ \ \textcolor{keyword}{inline}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00899}00899\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ Address::send\_from(\mbox{\hyperlink{classlo_1_1ServerThread}{lo::ServerThread}}\ \&from,\ \textcolor{keyword}{const}\ string\_type\ \&path,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00900}00900\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ string\_type\ type,\ ...)\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00901}00901\ \textcolor{keyword}{\ \ \ \ \ \ \ \ }\{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00902}00902\ \ \ \ \ LO\_CHECK\_BEFORE;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00903}00903\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ va\_list\ q;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00904}00904\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ va\_start(q,\ type);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00905}00905\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lo__types_8h_a50be181dde1a8d313dbc7e48d4032210}{lo\_message}}\ m\ =\ \mbox{\hyperlink{group__liblolowlevel_ga1e938ecc9160a194424423b400019410}{lo\_message\_new}}();}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00906}00906\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ std::string\ t\ =\ std::string(type)\ +\ \textcolor{stringliteral}{"{}\$\$"{}};}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00907}00907\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__liblolowlevel_ga9cd98b0c6ad5468692fd0b1936bd093f}{lo\_message\_add\_varargs}}(m,\ t.c\_str(),\ q);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00908}00908\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lo__types_8h_a009a4f26c17bfcc1c31efc45499d09b8}{lo\_server}}\ s\ =\ \textcolor{keyword}{static\_cast<}\mbox{\hyperlink{classlo_1_1Server}{lo::Server}}\&\textcolor{keyword}{>}(from);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00909}00909\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ r\ =\ \mbox{\hyperlink{group__liblolowlevel_ga9d1aa7c1ee1ce60fe0cf7e3f1e5a6822}{lo\_send\_message\_from}}(address,\ s,\ path,\ m);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00910}00910\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__liblolowlevel_ga93d3687e77ae20167b82830c917a3e50}{lo\_message\_free}}(m);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00911}00911\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ va\_end(q);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00912}00912\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ r;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00913}00913\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00914}00914\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00915}00915\ \ \ \ \ \ \ \ \ \textcolor{keyword}{inline}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00916}00916\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ Address::send\_from(\mbox{\hyperlink{classlo_1_1ServerThread}{lo::ServerThread}}\ \&from,\ \mbox{\hyperlink{lo__types_8h_ae30a81e4a90d9e6809e72afdf2ae768f}{lo\_bundle}}\ b)\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00917}00917\ \textcolor{keyword}{\ \ \ \ \ \ \ \ }\{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00918}00918\ \ \ \ \ LO\_CHECK\_BEFORE;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00919}00919\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lo__types_8h_a009a4f26c17bfcc1c31efc45499d09b8}{lo\_server}}\ s\ =\ \textcolor{keyword}{static\_cast<}\mbox{\hyperlink{classlo_1_1Server}{lo::Server}}\&\textcolor{keyword}{>}(from);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00920}00920\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_gab5de220b7d6d7c2bf6b0ca4316a54b7a}{lo\_send\_bundle\_from}}(address,\ s,\ b);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00921}00921\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00922}00922\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00924}\mbox{\hyperlink{classlo_1_1Blob}{00924}}\ \ \ \ \ \textcolor{keyword}{class\ }Blob}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00925}00925\ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00926}00926\ \ \ \ \ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00927}00927\ \ \ \ \ \ \ \ \ Blob(int32\_t\ size,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{void}\ *data=0)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00928}00928\ \ \ \ \ \ \ \ \ \ \ \ \ :\ blob(\mbox{\hyperlink{group__liblo_gaffb2348c70cb0e1214fd50bdc7574c39}{lo\_blob\_new}}(size,\ data))\ \{\ LO\_CHECK\_AFTER;\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00929}00929\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00930}00930\ \ \ \ \ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T>}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00931}00931\ \ \ \ \ \ \ \ \ Blob(\textcolor{keyword}{const}\ T\ \&t)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00932}00932\ \ \ \ \ \ \ \ \ \ \ \ \ :\ blob(\mbox{\hyperlink{group__liblo_gaffb2348c70cb0e1214fd50bdc7574c39}{lo\_blob\_new}}(t.size()*\textcolor{keyword}{sizeof}(t[0]),\ \&t[0]))\ \{\ LO\_CHECK\_AFTER;\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00933}00933\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00934}00934\ \ \ \ \ \ \ \ \ \textcolor{keyword}{virtual}\ \string~Blob()}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00935}00935\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ \mbox{\hyperlink{group__liblo_gaa46ef058cfdf14a16936c062ebac19b9}{lo\_blob\_free}}(blob);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00936}00936\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00937}00937\ \ \ \ \ \ \ \ \ Blob\&\ operator=(Blob\ b)\ \{\ b.swap(*\textcolor{keyword}{this});\ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00938}00938\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ swap(Blob\&\ b)\ \textcolor{keywordflow}{throw}\ ()\ \{\ std::swap(this-\/>blob,\ b.blob);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00939}00939\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00940}00940\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ is\_valid()\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ blob!=\textcolor{keyword}{nullptr};\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00941}00941\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00942}00942\ \ \ \ \ \ \ \ \ uint32\_t\ datasize()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00943}00943\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblo_gab6c9184f0a54f19319d8a6409487b466}{lo\_blob\_datasize}}(blob);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00944}00944\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00945}00945\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ *dataptr()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00946}00946\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblo_gac468d3de3ae93baa4d28199b1368874d}{lo\_blob\_dataptr}}(blob);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00947}00947\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00948}00948\ \ \ \ \ \ \ \ \ uint32\_t\ size()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00949}00949\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga2315f71c3832c365bce25d9b21726043}{lo\_blobsize}}(blob);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00950}00950\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00951}00951\ \ \ \ \ \ \ \ \ \textcolor{keyword}{operator}\ \mbox{\hyperlink{lo__types_8h_a8f2b43f1b0709fab80bedc5a63f277f2}{lo\_blob}}()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00952}00952\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ \textcolor{keywordflow}{return}\ blob;\ \};}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00953}00953\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00954}00954\ \ \ \ \ \ \ \textcolor{keyword}{protected}:}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00955}00955\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lo__types_8h_a8f2b43f1b0709fab80bedc5a63f277f2}{lo\_blob}}\ blob;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00956}00956\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00957}00957\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00959}\mbox{\hyperlink{structlo_1_1PathMsg}{00959}}\ \ \ \ \ \textcolor{keyword}{struct\ }PathMsg}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00960}00960\ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00961}00961\ \ \ \ \ \ \ \ \ PathMsg()\ \{\}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00962}00962\ \ \ \ \ \ \ \ \ PathMsg(\textcolor{keyword}{const}\ string\_type\ \_path,\ \textcolor{keyword}{const}\ \mbox{\hyperlink{classlo_1_1Message}{Message}}\&\ \_msg)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00963}00963\ \ \ \ \ \ \ \ \ \ \ :\ path(\_path),\ msg(\_msg)\ \{\}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00964}00964\ \ \ \ \ \ \ \ \ std::string\ path;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00965}00965\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classlo_1_1Message}{Message}}\ msg;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00966}00966\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00967}00967\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00969}\mbox{\hyperlink{classlo_1_1Bundle}{00969}}\ \ \ \ \ \textcolor{keyword}{class\ }Bundle}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00970}00970\ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00971}00971\ \ \ \ \ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00972}00972\ \ \ \ \ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T>}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00973}00973\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }ElementT}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00974}00974\ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00975}00975\ \ \ \ \ \ \ \ \ \ \ \ \ ElementT()}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00976}00976\ \ \ \ \ \ \ \ \ \ \ \ \ :\ type((\mbox{\hyperlink{group__liblo_ga08432d01f2b8f4a32ffa58992a821f28}{lo\_element\_type}})0),\ pm(\textcolor{stringliteral}{"{}"{}},\ 0),\ bundle((\mbox{\hyperlink{lo__types_8h_ae30a81e4a90d9e6809e72afdf2ae768f}{lo\_bundle}})0)\ \{\}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00977}00977\ \ \ \ \ \ \ \ \ \ \ \ \ ElementT(\textcolor{keyword}{const}\ string\_type\ \_path,\ \textcolor{keyword}{const}\ \mbox{\hyperlink{classlo_1_1Message}{Message}}\&\ \_msg)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00978}00978\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ type(\mbox{\hyperlink{group__liblo_gga08432d01f2b8f4a32ffa58992a821f28aef47b7b86b453d77bc37737400a2ad64}{LO\_ELEMENT\_MESSAGE}}),}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00979}00979\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ pm(\mbox{\hyperlink{structlo_1_1PathMsg}{PathMsg}}(\_path,\ \_msg)),}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00980}00980\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ bundle((\mbox{\hyperlink{lo__types_8h_ae30a81e4a90d9e6809e72afdf2ae768f}{lo\_bundle}})0)\ \{\}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00981}00981\ \ \ \ \ \ \ \ \ \ \ \ \ ElementT(\textcolor{keyword}{const}\ T\&\ \_bundle)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00982}00982\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ type(\mbox{\hyperlink{group__liblo_gga08432d01f2b8f4a32ffa58992a821f28a35773b57d50789d1ac7e7e38d2b291c2}{LO\_ELEMENT\_BUNDLE}}),\ pm(\textcolor{stringliteral}{"{}"{}},\ 0),\ bundle(\_bundle)\ \{\}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00983}00983\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__liblo_ga08432d01f2b8f4a32ffa58992a821f28}{lo\_element\_type}}\ type;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00984}00984\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structlo_1_1PathMsg}{PathMsg}}\ pm;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00985}00985\ \ \ \ \ \ \ \ \ \ \ \ \ T\ bundle;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00986}00986\ \ \ \ \ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00987}00987\ \ \ \ \ \ \ \ \ \textcolor{keyword}{typedef}\ ElementT<Bundle>\ Element;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00988}00988\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00989}00989\ \ \ \ \ \ \ \ \ Bundle()\ \{\ bundle\ =\ \mbox{\hyperlink{group__liblolowlevel_ga330a4a4e6227b185b3ec6219ff3e2859}{lo\_bundle\_new}}(\mbox{\hyperlink{group__liblo_gafa8cfc08b763b0c039fb64a73c4c77da}{LO\_TT\_IMMEDIATE}});}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00990}00990\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (bundle)\ \mbox{\hyperlink{group__liblolowlevel_gaef50603d58b7d9b9dfe77fabb426a528}{lo\_bundle\_incref}}(bundle);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00991}00991\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ LO\_CHECK\_AFTER;\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00992}00992\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00993}00993\ \ \ \ \ \ \ \ \ Bundle(\mbox{\hyperlink{structlo__timetag}{lo\_timetag}}\ tt)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00994}00994\ \ \ \ \ \ \ \ \ \ \ \ \ :\ bundle(\mbox{\hyperlink{group__liblolowlevel_ga330a4a4e6227b185b3ec6219ff3e2859}{lo\_bundle\_new}}(tt))\ \{\ \textcolor{keywordflow}{if}\ (bundle)\ \mbox{\hyperlink{group__liblolowlevel_gaef50603d58b7d9b9dfe77fabb426a528}{lo\_bundle\_incref}}(bundle);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00995}00995\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ LO\_CHECK\_AFTER;\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00996}00996\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00997}00997\ \ \ \ \ \ \ \ \ Bundle(\mbox{\hyperlink{lo__types_8h_ae30a81e4a90d9e6809e72afdf2ae768f}{lo\_bundle}}\ b)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00998}00998\ \ \ \ \ \ \ \ \ \ \ \ \ :\ bundle(b)\ \{\ \textcolor{keywordflow}{if}\ (b)\ \{\ \mbox{\hyperlink{group__liblolowlevel_gaef50603d58b7d9b9dfe77fabb426a528}{lo\_bundle\_incref}}(b);\ \}\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l00999}00999\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01000}01000\ \ \ \ \ \ \ \ \ Bundle(\textcolor{keyword}{const}\ string\_type\ \&path,\ \mbox{\hyperlink{lo__types_8h_a50be181dde1a8d313dbc7e48d4032210}{lo\_message}}\ m,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01001}01001\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structlo__timetag}{lo\_timetag}}\ tt=\mbox{\hyperlink{group__liblo_gafa8cfc08b763b0c039fb64a73c4c77da}{LO\_TT\_IMMEDIATE}})}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01002}01002\ \ \ \ \ \ \ \ \ \ \ \ \ :\ bundle(\mbox{\hyperlink{group__liblolowlevel_ga330a4a4e6227b185b3ec6219ff3e2859}{lo\_bundle\_new}}(tt))}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01003}01003\ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01004}01004\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (bundle)\ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01005}01005\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__liblolowlevel_gaef50603d58b7d9b9dfe77fabb426a528}{lo\_bundle\_incref}}(bundle);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01006}01006\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__liblolowlevel_ga1cc5e2eb20ce567a694f343764e25bb7}{lo\_bundle\_add\_message}}(bundle,\ path,\ m);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01007}01007\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01008}01008\ \ \ \ \ \ \ \ \ \ \ \ \ LO\_CHECK\_AFTER;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01009}01009\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01010}01010\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01011}01011\ \ \ \ \ \ \ \ \ Bundle(\textcolor{keyword}{const}\ std::initializer\_list<Element>\ \&elements,}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01012}01012\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structlo__timetag}{lo\_timetag}}\ tt=\mbox{\hyperlink{group__liblo_gafa8cfc08b763b0c039fb64a73c4c77da}{LO\_TT\_IMMEDIATE}})}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01013}01013\ \ \ \ \ \ \ \ \ \ \ \ \ :\ bundle(\mbox{\hyperlink{group__liblolowlevel_ga330a4a4e6227b185b3ec6219ff3e2859}{lo\_bundle\_new}}(tt))}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01014}01014\ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01015}01015\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (bundle)\ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01016}01016\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__liblolowlevel_gaef50603d58b7d9b9dfe77fabb426a528}{lo\_bundle\_incref}}(bundle);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01017}01017\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keyword}{auto}\ \textcolor{keyword}{const}\ \&e\ :\ elements)\ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01018}01018\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (e.type\ ==\ \mbox{\hyperlink{group__liblo_gga08432d01f2b8f4a32ffa58992a821f28aef47b7b86b453d77bc37737400a2ad64}{LO\_ELEMENT\_MESSAGE}})\ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01019}01019\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__liblolowlevel_ga1cc5e2eb20ce567a694f343764e25bb7}{lo\_bundle\_add\_message}}(bundle,\ e.pm.path.c\_str(),\ e.pm.msg);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01020}01020\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01021}01021\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (e.type\ ==\ \mbox{\hyperlink{group__liblo_gga08432d01f2b8f4a32ffa58992a821f28a35773b57d50789d1ac7e7e38d2b291c2}{LO\_ELEMENT\_BUNDLE}})\ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01022}01022\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__liblolowlevel_gad28eb5916f4d5c153069a56c1252f482}{lo\_bundle\_add\_bundle}}(bundle,\ e.bundle);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01023}01023\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01024}01024\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01025}01025\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01026}01026\ \ \ \ \ \ \ \ \ \ \ \ \ LO\_CHECK\_AFTER;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01027}01027\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01028}01028\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01029}01029\ \ \ \ \ \ \ \ \ Bundle(\textcolor{keyword}{const}\ Bundle\ \&b)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01030}01030\ \ \ \ \ \ \ \ \ \ \ \ \ :\ Bundle((\mbox{\hyperlink{lo__types_8h_ae30a81e4a90d9e6809e72afdf2ae768f}{lo\_bundle}})b)\ \{\}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01031}01031\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01032}01032\ \ \ \ \ \ \ \ \ \string~Bundle()}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01033}01033\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ \textcolor{keywordflow}{if}\ (bundle)\ \mbox{\hyperlink{group__liblolowlevel_ga8ec7b8729ab98094619285ebe11f0d00}{lo\_bundle\_free\_recursive}}(bundle);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01034}01034\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01035}01035\ \ \ \ \ \ \ \ \ Bundle\&\ operator=(Bundle\ b)\ \{\ b.swap(*\textcolor{keyword}{this});\ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01036}01036\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ swap(Bundle\&\ b)\ \textcolor{keywordflow}{throw}\ ()\ \{\ std::swap(this-\/>bundle,\ b.bundle);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01037}01037\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01038}01038\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ is\_valid()\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ bundle!=\textcolor{keyword}{nullptr};\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01039}01039\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01040}01040\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add(\textcolor{keyword}{const}\ string\_type\ \&path,\ \mbox{\hyperlink{lo__types_8h_a50be181dde1a8d313dbc7e48d4032210}{lo\_message}}\ m)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01041}01041\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga1cc5e2eb20ce567a694f343764e25bb7}{lo\_bundle\_add\_message}}(bundle,\ path,\ m);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01042}01042\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01043}01043\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ add(\textcolor{keyword}{const}\ \mbox{\hyperlink{lo__types_8h_ae30a81e4a90d9e6809e72afdf2ae768f}{lo\_bundle}}\ b)}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01044}01044\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_gad28eb5916f4d5c153069a56c1252f482}{lo\_bundle\_add\_bundle}}(bundle,\ b);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01045}01045\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01046}01046\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{size\_t}\ length()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01047}01047\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_gaa105f1c5b97a16beabdb6b4ab7af2b46}{lo\_bundle\_length}}(bundle);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01048}01048\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01049}01049\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ count()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01050}01050\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga78f875268636e2f8d794b80d3ac10716}{lo\_bundle\_count}}(bundle);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01051}01051\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01052}01052\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lo__types_8h_a50be181dde1a8d313dbc7e48d4032210}{lo\_message}}\ get\_message(\textcolor{keywordtype}{int}\ index,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ **path=0)\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01053}01053\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_ga18eef47e89f323e18027ce05f350833b}{lo\_bundle\_get\_message}}(bundle,\ index,\ path);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01054}01054\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01055}01055\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classlo_1_1Message}{Message}}\ get\_message(\textcolor{keywordtype}{int}\ index,\ std::string\ \&path)\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01056}01056\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01057}01057\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *p;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01058}01058\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lo__types_8h_a50be181dde1a8d313dbc7e48d4032210}{lo\_message}}\ m=\mbox{\hyperlink{group__liblolowlevel_ga18eef47e89f323e18027ce05f350833b}{lo\_bundle\_get\_message}}(bundle,\ index,\ \&p);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01059}01059\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ path\ =\ p?p:0;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01060}01060\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classlo_1_1Message}{Message}}(m);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01061}01061\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01062}01062\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structlo_1_1PathMsg}{PathMsg}}\ get\_message(\textcolor{keywordtype}{int}\ index)\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01063}01063\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01064}01064\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *p;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01065}01065\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lo__types_8h_a50be181dde1a8d313dbc7e48d4032210}{lo\_message}}\ m\ =\ \mbox{\hyperlink{group__liblolowlevel_ga18eef47e89f323e18027ce05f350833b}{lo\_bundle\_get\_message}}(bundle,\ index,\ \&p);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01066}01066\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{structlo_1_1PathMsg}{PathMsg}}(p?p:0,\ m);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01067}01067\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01068}01068\ \ \ \ \ \ \ \ \ Bundle\ get\_bundle(\textcolor{keywordtype}{int}\ index)\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01069}01069\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_gaafb86e502cd5f9b0a0f834409e0a8e6a}{lo\_bundle\_get\_bundle}}(bundle,\ index);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01070}01070\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01071}01071\ \ \ \ \ \ \ \ \ Element\ get\_element(\textcolor{keywordtype}{int}\ index,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ **path=0)\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01072}01072\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01073}01073\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ LO\_CHECK\_BEFORE;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01074}01074\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}\ (\mbox{\hyperlink{group__liblolowlevel_ga8c0a37924636ab24666246a3c595e959}{lo\_bundle\_get\_type}}(bundle,\ index))\ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01075}01075\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{group__liblo_gga08432d01f2b8f4a32ffa58992a821f28aef47b7b86b453d77bc37737400a2ad64}{LO\_ELEMENT\_MESSAGE}}:\ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01076}01076\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *p;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01077}01077\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lo__types_8h_a50be181dde1a8d313dbc7e48d4032210}{lo\_message}}\ m\ =\ \mbox{\hyperlink{group__liblolowlevel_ga18eef47e89f323e18027ce05f350833b}{lo\_bundle\_get\_message}}(bundle,\ index,\ \&p);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01078}01078\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ Element(p,\ m);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01079}01079\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01080}01080\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{group__liblo_gga08432d01f2b8f4a32ffa58992a821f28a35773b57d50789d1ac7e7e38d2b291c2}{LO\_ELEMENT\_BUNDLE}}:}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01081}01081\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ Element(\mbox{\hyperlink{group__liblolowlevel_gaafb86e502cd5f9b0a0f834409e0a8e6a}{lo\_bundle\_get\_bundle}}(bundle,\ index));}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01082}01082\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01083}01083\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ Element();}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01084}01084\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01085}01085\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01086}01086\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01087}01087\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structlo__timetag}{lo\_timetag}}\ timestamp()}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01088}01088\ \ \ \ \ \ \ \ \ \ \ \ \ \{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_gaeea3d61d6a4ae9efbd476f16d2758817}{lo\_bundle\_get\_timestamp}}(bundle);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01089}01089\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01090}01090\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ *serialise(\textcolor{keywordtype}{void}\ *to,\ \textcolor{keywordtype}{size\_t}\ *size)\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01091}01091\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblolowlevel_gaf7cde3ae75465870e7680087f46534b5}{lo\_bundle\_serialise}}(bundle,\ to,\ size);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01092}01092\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01093}01093\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ print()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01094}01094\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ LO\_CHECK\_BEFORE;\ \mbox{\hyperlink{group__pp_ga97e508300ee8b57d4ba1f20a1c4d0235}{lo\_bundle\_pp}}(bundle);\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01095}01095\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01096}01096\ \ \ \ \ \ \ \ \ \textcolor{keyword}{operator}\ \mbox{\hyperlink{lo__types_8h_ae30a81e4a90d9e6809e72afdf2ae768f}{lo\_bundle}}()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01097}01097\ \textcolor{keyword}{\ \ \ \ \ \ \ \ \ \ \ \ }\{\ \textcolor{keywordflow}{return}\ bundle;\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01098}01098\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01099}01099\ \ \ \ \ \ \ \textcolor{keyword}{protected}:}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01100}01100\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lo__types_8h_ae30a81e4a90d9e6809e72afdf2ae768f}{lo\_bundle}}\ bundle;}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01101}01101\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01102}01102\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01104}\mbox{\hyperlink{lo__cpp_8h_a86f98eaf3c32806e08bf8a6084378505}{01104}}\ \ \ \ \ \textcolor{keyword}{inline}\ std::string\ \mbox{\hyperlink{lo__cpp_8h_a86f98eaf3c32806e08bf8a6084378505}{version}}()\ \{}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01105}01105\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{char}\ str[32];}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01106}01106\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__liblo_gad9fa9a716b9df6b60357ea05e6c5f87b}{lo\_version}}(str,\ 32,\ 0,\ 0,\ 0,\ 0,\ 0,\ 0,\ 0);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01107}01107\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ std::string(str);}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01108}01108\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01109}01109\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01111}\mbox{\hyperlink{lo__cpp_8h_a645b0712d1326a429637a47b491d93c1}{01111}}\ \ \ \ \ \textcolor{keyword}{inline}\ \mbox{\hyperlink{structlo__timetag}{lo\_timetag}}\ \mbox{\hyperlink{lo__cpp_8h_a645b0712d1326a429637a47b491d93c1}{now}}()\ \{\ \mbox{\hyperlink{structlo__timetag}{lo\_timetag}}\ tt;\ \mbox{\hyperlink{group__liblolowlevel_gad687e21ed611e68748e962502ae63d8e}{lo\_timetag\_now}}(\&tt);\ \textcolor{keywordflow}{return}\ tt;\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01112}01112\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01114}\mbox{\hyperlink{lo__cpp_8h_a08d0e664712018792e5622659e90b2c6}{01114}}\ \ \ \ \ \textcolor{keyword}{inline}\ \mbox{\hyperlink{structlo__timetag}{lo\_timetag}}\ \mbox{\hyperlink{lo__cpp_8h_a08d0e664712018792e5622659e90b2c6}{immediate}}()\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__liblo_gafa8cfc08b763b0c039fb64a73c4c77da}{LO\_TT\_IMMEDIATE}};\ \}}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01115}01115\ \};}
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01116}01116\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01118}01118\ }
\DoxyCodeLine{\Hypertarget{lo__cpp_8h_source_l01119}01119\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ \_LO\_CPP\_H\_}}

\end{DoxyCode}
