dime
0.9.1
Portable DXF file library
Loading...
Searching...
No Matches
Dict.h
1
/**************************************************************************\
2
* Copyright (c) Kongsberg Oil & Gas Technologies AS
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions are
7
* met:
8
*
9
* Redistributions of source code must retain the above copyright notice,
10
* this list of conditions and the following disclaimer.
11
*
12
* Redistributions in binary form must reproduce the above copyright
13
* notice, this list of conditions and the following disclaimer in the
14
* documentation and/or other materials provided with the distribution.
15
*
16
* Neither the name of the copyright holder nor the names of its
17
* contributors may be used to endorse or promote products derived from
18
* this software without specific prior written permission.
19
*
20
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24
* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
\**************************************************************************/
32
33
#ifndef DIME_DICT_H
34
#define DIME_DICT_H
35
36
#include <dime/Basic.h>
37
#include <string.h>
38
39
class
DIME_DLL_API
dimeDictEntry
40
{
41
friend
class
dimeDict
;
42
43
private
:
44
dimeDictEntry
*next;
45
dimeDictEntry
(
const
char
*
const
k,
void
*v) {key = strdup(k); value = v; };
46
~dimeDictEntry
() {free(key);}
47
char
*key;
48
void
*value;
49
50
};
// class dimeDictEntry
51
52
class
DIME_DLL_API
dimeDict
53
{
54
public
:
55
dimeDict
(
const
int
entries = 17989);
56
~dimeDict
();
57
void
clear();
58
59
bool
enter(
const
char
*
const
key,
char
*&ptr,
void
*value);
60
const
char
*enter(
const
char
*
const
key,
void
*value);
61
const
char
*find(
const
char
*
const
key)
const
;
62
bool
find(
const
char
*
const
key,
void
*&value)
const
;
63
bool
remove(
const
char
*
const
key);
64
void
dump(
void
);
65
66
private
:
67
int
tableSize;
68
dimeDictEntry
**buckets;
69
dimeDictEntry
*&findEntry(
const
char
*
const
key)
const
;
70
unsigned
int
bucketNr(
const
char
*key)
const
;
71
72
public
:
73
void
print_info();
74
75
};
// class dimeDict
76
77
#endif
// ! DIME_DICT_H
78
dimeDictEntry
The dimeDictEntry class is internal / private.
Definition
Dict.h:40
dimeDict
The dimeDict class is internal / private.
Definition
Dict.h:53
include
dime
util
Dict.h
Generated on Thu May 16 2024 13:32:29 for dime by
1.10.0