/*] Copyright (c) 2009-2011, Charles McGarvey [***************************** **] All rights reserved. * * Distributable under the terms and conditions of the 2-clause BSD license; * see the file COPYING for a complete text of the license. * *****************************************************************************/ #ifndef _MOOF_BACKEND_HH_ #define _MOOF_BACKEND_HH_ /** * \file backend.hh * Initialize the backend libraries and subsystems. */ namespace moof { /** * Some classes and subsystems require certain backend libraries to be * initialized. This is the mechanism to accomplish that. Classes which rely * on any backend libraries just need to instantiate this class as a member. * Backend cleanup will occur automagically when there are no more instances. */ class backend { public: /** * Construct a backend reference, initializing the backend if it * hasn't already been initialized. */ backend(); /** * Get whether or not the backend has been initialized. * \return True if the backend is initialized, false otherwise. */ static bool is_initialized(); /* The rest of this stuff is to implement the reference counting. */ backend(const backend& backend); backend& operator = (const backend& backend); ~backend(); }; } // namespace moof #endif // _MOOF_BACKEND_HH_