3
* @brief internal GEIS back end base class public interface
5
* Copyright 2010 Canonical Ltd.
7
* This library is free software; you can redistribute it and/or modify it under
8
* the terms of the GNU Lesser General Public License as published by the Free
9
* Software Foundation; either version 3 of the License, or (at your option) any
12
* This library is distributed in the hope that it will be useful, but WITHOUT
13
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
17
* You should have received a copy of the GNU Lesser General Public License
18
* along with this program; if not, write to the Free Software Foundation, Inc.,
19
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21
#ifndef GEIS_BACKEND_H_
22
#define GEIS_BACKEND_H_
24
#include "geis/geis.h"
27
* Provides a virtual "base class" for various GEIS back ends.
29
* The GEIS is an API that implements the facade pattern over some number of
30
* actual "back end" implementations. Most internal operations of the API are
31
* performed through this "virtual base class" interface rather than through the
32
* concrete back ends (isn't object-oriented programming great?).
34
typedef struct _GeisBackend *GeisBackend;
38
* Destroys the back end.
40
* @parameter[in] be The back end.
42
* This function behaves like a virtual destructor and chains through to the
43
* concrete destructor call.
45
void geis_backend_delete(GeisBackend be);
48
* Gets the name of the back end.
50
* @parameter[in] be The back end.
52
* This accessor is useful for diagnostics.
54
GeisString geis_backend_name(GeisBackend be);
56
#endif /* GEIS_BACKEND_H_ */