/* * (c) Copyright 2016 Olliver Schinagl * Author: Olliver Schinagl * * SPDX-License-Identifier: AGPL-3.0+ */ #ifndef _ENGAGEMENT_H_ #define _ENGAGEMENT_H_ #include #ifdef EAPI # undef EAPI #endif #ifdef __GNUC__ # if __GNUC__ >= 4 # define EAPI __attribute__ ((visibility("default"))) # else # define EAPI # endif #else # define EAPI #endif #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_ */