\chapter{Ecore}
\hypertarget{ecore_main}{}\label{ecore_main}\index{Ecore@{Ecore}}
Ecore Library Public API Calls.

These routines are used for Ecore Library interaction.   

\begin{DoxyDate}{Date}
2000 (created) 
\end{DoxyDate}
\hypertarget{ecore_main_ecore_toc}{}\doxysection{\texorpdfstring{Table of Contents}{Table of Contents}}\label{ecore_main_ecore_toc}
\begin{DoxyItemize}
\item \doxysectlink{ecore_main_ecore_main_intro}{Introduction}{1} \item \doxysectlink{ecore_main_ecore_main_compiling}{How to compile}{1} \item \doxysectlink{ecore_main_ecore_main_next_steps}{Next Steps}{1} \item \doxysectlink{ecore_main_ecore_main_intro_example}{Introductory Examples}{1} \end{DoxyItemize}
\hypertarget{ecore_main_ecore_main_intro}{}\doxysection{\texorpdfstring{Introduction}{Introduction}}\label{ecore_main_ecore_main_intro}
Ecore is a library of convenience functions. A brief explanation of how to use it can be found in \doxysectlink{Ecore_Main_Loop_Page}{The Ecore Main Loop}{0}. The Ecore library provides the following modules\+: \begin{DoxyItemize}
\item \doxylink{group__Ecore__Init__Group}{Ecore initialization, shutdown functions and reset on fork.} \item \doxylink{group__Ecore__Getopt__Group}{Ecore Getopt} \item \doxylink{group__Ecore__Main__Loop__Group}{Ecore main loop} \item \doxylink{group__Ecore__System__Events}{System Events} \item \doxylink{group__Ecore__Time__Group}{Ecore time functions} \item \doxylink{group__Ecore__Thread__Group}{Ecore Thread functions} \item \doxylink{group__Ecore__Pipe__Group}{Pipe wrapper} \item \doxylink{group__Ecore__Application__Group}{Ecore Application functions} \item \doxylink{group__Ecore__Throttle__Group}{Ecore Throttle functions} \item \doxylink{group__Ecore__Job__Group}{Ecore Job functions} \item \doxylink{group__Ecore__File__Group}{Ecore\+\_\+\+File -\/ Files and directories convenience functions} \item \doxylink{group__Ecore__Con__Group}{Ecore\+\_\+\+Con -\/ Connection functions} \item \doxylink{group__Ecore__Evas__Group}{Ecore\+\_\+\+Evas wrapper/helper set of functions} \item \doxylink{group__Ecore__FB__Group}{Ecore\+\_\+\+FB -\/ Frame buffer convenience functions.} \item \doxylink{group__Ecore__Input__Group}{Ecore Input} \item \doxylink{group__Ecore__IMF__Lib__Group}{Ecore\+\_\+\+IMF -\/ Ecore Input Method Library Functions} \item \doxylink{group__Ecore__IPC__Group}{Ecore\+\_\+\+IPC -\/ Ecore inter-\/process communication functions.} \item \doxylink{Ecore__X_8h}{Ecore\+\_\+X -\/ X Windows System wrapper. } \item \doxylink{group__Ecore__Win32__Group}{Ecore\+\_\+\+Win32 library} \item \doxylink{group__Ecore__Audio__Group}{Ecore\+\_\+\+Audio -\/ Convenience audio API} \item \doxylink{group__Ecore__Avahi__Group}{Ecore\+\_\+\+Avahi -\/ Avahi main loop integration function.} \item \doxylink{group__Ecore__Drm__Group}{Ecore\+\_\+\+Drm -\/ Drm Integration} \item \doxylink{group__Ecore__Wl__Group}{Ecore\+\_\+\+Wayland -\/ Wayland integration} For more info on Ecore usage, there are these \doxysectlink{ecore_examples}{Ecore Examples}{0}.\end{DoxyItemize}
\hypertarget{ecore_main_ecore_main_compiling}{}\doxysection{\texorpdfstring{How to compile}{How to compile}}\label{ecore_main_ecore_main_compiling}
Ecore is a library your application links to. The procedure for this is very simple. You simply have to compile your application with the appropriate compiler flags that the {\ttfamily pkg-\/config} script outputs. Note that each module is separate in pkg-\/config. For example using {\ttfamily Ecore\+\_\+\+Evas\+:} 

Compiling C or C++ files into object files\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{gcc\ -\/c\ -\/o\ main.o\ main.c\ \`{}pkg-\/config\ -\/-\/cflags\ ecore\ ecore-\/evas\`{}}

\end{DoxyCode}
 Linking object files into a binary executable\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{gcc\ -\/o\ my\_application\ main.o\ \`{}pkg-\/config\ -\/-\/libs\ ecore\ ecore-\/evas\`{}}

\end{DoxyCode}
 See \doxysectlink{pkgconfig}{pkgconfig}{0}\hypertarget{ecore_main_ecore_main_next_steps}{}\doxysection{\texorpdfstring{Next Steps}{Next Steps}}\label{ecore_main_ecore_main_next_steps}
After you understood what Ecore is and installed it in your system you should proceed to understand the programming interface. We\textquotesingle{}d recommend you to take a while to learn \doxylink{group__Eina}{Eina} as it is very convenient and optimized, and Ecore uses it extensively. Recommended reading\+: \begin{DoxyItemize}
\item \doxylink{group__Ecore__Timer__Group}{Ecore Timer functions} \item \doxylink{group__Ecore__Idle__Group}{Ecore Idle functions} \item \doxylink{group__Ecore__FD__Handler__Group}{File Descriptor Handling Functions} \item \doxylink{group__Ecore__Event__Group}{Ecore Event functions} \item \doxylink{group__Ecore__Exe__Group}{Process Spawning Functions} \item \doxylink{group__Ecore__Animator__Group}{Ecore Animator functions} \item \doxylink{group__Ecore__Poller__Group}{Ecore Poll functions}\end{DoxyItemize}
\hypertarget{ecore_main_ecore_main_intro_example}{}\doxysection{\texorpdfstring{Introductory Examples}{Introductory Examples}}\label{ecore_main_ecore_main_intro_example}

\begin{DoxyCodeInclude}{0}
\DoxyCodeLine{\textcolor{comment}{//Compile\ with:}}
\DoxyCodeLine{\textcolor{comment}{//\ gcc\ -\/o\ ecore\_timer\_example\ ecore\_timer\_example.c\ \`{}pkg-\/config\ -\/-\/libs\ -\/-\/cflags\ ecore`}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{preprocessor}{\#include\ <Ecore.h>}}
\DoxyCodeLine{\textcolor{preprocessor}{\#include\ <unistd.h>}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ TIMEOUT\_1\ 1.0\ }\textcolor{comment}{//\ interval\ for\ timer1}}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ TIMEOUT\_2\ 3.0\ }\textcolor{comment}{//\ timer2\ -\/\ delay\ timer1}}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ TIMEOUT\_3\ 8.2\ }\textcolor{comment}{//\ timer3\ -\/\ pause\ timer1}}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ TIMEOUT\_4\ 11.0\ }\textcolor{comment}{//\ timer4\ -\/\ resume\ timer1}}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ TIMEOUT\_5\ 14.0\ }\textcolor{comment}{//\ timer5\ -\/\ change\ interval\ of\ timer1}}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ TIMEOUT\_6\ 18.0\ }\textcolor{comment}{//\ top\ timer1\ and\ start\ timer7\ and\ timer8\ with\ changed\ precision}}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ TIMEOUT\_7\ 1.1\ }\textcolor{comment}{//\ interval\ for\ timer7}}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ TIMEOUT\_8\ 1.2\ }\textcolor{comment}{//\ interval\ for\ timer8}}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ DELAY\_1\ \ \ 3.0\ }\textcolor{comment}{//\ delay\ time\ for\ timer1\ -\/\ used\ by\ timer2}}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ INTERVAL1\ 2.0\ }\textcolor{comment}{//\ new\ interval\ for\ timer1\ -\/\ used\ by\ timer5}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{static}\ \textcolor{keywordtype}{double}\ \_initial\_time\ =\ 0;}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{struct\ }context\ \ \ \textcolor{comment}{//\ helper\ struct\ to\ give\ some\ context\ to\ the\ callbacks}}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Ecore__Timer__Group_gaf96ffb609956658ec038e54bd39f46f0}{Ecore\_Timer}}\ *timer1;}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Ecore__Timer__Group_gaf96ffb609956658ec038e54bd39f46f0}{Ecore\_Timer}}\ *timer2;}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Ecore__Timer__Group_gaf96ffb609956658ec038e54bd39f46f0}{Ecore\_Timer}}\ *timer3;}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Ecore__Timer__Group_gaf96ffb609956658ec038e54bd39f46f0}{Ecore\_Timer}}\ *timer4;}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Ecore__Timer__Group_gaf96ffb609956658ec038e54bd39f46f0}{Ecore\_Timer}}\ *timer5;}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Ecore__Timer__Group_gaf96ffb609956658ec038e54bd39f46f0}{Ecore\_Timer}}\ *timer6;}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Ecore__Timer__Group_gaf96ffb609956658ec038e54bd39f46f0}{Ecore\_Timer}}\ *timer7;}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Ecore__Timer__Group_gaf96ffb609956658ec038e54bd39f46f0}{Ecore\_Timer}}\ *timer8;}
\DoxyCodeLine{\};}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{static}\ \textcolor{keywordtype}{double}}
\DoxyCodeLine{\_get\_current\_time(\textcolor{keywordtype}{void})}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__Ecore__Time__Group_ga98f2439b5d3e7114a75bfe2f0c22c4e9}{ecore\_time\_get}}()\ -\/\ \_initial\_time;}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{static}\ \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\_Bool}}}
\DoxyCodeLine{\_timer1\_cb(\textcolor{keywordtype}{void}\ *data\ \mbox{\hyperlink{group__Eina__Types__Group_ga82d751be730f849719ca292f9558be87}{EINA\_UNUSED}})}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \ printf(\textcolor{stringliteral}{"{}Timer1\ expired\ after\ \%0.3f\ seconds.\(\backslash\)n"{}},\ \_get\_current\_time());}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__Ecore__Main__Loop__Group_ga1ee9db07f9a46a8b20fb83e1c6dbed09}{ECORE\_CALLBACK\_RENEW}};}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{static}\ \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\_Bool}}}
\DoxyCodeLine{\_timer2\_cb(\textcolor{keywordtype}{void}\ *data)}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \ \textcolor{keyword}{struct\ }context\ *ctxt\ =\ data;}
\DoxyCodeLine{\ \ \ printf(\textcolor{stringliteral}{"{}Timer2\ expired\ after\ \%0.3f\ seconds.\ "{}}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}Adding\ delay\ of\ \%0.3f\ seconds\ to\ timer1.\(\backslash\)n"{}},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \_get\_current\_time(),\ DELAY\_1);}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Ecore__Timer__Group_ga74a51cf0c7f07f1b48cac29cef5e8817}{ecore\_timer\_delay}}(ctxt-\/>timer1,\ DELAY\_1);}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ ctxt-\/>timer2\ =\ NULL;}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__Ecore__Main__Loop__Group_gae0c653baad8836232c0dc27f91f875d6}{ECORE\_CALLBACK\_CANCEL}};}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{static}\ \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\_Bool}}}
\DoxyCodeLine{\_timer3\_cb(\textcolor{keywordtype}{void}\ *data)}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \ \textcolor{keyword}{struct\ }context\ *ctxt\ =\ data;}
\DoxyCodeLine{\ \ \ printf(\textcolor{stringliteral}{"{}Timer3\ expired\ after\ \%0.3f\ seconds.\ "{}}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}Freezing\ timer1.\(\backslash\)n"{}},\ \_get\_current\_time());}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Ecore__Timer__Group_ga9fb759297c1c828cafe5c3ccc1a2614b}{ecore\_timer\_freeze}}(ctxt-\/>timer1);}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ ctxt-\/>timer3\ =\ NULL;}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__Ecore__Main__Loop__Group_gae0c653baad8836232c0dc27f91f875d6}{ECORE\_CALLBACK\_CANCEL}};}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{static}\ \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\_Bool}}}
\DoxyCodeLine{\_timer4\_cb(\textcolor{keywordtype}{void}\ *data)}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \ \textcolor{keyword}{struct\ }context\ *ctxt\ =\ data;}
\DoxyCodeLine{\ \ \ printf(\textcolor{stringliteral}{"{}Timer4\ expired\ after\ \%0.3f\ seconds.\ "{}}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}Resuming\ timer1,\ which\ has\ \%0.3f\ seconds\ left\ to\ expire.\(\backslash\)n"{}},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \_get\_current\_time(),\ \mbox{\hyperlink{group__Ecore__Timer__Group_gae07617b24116e69c9c973387c8c5f396}{ecore\_timer\_pending\_get}}(ctxt-\/>timer1));}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Ecore__Timer__Group_gaa026b898456329411d043f36170ad644}{ecore\_timer\_thaw}}(ctxt-\/>timer1);}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ ctxt-\/>timer4\ =\ NULL;}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__Ecore__Main__Loop__Group_gae0c653baad8836232c0dc27f91f875d6}{ECORE\_CALLBACK\_CANCEL}};}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{static}\ \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\_Bool}}}
\DoxyCodeLine{\_timer5\_cb(\textcolor{keywordtype}{void}\ *data)}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \ \textcolor{keyword}{struct\ }context\ *ctxt\ =\ data;}
\DoxyCodeLine{\ \ \ \textcolor{keywordtype}{double}\ interval\ =\ \mbox{\hyperlink{group__Ecore__Timer__Group_ga2be02360c275de1390b1f602dbc307cf}{ecore\_timer\_interval\_get}}(ctxt-\/>timer1);}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ printf(\textcolor{stringliteral}{"{}Timer5\ expired\ after\ \%0.3f\ seconds.\ "{}}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}Changing\ interval\ of\ timer1\ from\ \%0.3f\ to\ \%0.3f\ seconds.\(\backslash\)n"{}},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \_get\_current\_time(),\ interval,\ INTERVAL1);}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Ecore__Timer__Group_ga4d8f44e32858827d09866efba5e0ad35}{ecore\_timer\_interval\_set}}(ctxt-\/>timer1,\ INTERVAL1);}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ ctxt-\/>timer5\ =\ NULL;}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__Ecore__Main__Loop__Group_gae0c653baad8836232c0dc27f91f875d6}{ECORE\_CALLBACK\_CANCEL}};}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{static}\ \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\_Bool}}}
\DoxyCodeLine{\_timer7\_cb(\textcolor{keywordtype}{void}\ *data)}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \ \textcolor{keyword}{struct\ }context\ *ctxt\ =\ data;}
\DoxyCodeLine{\ \ \ printf(\textcolor{stringliteral}{"{}Timer7\ expired\ after\ \%0.3f\ seconds.\(\backslash\)n"{}},\ \_get\_current\_time());}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ ctxt-\/>timer7\ =\ NULL;}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__Ecore__Main__Loop__Group_gae0c653baad8836232c0dc27f91f875d6}{ECORE\_CALLBACK\_CANCEL}};}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{static}\ \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\_Bool}}}
\DoxyCodeLine{\_timer8\_cb(\textcolor{keywordtype}{void}\ *data)}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \ \textcolor{keyword}{struct\ }context\ *ctxt\ =\ data;}
\DoxyCodeLine{\ \ \ printf(\textcolor{stringliteral}{"{}Timer8\ expired\ after\ \%0.3f\ seconds.\(\backslash\)n"{}},\ \_get\_current\_time());}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ ctxt-\/>timer8\ =\ NULL;}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__Ecore__Main__Loop__Group_gae0c653baad8836232c0dc27f91f875d6}{ECORE\_CALLBACK\_CANCEL}};}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{static}\ \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\_Bool}}}
\DoxyCodeLine{\_timer6\_cb(\textcolor{keywordtype}{void}\ *data)}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \ \textcolor{keyword}{struct\ }context\ *ctxt\ =\ data;}
\DoxyCodeLine{\ \ \ printf(\textcolor{stringliteral}{"{}Timer6\ expired\ after\ \%0.3f\ seconds.\(\backslash\)n"{}},\ \_get\_current\_time());}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ printf(\textcolor{stringliteral}{"{}Stopping\ timer1.\(\backslash\)n"{}});}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Ecore__Timer__Group_ga7c118b6a6d232b63a6500e599d2a1b47}{ecore\_timer\_del}}(ctxt-\/>timer1);}
\DoxyCodeLine{\ \ \ ctxt-\/>timer1\ =\ NULL;}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ printf(\textcolor{stringliteral}{"{}Starting\ timer7\ (\%0.3fs)\ and\ timer8\ (\%0.3fs).\(\backslash\)n"{}},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ TIMEOUT\_7,\ TIMEOUT\_8);}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ ctxt-\/>timer7\ =\ \mbox{\hyperlink{group__Ecore__Timer__Group_ga926423e464d7ef71105dd822d90e1187}{ecore\_timer\_add}}(TIMEOUT\_7,\ \_timer7\_cb,\ ctxt);}
\DoxyCodeLine{\ \ \ ctxt-\/>timer8\ =\ \mbox{\hyperlink{group__Ecore__Timer__Group_ga926423e464d7ef71105dd822d90e1187}{ecore\_timer\_add}}(TIMEOUT\_8,\ \_timer8\_cb,\ ctxt);}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Ecore__Timer__Group_gaf7d0f56778f5614c63a69d4cfbee7b3d}{ecore\_timer\_precision\_set}}(0.2);}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ ctxt-\/>timer6\ =\ NULL;}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__Ecore__Main__Loop__Group_gae0c653baad8836232c0dc27f91f875d6}{ECORE\_CALLBACK\_CANCEL}};}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keywordtype}{int}}
\DoxyCodeLine{main(\textcolor{keywordtype}{void})}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \ \textcolor{keyword}{struct\ }context\ ctxt\ =\ \{0\};}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{if}\ (!\mbox{\hyperlink{group__Ecore__Init__Group_ga77757609684a2c922dc5ec398274751b}{ecore\_init}}())}
\DoxyCodeLine{\ \ \ \ \ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ printf(\textcolor{stringliteral}{"{}ERROR:\ Cannot\ init\ Ecore!\(\backslash\)n"{}});}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;}
\DoxyCodeLine{\ \ \ \ \ \}}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \_initial\_time\ =\ \mbox{\hyperlink{group__Ecore__Time__Group_ga98f2439b5d3e7114a75bfe2f0c22c4e9}{ecore\_time\_get}}();}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ ctxt.timer1\ =\ \mbox{\hyperlink{group__Ecore__Timer__Group_ga926423e464d7ef71105dd822d90e1187}{ecore\_timer\_add}}(TIMEOUT\_1,\ \_timer1\_cb,\ \&ctxt);}
\DoxyCodeLine{\ \ \ ctxt.timer2\ =\ \mbox{\hyperlink{group__Ecore__Timer__Group_ga926423e464d7ef71105dd822d90e1187}{ecore\_timer\_add}}(TIMEOUT\_2,\ \_timer2\_cb,\ \&ctxt);}
\DoxyCodeLine{\ \ \ ctxt.timer3\ =\ \mbox{\hyperlink{group__Ecore__Timer__Group_ga926423e464d7ef71105dd822d90e1187}{ecore\_timer\_add}}(TIMEOUT\_3,\ \_timer3\_cb,\ \&ctxt);}
\DoxyCodeLine{\ \ \ ctxt.timer4\ =\ \mbox{\hyperlink{group__Ecore__Timer__Group_ga926423e464d7ef71105dd822d90e1187}{ecore\_timer\_add}}(TIMEOUT\_4,\ \_timer4\_cb,\ \&ctxt);}
\DoxyCodeLine{\ \ \ ctxt.timer5\ =\ \mbox{\hyperlink{group__Ecore__Timer__Group_ga926423e464d7ef71105dd822d90e1187}{ecore\_timer\_add}}(TIMEOUT\_5,\ \_timer5\_cb,\ \&ctxt);}
\DoxyCodeLine{\ \ \ ctxt.timer6\ =\ \mbox{\hyperlink{group__Ecore__Timer__Group_ga926423e464d7ef71105dd822d90e1187}{ecore\_timer\_add}}(TIMEOUT\_6,\ \_timer6\_cb,\ \&ctxt);}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ printf(\textcolor{stringliteral}{"{}start\ the\ main\ loop.\(\backslash\)n"{}});}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Ecore__Main__Loop__Group_gaf103b9f668bb3e4fed12e52c6180132d}{ecore\_main\_loop\_begin}}();}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{if}\ (ctxt.timer1)}
\DoxyCodeLine{\ \ \ \ \ \mbox{\hyperlink{group__Ecore__Timer__Group_ga7c118b6a6d232b63a6500e599d2a1b47}{ecore\_timer\_del}}(ctxt.timer1);}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{if}\ (ctxt.timer2)}
\DoxyCodeLine{\ \ \ \ \ \mbox{\hyperlink{group__Ecore__Timer__Group_ga7c118b6a6d232b63a6500e599d2a1b47}{ecore\_timer\_del}}(ctxt.timer2);}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{if}\ (ctxt.timer3)}
\DoxyCodeLine{\ \ \ \ \ \mbox{\hyperlink{group__Ecore__Timer__Group_ga7c118b6a6d232b63a6500e599d2a1b47}{ecore\_timer\_del}}(ctxt.timer3);}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{if}\ (ctxt.timer4)}
\DoxyCodeLine{\ \ \ \ \ \mbox{\hyperlink{group__Ecore__Timer__Group_ga7c118b6a6d232b63a6500e599d2a1b47}{ecore\_timer\_del}}(ctxt.timer4);}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{if}\ (ctxt.timer5)}
\DoxyCodeLine{\ \ \ \ \ \mbox{\hyperlink{group__Ecore__Timer__Group_ga7c118b6a6d232b63a6500e599d2a1b47}{ecore\_timer\_del}}(ctxt.timer5);}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{if}\ (ctxt.timer6)}
\DoxyCodeLine{\ \ \ \ \ \mbox{\hyperlink{group__Ecore__Timer__Group_ga7c118b6a6d232b63a6500e599d2a1b47}{ecore\_timer\_del}}(ctxt.timer6);}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{if}\ (ctxt.timer7)}
\DoxyCodeLine{\ \ \ \ \ \mbox{\hyperlink{group__Ecore__Timer__Group_ga7c118b6a6d232b63a6500e599d2a1b47}{ecore\_timer\_del}}(ctxt.timer7);}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{if}\ (ctxt.timer8)}
\DoxyCodeLine{\ \ \ \ \ \mbox{\hyperlink{group__Ecore__Timer__Group_ga7c118b6a6d232b63a6500e599d2a1b47}{ecore\_timer\_del}}(ctxt.timer8);}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Ecore__Init__Group_ga768298b932f18d7e7593a447493e5cde}{ecore\_shutdown}}();}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{\}}
\DoxyCodeLine{}

\end{DoxyCodeInclude}
 More examples can be found at \doxysectlink{ecore_examples}{Ecore Examples}{0}. 