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

\end{DoxyCode}
