\doxysection{comps\+\_\+obj.\+h File Reference}
\hypertarget{comps__obj_8h}{}\label{comps__obj_8h}\index{comps\_obj.h@{comps\_obj.h}}


\doxylink{structCOMPS__Object}{COMPS\+\_\+\+Object} header file.  


{\ttfamily \#include "{}comps\+\_\+mm.\+h"{}}\newline
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structCOMPS__ObjectInfo}{COMPS\+\_\+\+Object\+Info}}
\item 
struct \mbox{\hyperlink{structCOMPS__Object}{COMPS\+\_\+\+Object}}
\item 
struct \mbox{\hyperlink{structCOMPS__Num}{COMPS\+\_\+\+Num}}
\item 
struct \mbox{\hyperlink{structCOMPS__Str}{COMPS\+\_\+\+Str}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{comps__obj_8h_a9d07c7df1b4db71a14adfd174cbb283c}{COMPS\+\_\+\+OBJECT\+\_\+\+CREATE}}(objtype,  args)
\begin{DoxyCompactList}\small\item\em macro for create object by choosen type without explicit needs of typecast. Macro returns concrete type of object not \doxylink{structCOMPS__Object}{COMPS\+\_\+\+Object} type. If you want use this macro, you have to declare \doxylink{structCOMPS__ObjectInfo}{COMPS\+\_\+\+Object\+Info} object exactly as $<$\+Your\+Object$>$\+\_\+\+Obj\+Info \end{DoxyCompactList}\item 
\Hypertarget{comps__obj_8h_a06997a1254dd443c1144064ec78717c3}\label{comps__obj_8h_a06997a1254dd443c1144064ec78717c3} 
\#define {\bfseries COMPS\+\_\+\+OBJECT\+\_\+\+CMP}(obj1,  obj2)
\begin{DoxyCompactList}\small\item\em macro for compare two \doxylink{structCOMPS__Object}{COMPS\+\_\+\+Object} derivates without typecasting to \doxylink{structCOMPS__Object}{COMPS\+\_\+\+Object} pointer \end{DoxyCompactList}\item 
\Hypertarget{comps__obj_8h_a6505327f4e47c148d0d38fbfd348f986}\label{comps__obj_8h_a6505327f4e47c148d0d38fbfd348f986} 
\#define {\bfseries COMPS\+\_\+\+OBJECT\+\_\+\+DESTROY}(obj1)
\begin{DoxyCompactList}\small\item\em macro for call comps\+\_\+object\+\_\+destroy without typecasting to \doxylink{structCOMPS__Object}{COMPS\+\_\+\+Object} pointer \end{DoxyCompactList}\item 
\Hypertarget{comps__obj_8h_aee9a097c1e8420db73aa7b13b4413c40}\label{comps__obj_8h_aee9a097c1e8420db73aa7b13b4413c40} 
\#define {\bfseries COMPS\+\_\+\+OBJECT\+\_\+\+COPY}(obj)
\begin{DoxyCompactList}\small\item\em macro for call comps\+\_\+object\+\_\+copy without typecasting to \doxylink{structCOMPS__Object}{COMPS\+\_\+\+Object} pointer \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{comps__obj_8h_a00fd526b6bb8d3a008e65267184d457b}{COMPS\+\_\+\+Object\+\_\+\+HEAD}}
\item 
\#define \mbox{\hyperlink{comps__obj_8h_aa3afe40a21c9580bcb8a93ef61795b03}{COMPS\+\_\+\+Object\+\_\+\+TAIL}}(obj)
\begin{DoxyCompactList}\small\item\em insert "{}extern COMPS\+\_\+\+Object\+Info $<$obj$>$\+\_\+\+Obj\+Info"{} statement. Use this macro in combination with COMPS\+\_\+\+OBJECT\+\_\+\+CREATE \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{structCOMPS__Object}{COMPS\+\_\+\+Object}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{comps__obj_8h_a7ac39b8a98918700a42e367ed70587de}{comps\+\_\+object\+\_\+create}} (\mbox{\hyperlink{structCOMPS__ObjectInfo}{COMPS\+\_\+\+Object\+Info}} \texorpdfstring{$\ast$}{*}obj\+\_\+info, \mbox{\hyperlink{structCOMPS__Object}{COMPS\+\_\+\+Object}} \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}args)
\item 
void \mbox{\hyperlink{comps__obj_8h_a2616603f4a7b5d29132032b3fe43df6f}{comps\+\_\+object\+\_\+destroy}} (\mbox{\hyperlink{structCOMPS__Object}{COMPS\+\_\+\+Object}} \texorpdfstring{$\ast$}{*}comps\+\_\+obj)
\item 
\mbox{\hyperlink{structCOMPS__Object}{COMPS\+\_\+\+Object}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{comps__obj_8h_ace34dd7913aed6c366b00cd68198db92}{comps\+\_\+object\+\_\+copy}} (\mbox{\hyperlink{structCOMPS__Object}{COMPS\+\_\+\+Object}} \texorpdfstring{$\ast$}{*}comps\+\_\+obj)
\item 
signed char \mbox{\hyperlink{comps__obj_8h_a20766951d2e13eb1955f6889ed952c7e}{comps\+\_\+object\+\_\+cmp}} (\mbox{\hyperlink{structCOMPS__Object}{COMPS\+\_\+\+Object}} \texorpdfstring{$\ast$}{*}obj1, \mbox{\hyperlink{structCOMPS__Object}{COMPS\+\_\+\+Object}} \texorpdfstring{$\ast$}{*}obj2)
\item 
char \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{comps__obj_8h_aaa57f1a54a2658b6d6dfae8645eebc70}{comps\+\_\+object\+\_\+tostr}} (\mbox{\hyperlink{structCOMPS__Object}{COMPS\+\_\+\+Object}} \texorpdfstring{$\ast$}{*}obj1)
\item 
\mbox{\hyperlink{structCOMPS__Object}{COMPS\+\_\+\+Object}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{comps__obj_8h_aee10c75e327dfafff60371e7d4ed793c}{comps\+\_\+object\+\_\+incref}} (\mbox{\hyperlink{structCOMPS__Object}{COMPS\+\_\+\+Object}} \texorpdfstring{$\ast$}{*}obj)
\item 
\mbox{\hyperlink{structCOMPS__Num}{COMPS\+\_\+\+Num}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{comps__obj_8h_a0f0572b5153ac59df85e0b085b57c052}{comps\+\_\+num}} (int n)
\item 
\mbox{\hyperlink{structCOMPS__Str}{COMPS\+\_\+\+Str}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{comps__obj_8h_aef2bf138e4636a46196c5c430f743d98}{comps\+\_\+str}} (const char \texorpdfstring{$\ast$}{*}s)
\item 
\mbox{\hyperlink{structCOMPS__Str}{COMPS\+\_\+\+Str}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{comps__obj_8h_aa30de3199114100920147f832d83e9f7}{comps\+\_\+str\+\_\+x}} (char \texorpdfstring{$\ast$}{*}s)
\item 
void \mbox{\hyperlink{comps__obj_8h_ae87d6644609081a82e1245d49f03dbe0}{comps\+\_\+str\+\_\+set}} (\mbox{\hyperlink{structCOMPS__Str}{COMPS\+\_\+\+Str}} \texorpdfstring{$\ast$}{*}str, char \texorpdfstring{$\ast$}{*}s)
\item 
signed char \mbox{\hyperlink{comps__obj_8h_a8ad5633490b138f883651df9282197f1}{comps\+\_\+str\+\_\+fnmatch}} (\mbox{\hyperlink{structCOMPS__Str}{COMPS\+\_\+\+Str}} \texorpdfstring{$\ast$}{*}str, char \texorpdfstring{$\ast$}{*}pattern, int flags)
\item 
signed char \mbox{\hyperlink{comps__obj_8h_a647e8ec3255c9b4cf14e26af5ed3e3fc}{comps\+\_\+str\+\_\+fnmatch\+\_\+o}} (\mbox{\hyperlink{structCOMPS__Str}{COMPS\+\_\+\+Str}} \texorpdfstring{$\ast$}{*}str, \mbox{\hyperlink{structCOMPS__Str}{COMPS\+\_\+\+Str}} \texorpdfstring{$\ast$}{*}pattern, int flags)
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\doxylink{structCOMPS__Object}{COMPS\+\_\+\+Object} header file. 



\label{doc-define-members}
\Hypertarget{comps__obj_8h_doc-define-members}
\doxysubsection{Macro Definition Documentation}
\Hypertarget{comps__obj_8h_a9d07c7df1b4db71a14adfd174cbb283c}\index{comps\_obj.h@{comps\_obj.h}!COMPS\_OBJECT\_CREATE@{COMPS\_OBJECT\_CREATE}}
\index{COMPS\_OBJECT\_CREATE@{COMPS\_OBJECT\_CREATE}!comps\_obj.h@{comps\_obj.h}}
\doxysubsubsection{\texorpdfstring{COMPS\_OBJECT\_CREATE}{COMPS\_OBJECT\_CREATE}}
{\footnotesize\ttfamily \label{comps__obj_8h_a9d07c7df1b4db71a14adfd174cbb283c} 
\#define COMPS\+\_\+\+OBJECT\+\_\+\+CREATE(\begin{DoxyParamCaption}\item[{}]{objtype}{, }\item[{}]{args}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{\ \ \ \ (objtype*)\mbox{\hyperlink{comps__obj_8h_a7ac39b8a98918700a42e367ed70587de}{comps\_object\_create}}(\&objtype\#\#\_ObjInfo,\ args)}

\end{DoxyCode}


macro for create object by choosen type without explicit needs of typecast. Macro returns concrete type of object not \doxylink{structCOMPS__Object}{COMPS\+\_\+\+Object} type. If you want use this macro, you have to declare \doxylink{structCOMPS__ObjectInfo}{COMPS\+\_\+\+Object\+Info} object exactly as $<$\+Your\+Object$>$\+\_\+\+Obj\+Info 

\begin{DoxySeeAlso}{See also}
\doxylink{comps__obj_8h_aa3afe40a21c9580bcb8a93ef61795b03}{COMPS\+\_\+\+Object\+\_\+\+TAIL} 
\end{DoxySeeAlso}
\Hypertarget{comps__obj_8h_a00fd526b6bb8d3a008e65267184d457b}\index{comps\_obj.h@{comps\_obj.h}!COMPS\_Object\_HEAD@{COMPS\_Object\_HEAD}}
\index{COMPS\_Object\_HEAD@{COMPS\_Object\_HEAD}!comps\_obj.h@{comps\_obj.h}}
\doxysubsubsection{\texorpdfstring{COMPS\_Object\_HEAD}{COMPS\_Object\_HEAD}}
{\footnotesize\ttfamily \label{comps__obj_8h_a00fd526b6bb8d3a008e65267184d457b} 
\#define COMPS\+\_\+\+Object\+\_\+\+HEAD}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structCOMPS__RefC}{COMPS\_RefC}}\ *refc;\(\backslash\)}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structCOMPS__ObjectInfo}{COMPS\_ObjectInfo}}\ *obj\_info}

\end{DoxyCode}
ensure that \doxylink{structCOMPS__Object}{COMPS\+\_\+\+Object} derivate has need struct members for properly behaviour \Hypertarget{comps__obj_8h_aa3afe40a21c9580bcb8a93ef61795b03}\index{comps\_obj.h@{comps\_obj.h}!COMPS\_Object\_TAIL@{COMPS\_Object\_TAIL}}
\index{COMPS\_Object\_TAIL@{COMPS\_Object\_TAIL}!comps\_obj.h@{comps\_obj.h}}
\doxysubsubsection{\texorpdfstring{COMPS\_Object\_TAIL}{COMPS\_Object\_TAIL}}
{\footnotesize\ttfamily \label{comps__obj_8h_aa3afe40a21c9580bcb8a93ef61795b03} 
\#define COMPS\+\_\+\+Object\+\_\+\+TAIL(\begin{DoxyParamCaption}\item[{}]{obj}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keyword}{extern}\ \mbox{\hyperlink{structCOMPS__ObjectInfo}{COMPS\_ObjectInfo}}\ obj\#\#\_ObjInfo}

\end{DoxyCode}


insert "{}extern COMPS\+\_\+\+Object\+Info $<$obj$>$\+\_\+\+Obj\+Info"{} statement. Use this macro in combination with COMPS\+\_\+\+OBJECT\+\_\+\+CREATE 

\begin{DoxySeeAlso}{See also}
\doxylink{comps__obj_8h_a9d07c7df1b4db71a14adfd174cbb283c}{COMPS\+\_\+\+OBJECT\+\_\+\+CREATE} 
\end{DoxySeeAlso}


\label{doc-func-members}
\Hypertarget{comps__obj_8h_doc-func-members}
\doxysubsection{Function Documentation}
\Hypertarget{comps__obj_8h_a0f0572b5153ac59df85e0b085b57c052}\index{comps\_obj.h@{comps\_obj.h}!comps\_num@{comps\_num}}
\index{comps\_num@{comps\_num}!comps\_obj.h@{comps\_obj.h}}
\doxysubsubsection{\texorpdfstring{comps\_num()}{comps\_num()}}
{\footnotesize\ttfamily \label{comps__obj_8h_a0f0572b5153ac59df85e0b085b57c052} 
\mbox{\hyperlink{structCOMPS__Num}{COMPS\+\_\+\+Num}} \texorpdfstring{$\ast$}{*} comps\+\_\+num (\begin{DoxyParamCaption}\item[{int}]{n}{}\end{DoxyParamCaption})}

Directly construct \doxylink{structCOMPS__Num}{COMPS\+\_\+\+Num} derivate from passed argument 
\begin{DoxyParams}{Parameters}
{\em n} & value of \doxylink{structCOMPS__Num}{COMPS\+\_\+\+Num} \\
\hline
\end{DoxyParams}
\Hypertarget{comps__obj_8h_a20766951d2e13eb1955f6889ed952c7e}\index{comps\_obj.h@{comps\_obj.h}!comps\_object\_cmp@{comps\_object\_cmp}}
\index{comps\_object\_cmp@{comps\_object\_cmp}!comps\_obj.h@{comps\_obj.h}}
\doxysubsubsection{\texorpdfstring{comps\_object\_cmp()}{comps\_object\_cmp()}}
{\footnotesize\ttfamily \label{comps__obj_8h_a20766951d2e13eb1955f6889ed952c7e} 
signed char comps\+\_\+object\+\_\+cmp (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structCOMPS__Object}{COMPS\+\_\+\+Object}} \texorpdfstring{$\ast$}{*}}]{obj1}{, }\item[{\mbox{\hyperlink{structCOMPS__Object}{COMPS\+\_\+\+Object}} \texorpdfstring{$\ast$}{*}}]{obj2}{}\end{DoxyParamCaption})}

Compare two \doxylink{structCOMPS__Object}{COMPS\+\_\+\+Object} derivates and return non-\/zero value if equals

\begin{DoxyWarning}{Warning}
Function doen\textquotesingle{}t check equality of derivate types (\doxylink{structCOMPS__ObjectInfo}{COMPS\+\_\+\+Object\+Info})!!
\end{DoxyWarning}

\begin{DoxyParams}{Parameters}
{\em obj1} & first derivate \\
\hline
{\em obj2} & second derivate \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
non-\/zero value if equals, zero otherwise 
\end{DoxyReturn}
\Hypertarget{comps__obj_8h_ace34dd7913aed6c366b00cd68198db92}\index{comps\_obj.h@{comps\_obj.h}!comps\_object\_copy@{comps\_object\_copy}}
\index{comps\_object\_copy@{comps\_object\_copy}!comps\_obj.h@{comps\_obj.h}}
\doxysubsubsection{\texorpdfstring{comps\_object\_copy()}{comps\_object\_copy()}}
{\footnotesize\ttfamily \label{comps__obj_8h_ace34dd7913aed6c366b00cd68198db92} 
\mbox{\hyperlink{structCOMPS__Object}{COMPS\+\_\+\+Object}} \texorpdfstring{$\ast$}{*} comps\+\_\+object\+\_\+copy (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structCOMPS__Object}{COMPS\+\_\+\+Object}} \texorpdfstring{$\ast$}{*}}]{comps\+\_\+obj}{}\end{DoxyParamCaption})}

Return whole new copy of \doxylink{structCOMPS__Object}{COMPS\+\_\+\+Object} derivate.

Function create new allocation of derivate and call obj\+\_\+copy callback with old instance and new instance of derivate. Copying inner structure members are in programmers care 
\begin{DoxyParams}{Parameters}
{\em comps\+\_\+obj} & derivate object want to be copied \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
new copy of derivate object 
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\doxylink{structCOMPS__ObjectInfo}{COMPS\+\_\+\+Object\+Info} 
\end{DoxySeeAlso}
\Hypertarget{comps__obj_8h_a7ac39b8a98918700a42e367ed70587de}\index{comps\_obj.h@{comps\_obj.h}!comps\_object\_create@{comps\_object\_create}}
\index{comps\_object\_create@{comps\_object\_create}!comps\_obj.h@{comps\_obj.h}}
\doxysubsubsection{\texorpdfstring{comps\_object\_create()}{comps\_object\_create()}}
{\footnotesize\ttfamily \label{comps__obj_8h_a7ac39b8a98918700a42e367ed70587de} 
\mbox{\hyperlink{structCOMPS__Object}{COMPS\+\_\+\+Object}} \texorpdfstring{$\ast$}{*} comps\+\_\+object\+\_\+create (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structCOMPS__ObjectInfo}{COMPS\+\_\+\+Object\+Info}} \texorpdfstring{$\ast$}{*}}]{obj\+\_\+info}{, }\item[{\mbox{\hyperlink{structCOMPS__Object}{COMPS\+\_\+\+Object}} \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}}]{args}{}\end{DoxyParamCaption})}

Create \doxylink{structCOMPS__Object}{COMPS\+\_\+\+Object} derivate and pass {\itshape args} arguments to its constructor 
\begin{DoxyParams}{Parameters}
{\em obj\+\_\+info} & pointer to \doxylink{structCOMPS__ObjectInfo}{COMPS\+\_\+\+Object\+Info} structure \\
\hline
{\em args} & array of arguments passed to derivate constructor. Array doesn\textquotesingle{}t have to end with NULL sentinel. Processing args attribute passed to contructor is completely in programmer\textquotesingle{}s care \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\doxylink{structCOMPS__Object}{COMPS\+\_\+\+Object} derivate typecasted as general \doxylink{structCOMPS__Object}{COMPS\+\_\+\+Object} 
\end{DoxyReturn}
\Hypertarget{comps__obj_8h_a2616603f4a7b5d29132032b3fe43df6f}\index{comps\_obj.h@{comps\_obj.h}!comps\_object\_destroy@{comps\_object\_destroy}}
\index{comps\_object\_destroy@{comps\_object\_destroy}!comps\_obj.h@{comps\_obj.h}}
\doxysubsubsection{\texorpdfstring{comps\_object\_destroy()}{comps\_object\_destroy()}}
{\footnotesize\ttfamily \label{comps__obj_8h_a2616603f4a7b5d29132032b3fe43df6f} 
void comps\+\_\+object\+\_\+destroy (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structCOMPS__Object}{COMPS\+\_\+\+Object}} \texorpdfstring{$\ast$}{*}}]{comps\+\_\+obj}{}\end{DoxyParamCaption})}

Destroy passed \doxylink{structCOMPS__Object}{COMPS\+\_\+\+Object} derivate if its reference counter is zero if not, only decrement reference counter \Hypertarget{comps__obj_8h_aee10c75e327dfafff60371e7d4ed793c}\index{comps\_obj.h@{comps\_obj.h}!comps\_object\_incref@{comps\_object\_incref}}
\index{comps\_object\_incref@{comps\_object\_incref}!comps\_obj.h@{comps\_obj.h}}
\doxysubsubsection{\texorpdfstring{comps\_object\_incref()}{comps\_object\_incref()}}
{\footnotesize\ttfamily \label{comps__obj_8h_aee10c75e327dfafff60371e7d4ed793c} 
\mbox{\hyperlink{structCOMPS__Object}{COMPS\+\_\+\+Object}} \texorpdfstring{$\ast$}{*} comps\+\_\+object\+\_\+incref (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structCOMPS__Object}{COMPS\+\_\+\+Object}} \texorpdfstring{$\ast$}{*}}]{obj}{}\end{DoxyParamCaption})}

Increment \doxylink{structCOMPS__Object}{COMPS\+\_\+\+Object} derivate reference counter \Hypertarget{comps__obj_8h_aaa57f1a54a2658b6d6dfae8645eebc70}\index{comps\_obj.h@{comps\_obj.h}!comps\_object\_tostr@{comps\_object\_tostr}}
\index{comps\_object\_tostr@{comps\_object\_tostr}!comps\_obj.h@{comps\_obj.h}}
\doxysubsubsection{\texorpdfstring{comps\_object\_tostr()}{comps\_object\_tostr()}}
{\footnotesize\ttfamily \label{comps__obj_8h_aaa57f1a54a2658b6d6dfae8645eebc70} 
char \texorpdfstring{$\ast$}{*} comps\+\_\+object\+\_\+tostr (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structCOMPS__Object}{COMPS\+\_\+\+Object}} \texorpdfstring{$\ast$}{*}}]{obj1}{}\end{DoxyParamCaption})}

Return string representation of \doxylink{structCOMPS__Object}{COMPS\+\_\+\+Object} derivate

\begin{DoxyWarning}{Warning}
Returned string is new allocation which needs to be freed manualy
\end{DoxyWarning}

\begin{DoxyParams}{Parameters}
{\em obj1} & \doxylink{structCOMPS__Object}{COMPS\+\_\+\+Object} derivate \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
new alllocation of string representation of concrete object 
\end{DoxyReturn}
\Hypertarget{comps__obj_8h_aef2bf138e4636a46196c5c430f743d98}\index{comps\_obj.h@{comps\_obj.h}!comps\_str@{comps\_str}}
\index{comps\_str@{comps\_str}!comps\_obj.h@{comps\_obj.h}}
\doxysubsubsection{\texorpdfstring{comps\_str()}{comps\_str()}}
{\footnotesize\ttfamily \label{comps__obj_8h_aef2bf138e4636a46196c5c430f743d98} 
\mbox{\hyperlink{structCOMPS__Str}{COMPS\+\_\+\+Str}} \texorpdfstring{$\ast$}{*} comps\+\_\+str (\begin{DoxyParamCaption}\item[{const char \texorpdfstring{$\ast$}{*}}]{s}{}\end{DoxyParamCaption})}

Directly construct \doxylink{structCOMPS__Str}{COMPS\+\_\+\+Str} derivate from passed argument

passed argument is copied as new allocation 
\begin{DoxyParams}{Parameters}
{\em s} & string value of derivate \\
\hline
\end{DoxyParams}
\Hypertarget{comps__obj_8h_a8ad5633490b138f883651df9282197f1}\index{comps\_obj.h@{comps\_obj.h}!comps\_str\_fnmatch@{comps\_str\_fnmatch}}
\index{comps\_str\_fnmatch@{comps\_str\_fnmatch}!comps\_obj.h@{comps\_obj.h}}
\doxysubsubsection{\texorpdfstring{comps\_str\_fnmatch()}{comps\_str\_fnmatch()}}
{\footnotesize\ttfamily \label{comps__obj_8h_a8ad5633490b138f883651df9282197f1} 
signed char comps\+\_\+str\+\_\+fnmatch (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structCOMPS__Str}{COMPS\+\_\+\+Str}} \texorpdfstring{$\ast$}{*}}]{str}{, }\item[{char \texorpdfstring{$\ast$}{*}}]{pattern}{, }\item[{int}]{flags}{}\end{DoxyParamCaption})}

Return non-\/zero if str match the pattern by fnmatch


\begin{DoxyParams}{Parameters}
{\em str} & source string. \doxylink{structCOMPS__Str}{COMPS\+\_\+\+Str} object \\
\hline
{\em pattern} & match pattern \\
\hline
\end{DoxyParams}
\Hypertarget{comps__obj_8h_a647e8ec3255c9b4cf14e26af5ed3e3fc}\index{comps\_obj.h@{comps\_obj.h}!comps\_str\_fnmatch\_o@{comps\_str\_fnmatch\_o}}
\index{comps\_str\_fnmatch\_o@{comps\_str\_fnmatch\_o}!comps\_obj.h@{comps\_obj.h}}
\doxysubsubsection{\texorpdfstring{comps\_str\_fnmatch\_o()}{comps\_str\_fnmatch\_o()}}
{\footnotesize\ttfamily \label{comps__obj_8h_a647e8ec3255c9b4cf14e26af5ed3e3fc} 
signed char comps\+\_\+str\+\_\+fnmatch\+\_\+o (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structCOMPS__Str}{COMPS\+\_\+\+Str}} \texorpdfstring{$\ast$}{*}}]{str}{, }\item[{\mbox{\hyperlink{structCOMPS__Str}{COMPS\+\_\+\+Str}} \texorpdfstring{$\ast$}{*}}]{pattern}{, }\item[{int}]{flags}{}\end{DoxyParamCaption})}

Return non-\/zero if str match the pattern by fnmatch


\begin{DoxyParams}{Parameters}
{\em str} & source string. \doxylink{structCOMPS__Str}{COMPS\+\_\+\+Str} object \\
\hline
{\em pattern} & \doxylink{structCOMPS__Str}{COMPS\+\_\+\+Str} match pattern \\
\hline
\end{DoxyParams}
\Hypertarget{comps__obj_8h_ae87d6644609081a82e1245d49f03dbe0}\index{comps\_obj.h@{comps\_obj.h}!comps\_str\_set@{comps\_str\_set}}
\index{comps\_str\_set@{comps\_str\_set}!comps\_obj.h@{comps\_obj.h}}
\doxysubsubsection{\texorpdfstring{comps\_str\_set()}{comps\_str\_set()}}
{\footnotesize\ttfamily \label{comps__obj_8h_ae87d6644609081a82e1245d49f03dbe0} 
void comps\+\_\+str\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structCOMPS__Str}{COMPS\+\_\+\+Str}} \texorpdfstring{$\ast$}{*}}]{str}{, }\item[{char \texorpdfstring{$\ast$}{*}}]{s}{}\end{DoxyParamCaption})}

Set memory copy of passed argument as \doxylink{structCOMPS__Str}{COMPS\+\_\+\+Str} value


\begin{DoxyParams}{Parameters}
{\em str} & \doxylink{structCOMPS__Str}{COMPS\+\_\+\+Str} object \\
\hline
{\em s} & desired new \doxylink{structCOMPS__Str}{COMPS\+\_\+\+Str} object value \\
\hline
\end{DoxyParams}
\Hypertarget{comps__obj_8h_aa30de3199114100920147f832d83e9f7}\index{comps\_obj.h@{comps\_obj.h}!comps\_str\_x@{comps\_str\_x}}
\index{comps\_str\_x@{comps\_str\_x}!comps\_obj.h@{comps\_obj.h}}
\doxysubsubsection{\texorpdfstring{comps\_str\_x()}{comps\_str\_x()}}
{\footnotesize\ttfamily \label{comps__obj_8h_aa30de3199114100920147f832d83e9f7} 
\mbox{\hyperlink{structCOMPS__Str}{COMPS\+\_\+\+Str}} \texorpdfstring{$\ast$}{*} comps\+\_\+str\+\_\+x (\begin{DoxyParamCaption}\item[{char \texorpdfstring{$\ast$}{*}}]{s}{}\end{DoxyParamCaption})}

Directly construct \doxylink{structCOMPS__Str}{COMPS\+\_\+\+Str} derivate from passed argument

\begin{DoxyWarning}{Warning}
passed argument is not copied. \doxylink{structCOMPS__Str}{COMPS\+\_\+\+Str} derivate use same memory place as {\itshape s} argument and during destruction of derivate this memory place is freed 
\end{DoxyWarning}

\begin{DoxyParams}{Parameters}
{\em s} & string value of derivate \\
\hline
\end{DoxyParams}
