\hypertarget{structefl_1_1eina_1_1accessor__common__base}{}\section{efl\+:\+:eina\+:\+:accessor\+\_\+common\+\_\+base$<$ T $>$ Struct Template Reference}
\label{structefl_1_1eina_1_1accessor__common__base}\index{efl\+::eina\+::accessor\+\_\+common\+\_\+base$<$ T $>$@{efl\+::eina\+::accessor\+\_\+common\+\_\+base$<$ 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__common__base_a5790b4088729a4e1a4e94afe9ccd828a}{key\+\_\+type}
\begin{DoxyCompactList}\small\item\em Type for accessor key. \end{DoxyCompactList}\item 
typedef T \hyperlink{structefl_1_1eina_1_1accessor__common__base_a6e2ffb342b9faf5e4506ac86183ea155}{mapped\+\_\+type}
\begin{DoxyCompactList}\small\item\em Type for accessor mapped elements. \end{DoxyCompactList}\item 
typedef T \hyperlink{structefl_1_1eina_1_1accessor__common__base_a5217847f82807ab684dab59ce112a298}{value\+\_\+type}
\begin{DoxyCompactList}\small\item\em Type for accessor elements. \end{DoxyCompactList}\item 
typedef std\+::size\+\_\+t \hyperlink{structefl_1_1eina_1_1accessor__common__base_abf281f8df58aa16de7fee5d5d4d4ad50}{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__common__base_af9e36facaf895b5d4ecc1a897a7b3eb8}{accessor\+\_\+common\+\_\+base} ()
\begin{DoxyCompactList}\small\item\em Default constructor. \end{DoxyCompactList}\item 
\hyperlink{structefl_1_1eina_1_1accessor__common__base_a065ac08f4488572e209b9c5264f021cd}{accessor\+\_\+common\+\_\+base} (\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__common__base_a255a0ae5214a72251f494836d5ad629c}{accessor\+\_\+common\+\_\+base} (\hyperlink{structefl_1_1eina_1_1accessor__common__base}{accessor\+\_\+common\+\_\+base}$<$ T $>$ const \&other)
\begin{DoxyCompactList}\small\item\em Copy constructor. \end{DoxyCompactList}\item 
\hyperlink{structefl_1_1eina_1_1accessor__common__base}{accessor\+\_\+common\+\_\+base}$<$ T $>$ \& \hyperlink{structefl_1_1eina_1_1accessor__common__base_a16a244a264ae70f9b5185af6a2c9c8da}{operator=} (\hyperlink{structefl_1_1eina_1_1accessor__common__base}{accessor\+\_\+common\+\_\+base}$<$ T $>$ const \&other)
\begin{DoxyCompactList}\small\item\em Assignment Operator. \end{DoxyCompactList}\item 
\hyperlink{structefl_1_1eina_1_1accessor__common__base_ae79d667cb4ac2ae1180313bb98b72de4}{$\sim$accessor\+\_\+common\+\_\+base} ()
\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Accessor__Group_ga65199ea5201a1867471028477dc26744}{Eina\+\_\+\+Accessor} $\ast$ \hyperlink{structefl_1_1eina_1_1accessor__common__base_ab13b56dc6b4c15ff91b1a9d010d68a5a}{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__common__base_ae4815ea6e66cb5d1e54611da5cd182c8}{swap} (\hyperlink{structefl_1_1eina_1_1accessor__common__base}{accessor\+\_\+common\+\_\+base}$<$ T $>$ \&other)
\begin{DoxyCompactList}\small\item\em Swap content between both objects. \end{DoxyCompactList}\item 
\hyperlink{structefl_1_1eina_1_1accessor__common__base_ab1c2ac7e556d212515c32925a6eff5b1}{operator bool} () const 
\begin{DoxyCompactList}\small\item\em Cast to {\ttfamily boolean} based on the wrapped {\ttfamily Eina\+\_\+\+Accessor}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
\hypertarget{structefl_1_1eina_1_1accessor__common__base_a87cdcc0d2dd2a496c5d674a36a397826}{}\hyperlink{group__Eina__Accessor__Group_ga65199ea5201a1867471028477dc26744}{Eina\+\_\+\+Accessor} $\ast$ {\bfseries \+\_\+impl}\label{structefl_1_1eina_1_1accessor__common__base_a87cdcc0d2dd2a496c5d674a36a397826}

\end{DoxyCompactItemize}


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

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

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


Type for accessor key. 

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


Type for accessor mapped elements. 

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


Type for accessor elements. 

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


Type for size information used in the accessor. 



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


Default constructor. 

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


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__common__base_a255a0ae5214a72251f494836d5ad629c}{}\index{efl\+::eina\+::accessor\+\_\+common\+\_\+base@{efl\+::eina\+::accessor\+\_\+common\+\_\+base}!accessor\+\_\+common\+\_\+base@{accessor\+\_\+common\+\_\+base}}
\index{accessor\+\_\+common\+\_\+base@{accessor\+\_\+common\+\_\+base}!efl\+::eina\+::accessor\+\_\+common\+\_\+base@{efl\+::eina\+::accessor\+\_\+common\+\_\+base}}
\subsubsection[{accessor\+\_\+common\+\_\+base(accessor\+\_\+common\+\_\+base$<$ T $>$ const \&other)}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ {\bf efl\+::eina\+::accessor\+\_\+common\+\_\+base}$<$ T $>$\+::{\bf accessor\+\_\+common\+\_\+base} (
\begin{DoxyParamCaption}
\item[{{\bf accessor\+\_\+common\+\_\+base}$<$ T $>$ const \&}]{other}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{structefl_1_1eina_1_1accessor__common__base_a255a0ae5214a72251f494836d5ad629c}


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__common__base_ae79d667cb4ac2ae1180313bb98b72de4}{}\index{efl\+::eina\+::accessor\+\_\+common\+\_\+base@{efl\+::eina\+::accessor\+\_\+common\+\_\+base}!````~accessor\+\_\+common\+\_\+base@{$\sim$accessor\+\_\+common\+\_\+base}}
\index{````~accessor\+\_\+common\+\_\+base@{$\sim$accessor\+\_\+common\+\_\+base}!efl\+::eina\+::accessor\+\_\+common\+\_\+base@{efl\+::eina\+::accessor\+\_\+common\+\_\+base}}
\subsubsection[{$\sim$accessor\+\_\+common\+\_\+base()}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ {\bf efl\+::eina\+::accessor\+\_\+common\+\_\+base}$<$ T $>$\+::$\sim${\bf accessor\+\_\+common\+\_\+base} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{structefl_1_1eina_1_1accessor__common__base_ae79d667cb4ac2ae1180313bb98b72de4}


Destructor. 

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

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



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


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__common__base_ab13b56dc6b4c15ff91b1a9d010d68a5a}{}\index{efl\+::eina\+::accessor\+\_\+common\+\_\+base@{efl\+::eina\+::accessor\+\_\+common\+\_\+base}!native\+\_\+handle@{native\+\_\+handle}}
\index{native\+\_\+handle@{native\+\_\+handle}!efl\+::eina\+::accessor\+\_\+common\+\_\+base@{efl\+::eina\+::accessor\+\_\+common\+\_\+base}}
\subsubsection[{native\+\_\+handle() const }]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ {\bf Eina\+\_\+\+Accessor}$\ast$ {\bf efl\+::eina\+::accessor\+\_\+common\+\_\+base}$<$ T $>$\+::native\+\_\+handle (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}\label{structefl_1_1eina_1_1accessor__common__base_ab13b56dc6b4c15ff91b1a9d010d68a5a}


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\+\_\+common\+\_\+base$<$ T $>$\+::operator bool().

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


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().

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


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\+\_\+common\+\_\+base$<$ T $>$\+::native\+\_\+handle().

