\hypertarget{group__Ecore__Time__Group}{\section{Ecore time functions}
\label{group__Ecore__Time__Group}\index{Ecore time functions@{Ecore time functions}}
}


These are function to retrieve time in a given format.  


\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
double \hyperlink{group__Ecore__Time__Group_ga98f2439b5d3e7114a75bfe2f0c22c4e9}{ecore\+\_\+time\+\_\+get} (void)
\begin{DoxyCompactList}\small\item\em Retrieves the current system time as a floating point value in seconds. \end{DoxyCompactList}\item 
double \hyperlink{group__Ecore__Time__Group_ga0b8030aa39eb3701b6b30816ee9c45df}{ecore\+\_\+time\+\_\+unix\+\_\+get} (void)
\begin{DoxyCompactList}\small\item\em Retrieves the current U\+N\+I\+X time as a floating point value in seconds. \end{DoxyCompactList}\item 
double \hyperlink{group__Ecore__Time__Group_gab53d952cc4c2f3ed032d535b307c43bd}{ecore\+\_\+loop\+\_\+time\+\_\+get} (void)
\begin{DoxyCompactList}\small\item\em Retrieves the time at which the last loop stopped waiting for timeouts or events. \end{DoxyCompactList}\item 
void \hyperlink{group__Ecore__Time__Group_ga14776fc42beff432dde152d42f758892}{ecore\+\_\+loop\+\_\+time\+\_\+set} (double t)
\begin{DoxyCompactList}\small\item\em Set the loop time. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
These are function to retrieve time in a given format. 

Examples\+: \begin{DoxyItemize}
\item \hyperlink{ecore_time_functions_example_c}{ecore\+\_\+time -\/ Differences between time functions} \end{DoxyItemize}


\subsection{Function Documentation}
\hypertarget{group__Ecore__Time__Group_ga98f2439b5d3e7114a75bfe2f0c22c4e9}{\index{Ecore time functions@{Ecore time functions}!ecore\+\_\+time\+\_\+get@{ecore\+\_\+time\+\_\+get}}
\index{ecore\+\_\+time\+\_\+get@{ecore\+\_\+time\+\_\+get}!Ecore time functions@{Ecore time functions}}
\subsubsection[{ecore\+\_\+time\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}double ecore\+\_\+time\+\_\+get (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}}\label{group__Ecore__Time__Group_ga98f2439b5d3e7114a75bfe2f0c22c4e9}


Retrieves the current system time as a floating point value in seconds. 

This uses a monotonic clock and thus never goes back in time while machine is live (even if user changes time or timezone changes, however it may be reset whenever the machine is restarted).

\begin{DoxySeeAlso}{See also}
\hyperlink{group__Ecore__Time__Group_gab53d952cc4c2f3ed032d535b307c43bd}{ecore\+\_\+loop\+\_\+time\+\_\+get()}. 

\hyperlink{group__Ecore__Time__Group_ga0b8030aa39eb3701b6b30816ee9c45df}{ecore\+\_\+time\+\_\+unix\+\_\+get()}.
\end{DoxySeeAlso}
\begin{DoxyReturn}{Returns}
The number of seconds. Start time is not defined (it may be when the machine was booted, unix time, etc), all it is defined is that it never goes backwards (unless you got big critical messages when the application started). 
\end{DoxyReturn}
\begin{Desc}
\item[Examples\+: ]\par
\hyperlink{ecore_poller_example_8c-example}{ecore\+\_\+poller\+\_\+example.\+c}, \hyperlink{ecore_time_functions_example_8c-example}{ecore\+\_\+time\+\_\+functions\+\_\+example.\+c}, \hyperlink{ecore_timer_example_8c-example}{ecore\+\_\+timer\+\_\+example.\+c}, and \hyperlink{test_velocity_8c-example}{test\+\_\+velocity.\+c}.\end{Desc}


References ecore\+\_\+time\+\_\+unix\+\_\+get(), E\+I\+N\+A\+\_\+\+U\+N\+L\+I\+K\+E\+L\+Y, and evil\+\_\+time\+\_\+get().



Referenced by ecore\+\_\+evas\+\_\+buffer\+\_\+allocfunc\+\_\+new(), ecore\+\_\+main\+\_\+loop\+\_\+begin(), ecore\+\_\+main\+\_\+loop\+\_\+iterate(), ecore\+\_\+main\+\_\+loop\+\_\+iterate\+\_\+may\+\_\+block(), ecore\+\_\+thread\+\_\+global\+\_\+data\+\_\+wait(), and emotion\+\_\+shutdown().

\hypertarget{group__Ecore__Time__Group_ga0b8030aa39eb3701b6b30816ee9c45df}{\index{Ecore time functions@{Ecore time functions}!ecore\+\_\+time\+\_\+unix\+\_\+get@{ecore\+\_\+time\+\_\+unix\+\_\+get}}
\index{ecore\+\_\+time\+\_\+unix\+\_\+get@{ecore\+\_\+time\+\_\+unix\+\_\+get}!Ecore time functions@{Ecore time functions}}
\subsubsection[{ecore\+\_\+time\+\_\+unix\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}double ecore\+\_\+time\+\_\+unix\+\_\+get (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}}\label{group__Ecore__Time__Group_ga0b8030aa39eb3701b6b30816ee9c45df}


Retrieves the current U\+N\+I\+X time as a floating point value in seconds. 

\begin{DoxySeeAlso}{See also}
\hyperlink{group__Ecore__Time__Group_ga98f2439b5d3e7114a75bfe2f0c22c4e9}{ecore\+\_\+time\+\_\+get()}. 

\hyperlink{group__Ecore__Time__Group_gab53d952cc4c2f3ed032d535b307c43bd}{ecore\+\_\+loop\+\_\+time\+\_\+get()}.
\end{DoxySeeAlso}
\begin{DoxyReturn}{Returns}
The number of seconds since 12.\+00\+A\+M 1st January 1970. 
\end{DoxyReturn}
\begin{Desc}
\item[Examples\+: ]\par
\hyperlink{ecore_time_functions_example_8c-example}{ecore\+\_\+time\+\_\+functions\+\_\+example.\+c}.\end{Desc}


Referenced by ecore\+\_\+time\+\_\+get().

\hypertarget{group__Ecore__Time__Group_gab53d952cc4c2f3ed032d535b307c43bd}{\index{Ecore time functions@{Ecore time functions}!ecore\+\_\+loop\+\_\+time\+\_\+get@{ecore\+\_\+loop\+\_\+time\+\_\+get}}
\index{ecore\+\_\+loop\+\_\+time\+\_\+get@{ecore\+\_\+loop\+\_\+time\+\_\+get}!Ecore time functions@{Ecore time functions}}
\subsubsection[{ecore\+\_\+loop\+\_\+time\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}double ecore\+\_\+loop\+\_\+time\+\_\+get (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}}\label{group__Ecore__Time__Group_gab53d952cc4c2f3ed032d535b307c43bd}


Retrieves the time at which the last loop stopped waiting for timeouts or events. 

This gets the time that the main loop ceased waiting for timouts and/or events to come in or for signals or any other interrupt source. This should be considered a reference point for all time based activity that should calculate its timepoint from the return of \hyperlink{group__Ecore__Time__Group_gab53d952cc4c2f3ed032d535b307c43bd}{ecore\+\_\+loop\+\_\+time\+\_\+get()}. Use this U\+N\+L\+E\+S\+S you absolutely must get the current actual timepoint -\/ then use \hyperlink{group__Ecore__Time__Group_ga98f2439b5d3e7114a75bfe2f0c22c4e9}{ecore\+\_\+time\+\_\+get()}. Note that this time is meant to be used as relative to other times obtained on this run. If you need absolute time references, use \hyperlink{group__Ecore__Time__Group_ga0b8030aa39eb3701b6b30816ee9c45df}{ecore\+\_\+time\+\_\+unix\+\_\+get()} instead.

This function can be called before any loop has ever been run, but either \hyperlink{group__Ecore__Init__Group_ga77757609684a2c922dc5ec398274751b}{ecore\+\_\+init()} or \hyperlink{group__Ecore__Time__Group_ga98f2439b5d3e7114a75bfe2f0c22c4e9}{ecore\+\_\+time\+\_\+get()} must have been called once.

\begin{DoxyReturn}{Returns}
The number of seconds. Start time is not defined (it may be when the machine was booted, unix time, etc), all it is defined is that it never goes backwards (unless you got big critical messages when the application started). 
\end{DoxyReturn}
\begin{Desc}
\item[Examples\+: ]\par
\hyperlink{ecore_time_functions_example_8c-example}{ecore\+\_\+time\+\_\+functions\+\_\+example.\+c}.\end{Desc}


Referenced by efreet\+\_\+mime\+\_\+type\+\_\+cache\+\_\+flush().

\hypertarget{group__Ecore__Time__Group_ga14776fc42beff432dde152d42f758892}{\index{Ecore time functions@{Ecore time functions}!ecore\+\_\+loop\+\_\+time\+\_\+set@{ecore\+\_\+loop\+\_\+time\+\_\+set}}
\index{ecore\+\_\+loop\+\_\+time\+\_\+set@{ecore\+\_\+loop\+\_\+time\+\_\+set}!Ecore time functions@{Ecore time functions}}
\subsubsection[{ecore\+\_\+loop\+\_\+time\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}void ecore\+\_\+loop\+\_\+time\+\_\+set (
\begin{DoxyParamCaption}
\item[{double}]{t}
\end{DoxyParamCaption}
)}}\label{group__Ecore__Time__Group_ga14776fc42beff432dde152d42f758892}


Set the loop time. 


\begin{DoxyParams}{Parameters}
{\em t} & The new loop time\\
\hline
\end{DoxyParams}
You should never need/call this, unless you are implementing a custom tick source for an ecore animator. Only then inside your function that calls \hyperlink{group__Ecore__Animator__Group_gac49405d70dc83d6313fe6a8d15e2a50c}{ecore\+\_\+animator\+\_\+custom\+\_\+tick()}, just before it, if you are able to get accurate timing information as to when the source of your tick woke up, use this to adjust the ecore loop time to be perfectly accurate. It is not a requirement, but makes things smoother. You should not use it otherwise as it could harm timeline handling throughout the application. Also note that the time point must match whatever zero time you get from \hyperlink{group__Ecore__Time__Group_ga98f2439b5d3e7114a75bfe2f0c22c4e9}{ecore\+\_\+time\+\_\+get()} and \hyperlink{group__Ecore__Time__Group_gab53d952cc4c2f3ed032d535b307c43bd}{ecore\+\_\+loop\+\_\+time\+\_\+get()} (same 0 point). What this point is is undefined, sou unless your source uses the same 0 time, then you may have to adjust and do some guessing.

\begin{DoxySeeAlso}{See also}
\hyperlink{group__Ecore__Animator__Group_gac49405d70dc83d6313fe6a8d15e2a50c}{ecore\+\_\+animator\+\_\+custom\+\_\+tick()} 

\hyperlink{group__Ecore__Time__Group_gab53d952cc4c2f3ed032d535b307c43bd}{ecore\+\_\+loop\+\_\+time\+\_\+get()} 
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+11 
\end{DoxySince}
