\hypertarget{structPROJ__FILE__API}{}\doxysection{PROJ\+\_\+\+FILE\+\_\+\+API Struct Reference}
\label{structPROJ__FILE__API}\index{PROJ\_FILE\_API@{PROJ\_FILE\_API}}


{\ttfamily \#include $<$proj.\+h$>$}

\doxysubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
int \mbox{\hyperlink{structPROJ__FILE__API_a4f891168c59c1f6ba6a19d6c2c878b02}{version}}
\item 
\mbox{\hyperlink{proj_8h_a576ca78c0ce0c613cc360f9c0843f788}{PROJ\+\_\+\+FILE\+\_\+\+HANDLE}} $\ast$($\ast$ \mbox{\hyperlink{structPROJ__FILE__API_ac69881b562f9af380e34dcd637b50c86}{open\+\_\+cbk}} )(PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$filename, \mbox{\hyperlink{proj_8h_ad466f4e5535c25a803fa10f5ec47f997}{PROJ\+\_\+\+OPEN\+\_\+\+ACCESS}} access, void $\ast$user\+\_\+data)
\item 
size\+\_\+t($\ast$ \mbox{\hyperlink{structPROJ__FILE__API_a91768ec13104c0db9597529960355205}{read\+\_\+cbk}} )(PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{proj_8h_a576ca78c0ce0c613cc360f9c0843f788}{PROJ\+\_\+\+FILE\+\_\+\+HANDLE}} $\ast$, void $\ast$buffer, size\+\_\+t size\+Bytes, void $\ast$user\+\_\+data)
\item 
size\+\_\+t($\ast$ \mbox{\hyperlink{structPROJ__FILE__API_a40873c451d9013b4384b3eb46a7088a5}{write\+\_\+cbk}} )(PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{proj_8h_a576ca78c0ce0c613cc360f9c0843f788}{PROJ\+\_\+\+FILE\+\_\+\+HANDLE}} $\ast$, const void $\ast$buffer, size\+\_\+t size\+Bytes, void $\ast$user\+\_\+data)
\item 
int($\ast$ \mbox{\hyperlink{structPROJ__FILE__API_a88cf4a20f3b76d79ff08b4cc338aee41}{seek\+\_\+cbk}} )(PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{proj_8h_a576ca78c0ce0c613cc360f9c0843f788}{PROJ\+\_\+\+FILE\+\_\+\+HANDLE}} $\ast$, long long offset, int whence, void $\ast$user\+\_\+data)
\item 
unsigned long long($\ast$ \mbox{\hyperlink{structPROJ__FILE__API_a1dc41a01e0aed13b5ba3ce17da6df46c}{tell\+\_\+cbk}} )(PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{proj_8h_a576ca78c0ce0c613cc360f9c0843f788}{PROJ\+\_\+\+FILE\+\_\+\+HANDLE}} $\ast$, void $\ast$user\+\_\+data)
\item 
void($\ast$ \mbox{\hyperlink{structPROJ__FILE__API_a7e4b5d429bdcc6c51dd593f8ac9b4f6f}{close\+\_\+cbk}} )(PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{proj_8h_a576ca78c0ce0c613cc360f9c0843f788}{PROJ\+\_\+\+FILE\+\_\+\+HANDLE}} $\ast$, void $\ast$user\+\_\+data)
\item 
int($\ast$ \mbox{\hyperlink{structPROJ__FILE__API_a181d1d807269d5b4d2bc487394be8bc3}{exists\+\_\+cbk}} )(PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$filename, void $\ast$user\+\_\+data)
\item 
int($\ast$ \mbox{\hyperlink{structPROJ__FILE__API_aaa6b829762cc60b964af38afb66ebbf5}{mkdir\+\_\+cbk}} )(PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$filename, void $\ast$user\+\_\+data)
\item 
int($\ast$ \mbox{\hyperlink{structPROJ__FILE__API_aa0de2fa05e1698229ca7537c3acafd79}{unlink\+\_\+cbk}} )(PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$filename, void $\ast$user\+\_\+data)
\item 
int($\ast$ \mbox{\hyperlink{structPROJ__FILE__API_a58b16e53be3f5d1d0eec61b57e5c0bc5}{rename\+\_\+cbk}} )(PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$old\+Path, const char $\ast$new\+Path, void $\ast$user\+\_\+data)
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
File API callbacks 

\doxysubsection{Member Data Documentation}
\mbox{\Hypertarget{structPROJ__FILE__API_a7e4b5d429bdcc6c51dd593f8ac9b4f6f}\label{structPROJ__FILE__API_a7e4b5d429bdcc6c51dd593f8ac9b4f6f}} 
\index{PROJ\_FILE\_API@{PROJ\_FILE\_API}!close\_cbk@{close\_cbk}}
\index{close\_cbk@{close\_cbk}!PROJ\_FILE\_API@{PROJ\_FILE\_API}}
\doxysubsubsection{\texorpdfstring{close\_cbk}{close\_cbk}}
{\footnotesize\ttfamily void($\ast$ PROJ\+\_\+\+FILE\+\_\+\+API\+::close\+\_\+cbk) (PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{proj_8h_a576ca78c0ce0c613cc360f9c0843f788}{PROJ\+\_\+\+FILE\+\_\+\+HANDLE}} $\ast$, void $\ast$user\+\_\+data)}

Close file \mbox{\Hypertarget{structPROJ__FILE__API_a181d1d807269d5b4d2bc487394be8bc3}\label{structPROJ__FILE__API_a181d1d807269d5b4d2bc487394be8bc3}} 
\index{PROJ\_FILE\_API@{PROJ\_FILE\_API}!exists\_cbk@{exists\_cbk}}
\index{exists\_cbk@{exists\_cbk}!PROJ\_FILE\_API@{PROJ\_FILE\_API}}
\doxysubsubsection{\texorpdfstring{exists\_cbk}{exists\_cbk}}
{\footnotesize\ttfamily int($\ast$ PROJ\+\_\+\+FILE\+\_\+\+API\+::exists\+\_\+cbk) (PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$filename, void $\ast$user\+\_\+data)}

Return TRUE if a file exists \mbox{\Hypertarget{structPROJ__FILE__API_aaa6b829762cc60b964af38afb66ebbf5}\label{structPROJ__FILE__API_aaa6b829762cc60b964af38afb66ebbf5}} 
\index{PROJ\_FILE\_API@{PROJ\_FILE\_API}!mkdir\_cbk@{mkdir\_cbk}}
\index{mkdir\_cbk@{mkdir\_cbk}!PROJ\_FILE\_API@{PROJ\_FILE\_API}}
\doxysubsubsection{\texorpdfstring{mkdir\_cbk}{mkdir\_cbk}}
{\footnotesize\ttfamily int($\ast$ PROJ\+\_\+\+FILE\+\_\+\+API\+::mkdir\+\_\+cbk) (PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$filename, void $\ast$user\+\_\+data)}

Return TRUE if directory exists or could be created ~\newline
 \mbox{\Hypertarget{structPROJ__FILE__API_ac69881b562f9af380e34dcd637b50c86}\label{structPROJ__FILE__API_ac69881b562f9af380e34dcd637b50c86}} 
\index{PROJ\_FILE\_API@{PROJ\_FILE\_API}!open\_cbk@{open\_cbk}}
\index{open\_cbk@{open\_cbk}!PROJ\_FILE\_API@{PROJ\_FILE\_API}}
\doxysubsubsection{\texorpdfstring{open\_cbk}{open\_cbk}}
{\footnotesize\ttfamily \mbox{\hyperlink{proj_8h_a576ca78c0ce0c613cc360f9c0843f788}{PROJ\+\_\+\+FILE\+\_\+\+HANDLE}} $\ast$($\ast$ PROJ\+\_\+\+FILE\+\_\+\+API\+::open\+\_\+cbk) (PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$filename, \mbox{\hyperlink{proj_8h_ad466f4e5535c25a803fa10f5ec47f997}{PROJ\+\_\+\+OPEN\+\_\+\+ACCESS}} access, void $\ast$user\+\_\+data)}

Open file. Return NULL if error \mbox{\Hypertarget{structPROJ__FILE__API_a91768ec13104c0db9597529960355205}\label{structPROJ__FILE__API_a91768ec13104c0db9597529960355205}} 
\index{PROJ\_FILE\_API@{PROJ\_FILE\_API}!read\_cbk@{read\_cbk}}
\index{read\_cbk@{read\_cbk}!PROJ\_FILE\_API@{PROJ\_FILE\_API}}
\doxysubsubsection{\texorpdfstring{read\_cbk}{read\_cbk}}
{\footnotesize\ttfamily size\+\_\+t($\ast$ PROJ\+\_\+\+FILE\+\_\+\+API\+::read\+\_\+cbk) (PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{proj_8h_a576ca78c0ce0c613cc360f9c0843f788}{PROJ\+\_\+\+FILE\+\_\+\+HANDLE}} $\ast$, void $\ast$buffer, size\+\_\+t size\+Bytes, void $\ast$user\+\_\+data)}

Read size\+Bytes into buffer from current position and return number of bytes read \mbox{\Hypertarget{structPROJ__FILE__API_a58b16e53be3f5d1d0eec61b57e5c0bc5}\label{structPROJ__FILE__API_a58b16e53be3f5d1d0eec61b57e5c0bc5}} 
\index{PROJ\_FILE\_API@{PROJ\_FILE\_API}!rename\_cbk@{rename\_cbk}}
\index{rename\_cbk@{rename\_cbk}!PROJ\_FILE\_API@{PROJ\_FILE\_API}}
\doxysubsubsection{\texorpdfstring{rename\_cbk}{rename\_cbk}}
{\footnotesize\ttfamily int($\ast$ PROJ\+\_\+\+FILE\+\_\+\+API\+::rename\+\_\+cbk) (PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$old\+Path, const char $\ast$new\+Path, void $\ast$user\+\_\+data)}

Return TRUE if file could be renamed ~\newline
 \mbox{\Hypertarget{structPROJ__FILE__API_a88cf4a20f3b76d79ff08b4cc338aee41}\label{structPROJ__FILE__API_a88cf4a20f3b76d79ff08b4cc338aee41}} 
\index{PROJ\_FILE\_API@{PROJ\_FILE\_API}!seek\_cbk@{seek\_cbk}}
\index{seek\_cbk@{seek\_cbk}!PROJ\_FILE\_API@{PROJ\_FILE\_API}}
\doxysubsubsection{\texorpdfstring{seek\_cbk}{seek\_cbk}}
{\footnotesize\ttfamily int($\ast$ PROJ\+\_\+\+FILE\+\_\+\+API\+::seek\+\_\+cbk) (PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{proj_8h_a576ca78c0ce0c613cc360f9c0843f788}{PROJ\+\_\+\+FILE\+\_\+\+HANDLE}} $\ast$, long long offset, int whence, void $\ast$user\+\_\+data)}

Seek to offset using whence=SEEK\+\_\+\+SET/\+SEEK\+\_\+\+CUR/\+SEEK\+\_\+\+END. Return TRUE in case of success \mbox{\Hypertarget{structPROJ__FILE__API_a1dc41a01e0aed13b5ba3ce17da6df46c}\label{structPROJ__FILE__API_a1dc41a01e0aed13b5ba3ce17da6df46c}} 
\index{PROJ\_FILE\_API@{PROJ\_FILE\_API}!tell\_cbk@{tell\_cbk}}
\index{tell\_cbk@{tell\_cbk}!PROJ\_FILE\_API@{PROJ\_FILE\_API}}
\doxysubsubsection{\texorpdfstring{tell\_cbk}{tell\_cbk}}
{\footnotesize\ttfamily unsigned long long($\ast$ PROJ\+\_\+\+FILE\+\_\+\+API\+::tell\+\_\+cbk) (PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{proj_8h_a576ca78c0ce0c613cc360f9c0843f788}{PROJ\+\_\+\+FILE\+\_\+\+HANDLE}} $\ast$, void $\ast$user\+\_\+data)}

Return current file position \mbox{\Hypertarget{structPROJ__FILE__API_aa0de2fa05e1698229ca7537c3acafd79}\label{structPROJ__FILE__API_aa0de2fa05e1698229ca7537c3acafd79}} 
\index{PROJ\_FILE\_API@{PROJ\_FILE\_API}!unlink\_cbk@{unlink\_cbk}}
\index{unlink\_cbk@{unlink\_cbk}!PROJ\_FILE\_API@{PROJ\_FILE\_API}}
\doxysubsubsection{\texorpdfstring{unlink\_cbk}{unlink\_cbk}}
{\footnotesize\ttfamily int($\ast$ PROJ\+\_\+\+FILE\+\_\+\+API\+::unlink\+\_\+cbk) (PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$filename, void $\ast$user\+\_\+data)}

Return TRUE if file could be removed ~\newline
 \mbox{\Hypertarget{structPROJ__FILE__API_a4f891168c59c1f6ba6a19d6c2c878b02}\label{structPROJ__FILE__API_a4f891168c59c1f6ba6a19d6c2c878b02}} 
\index{PROJ\_FILE\_API@{PROJ\_FILE\_API}!version@{version}}
\index{version@{version}!PROJ\_FILE\_API@{PROJ\_FILE\_API}}
\doxysubsubsection{\texorpdfstring{version}{version}}
{\footnotesize\ttfamily int PROJ\+\_\+\+FILE\+\_\+\+API\+::version}

Version of this structure. Should be set to 1 currently. \mbox{\Hypertarget{structPROJ__FILE__API_a40873c451d9013b4384b3eb46a7088a5}\label{structPROJ__FILE__API_a40873c451d9013b4384b3eb46a7088a5}} 
\index{PROJ\_FILE\_API@{PROJ\_FILE\_API}!write\_cbk@{write\_cbk}}
\index{write\_cbk@{write\_cbk}!PROJ\_FILE\_API@{PROJ\_FILE\_API}}
\doxysubsubsection{\texorpdfstring{write\_cbk}{write\_cbk}}
{\footnotesize\ttfamily size\+\_\+t($\ast$ PROJ\+\_\+\+FILE\+\_\+\+API\+::write\+\_\+cbk) (PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{proj_8h_a576ca78c0ce0c613cc360f9c0843f788}{PROJ\+\_\+\+FILE\+\_\+\+HANDLE}} $\ast$, const void $\ast$buffer, size\+\_\+t size\+Bytes, void $\ast$user\+\_\+data)}

Write size\+Bytes into buffer from current position and return number of bytes written 

The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
src/\mbox{\hyperlink{proj_8h}{proj.\+h}}\end{DoxyCompactItemize}
