taskrambler  0.1.9
Web server and task management solution.
storage/storage.c File Reference
#include <gdbm.h>
#include <string.h>
#include <sys/stat.h>
#include "class.h"
#include "storage/storage.h"
#include "utils/memory.h"
+ Include dependency graph for storage/storage.c:

Go to the source code of this file.

Functions

static int storageCtor (void *_this, va_list *params)
 
static void storageDtor (void *_this)
 
 INIT_IFACE (Class, storageCtor, storageDtor, NULL)
 
 CREATE_CLASS (Storage, NULL, IFACE(Class))
 

Detailed Description

Author
Georg Hopp

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Definition in file storage/storage.c.

Function Documentation

CREATE_CLASS ( Storage  ,
NULL  ,
IFACE(Class)   
)
INIT_IFACE ( Class  ,
storageCtor  ,
storageDtor  ,
NULL   
)
static int storageCtor ( void *  _this,
va_list *  params 
)
static

Definition at line 34 of file storage/storage.c.

References memMalloc().

35 {
36  Storage this = _this;
37  char * db_name = va_arg(* params, void *);
38 
39  this->db_name = memMalloc(strlen(db_name) + 1);
40  strcpy(this->db_name, db_name);
41 
42  this->gdbm = gdbm_open(
43  this->db_name,
44  2048,
45  GDBM_WRCREAT|GDBM_NOLOCK,
46  S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH,
47  NULL);
48 
49  if (NULL == this->gdbm) {
50  return -1;
51  }
52 
53  return 0;
54 }
void * memMalloc(size_t)
Definition: memory.c:783

+ Here is the call graph for this function:

static void storageDtor ( void *  _this)
static

Definition at line 58 of file storage/storage.c.

References MEM_FREE.

59 {
60  Storage this = _this;
61 
62  if (NULL != this->db_name) MEM_FREE(this->db_name);
63  if (NULL != this->gdbm) {
64  gdbm_close(this->gdbm);
65  this->gdbm = NULL;
66  }
67 }
#define MEM_FREE(seg)
Definition: memory.h:28