AGENT++
4.0.3
Main Page
Related Pages
Classes
Files
File List
File Members
include
agent_pp
mib_map.h
Go to the documentation of this file.
1
/*_############################################################################
2
_##
3
_## AGENT++ 4.0 - mib_map.h
4
_##
5
_## Copyright (C) 2000-2013 Frank Fock and Jochen Katz (agentpp.com)
6
_##
7
_## Licensed under the Apache License, Version 2.0 (the "License");
8
_## you may not use this file except in compliance with the License.
9
_## You may obtain a copy of the License at
10
_##
11
_## http://www.apache.org/licenses/LICENSE-2.0
12
_##
13
_## Unless required by applicable law or agreed to in writing, software
14
_## distributed under the License is distributed on an "AS IS" BASIS,
15
_## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
_## See the License for the specific language governing permissions and
17
_## limitations under the License.
18
_##
19
_##########################################################################*/
20
// This may look like C code, but it is really -*- C++ -*-
21
/*
22
Copyright (C) 1988 Free Software Foundation
23
written by Doug Lea (dl@rocky.oswego.edu)
24
25
This file is part of the GNU C++ Library. This library is free
26
software; you can redistribute it and/or modify it under the terms of
27
the GNU Library General Public License as published by the Free
28
Software Foundation; either version 2 of the License, or (at your
29
option) any later version. This library is distributed in the hope
30
that it will be useful, but WITHOUT ANY WARRANTY; without even the
31
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
32
PURPOSE. See the GNU Library General Public License for more details.
33
You should have received a copy of the GNU Library General Public
34
License along with this library; if not, write to the Free Software
35
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
36
*/
37
38
39
#ifndef _OidxPtrMibEntryPtrMap_h
40
#ifdef __GNUG__
41
#pragma interface
42
#endif
43
#define _OidxPtrMibEntryPtrMap_h 1
44
45
typedef
void
*
Pix
;
46
47
#include <
agent_pp/oidx_defs.h
>
48
#include <
agent_pp/mib_entry.h
>
49
50
#ifdef AGENTPP_NAMESPACE
51
namespace
Agentpp {
52
#endif
53
54
55
class
AGENTPP_DECL
OidxPtrMibEntryPtrMap
56
{
57
protected
:
58
int
count
;
59
MibEntryPtr
def
;
60
61
public
:
62
OidxPtrMibEntryPtrMap
(
MibEntryPtr
deflt)
63
: count(0), def(deflt) {};
64
virtual
~OidxPtrMibEntryPtrMap
() {};
65
66
int
length() const
// current number of items
67
{
return
count; };
68
int
empty()
const
69
{
return
(count == 0);};
70
71
virtual
int
contains(
OidxPtr
key);
// is key mapped?
72
73
virtual
void
clear();
// delete all items
74
75
virtual
MibEntryPtr
& operator [] (
OidxPtr
key) = 0;
// access contents by key
76
77
virtual
void
del(
OidxPtr
key) = 0;
// delete entry
78
79
virtual
Pix
first() = 0;
// Pix of first item or 0
80
virtual
void
next(
Pix
& i) = 0;
// advance to next or 0
81
virtual
OidxPtr
& key(
Pix
i) = 0;
// access key at i
82
virtual
MibEntryPtr
& contents(
Pix
i) = 0;
// access contents at i
83
84
virtual
int
owns(
Pix
i);
// is i a valid Pix ?
85
virtual
Pix
seek(
OidxPtr
key);
// Pix of key
86
87
MibEntryPtr
& dflt()
// access default val
88
{
return
def; };
89
90
void
error(
const
char
* msg);
91
virtual
int
OK() = 0;
// rep invariant
92
};
93
94
#ifdef AGENTPP_NAMESPACE
95
}
96
#endif
97
98
#endif
Generated by
1.8.2