\section{Elementary Store}
\label{group__Store}\index{Elementary Store@{Elementary Store}}


Store is an abstracting A\+PI that is intended to farm off fetching of data to threads running asynchronously from the mainloop that actually fetch data needed for a genlist (or possibly future other widgets) so scrolling never blocks waiting on IO (though normally this should be the users job -\/ if using genlist, to ensure all data genlist needs is in memory at the time it needs it, and if it isn\textquotesingle{}t to queue and defer a fetch and let genlist know later when its ready.  


\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \hyperlink{group__Store_gab38f7621361a9ecb32740b1e88dcf96d}{E\+L\+M\+\_\+\+S\+T\+O\+R\+E\+\_\+\+I\+T\+E\+M\+\_\+\+M\+A\+P\+P\+I\+N\+G\+\_\+\+E\+ND}~\{ E\+L\+M\+\_\+\+S\+T\+O\+R\+E\+\_\+\+I\+T\+E\+M\+\_\+\+M\+A\+P\+P\+I\+N\+G\+\_\+\+N\+O\+NE, N\+U\+LL, 0, \{ .empty = \{ E\+I\+N\+A\+\_\+\+T\+R\+UE \} \} \}\label{group__Store_gab38f7621361a9ecb32740b1e88dcf96d}

\begin{DoxyCompactList}\small\item\em Use this to end a list of mappings. \end{DoxyCompactList}\item 
\#define \hyperlink{group__Store_gacb42611794b34fd7209afdd04335358e}{E\+L\+M\+\_\+\+S\+T\+O\+R\+E\+\_\+\+I\+T\+E\+M\+\_\+\+M\+A\+P\+P\+I\+N\+G\+\_\+\+O\+F\+F\+S\+ET}(st,  it)~offsetof(st, it)\label{group__Store_gacb42611794b34fd7209afdd04335358e}

\begin{DoxyCompactList}\small\item\em Use this to get the offset in bytes in memory for where the data for the mapping lives relative to the item data (a private struct pointed to owned by the user. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef struct \+\_\+\+Elm\+\_\+\+Store \hyperlink{group__Store_ga1264b518bc090a00007b6f7adfe90f70}{Elm\+\_\+\+Store}\label{group__Store_ga1264b518bc090a00007b6f7adfe90f70}

\begin{DoxyCompactList}\small\item\em A store object. \end{DoxyCompactList}\item 
typedef struct \+\_\+\+Elm\+\_\+\+Store\+\_\+\+Item \hyperlink{group__Store_gab4527019d6f78b5b9293e6dcb3933127}{Elm\+\_\+\+Store\+\_\+\+Item}\label{group__Store_gab4527019d6f78b5b9293e6dcb3933127}

\begin{DoxyCompactList}\small\item\em A handle of a store item passed to store fetch/unfetch functions. \end{DoxyCompactList}\item 
typedef struct \+\_\+\+Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Info \hyperlink{group__Store_ga896c36b3721b8bdf9146884761fb6747}{Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Info}\label{group__Store_ga896c36b3721b8bdf9146884761fb6747}

\begin{DoxyCompactList}\small\item\em Basic information about a store item -\/ always cast into a specific type like Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Info\+\_\+\+Filesystem. \end{DoxyCompactList}\item 
typedef struct \+\_\+\+Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Info\+\_\+\+Filesystem \hyperlink{group__Store_gad238055c328277d25c52263b123c03b8}{Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Info\+\_\+\+Filesystem}\label{group__Store_gad238055c328277d25c52263b123c03b8}

\begin{DoxyCompactList}\small\item\em Filesystem specific information about a store item. \end{DoxyCompactList}\item 
typedef struct \+\_\+\+Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Mapping \hyperlink{group__Store_gadc43298ced71af65d372a67db457dbcf}{Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Mapping}\label{group__Store_gadc43298ced71af65d372a67db457dbcf}

\begin{DoxyCompactList}\small\item\em A basic way of telling Store how to take your return data (string, or something else from your struct) and convert it into something genlist can use. \end{DoxyCompactList}\item 
typedef struct \+\_\+\+Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Mapping\+\_\+\+Empty \hyperlink{group__Store_ga2a3cfe20b715ac153cf3933092c9e76e}{Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Mapping\+\_\+\+Empty}
\begin{DoxyCompactList}\small\item\em An empty piece of mapping information. \end{DoxyCompactList}\item 
typedef struct \+\_\+\+Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Mapping\+\_\+\+Photo \hyperlink{group__Store_ga9b17ceead22453246bb33091fd50972f}{Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Mapping\+\_\+\+Photo}\label{group__Store_ga9b17ceead22453246bb33091fd50972f}

\begin{DoxyCompactList}\small\item\em The data is a photo, so use these parameters to find it. \end{DoxyCompactList}\item 
typedef Eina\+\_\+\+Bool($\ast$ \hyperlink{group__Store_gaa6ce1f0acc3d088145bd528514ed800e}{Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+List\+\_\+\+Cb}) (void $\ast$data, \hyperlink{group__Store_ga896c36b3721b8bdf9146884761fb6747}{Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Info} $\ast$info)
\begin{DoxyCompactList}\small\item\em \begin{quote}
The item needs a custom mapping which means calling a function and returning a string from it, as opposed to a static lookup.\end{quote}
\end{DoxyCompactList}\item 
typedef void($\ast$ \hyperlink{group__Store_ga61705487074199d9a31f5523173957fa}{Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Fetch\+\_\+\+Cb}) (void $\ast$data, \hyperlink{group__Store_gab4527019d6f78b5b9293e6dcb3933127}{Elm\+\_\+\+Store\+\_\+\+Item} $\ast$sti)\label{group__Store_ga61705487074199d9a31f5523173957fa}

\begin{DoxyCompactList}\small\item\em Function to call to fetch item data. \end{DoxyCompactList}\item 
typedef void($\ast$ \hyperlink{group__Store_ga10d7ce7f1731fe00b59a41066a8b034d}{Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Unfetch\+\_\+\+Cb}) (void $\ast$data, \hyperlink{group__Store_gab4527019d6f78b5b9293e6dcb3933127}{Elm\+\_\+\+Store\+\_\+\+Item} $\ast$sti)\label{group__Store_ga10d7ce7f1731fe00b59a41066a8b034d}

\begin{DoxyCompactList}\small\item\em Function to cal lto un-\/fetch (free) an item. \end{DoxyCompactList}\item 
typedef void $\ast$($\ast$ \hyperlink{group__Store_ga25668bff64e6053afd6cb6eaad1c229c}{Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Mapping\+\_\+\+Cb}) (void $\ast$data, \hyperlink{group__Store_gab4527019d6f78b5b9293e6dcb3933127}{Elm\+\_\+\+Store\+\_\+\+Item} $\ast$sti, const char $\ast$part)\label{group__Store_ga25668bff64e6053afd6cb6eaad1c229c}

\begin{DoxyCompactList}\small\item\em Custom mapping function to call. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Enumerations}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{group__Store_ga1264b518bc090a00007b6f7adfe90f70}{Elm\+\_\+\+Store} $\ast$ \hyperlink{group__Store_ga171916357d90fbb13e3cacbfd1f72db9}{elm\+\_\+store\+\_\+filesystem\+\_\+new} (void)
\begin{DoxyCompactList}\small\item\em Create a new store object. \end{DoxyCompactList}\item 
void \hyperlink{group__Store_ga04e5d401569956202edd4657a4503c58}{elm\+\_\+store\+\_\+free} (\hyperlink{group__Store_ga1264b518bc090a00007b6f7adfe90f70}{Elm\+\_\+\+Store} $\ast$st)
\begin{DoxyCompactList}\small\item\em Free the store object and all items it manages. \end{DoxyCompactList}\item 
void \hyperlink{group__Store_ga2b5c5d9d1c770e7d8b40adafd8c58bdb}{elm\+\_\+store\+\_\+filesystem\+\_\+directory\+\_\+set} (\hyperlink{group__Store_ga1264b518bc090a00007b6f7adfe90f70}{Elm\+\_\+\+Store} $\ast$st, const char $\ast$dir)
\begin{DoxyCompactList}\small\item\em Set the path to the directory to scan for a filesystem store. \end{DoxyCompactList}\item 
const char $\ast$ \hyperlink{group__Store_ga2c24e1bebd2ba67b7fbeadb6309a904c}{elm\+\_\+store\+\_\+filesystem\+\_\+directory\+\_\+get} (const \hyperlink{group__Store_ga1264b518bc090a00007b6f7adfe90f70}{Elm\+\_\+\+Store} $\ast$st)
\begin{DoxyCompactList}\small\item\em Get the directory set on a filesystem store. \end{DoxyCompactList}\item 
const char $\ast$ \hyperlink{group__Store_gabbaf41a11f6a9f99df5cba15272de943}{elm\+\_\+store\+\_\+item\+\_\+filesystem\+\_\+path\+\_\+get} (const \hyperlink{group__Store_gab4527019d6f78b5b9293e6dcb3933127}{Elm\+\_\+\+Store\+\_\+\+Item} $\ast$sti)
\begin{DoxyCompactList}\small\item\em Get the path of a specific store item. \end{DoxyCompactList}\item 
void \hyperlink{group__Store_ga4b96cab5b94ea28868e399c3f4d655c3}{elm\+\_\+store\+\_\+target\+\_\+genlist\+\_\+set} (\hyperlink{group__Store_ga1264b518bc090a00007b6f7adfe90f70}{Elm\+\_\+\+Store} $\ast$st, Evas\+\_\+\+Object $\ast$obj)
\begin{DoxyCompactList}\small\item\em Set the target genlist to fill in from the store. \end{DoxyCompactList}\item 
void \hyperlink{group__Store_ga526e841e234f438cc9d6d26d077cc41a}{elm\+\_\+store\+\_\+cache\+\_\+set} (\hyperlink{group__Store_ga1264b518bc090a00007b6f7adfe90f70}{Elm\+\_\+\+Store} $\ast$st, int max)
\begin{DoxyCompactList}\small\item\em Set the maximum number of items that are not visible to keep cached. \end{DoxyCompactList}\item 
int \hyperlink{group__Store_ga614447ce91502123be2511c26f4b786b}{elm\+\_\+store\+\_\+cache\+\_\+get} (const \hyperlink{group__Store_ga1264b518bc090a00007b6f7adfe90f70}{Elm\+\_\+\+Store} $\ast$st)
\begin{DoxyCompactList}\small\item\em Get the maximum number if items to cache. \end{DoxyCompactList}\item 
void \hyperlink{group__Store_ga02aa0f716d3b1ec8896c4692e329dbf0}{elm\+\_\+store\+\_\+list\+\_\+func\+\_\+set} (\hyperlink{group__Store_ga1264b518bc090a00007b6f7adfe90f70}{Elm\+\_\+\+Store} $\ast$st, \hyperlink{group__Store_gaa6ce1f0acc3d088145bd528514ed800e}{Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+List\+\_\+\+Cb} func, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Set the function used to deal with listing of items. \end{DoxyCompactList}\item 
void \hyperlink{group__Store_ga8e6a1d27b1c031246c1480714c2da7fe}{elm\+\_\+store\+\_\+fetch\+\_\+func\+\_\+set} (\hyperlink{group__Store_ga1264b518bc090a00007b6f7adfe90f70}{Elm\+\_\+\+Store} $\ast$st, \hyperlink{group__Store_ga61705487074199d9a31f5523173957fa}{Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Fetch\+\_\+\+Cb} func, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Set the function used to deal with fetching of items. \end{DoxyCompactList}\item 
void \hyperlink{group__Store_ga9f47427f76d0b35973e19d2897b8d536}{elm\+\_\+store\+\_\+unfetch\+\_\+func\+\_\+set} (\hyperlink{group__Store_ga1264b518bc090a00007b6f7adfe90f70}{Elm\+\_\+\+Store} $\ast$st, \hyperlink{group__Store_ga10d7ce7f1731fe00b59a41066a8b034d}{Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Unfetch\+\_\+\+Cb} func, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Set the function used to free the structure allocated for the item. \end{DoxyCompactList}\item 
void \hyperlink{group__Store_gaeed5b3bba441fb189990c312b7a06b51}{elm\+\_\+store\+\_\+fetch\+\_\+thread\+\_\+set} (\hyperlink{group__Store_ga1264b518bc090a00007b6f7adfe90f70}{Elm\+\_\+\+Store} $\ast$st, Eina\+\_\+\+Bool use\+\_\+thread)
\begin{DoxyCompactList}\small\item\em Enable or disable fetching in a thread for Store. \end{DoxyCompactList}\item 
Eina\+\_\+\+Bool \hyperlink{group__Store_gac589e9aa2a3ebbfe5c35d4eea72f9a5d}{elm\+\_\+store\+\_\+fetch\+\_\+thread\+\_\+get} (const \hyperlink{group__Store_ga1264b518bc090a00007b6f7adfe90f70}{Elm\+\_\+\+Store} $\ast$st)
\begin{DoxyCompactList}\small\item\em Get the thread enabled fetching option for Store. \end{DoxyCompactList}\item 
void \hyperlink{group__Store_ga1e849ad1c90dffa95cf3b25319a5cb6f}{elm\+\_\+store\+\_\+sorted\+\_\+set} (\hyperlink{group__Store_ga1264b518bc090a00007b6f7adfe90f70}{Elm\+\_\+\+Store} $\ast$st, Eina\+\_\+\+Bool sorted)
\begin{DoxyCompactList}\small\item\em Set if items are to be sorted or not. \end{DoxyCompactList}\item 
Eina\+\_\+\+Bool \hyperlink{group__Store_gadd4ddd67478ef3ee5c38011897910f18}{elm\+\_\+store\+\_\+sorted\+\_\+get} (const \hyperlink{group__Store_ga1264b518bc090a00007b6f7adfe90f70}{Elm\+\_\+\+Store} $\ast$st)
\begin{DoxyCompactList}\small\item\em Get the sorting flag. \end{DoxyCompactList}\item 
void \hyperlink{group__Store_gac96136d07e157af6f13338032c1a1e2e}{elm\+\_\+store\+\_\+item\+\_\+data\+\_\+set} (\hyperlink{group__Store_gab4527019d6f78b5b9293e6dcb3933127}{Elm\+\_\+\+Store\+\_\+\+Item} $\ast$sti, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Set the item data holding item fields to map to item values in genlist. \end{DoxyCompactList}\item 
void $\ast$ \hyperlink{group__Store_ga27a2d4665f10816e42a7d3acc2303c78}{elm\+\_\+store\+\_\+item\+\_\+data\+\_\+get} (\hyperlink{group__Store_gab4527019d6f78b5b9293e6dcb3933127}{Elm\+\_\+\+Store\+\_\+\+Item} $\ast$sti)
\begin{DoxyCompactList}\small\item\em Get the item data. \end{DoxyCompactList}\item 
const \hyperlink{group__Store_ga1264b518bc090a00007b6f7adfe90f70}{Elm\+\_\+\+Store} $\ast$ \hyperlink{group__Store_gaf2cd243ad8644e8ff016d7fd70caf7f4}{elm\+\_\+store\+\_\+item\+\_\+store\+\_\+get} (const \hyperlink{group__Store_gab4527019d6f78b5b9293e6dcb3933127}{Elm\+\_\+\+Store\+\_\+\+Item} $\ast$sti)
\begin{DoxyCompactList}\small\item\em Fetch the store than a store item belongs to. \end{DoxyCompactList}\item 
const \hyperlink{group__Elm__General_ga13a0c231414b86e62f68afe3c6fb462b}{Elm\+\_\+\+Object\+\_\+\+Item} $\ast$ \hyperlink{group__Store_ga1f2893abf547e08aaa0c395676be1e60}{elm\+\_\+store\+\_\+item\+\_\+genlist\+\_\+item\+\_\+get} (const \hyperlink{group__Store_gab4527019d6f78b5b9293e6dcb3933127}{Elm\+\_\+\+Store\+\_\+\+Item} $\ast$sti)
\begin{DoxyCompactList}\small\item\em Fetch the genlist item that this store item controls. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Store is an abstracting A\+PI that is intended to farm off fetching of data to threads running asynchronously from the mainloop that actually fetch data needed for a genlist (or possibly future other widgets) so scrolling never blocks waiting on IO (though normally this should be the users job -\/ if using genlist, to ensure all data genlist needs is in memory at the time it needs it, and if it isn\textquotesingle{}t to queue and defer a fetch and let genlist know later when its ready. 

Store actually does this and implements the infrastructure of this, leaving the actual fetch and convert up to functions provided by the user).

It is possible for store to run inline without a thread, but this is highly inadvisable. you can disable this with\+:

elm\+\_\+store\+\_\+fetch\+\_\+thread\+\_\+set(store, E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E);

Store works first by creating a store, setting up functions to list items and fetch items. Currently the only store type supported is the filesystem store, which will list the files inside a directory (not recursively) and then hand each file it finds (the file path) to the list function for evaluation.

The list function may look at filename, may open the file or do anything it likes to determine something about the file. Either it filters it out (returns {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}) and it is discarded or it returns {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+UE} and also provides a \char`\"{}sort id\char`\"{} which is a string store uses to figure out sorting. This string could be the filename, or some data based on its contents. The strings are sorted alphabetically like any normal A\+S\+C\+II strings, with case being important. As this listing function runs in a thread, it can do blocking IO and parsing without hurting the fluidity of the main loop and G\+UI. The list function also returns information on how to map fields in the source file to elements of the genlist item. For example, how the fetcher reads the private data struct of the user (what memory offset in the struct the data is at) and what type is there (it\textquotesingle{}s a label of some sort, an icon, or with a custom mapping function that figures it out itself and creates the content needed for the genlist item).

Store then uses this sort id to build (over time) a sorted list of items that then map 1\+:1 to genlist items. When these items are visible and need content, Store calls the fetch function per item, which is responsible for fetching the data from the given item and returning data to store so it can map this to some item content. This function also runs in a thread, and thus can do blocking IO work to later return the data. Sorting is optional and can be enabled or disabled too.

When items are no longer needed, store will cal the unfetch function to free data in memory about that item that is no longer needed. This function is called in the mainloop and is expected to take minimal or almost no time to simply free up memory resources. 

\subsection{Typedef Documentation}
\index{Elementary Store@{Elementary Store}!Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+List\+\_\+\+Cb@{Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+List\+\_\+\+Cb}}
\index{Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+List\+\_\+\+Cb@{Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+List\+\_\+\+Cb}!Elementary Store@{Elementary Store}}
\subsubsection[{\texorpdfstring{Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+List\+\_\+\+Cb}{Elm_Store_Item_List_Cb}}]{\setlength{\rightskip}{0pt plus 5cm}typedef Eina\+\_\+\+Bool($\ast$ Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+List\+\_\+\+Cb) (void $\ast$data, {\bf Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Info} $\ast$info)}\label{group__Store_gaa6ce1f0acc3d088145bd528514ed800e}


\begin{quote}
The item needs a custom mapping which means calling a function and returning a string from it, as opposed to a static lookup.\end{quote}


It should not be allocated, and should live in a buffer in memory that survives the return of this function if its a label, or an allocated icon object if its an icon needed etc. Function to call for listing an item \index{Elementary Store@{Elementary Store}!Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Mapping\+\_\+\+Empty@{Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Mapping\+\_\+\+Empty}}
\index{Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Mapping\+\_\+\+Empty@{Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Mapping\+\_\+\+Empty}!Elementary Store@{Elementary Store}}
\subsubsection[{\texorpdfstring{Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Mapping\+\_\+\+Empty}{Elm_Store_Item_Mapping_Empty}}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct \+\_\+\+Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Mapping\+\_\+\+Empty {\bf Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Mapping\+\_\+\+Empty}}\label{group__Store_ga2a3cfe20b715ac153cf3933092c9e76e}


An empty piece of mapping information. 

Useful for String labels as they get used directly 

\subsection{Enumeration Type Documentation}
\index{Elementary Store@{Elementary Store}!Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Mapping\+\_\+\+Type@{Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Mapping\+\_\+\+Type}}
\index{Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Mapping\+\_\+\+Type@{Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Mapping\+\_\+\+Type}!Elementary Store@{Elementary Store}}
\subsubsection[{\texorpdfstring{Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Mapping\+\_\+\+Type}{Elm_Store_Item_Mapping_Type}}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Mapping\+\_\+\+Type}}\label{group__Store_ga4ff3f31e8c8d900f895449b6c108848d}


Possible mappings types. 

\begin{DoxySince}{Since}
1.\+7 
\end{DoxySince}
\begin{Desc}
\item[Enumerator]\par
\begin{description}
\index{E\+L\+M\+\_\+\+S\+T\+O\+R\+E\+\_\+\+I\+T\+E\+M\+\_\+\+M\+A\+P\+P\+I\+N\+G\+\_\+\+L\+A\+B\+EL@{E\+L\+M\+\_\+\+S\+T\+O\+R\+E\+\_\+\+I\+T\+E\+M\+\_\+\+M\+A\+P\+P\+I\+N\+G\+\_\+\+L\+A\+B\+EL}!Elementary Store@{Elementary Store}}\index{Elementary Store@{Elementary Store}!E\+L\+M\+\_\+\+S\+T\+O\+R\+E\+\_\+\+I\+T\+E\+M\+\_\+\+M\+A\+P\+P\+I\+N\+G\+\_\+\+L\+A\+B\+EL@{E\+L\+M\+\_\+\+S\+T\+O\+R\+E\+\_\+\+I\+T\+E\+M\+\_\+\+M\+A\+P\+P\+I\+N\+G\+\_\+\+L\+A\+B\+EL}}\item[{\em 
E\+L\+M\+\_\+\+S\+T\+O\+R\+E\+\_\+\+I\+T\+E\+M\+\_\+\+M\+A\+P\+P\+I\+N\+G\+\_\+\+L\+A\+B\+EL\label{group__Store_gga4ff3f31e8c8d900f895449b6c108848dabcbf277caca7cc8dacf061377701967a}
}]const char $\ast$ -\/$>$ label \index{E\+L\+M\+\_\+\+S\+T\+O\+R\+E\+\_\+\+I\+T\+E\+M\+\_\+\+M\+A\+P\+P\+I\+N\+G\+\_\+\+S\+T\+A\+TE@{E\+L\+M\+\_\+\+S\+T\+O\+R\+E\+\_\+\+I\+T\+E\+M\+\_\+\+M\+A\+P\+P\+I\+N\+G\+\_\+\+S\+T\+A\+TE}!Elementary Store@{Elementary Store}}\index{Elementary Store@{Elementary Store}!E\+L\+M\+\_\+\+S\+T\+O\+R\+E\+\_\+\+I\+T\+E\+M\+\_\+\+M\+A\+P\+P\+I\+N\+G\+\_\+\+S\+T\+A\+TE@{E\+L\+M\+\_\+\+S\+T\+O\+R\+E\+\_\+\+I\+T\+E\+M\+\_\+\+M\+A\+P\+P\+I\+N\+G\+\_\+\+S\+T\+A\+TE}}\item[{\em 
E\+L\+M\+\_\+\+S\+T\+O\+R\+E\+\_\+\+I\+T\+E\+M\+\_\+\+M\+A\+P\+P\+I\+N\+G\+\_\+\+S\+T\+A\+TE\label{group__Store_gga4ff3f31e8c8d900f895449b6c108848dae963dc89924ddd80167289903e3d1650}
}]Eina\+\_\+\+Bool -\/$>$ state. \index{E\+L\+M\+\_\+\+S\+T\+O\+R\+E\+\_\+\+I\+T\+E\+M\+\_\+\+M\+A\+P\+P\+I\+N\+G\+\_\+\+I\+C\+ON@{E\+L\+M\+\_\+\+S\+T\+O\+R\+E\+\_\+\+I\+T\+E\+M\+\_\+\+M\+A\+P\+P\+I\+N\+G\+\_\+\+I\+C\+ON}!Elementary Store@{Elementary Store}}\index{Elementary Store@{Elementary Store}!E\+L\+M\+\_\+\+S\+T\+O\+R\+E\+\_\+\+I\+T\+E\+M\+\_\+\+M\+A\+P\+P\+I\+N\+G\+\_\+\+I\+C\+ON@{E\+L\+M\+\_\+\+S\+T\+O\+R\+E\+\_\+\+I\+T\+E\+M\+\_\+\+M\+A\+P\+P\+I\+N\+G\+\_\+\+I\+C\+ON}}\item[{\em 
E\+L\+M\+\_\+\+S\+T\+O\+R\+E\+\_\+\+I\+T\+E\+M\+\_\+\+M\+A\+P\+P\+I\+N\+G\+\_\+\+I\+C\+ON\label{group__Store_gga4ff3f31e8c8d900f895449b6c108848dabb78f3af075c1209be3c6c801577143f}
}]char $\ast$ -\/$>$ icon path \index{E\+L\+M\+\_\+\+S\+T\+O\+R\+E\+\_\+\+I\+T\+E\+M\+\_\+\+M\+A\+P\+P\+I\+N\+G\+\_\+\+P\+H\+O\+TO@{E\+L\+M\+\_\+\+S\+T\+O\+R\+E\+\_\+\+I\+T\+E\+M\+\_\+\+M\+A\+P\+P\+I\+N\+G\+\_\+\+P\+H\+O\+TO}!Elementary Store@{Elementary Store}}\index{Elementary Store@{Elementary Store}!E\+L\+M\+\_\+\+S\+T\+O\+R\+E\+\_\+\+I\+T\+E\+M\+\_\+\+M\+A\+P\+P\+I\+N\+G\+\_\+\+P\+H\+O\+TO@{E\+L\+M\+\_\+\+S\+T\+O\+R\+E\+\_\+\+I\+T\+E\+M\+\_\+\+M\+A\+P\+P\+I\+N\+G\+\_\+\+P\+H\+O\+TO}}\item[{\em 
E\+L\+M\+\_\+\+S\+T\+O\+R\+E\+\_\+\+I\+T\+E\+M\+\_\+\+M\+A\+P\+P\+I\+N\+G\+\_\+\+P\+H\+O\+TO\label{group__Store_gga4ff3f31e8c8d900f895449b6c108848dae82a3744f04915f558ed917576cda9c8}
}]char $\ast$ -\/$>$ photo path \index{E\+L\+M\+\_\+\+S\+T\+O\+R\+E\+\_\+\+I\+T\+E\+M\+\_\+\+M\+A\+P\+P\+I\+N\+G\+\_\+\+C\+U\+S\+T\+OM@{E\+L\+M\+\_\+\+S\+T\+O\+R\+E\+\_\+\+I\+T\+E\+M\+\_\+\+M\+A\+P\+P\+I\+N\+G\+\_\+\+C\+U\+S\+T\+OM}!Elementary Store@{Elementary Store}}\index{Elementary Store@{Elementary Store}!E\+L\+M\+\_\+\+S\+T\+O\+R\+E\+\_\+\+I\+T\+E\+M\+\_\+\+M\+A\+P\+P\+I\+N\+G\+\_\+\+C\+U\+S\+T\+OM@{E\+L\+M\+\_\+\+S\+T\+O\+R\+E\+\_\+\+I\+T\+E\+M\+\_\+\+M\+A\+P\+P\+I\+N\+G\+\_\+\+C\+U\+S\+T\+OM}}\item[{\em 
E\+L\+M\+\_\+\+S\+T\+O\+R\+E\+\_\+\+I\+T\+E\+M\+\_\+\+M\+A\+P\+P\+I\+N\+G\+\_\+\+C\+U\+S\+T\+OM\label{group__Store_gga4ff3f31e8c8d900f895449b6c108848da1905090292ab92a98374f6f510ab8e3c}
}]item-\/$>$custom(it-\/$>$data, it, part) -\/$>$ void $\ast$ (-\/$>$ any) \end{description}
\end{Desc}


\subsection{Function Documentation}
\index{Elementary Store@{Elementary Store}!elm\+\_\+store\+\_\+cache\+\_\+get@{elm\+\_\+store\+\_\+cache\+\_\+get}}
\index{elm\+\_\+store\+\_\+cache\+\_\+get@{elm\+\_\+store\+\_\+cache\+\_\+get}!Elementary Store@{Elementary Store}}
\subsubsection[{\texorpdfstring{elm\+\_\+store\+\_\+cache\+\_\+get(const Elm\+\_\+\+Store $\ast$st)}{elm_store_cache_get(const Elm_Store *st)}}]{\setlength{\rightskip}{0pt plus 5cm}int elm\+\_\+store\+\_\+cache\+\_\+get (
\begin{DoxyParamCaption}
\item[{const {\bf Elm\+\_\+\+Store} $\ast$}]{st}
\end{DoxyParamCaption}
)}\label{group__Store_ga614447ce91502123be2511c26f4b786b}


Get the maximum number if items to cache. 

This returns the number of items at most to cache.


\begin{DoxyParams}{Parameters}
{\em st} & The store to query \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The maximum number of items to cache ($>$= 0) 
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\hyperlink{group__Store_ga526e841e234f438cc9d6d26d077cc41a}{elm\+\_\+store\+\_\+cache\+\_\+set()} 
\end{DoxySeeAlso}
\index{Elementary Store@{Elementary Store}!elm\+\_\+store\+\_\+cache\+\_\+set@{elm\+\_\+store\+\_\+cache\+\_\+set}}
\index{elm\+\_\+store\+\_\+cache\+\_\+set@{elm\+\_\+store\+\_\+cache\+\_\+set}!Elementary Store@{Elementary Store}}
\subsubsection[{\texorpdfstring{elm\+\_\+store\+\_\+cache\+\_\+set(\+Elm\+\_\+\+Store $\ast$st, int max)}{elm_store_cache_set(Elm_Store *st, int max)}}]{\setlength{\rightskip}{0pt plus 5cm}void elm\+\_\+store\+\_\+cache\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Elm\+\_\+\+Store} $\ast$}]{st, }
\item[{int}]{max}
\end{DoxyParamCaption}
)}\label{group__Store_ga526e841e234f438cc9d6d26d077cc41a}


Set the maximum number of items that are not visible to keep cached. 

Store may keep some items around for caching purposes that cannot be seen, so this controls the maximum number. The default is 128, but may change at any point in time in the future.


\begin{DoxyParams}{Parameters}
{\em st} & The store to modify \\
\hline
{\em max} & The number of items to keep (should be greater than or equal to 0) \\
\hline
\end{DoxyParams}
\index{Elementary Store@{Elementary Store}!elm\+\_\+store\+\_\+fetch\+\_\+func\+\_\+set@{elm\+\_\+store\+\_\+fetch\+\_\+func\+\_\+set}}
\index{elm\+\_\+store\+\_\+fetch\+\_\+func\+\_\+set@{elm\+\_\+store\+\_\+fetch\+\_\+func\+\_\+set}!Elementary Store@{Elementary Store}}
\subsubsection[{\texorpdfstring{elm\+\_\+store\+\_\+fetch\+\_\+func\+\_\+set(\+Elm\+\_\+\+Store $\ast$st, Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Fetch\+\_\+\+Cb func, const void $\ast$data)}{elm_store_fetch_func_set(Elm_Store *st, Elm_Store_Item_Fetch_Cb func, const void *data)}}]{\setlength{\rightskip}{0pt plus 5cm}void elm\+\_\+store\+\_\+fetch\+\_\+func\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Elm\+\_\+\+Store} $\ast$}]{st, }
\item[{{\bf Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Fetch\+\_\+\+Cb}}]{func, }
\item[{const void $\ast$}]{data}
\end{DoxyParamCaption}
)}\label{group__Store_ga8e6a1d27b1c031246c1480714c2da7fe}


Set the function used to deal with fetching of items. 

This function is called per item that needs data to be fetched when it becomes visible and such data is needed. This function is normally run from a thread (unless \hyperlink{group__Store_gaeed5b3bba441fb189990c312b7a06b51}{elm\+\_\+store\+\_\+fetch\+\_\+thread\+\_\+set()} disables this). The fetch function is to read data from the source and fill a structure allocated for this item with fields and then rely on the mapping setup to tell Store how to take a field in the structure and apply it to a genlist item.


\begin{DoxyParams}{Parameters}
{\em st} & The store to set the function of \\
\hline
{\em func} & The function to be called \\
\hline
{\em data} & the data pointer to be passed to the {\ttfamily func} function when called \\
\hline
\end{DoxyParams}
\index{Elementary Store@{Elementary Store}!elm\+\_\+store\+\_\+fetch\+\_\+thread\+\_\+get@{elm\+\_\+store\+\_\+fetch\+\_\+thread\+\_\+get}}
\index{elm\+\_\+store\+\_\+fetch\+\_\+thread\+\_\+get@{elm\+\_\+store\+\_\+fetch\+\_\+thread\+\_\+get}!Elementary Store@{Elementary Store}}
\subsubsection[{\texorpdfstring{elm\+\_\+store\+\_\+fetch\+\_\+thread\+\_\+get(const Elm\+\_\+\+Store $\ast$st)}{elm_store_fetch_thread_get(const Elm_Store *st)}}]{\setlength{\rightskip}{0pt plus 5cm}Eina\+\_\+\+Bool elm\+\_\+store\+\_\+fetch\+\_\+thread\+\_\+get (
\begin{DoxyParamCaption}
\item[{const {\bf Elm\+\_\+\+Store} $\ast$}]{st}
\end{DoxyParamCaption}
)}\label{group__Store_gac589e9aa2a3ebbfe5c35d4eea72f9a5d}


Get the thread enabled fetching option for Store. 

\begin{DoxyReturn}{Returns}
The state set currently for the store. 
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\hyperlink{group__Store_gaeed5b3bba441fb189990c312b7a06b51}{elm\+\_\+store\+\_\+fetch\+\_\+thread\+\_\+set()} 
\end{DoxySeeAlso}
\index{Elementary Store@{Elementary Store}!elm\+\_\+store\+\_\+fetch\+\_\+thread\+\_\+set@{elm\+\_\+store\+\_\+fetch\+\_\+thread\+\_\+set}}
\index{elm\+\_\+store\+\_\+fetch\+\_\+thread\+\_\+set@{elm\+\_\+store\+\_\+fetch\+\_\+thread\+\_\+set}!Elementary Store@{Elementary Store}}
\subsubsection[{\texorpdfstring{elm\+\_\+store\+\_\+fetch\+\_\+thread\+\_\+set(\+Elm\+\_\+\+Store $\ast$st, Eina\+\_\+\+Bool use\+\_\+thread)}{elm_store_fetch_thread_set(Elm_Store *st, Eina_Bool use_thread)}}]{\setlength{\rightskip}{0pt plus 5cm}void elm\+\_\+store\+\_\+fetch\+\_\+thread\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Elm\+\_\+\+Store} $\ast$}]{st, }
\item[{Eina\+\_\+\+Bool}]{use\+\_\+thread}
\end{DoxyParamCaption}
)}\label{group__Store_gaeed5b3bba441fb189990c312b7a06b51}


Enable or disable fetching in a thread for Store. 


\begin{DoxyParams}{Parameters}
{\em st} & The store to modify \\
\hline
{\em use\+\_\+thread} & {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+UE} to use a thread to fetch, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} don\textquotesingle{}t use a thread. \\
\hline
\end{DoxyParams}
\index{Elementary Store@{Elementary Store}!elm\+\_\+store\+\_\+filesystem\+\_\+directory\+\_\+get@{elm\+\_\+store\+\_\+filesystem\+\_\+directory\+\_\+get}}
\index{elm\+\_\+store\+\_\+filesystem\+\_\+directory\+\_\+get@{elm\+\_\+store\+\_\+filesystem\+\_\+directory\+\_\+get}!Elementary Store@{Elementary Store}}
\subsubsection[{\texorpdfstring{elm\+\_\+store\+\_\+filesystem\+\_\+directory\+\_\+get(const Elm\+\_\+\+Store $\ast$st)}{elm_store_filesystem_directory_get(const Elm_Store *st)}}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ elm\+\_\+store\+\_\+filesystem\+\_\+directory\+\_\+get (
\begin{DoxyParamCaption}
\item[{const {\bf Elm\+\_\+\+Store} $\ast$}]{st}
\end{DoxyParamCaption}
)}\label{group__Store_ga2c24e1bebd2ba67b7fbeadb6309a904c}


Get the directory set on a filesystem store. 

This gets the directory set by \hyperlink{group__Store_ga2b5c5d9d1c770e7d8b40adafd8c58bdb}{elm\+\_\+store\+\_\+filesystem\+\_\+directory\+\_\+set()}. This string returned will be valid until \hyperlink{group__Store_ga2b5c5d9d1c770e7d8b40adafd8c58bdb}{elm\+\_\+store\+\_\+filesystem\+\_\+directory\+\_\+set()} changes it or until the store is freed with \hyperlink{group__Store_ga04e5d401569956202edd4657a4503c58}{elm\+\_\+store\+\_\+free()}.

\begin{DoxyReturn}{Returns}
A string with the path set, or N\+U\+LL if none set. 
\end{DoxyReturn}
\index{Elementary Store@{Elementary Store}!elm\+\_\+store\+\_\+filesystem\+\_\+directory\+\_\+set@{elm\+\_\+store\+\_\+filesystem\+\_\+directory\+\_\+set}}
\index{elm\+\_\+store\+\_\+filesystem\+\_\+directory\+\_\+set@{elm\+\_\+store\+\_\+filesystem\+\_\+directory\+\_\+set}!Elementary Store@{Elementary Store}}
\subsubsection[{\texorpdfstring{elm\+\_\+store\+\_\+filesystem\+\_\+directory\+\_\+set(\+Elm\+\_\+\+Store $\ast$st, const char $\ast$dir)}{elm_store_filesystem_directory_set(Elm_Store *st, const char *dir)}}]{\setlength{\rightskip}{0pt plus 5cm}void elm\+\_\+store\+\_\+filesystem\+\_\+directory\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Elm\+\_\+\+Store} $\ast$}]{st, }
\item[{const char $\ast$}]{dir}
\end{DoxyParamCaption}
)}\label{group__Store_ga2b5c5d9d1c770e7d8b40adafd8c58bdb}


Set the path to the directory to scan for a filesystem store. 

This sets the directory ({\ttfamily dir}) to scan and begins scanning in the the background in threads (or not if threading is disabled with \hyperlink{group__Store_gaeed5b3bba441fb189990c312b7a06b51}{elm\+\_\+store\+\_\+fetch\+\_\+thread\+\_\+set()}). Note that Listing is always done in a thread but fetching may not be if disabled here. This should be the last thing called after fetch, list and unfetch functions are set, as well as target genlist etc. You also should not change the directory once set. If you need a new directory scanned, create a new store.


\begin{DoxyParams}{Parameters}
{\em st} & The store to modify \\
\hline
{\em dir} & A string giving the path to the directory to scan \\
\hline
\end{DoxyParams}
\index{Elementary Store@{Elementary Store}!elm\+\_\+store\+\_\+filesystem\+\_\+new@{elm\+\_\+store\+\_\+filesystem\+\_\+new}}
\index{elm\+\_\+store\+\_\+filesystem\+\_\+new@{elm\+\_\+store\+\_\+filesystem\+\_\+new}!Elementary Store@{Elementary Store}}
\subsubsection[{\texorpdfstring{elm\+\_\+store\+\_\+filesystem\+\_\+new(void)}{elm_store_filesystem_new(void)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Elm\+\_\+\+Store}$\ast$ elm\+\_\+store\+\_\+filesystem\+\_\+new (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\label{group__Store_ga171916357d90fbb13e3cacbfd1f72db9}


Create a new store object. 

This creates a new store object to then configure so it works.

\begin{DoxyReturn}{Returns}
A new store object, or N\+U\+LL if creation fails 
\end{DoxyReturn}
\index{Elementary Store@{Elementary Store}!elm\+\_\+store\+\_\+free@{elm\+\_\+store\+\_\+free}}
\index{elm\+\_\+store\+\_\+free@{elm\+\_\+store\+\_\+free}!Elementary Store@{Elementary Store}}
\subsubsection[{\texorpdfstring{elm\+\_\+store\+\_\+free(\+Elm\+\_\+\+Store $\ast$st)}{elm_store_free(Elm_Store *st)}}]{\setlength{\rightskip}{0pt plus 5cm}void elm\+\_\+store\+\_\+free (
\begin{DoxyParamCaption}
\item[{{\bf Elm\+\_\+\+Store} $\ast$}]{st}
\end{DoxyParamCaption}
)}\label{group__Store_ga04e5d401569956202edd4657a4503c58}


Free the store object and all items it manages. 

This frees the given {\ttfamily st} store and all the items it manages. It will clear the List that it populated, but otherwise leave it alone. It will cancel background threads (and may have to wait for them to complete a pending operation to do this).


\begin{DoxyParams}{Parameters}
{\em st} & The store to free \\
\hline
\end{DoxyParams}


References elm\+\_\+genlist\+\_\+clear().

\index{Elementary Store@{Elementary Store}!elm\+\_\+store\+\_\+item\+\_\+data\+\_\+get@{elm\+\_\+store\+\_\+item\+\_\+data\+\_\+get}}
\index{elm\+\_\+store\+\_\+item\+\_\+data\+\_\+get@{elm\+\_\+store\+\_\+item\+\_\+data\+\_\+get}!Elementary Store@{Elementary Store}}
\subsubsection[{\texorpdfstring{elm\+\_\+store\+\_\+item\+\_\+data\+\_\+get(\+Elm\+\_\+\+Store\+\_\+\+Item $\ast$sti)}{elm_store_item_data_get(Elm_Store_Item *sti)}}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ elm\+\_\+store\+\_\+item\+\_\+data\+\_\+get (
\begin{DoxyParamCaption}
\item[{{\bf Elm\+\_\+\+Store\+\_\+\+Item} $\ast$}]{sti}
\end{DoxyParamCaption}
)}\label{group__Store_ga27a2d4665f10816e42a7d3acc2303c78}


Get the item data. 

This gets the data pointer set by \hyperlink{group__Store_gac96136d07e157af6f13338032c1a1e2e}{elm\+\_\+store\+\_\+item\+\_\+data\+\_\+set()}.


\begin{DoxyParams}{Parameters}
{\em sti} & The store item to query \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The data pointer set on the item 
\end{DoxyReturn}
\index{Elementary Store@{Elementary Store}!elm\+\_\+store\+\_\+item\+\_\+data\+\_\+set@{elm\+\_\+store\+\_\+item\+\_\+data\+\_\+set}}
\index{elm\+\_\+store\+\_\+item\+\_\+data\+\_\+set@{elm\+\_\+store\+\_\+item\+\_\+data\+\_\+set}!Elementary Store@{Elementary Store}}
\subsubsection[{\texorpdfstring{elm\+\_\+store\+\_\+item\+\_\+data\+\_\+set(\+Elm\+\_\+\+Store\+\_\+\+Item $\ast$sti, void $\ast$data)}{elm_store_item_data_set(Elm_Store_Item *sti, void *data)}}]{\setlength{\rightskip}{0pt plus 5cm}void elm\+\_\+store\+\_\+item\+\_\+data\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Elm\+\_\+\+Store\+\_\+\+Item} $\ast$}]{sti, }
\item[{void $\ast$}]{data}
\end{DoxyParamCaption}
)}\label{group__Store_gac96136d07e157af6f13338032c1a1e2e}


Set the item data holding item fields to map to item values in genlist. 

Once you decode an item, allocate a structure for it and fill the structure, you should set the item data with this function (eg in the fetch function). This item pointer is the base offset to use when mapping fields to item values. Once you unfetch, store will handle N\+U\+L\+Ling the data pointer for you.


\begin{DoxyParams}{Parameters}
{\em sti} & The store item to set the data pointer of \\
\hline
{\em data} & The data pointer to set. \\
\hline
\end{DoxyParams}
\index{Elementary Store@{Elementary Store}!elm\+\_\+store\+\_\+item\+\_\+filesystem\+\_\+path\+\_\+get@{elm\+\_\+store\+\_\+item\+\_\+filesystem\+\_\+path\+\_\+get}}
\index{elm\+\_\+store\+\_\+item\+\_\+filesystem\+\_\+path\+\_\+get@{elm\+\_\+store\+\_\+item\+\_\+filesystem\+\_\+path\+\_\+get}!Elementary Store@{Elementary Store}}
\subsubsection[{\texorpdfstring{elm\+\_\+store\+\_\+item\+\_\+filesystem\+\_\+path\+\_\+get(const Elm\+\_\+\+Store\+\_\+\+Item $\ast$sti)}{elm_store_item_filesystem_path_get(const Elm_Store_Item *sti)}}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ elm\+\_\+store\+\_\+item\+\_\+filesystem\+\_\+path\+\_\+get (
\begin{DoxyParamCaption}
\item[{const {\bf Elm\+\_\+\+Store\+\_\+\+Item} $\ast$}]{sti}
\end{DoxyParamCaption}
)}\label{group__Store_gabbaf41a11f6a9f99df5cba15272de943}


Get the path of a specific store item. 

This returns the full path of a store item. This string is valid only during the list function set by \hyperlink{group__Store_ga02aa0f716d3b1ec8896c4692e329dbf0}{elm\+\_\+store\+\_\+list\+\_\+func\+\_\+set()} or during the fetch function set by \hyperlink{group__Store_ga8e6a1d27b1c031246c1480714c2da7fe}{elm\+\_\+store\+\_\+fetch\+\_\+func\+\_\+set()} or during the unfetch function set by \hyperlink{group__Store_ga9f47427f76d0b35973e19d2897b8d536}{elm\+\_\+store\+\_\+unfetch\+\_\+func\+\_\+set()}.


\begin{DoxyParams}{Parameters}
{\em sti} & The store item to get the path from \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A full path in a string or N\+U\+LL if none available 
\end{DoxyReturn}
\index{Elementary Store@{Elementary Store}!elm\+\_\+store\+\_\+item\+\_\+genlist\+\_\+item\+\_\+get@{elm\+\_\+store\+\_\+item\+\_\+genlist\+\_\+item\+\_\+get}}
\index{elm\+\_\+store\+\_\+item\+\_\+genlist\+\_\+item\+\_\+get@{elm\+\_\+store\+\_\+item\+\_\+genlist\+\_\+item\+\_\+get}!Elementary Store@{Elementary Store}}
\subsubsection[{\texorpdfstring{elm\+\_\+store\+\_\+item\+\_\+genlist\+\_\+item\+\_\+get(const Elm\+\_\+\+Store\+\_\+\+Item $\ast$sti)}{elm_store_item_genlist_item_get(const Elm_Store_Item *sti)}}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf Elm\+\_\+\+Object\+\_\+\+Item}$\ast$ elm\+\_\+store\+\_\+item\+\_\+genlist\+\_\+item\+\_\+get (
\begin{DoxyParamCaption}
\item[{const {\bf Elm\+\_\+\+Store\+\_\+\+Item} $\ast$}]{sti}
\end{DoxyParamCaption}
)}\label{group__Store_ga1f2893abf547e08aaa0c395676be1e60}


Fetch the genlist item that this store item controls. 


\begin{DoxyParams}{Parameters}
{\em sti} & The store item to query \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The genlist object item handle controlled by this store item 
\end{DoxyReturn}
\index{Elementary Store@{Elementary Store}!elm\+\_\+store\+\_\+item\+\_\+store\+\_\+get@{elm\+\_\+store\+\_\+item\+\_\+store\+\_\+get}}
\index{elm\+\_\+store\+\_\+item\+\_\+store\+\_\+get@{elm\+\_\+store\+\_\+item\+\_\+store\+\_\+get}!Elementary Store@{Elementary Store}}
\subsubsection[{\texorpdfstring{elm\+\_\+store\+\_\+item\+\_\+store\+\_\+get(const Elm\+\_\+\+Store\+\_\+\+Item $\ast$sti)}{elm_store_item_store_get(const Elm_Store_Item *sti)}}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf Elm\+\_\+\+Store}$\ast$ elm\+\_\+store\+\_\+item\+\_\+store\+\_\+get (
\begin{DoxyParamCaption}
\item[{const {\bf Elm\+\_\+\+Store\+\_\+\+Item} $\ast$}]{sti}
\end{DoxyParamCaption}
)}\label{group__Store_gaf2cd243ad8644e8ff016d7fd70caf7f4}


Fetch the store than a store item belongs to. 

This fetches the store object that owns the store item.


\begin{DoxyParams}{Parameters}
{\em sti} & The store item to query \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The store the item belongs to 
\end{DoxyReturn}
\index{Elementary Store@{Elementary Store}!elm\+\_\+store\+\_\+list\+\_\+func\+\_\+set@{elm\+\_\+store\+\_\+list\+\_\+func\+\_\+set}}
\index{elm\+\_\+store\+\_\+list\+\_\+func\+\_\+set@{elm\+\_\+store\+\_\+list\+\_\+func\+\_\+set}!Elementary Store@{Elementary Store}}
\subsubsection[{\texorpdfstring{elm\+\_\+store\+\_\+list\+\_\+func\+\_\+set(\+Elm\+\_\+\+Store $\ast$st, Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+List\+\_\+\+Cb func, const void $\ast$data)}{elm_store_list_func_set(Elm_Store *st, Elm_Store_Item_List_Cb func, const void *data)}}]{\setlength{\rightskip}{0pt plus 5cm}void elm\+\_\+store\+\_\+list\+\_\+func\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Elm\+\_\+\+Store} $\ast$}]{st, }
\item[{{\bf Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+List\+\_\+\+Cb}}]{func, }
\item[{const void $\ast$}]{data}
\end{DoxyParamCaption}
)}\label{group__Store_ga02aa0f716d3b1ec8896c4692e329dbf0}


Set the function used to deal with listing of items. 

This function is called per item that is found so it can examine the item and discard it (return {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} to discard, or {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+UE} to accept), and work out some sorting ID (that may be filename or anything else based on content). This function is always called from a thread.


\begin{DoxyParams}{Parameters}
{\em st} & The store to set the function of \\
\hline
{\em func} & The function to be called \\
\hline
{\em data} & the data pointer to be passed to the {\ttfamily func} function when called \\
\hline
\end{DoxyParams}
\index{Elementary Store@{Elementary Store}!elm\+\_\+store\+\_\+sorted\+\_\+get@{elm\+\_\+store\+\_\+sorted\+\_\+get}}
\index{elm\+\_\+store\+\_\+sorted\+\_\+get@{elm\+\_\+store\+\_\+sorted\+\_\+get}!Elementary Store@{Elementary Store}}
\subsubsection[{\texorpdfstring{elm\+\_\+store\+\_\+sorted\+\_\+get(const Elm\+\_\+\+Store $\ast$st)}{elm_store_sorted_get(const Elm_Store *st)}}]{\setlength{\rightskip}{0pt plus 5cm}Eina\+\_\+\+Bool elm\+\_\+store\+\_\+sorted\+\_\+get (
\begin{DoxyParamCaption}
\item[{const {\bf Elm\+\_\+\+Store} $\ast$}]{st}
\end{DoxyParamCaption}
)}\label{group__Store_gadd4ddd67478ef3ee5c38011897910f18}


Get the sorting flag. 

Get the sorted flag as set by \hyperlink{group__Store_ga1e849ad1c90dffa95cf3b25319a5cb6f}{elm\+\_\+store\+\_\+sorted\+\_\+set()}.


\begin{DoxyParams}{Parameters}
{\em st} & The store to query \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+UE} if sorted, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} if not. 
\end{DoxyReturn}
\index{Elementary Store@{Elementary Store}!elm\+\_\+store\+\_\+sorted\+\_\+set@{elm\+\_\+store\+\_\+sorted\+\_\+set}}
\index{elm\+\_\+store\+\_\+sorted\+\_\+set@{elm\+\_\+store\+\_\+sorted\+\_\+set}!Elementary Store@{Elementary Store}}
\subsubsection[{\texorpdfstring{elm\+\_\+store\+\_\+sorted\+\_\+set(\+Elm\+\_\+\+Store $\ast$st, Eina\+\_\+\+Bool sorted)}{elm_store_sorted_set(Elm_Store *st, Eina_Bool sorted)}}]{\setlength{\rightskip}{0pt plus 5cm}void elm\+\_\+store\+\_\+sorted\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Elm\+\_\+\+Store} $\ast$}]{st, }
\item[{Eina\+\_\+\+Bool}]{sorted}
\end{DoxyParamCaption}
)}\label{group__Store_ga1e849ad1c90dffa95cf3b25319a5cb6f}


Set if items are to be sorted or not. 

By default items are not sorted, but read \char`\"{}in order\char`\"{} as they are found. If you want to sort, your list function set by \hyperlink{group__Store_ga02aa0f716d3b1ec8896c4692e329dbf0}{elm\+\_\+store\+\_\+list\+\_\+func\+\_\+set()} must provide a sort ID to sort by, and then Store will take care of sorting when it inserts items. You should set this up before you begin listing items in the store and then never change it again.


\begin{DoxyParams}{Parameters}
{\em st} & The store to modify \\
\hline
{\em sorted} & {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+UE} if we are to sort, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} if not. \\
\hline
\end{DoxyParams}
\index{Elementary Store@{Elementary Store}!elm\+\_\+store\+\_\+target\+\_\+genlist\+\_\+set@{elm\+\_\+store\+\_\+target\+\_\+genlist\+\_\+set}}
\index{elm\+\_\+store\+\_\+target\+\_\+genlist\+\_\+set@{elm\+\_\+store\+\_\+target\+\_\+genlist\+\_\+set}!Elementary Store@{Elementary Store}}
\subsubsection[{\texorpdfstring{elm\+\_\+store\+\_\+target\+\_\+genlist\+\_\+set(\+Elm\+\_\+\+Store $\ast$st, Evas\+\_\+\+Object $\ast$obj)}{elm_store_target_genlist_set(Elm_Store *st, Evas_Object *obj)}}]{\setlength{\rightskip}{0pt plus 5cm}void elm\+\_\+store\+\_\+target\+\_\+genlist\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Elm\+\_\+\+Store} $\ast$}]{st, }
\item[{Evas\+\_\+\+Object $\ast$}]{obj}
\end{DoxyParamCaption}
)}\label{group__Store_ga4b96cab5b94ea28868e399c3f4d655c3}


Set the target genlist to fill in from the store. 

This tells the store the target genlist to use to fill in content from the store. Once a store starts \char`\"{}going\char`\"{} via \hyperlink{group__Store_ga2b5c5d9d1c770e7d8b40adafd8c58bdb}{elm\+\_\+store\+\_\+filesystem\+\_\+directory\+\_\+set()} The target should never be changed again.


\begin{DoxyParams}{Parameters}
{\em st} & The store to do the filling. \\
\hline
{\em obj} & The genlist object to fill in and control the content of from the store. \\
\hline
\end{DoxyParams}


References elm\+\_\+genlist\+\_\+clear().

\index{Elementary Store@{Elementary Store}!elm\+\_\+store\+\_\+unfetch\+\_\+func\+\_\+set@{elm\+\_\+store\+\_\+unfetch\+\_\+func\+\_\+set}}
\index{elm\+\_\+store\+\_\+unfetch\+\_\+func\+\_\+set@{elm\+\_\+store\+\_\+unfetch\+\_\+func\+\_\+set}!Elementary Store@{Elementary Store}}
\subsubsection[{\texorpdfstring{elm\+\_\+store\+\_\+unfetch\+\_\+func\+\_\+set(\+Elm\+\_\+\+Store $\ast$st, Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Unfetch\+\_\+\+Cb func, const void $\ast$data)}{elm_store_unfetch_func_set(Elm_Store *st, Elm_Store_Item_Unfetch_Cb func, const void *data)}}]{\setlength{\rightskip}{0pt plus 5cm}void elm\+\_\+store\+\_\+unfetch\+\_\+func\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Elm\+\_\+\+Store} $\ast$}]{st, }
\item[{{\bf Elm\+\_\+\+Store\+\_\+\+Item\+\_\+\+Unfetch\+\_\+\+Cb}}]{func, }
\item[{const void $\ast$}]{data}
\end{DoxyParamCaption}
)}\label{group__Store_ga9f47427f76d0b35973e19d2897b8d536}


Set the function used to free the structure allocated for the item. 

This function is called per item when it is not needed in memory anymore and should free the structure allocated in and filled in the function set by \hyperlink{group__Store_ga8e6a1d27b1c031246c1480714c2da7fe}{elm\+\_\+store\+\_\+fetch\+\_\+func\+\_\+set()}.


\begin{DoxyParams}{Parameters}
{\em st} & The store to set the function of \\
\hline
{\em func} & The function to be called \\
\hline
{\em data} & the data pointer to be passed to the {\ttfamily func} function when called \\
\hline
\end{DoxyParams}
