summaryrefslogtreecommitdiffstats
path: root/src/lib/engagement.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/engagement.h')
-rw-r--r--src/lib/engagement.h111
1 files changed, 111 insertions, 0 deletions
diff --git a/src/lib/engagement.h b/src/lib/engagement.h
new file mode 100644
index 0000000..487d8c9
--- /dev/null
+++ b/src/lib/engagement.h
@@ -0,0 +1,111 @@
+#ifndef ENGAGEMENT_H_
+# define ENGAGEMENT_H_
+
+#include <Elementary.h>
+
+#ifdef EAPI
+# undef EAPI
+#endif
+
+#ifdef _WIN32
+# ifdef EFL_ENGAGEMENT_BUILD
+# ifdef DLL_EXPORT
+# define EAPI __declspec(dllexport)
+# else
+# define EAPI
+# endif /* ! DLL_EXPORT */
+# else
+# define EAPI __declspec(dllimport)
+# endif /* ! EFL_ENGAGEMENT_BUILD */
+#else
+# ifdef __GNUC__
+# if __GNUC__ >= 4
+# define EAPI __attribute__ ((visibility("default")))
+# else
+# define EAPI
+# endif
+# else
+# define EAPI
+# endif
+#endif /* ! _WIN32 */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @file
+ * @brief These routines are used for Engagement library interaction.
+ */
+
+/**
+ * @brief Init / shutdown functions.
+ * @defgroup Init Init / Shutdown
+ *
+ * @{
+ *
+ * Functions of obligatory usage, handling proper initialization
+ * and shutdown routines.
+ *
+ * Before the usage of any other function, Engagement should be properly
+ * initialized with @ref engagement_init() and the last call to Engagement's
+ * functions should be @ref engagement_shutdown(), so everything will
+ * be correctly freed.
+ *
+ * Engagement logs everything with Eina Log, using the "engagement" log domain.
+ *
+ */
+
+/**
+ * Initialize Engagement.
+ *
+ * Initializes Engagement, its dependencies and modules. Should be the first
+ * function of Engagement to be called.
+ *
+ * @return The init counter value.
+ *
+ * @see engagement_shutdown().
+ *
+ * @ingroup Init
+ */
+EAPI int engagement_init(void);
+
+/**
+ * Shutdown Engagement
+ *
+ * Shutdown Engagement. If init count reaches 0, all the internal structures will
+ * be freed. Any Engagement library call after this point will leads to an error.
+ *
+ * @return Engagement's init counter value.
+ *
+ * @see engagement_init().
+ *
+ * @ingroup Init
+ */
+EAPI int engagement_shutdown(void);
+
+/**
+ * @}
+ */
+
+/**
+ * @brief Main group API that wont do anything
+ * @defgroup Main Main
+ *
+ * @{
+ *
+ * @brief A function that doesn't do any good nor any bad
+ *
+ * @ingroup Main
+ */
+EAPI void engagement_library_call(void);
+
+/**
+ * @}
+ */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ENGAGEMENT_H_ */