source: storage.c @ 1ee6c18

Last change on this file since 1ee6c18 was 1ee6c18, checked in by Jelmer Vernooij <jelmer@…>, at 2005-12-08T13:41:53Z

Add abstraction layer for storage

  • Property mode set to 100644
File size: 1.7 KB
Line 
1  /********************************************************************\
2  * BitlBee -- An IRC to other IM-networks gateway                     *
3  *                                                                    *
4  * Copyright 2002-2004 Wilmer van der Gaast and others                *
5  \********************************************************************/
6
7/* Support for multiple storage backends */
8
9/*
10  This program is free software; you can redistribute it and/or modify
11  it under the terms of the GNU General Public License as published by
12  the Free Software Foundation; either version 2 of the License, or
13  (at your option) any later version.
14
15  This program is distributed in the hope that it will be useful,
16  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  GNU General Public License for more details.
19
20  You should have received a copy of the GNU General Public License with
21  the Debian GNU/Linux distribution in /usr/share/common-licenses/GPL;
22  if not, write to the Free Software Foundation, Inc., 59 Temple Place,
23  Suite 330, Boston, MA  02111-1307  USA
24*/
25
26#define BITLBEE_CORE
27#include "bitlbee.h"
28#include "crypting.h"
29
30extern storage_t storage_text;
31
32static GList text_entry = { &storage_text, NULL, NULL };
33static GList *storage_backends = &text_entry;
34
35void register_storage_backend(storage_t *backend)
36{
37        storage_backends = g_list_append(storage_backends, backend);
38}
39
40storage_t *storage_init(const char *name)
41{
42        GList *gl;
43        storage_t *st;
44
45        for (gl = storage_backends; gl; gl = gl->next) {
46                st = gl->data;
47                if (strcmp(st->name, name) == 0)
48                        break;
49        }
50
51        if (gl == NULL) 
52                return NULL;
53
54        if (st->init)
55                st->init();
56
57        return st;
58}
Note: See TracBrowser for help on using the repository browser.