--- /dev/null
+
+/*] Copyright (c) 2009-2010, Charles McGarvey [**************************
+**] All rights reserved.
+*
+* vi:ts=4 sw=4 tw=75
+*
+* 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_
+
+
+namespace Mf {
+
+
+class Error;
+
+
+/*
+ * 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:
+
+ Backend();
+ Backend(const Backend& backend);
+ ~Backend();
+
+ static bool isInitialized();
+ static const Error& getError();
+};
+
+
+} // namespace Mf
+
+#endif // _MOOF_BACKEND_HH_
+