\hypertarget{structefl_1_1eina_1_1accessor}{\section{efl\+:\+:eina\+:\+:accessor$<$ T $>$ Struct Template Reference}
\label{structefl_1_1eina_1_1accessor}\index{efl\+::eina\+::accessor$<$ T $>$@{efl\+::eina\+::accessor$<$ T $>$}}
}


Wraps an native Eina\+\_\+\+Accessor and provide random access to data structures.  


\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
typedef unsigned int \hyperlink{structefl_1_1eina_1_1accessor_a25efefa4c5e9b1434f726e23404a3c0c}{key\+\_\+type}
\begin{DoxyCompactList}\small\item\em Type for accessor key. \end{DoxyCompactList}\item 
typedef T \hyperlink{structefl_1_1eina_1_1accessor_a322442d993515407019fc2cbea771ac7}{mapped\+\_\+type}
\begin{DoxyCompactList}\small\item\em Type for accessor mapped elements. \end{DoxyCompactList}\item 
typedef T \hyperlink{structefl_1_1eina_1_1accessor_ac3ef183d49db91c429232bb1fa29e1f2}{value\+\_\+type}
\begin{DoxyCompactList}\small\item\em Type for accessor elements. \end{DoxyCompactList}\item 
typedef std\+::size\+\_\+t \hyperlink{structefl_1_1eina_1_1accessor_a09205beb702a01d66e157a6f5d6f4d28}{size\+\_\+type}
\begin{DoxyCompactList}\small\item\em Type for size information used in the accessor. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{structefl_1_1eina_1_1accessor_ae0f092ea05639d0f814b459f4b9c1748}{accessor} ()
\begin{DoxyCompactList}\small\item\em Default constructor. \end{DoxyCompactList}\item 
\hyperlink{structefl_1_1eina_1_1accessor_a9543cdccafd7d897aed86b3f277af91f}{accessor} (\hyperlink{group__Eina__Accessor__Group_ga65199ea5201a1867471028477dc26744}{Eina\+\_\+\+Accessor} $\ast$impl)
\begin{DoxyCompactList}\small\item\em Create an accessor object that wraps the given Eina accessor. \end{DoxyCompactList}\item 
\hyperlink{structefl_1_1eina_1_1accessor_ac86235f87f8028aaa5634238fa1e0b6b}{accessor} (\hyperlink{structefl_1_1eina_1_1accessor}{accessor}$<$ T $>$ const \&other)
\begin{DoxyCompactList}\small\item\em Copy constructor. \end{DoxyCompactList}\item 
\hyperlink{structefl_1_1eina_1_1accessor}{accessor}$<$ T $>$ \& \hyperlink{structefl_1_1eina_1_1accessor_ab6295f3540830dbd1df0a1eebf49312f}{operator=} (\hyperlink{structefl_1_1eina_1_1accessor}{accessor}$<$ T $>$ const \&other)
\begin{DoxyCompactList}\small\item\em Assignment Operator. \end{DoxyCompactList}\item 
\hyperlink{structefl_1_1eina_1_1accessor_a3a9a8fea01c2e2df5894863e620e5360}{$\sim$accessor} ()
\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
\hyperlink{structefl_1_1eina_1_1accessor_a322442d993515407019fc2cbea771ac7}{mapped\+\_\+type} \& \hyperlink{structefl_1_1eina_1_1accessor_ab0e3e52010738327e6b536dc05c0c8fc}{operator\mbox{[}$\,$\mbox{]}} (\hyperlink{structefl_1_1eina_1_1accessor_a09205beb702a01d66e157a6f5d6f4d28}{size\+\_\+type} i) const 
\begin{DoxyCompactList}\small\item\em Retrieve the data of the accessor at a given position. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Accessor__Group_ga65199ea5201a1867471028477dc26744}{Eina\+\_\+\+Accessor} $\ast$ \hyperlink{structefl_1_1eina_1_1accessor_a4135f88b3ac5053ab5adbbc0ad87cc0c}{native\+\_\+handle} () const 
\begin{DoxyCompactList}\small\item\em Get the handle for the wrapped {\ttfamily Eina\+\_\+\+Accessor}. \end{DoxyCompactList}\item 
void \hyperlink{structefl_1_1eina_1_1accessor_a3c55ed1571cbc11c057966662e138341}{swap} (\hyperlink{structefl_1_1eina_1_1accessor}{accessor}$<$ T $>$ \&other)
\begin{DoxyCompactList}\small\item\em Swap content between both objects. \end{DoxyCompactList}\item 
\hyperlink{structefl_1_1eina_1_1accessor_aac8b3f9b4337bc83d8fdcc42d2d72606}{operator bool} () const 
\begin{DoxyCompactList}\small\item\em Cast to {\ttfamily boolean} based on the wrapped {\ttfamily Eina\+\_\+\+Accessor}. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$typename T$>$struct efl\+::eina\+::accessor$<$ T $>$}

Wraps an native Eina\+\_\+\+Accessor and provide random access to data structures. 

\subsection{Member Typedef Documentation}
\hypertarget{structefl_1_1eina_1_1accessor_a25efefa4c5e9b1434f726e23404a3c0c}{\index{efl\+::eina\+::accessor@{efl\+::eina\+::accessor}!key\+\_\+type@{key\+\_\+type}}
\index{key\+\_\+type@{key\+\_\+type}!efl\+::eina\+::accessor@{efl\+::eina\+::accessor}}
\subsubsection[{key\+\_\+type}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ typedef unsigned int {\bf efl\+::eina\+::accessor}$<$ T $>$\+::{\bf key\+\_\+type}}}\label{structefl_1_1eina_1_1accessor_a25efefa4c5e9b1434f726e23404a3c0c}


Type for accessor key. 

\hypertarget{structefl_1_1eina_1_1accessor_a322442d993515407019fc2cbea771ac7}{\index{efl\+::eina\+::accessor@{efl\+::eina\+::accessor}!mapped\+\_\+type@{mapped\+\_\+type}}
\index{mapped\+\_\+type@{mapped\+\_\+type}!efl\+::eina\+::accessor@{efl\+::eina\+::accessor}}
\subsubsection[{mapped\+\_\+type}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ typedef T {\bf efl\+::eina\+::accessor}$<$ T $>$\+::{\bf mapped\+\_\+type}}}\label{structefl_1_1eina_1_1accessor_a322442d993515407019fc2cbea771ac7}


Type for accessor mapped elements. 

\hypertarget{structefl_1_1eina_1_1accessor_ac3ef183d49db91c429232bb1fa29e1f2}{\index{efl\+::eina\+::accessor@{efl\+::eina\+::accessor}!value\+\_\+type@{value\+\_\+type}}
\index{value\+\_\+type@{value\+\_\+type}!efl\+::eina\+::accessor@{efl\+::eina\+::accessor}}
\subsubsection[{value\+\_\+type}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ typedef T {\bf efl\+::eina\+::accessor}$<$ T $>$\+::{\bf value\+\_\+type}}}\label{structefl_1_1eina_1_1accessor_ac3ef183d49db91c429232bb1fa29e1f2}


Type for accessor elements. 

Same as \hyperlink{structefl_1_1eina_1_1accessor_a322442d993515407019fc2cbea771ac7}{mapped\+\_\+type}. \hypertarget{structefl_1_1eina_1_1accessor_a09205beb702a01d66e157a6f5d6f4d28}{\index{efl\+::eina\+::accessor@{efl\+::eina\+::accessor}!size\+\_\+type@{size\+\_\+type}}
\index{size\+\_\+type@{size\+\_\+type}!efl\+::eina\+::accessor@{efl\+::eina\+::accessor}}
\subsubsection[{size\+\_\+type}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ typedef std\+::size\+\_\+t {\bf efl\+::eina\+::accessor}$<$ T $>$\+::{\bf size\+\_\+type}}}\label{structefl_1_1eina_1_1accessor_a09205beb702a01d66e157a6f5d6f4d28}


Type for size information used in the accessor. 



\subsection{Constructor \& Destructor Documentation}
\hypertarget{structefl_1_1eina_1_1accessor_ae0f092ea05639d0f814b459f4b9c1748}{\index{efl\+::eina\+::accessor@{efl\+::eina\+::accessor}!accessor@{accessor}}
\index{accessor@{accessor}!efl\+::eina\+::accessor@{efl\+::eina\+::accessor}}
\subsubsection[{accessor}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ {\bf efl\+::eina\+::accessor}$<$ T $>$\+::{\bf accessor} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{structefl_1_1eina_1_1accessor_ae0f092ea05639d0f814b459f4b9c1748}


Default constructor. 

Creates an empty accessor. \hypertarget{structefl_1_1eina_1_1accessor_a9543cdccafd7d897aed86b3f277af91f}{\index{efl\+::eina\+::accessor@{efl\+::eina\+::accessor}!accessor@{accessor}}
\index{accessor@{accessor}!efl\+::eina\+::accessor@{efl\+::eina\+::accessor}}
\subsubsection[{accessor}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ {\bf efl\+::eina\+::accessor}$<$ T $>$\+::{\bf accessor} (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Accessor} $\ast$}]{impl}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [explicit]}}}\label{structefl_1_1eina_1_1accessor_a9543cdccafd7d897aed86b3f277af91f}


Create an accessor object that wraps the given Eina accessor. 


\begin{DoxyParams}{Parameters}
{\em impl} & Native {\ttfamily Eina\+\_\+\+Accessor} to be wrapped.\\
\hline
\end{DoxyParams}
This constructor creates an accessor object that wraps the given Eina\+\_\+\+Accessor and provides access to the data pointed by it.

\begin{DoxyWarning}{Warning}
It is important to note that the created accessor object gains ownership of the given handle, deallocating it at destruction time. 
\end{DoxyWarning}
\hypertarget{structefl_1_1eina_1_1accessor_ac86235f87f8028aaa5634238fa1e0b6b}{\index{efl\+::eina\+::accessor@{efl\+::eina\+::accessor}!accessor@{accessor}}
\index{accessor@{accessor}!efl\+::eina\+::accessor@{efl\+::eina\+::accessor}}
\subsubsection[{accessor}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ {\bf efl\+::eina\+::accessor}$<$ T $>$\+::{\bf accessor} (
\begin{DoxyParamCaption}
\item[{{\bf accessor}$<$ T $>$ const \&}]{other}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{structefl_1_1eina_1_1accessor_ac86235f87f8028aaa5634238fa1e0b6b}


Copy constructor. 

Creates a copy of the given accessor object. 
\begin{DoxyParams}{Parameters}
{\em other} & Other accessor object.\\
\hline
\end{DoxyParams}
This constructor clones the internal {\ttfamily Eina\+\_\+\+Accessor} of the given accessor object, so that the newly created object can be used freely. \hypertarget{structefl_1_1eina_1_1accessor_a3a9a8fea01c2e2df5894863e620e5360}{\index{efl\+::eina\+::accessor@{efl\+::eina\+::accessor}!````~accessor@{$\sim$accessor}}
\index{````~accessor@{$\sim$accessor}!efl\+::eina\+::accessor@{efl\+::eina\+::accessor}}
\subsubsection[{$\sim$accessor}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ {\bf efl\+::eina\+::accessor}$<$ T $>$\+::$\sim${\bf accessor} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{structefl_1_1eina_1_1accessor_a3a9a8fea01c2e2df5894863e620e5360}


Destructor. 

Free the internal {\ttfamily Eina\+\_\+\+Acessor}. 

References eina\+\_\+accessor\+\_\+free().



\subsection{Member Function Documentation}
\hypertarget{structefl_1_1eina_1_1accessor_ab6295f3540830dbd1df0a1eebf49312f}{\index{efl\+::eina\+::accessor@{efl\+::eina\+::accessor}!operator=@{operator=}}
\index{operator=@{operator=}!efl\+::eina\+::accessor@{efl\+::eina\+::accessor}}
\subsubsection[{operator=}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ {\bf accessor}$<$T$>$\& {\bf efl\+::eina\+::accessor}$<$ T $>$\+::operator= (
\begin{DoxyParamCaption}
\item[{{\bf accessor}$<$ T $>$ const \&}]{other}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{structefl_1_1eina_1_1accessor_ab6295f3540830dbd1df0a1eebf49312f}


Assignment Operator. 

Replace the current content. 
\begin{DoxyParams}{Parameters}
{\em other} & Other accessor object. \\
\hline
\end{DoxyParams}

\begin{DoxyExceptions}{Exceptions}
{\em $<$tt$>$eina\+::system\+\_\+error$<$/tt$>$} & if the Eina accessor could not be cloned.\\
\hline
\end{DoxyExceptions}
This operator replaces the current native Eina accessor by a copy of the native accessor inside the given object. 

References eina\+\_\+accessor\+\_\+clone(), eina\+\_\+accessor\+\_\+free(), and efl\+::eina\+::get\+\_\+error\+\_\+code().

\hypertarget{structefl_1_1eina_1_1accessor_ab0e3e52010738327e6b536dc05c0c8fc}{\index{efl\+::eina\+::accessor@{efl\+::eina\+::accessor}!operator\mbox{[}$\,$\mbox{]}@{operator[]}}
\index{operator\mbox{[}$\,$\mbox{]}@{operator[]}!efl\+::eina\+::accessor@{efl\+::eina\+::accessor}}
\subsubsection[{operator[]}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ {\bf mapped\+\_\+type}\& {\bf efl\+::eina\+::accessor}$<$ T $>$\+::operator\mbox{[}$\,$\mbox{]} (
\begin{DoxyParamCaption}
\item[{{\bf size\+\_\+type}}]{i}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{structefl_1_1eina_1_1accessor_ab0e3e52010738327e6b536dc05c0c8fc}


Retrieve the data of the accessor at a given position. 


\begin{DoxyParams}{Parameters}
{\em i} & The position of the element. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Constant reference to the retrieved data. 
\end{DoxyReturn}

\begin{DoxyExceptions}{Exceptions}
{\em $<$tt$>$eina\+::system\+\_\+error$<$/tt$>$} & if the given element could not be retrieved.\\
\hline
\end{DoxyExceptions}
This operator retrieves a constant reference to the element at the given position. If the element could not be retrieved an {\ttfamily eina\+::system\+\_\+error} is thrown. 

References eina\+\_\+accessor\+\_\+data\+\_\+get(), and efl\+::eina\+::get\+\_\+error\+\_\+code().

\hypertarget{structefl_1_1eina_1_1accessor_a4135f88b3ac5053ab5adbbc0ad87cc0c}{\index{efl\+::eina\+::accessor@{efl\+::eina\+::accessor}!native\+\_\+handle@{native\+\_\+handle}}
\index{native\+\_\+handle@{native\+\_\+handle}!efl\+::eina\+::accessor@{efl\+::eina\+::accessor}}
\subsubsection[{native\+\_\+handle}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ {\bf Eina\+\_\+\+Accessor}$\ast$ {\bf efl\+::eina\+::accessor}$<$ T $>$\+::native\+\_\+handle (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}\label{structefl_1_1eina_1_1accessor_a4135f88b3ac5053ab5adbbc0ad87cc0c}


Get the handle for the wrapped {\ttfamily Eina\+\_\+\+Accessor}. 

\begin{DoxyReturn}{Returns}
Internal handle for the native Eina accessor.
\end{DoxyReturn}
This member function returns the native {\ttfamily Eina\+\_\+\+Accessor} handle that is wrapped inside this object.

\begin{DoxyWarning}{Warning}
It is important to take care when using it, since the handle will be automatically release upon object destruction. 
\end{DoxyWarning}


Referenced by efl\+::eina\+::accessor$<$ T $>$\+::operator bool().

\hypertarget{structefl_1_1eina_1_1accessor_a3c55ed1571cbc11c057966662e138341}{\index{efl\+::eina\+::accessor@{efl\+::eina\+::accessor}!swap@{swap}}
\index{swap@{swap}!efl\+::eina\+::accessor@{efl\+::eina\+::accessor}}
\subsubsection[{swap}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ void {\bf efl\+::eina\+::accessor}$<$ T $>$\+::swap (
\begin{DoxyParamCaption}
\item[{{\bf accessor}$<$ T $>$ \&}]{other}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{structefl_1_1eina_1_1accessor_a3c55ed1571cbc11c057966662e138341}


Swap content between both objects. 


\begin{DoxyParams}{Parameters}
{\em other} & Other accessor object.\\
\hline
\end{DoxyParams}
This member function swaps the internal {\ttfamily Eina\+\_\+\+Acessor} with the given accessor object. 

References efl\+::eina\+::swap().



Referenced by efl\+::eina\+::swap().

\hypertarget{structefl_1_1eina_1_1accessor_aac8b3f9b4337bc83d8fdcc42d2d72606}{\index{efl\+::eina\+::accessor@{efl\+::eina\+::accessor}!operator bool@{operator bool}}
\index{operator bool@{operator bool}!efl\+::eina\+::accessor@{efl\+::eina\+::accessor}}
\subsubsection[{operator bool}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ {\bf efl\+::eina\+::accessor}$<$ T $>$\+::operator bool (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [explicit]}}}\label{structefl_1_1eina_1_1accessor_aac8b3f9b4337bc83d8fdcc42d2d72606}


Cast to {\ttfamily boolean} based on the wrapped {\ttfamily Eina\+\_\+\+Accessor}. 

\begin{DoxyReturn}{Returns}
{\ttfamily true} if the wrapped handle is not {\ttfamily N\+U\+L\+L}, {\ttfamily false} otherwise.
\end{DoxyReturn}
Boolean typecast overload for easy validation of the accessor object. Returns {\ttfamily false} if it does not have an internal {\ttfamily Eina\+\_\+\+Accessor}, i.\+e. if the current handle is not {\ttfamily N\+U\+L\+L}. 

References efl\+::eina\+::accessor$<$ T $>$\+::native\+\_\+handle().

