aboutsummaryrefslogtreecommitdiff
path: root/mflib/safedb.mf4
blob: c45d8550494cedaba7c97c52ba47ff6ba97b4865 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/* Safe DB I/O                                             -*- mfl -*-
   Copyright (C) 2007-2011, 2015-2016 Sergey Poznyakoff

   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, 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/>. */

module 'safedb'.
require status

number safedb_verbose

func safedbget(string name, string key ; string defval, number null)
  returns string
do
  catch e_dbfailure
  do
    if safedb_verbose
      echo "safedbget: exception $1: $2"
    fi
    return defval
  done
  if not defined(null)
    set null 0
    if not defined(defval)
      set defval ""
    fi
  fi
  return dbget(name, key, defval, null)
done

func safedbput(string name, string key, string value ; number null)
do
  catch e_dbfailure
  do
    if safedb_verbose
      echo "safedbput: exception $1: $2"
    fi
    return
  done
  if not defined(null)
    set null 0
  fi
  dbput(name, key, value, null)
done


func safedbmap(string name, string key; number defval, number null)
  returns number
do
  catch e_dbfailure
  do
    if safedb_verbose
      echo "safedbmap: exception $1: $2"
    fi
    return defval
  done
  if not defined(defval)
    set defval 0
  fi
  if not defined(null)
    set null 0
  fi
  return dbmap(name, key, null)
done

func safedbdel(string name, string key; number null)
do
  catch e_dbfailure
  do
    if safedb_verbose
      echo "safedbdel: exception $1: $2"
    fi
    return
  done
  if not defined(null)
    set null 0
  fi
  dbdel(name, key, null)
done

  

Return to:

Send suggestions and report system problems to the System administrator.