#ifndef CL_SMOKE_H #define CL_SMOKE_H #include #if defined _WIN32 || defined __CYGWIN__ #define CL_SMOKE_EXPORT __declspec(dllexport) #else #if __GNUC__ >= 4 #define CL_SMOKE_EXPORT __attribute__((visibility("default"))) #else #define CL_SMOKE_EXPORT #endif #endif /** @brief cl-smoke binding namespace. */ namespace cl_smoke { class Binding; /** The arrays of the Smoke module */ enum cl_smoke_module_array { classes, methods, method_maps, method_names, types, inheritance_list, argument_list, ambiguous_method_list }; /** A Binding */ typedef void* smoke_binding; /** Casts the void pointer smoke to the Smoke class. * @param smoke the Smoke module * * @return pointer to the Smoke module. */ static inline Smoke* get_smoke(void* smoke) { return static_cast(smoke); } } // namespace cl_smoke #endif // CL_SMOKE_H