Bayonne2 / Common C++ 2 Framework
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
usr
local
include
cc++
objlink.h
Go to the documentation of this file.
1
// Copyright (C) 2001-2005 Open Source Telecom Corporation.
2
// Copyright (C) 2006-2010 David Sugar, Tycho Softworks.
3
//
4
// This program is free software; you can redistribute it and/or modify
5
// it under the terms of the GNU General Public License as published by
6
// the Free Software Foundation; either version 2 of the License, or
7
// (at your option) any later version.
8
//
9
// This program is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
// GNU General Public License for more details.
13
//
14
// You should have received a copy of the GNU General Public License
15
// along with this program; if not, write to the Free Software
16
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17
//
18
// As a special exception to the GNU General Public License, permission is
19
// granted for additional uses of the text contained in its release
20
// of Common C++.
21
//
22
// The exception is that, if you link the Common C++ library with other
23
// files to produce an executable, this does not by itself cause the
24
// resulting executable to be covered by the GNU General Public License.
25
// Your use of that executable is in no way restricted on account of
26
// linking the Common C++ library code into it.
27
//
28
// This exception does not however invalidate any other reasons why
29
// the executable file might be covered by the GNU General Public License.
30
//
31
// This exception applies only to the code released under the
32
// name Common C++. If you copy code from other releases into a copy of
33
// Common C++, as the General Public License permits, the exception does
34
// not apply to the code that you add in this way. To avoid misleading
35
// anyone as to the status of such modified files, you must delete
36
// this exception notice from them.
37
//
38
// If you write modifications of your own for Common C++, it is your choice
39
// whether to permit this exception to apply to your modifications.
40
// If you do not wish that, delete this exception notice.
41
47
#ifndef CCXX_OBJLINK_H
48
#define CCXX_OBJLINK_H
49
#include <cstddef>
50
51
#ifdef CCXX_NAMESPACES
52
namespace
ost {
53
#endif
54
63
template
<
class
T,
typename
K>
64
class
objList
{
65
protected
:
66
static
T*
objFirst
;
67
T*
objNext
;
68
const
K
objKey
;
69
70
objList
(
const
K key)
71
{
72
objKey = key;
73
objNext = objFirst;
74
objFirst = (T *)
this
;
75
}
76
public
:
77
static
T* getObject(
const
K& key);
78
};
79
80
template
<
class
T,
typename
K>
81
T *
objList<T, K>::objFirst
= NULL;
82
83
template
<
class
T,
typename
K>
84
T *
objList<T, K>::getObject
(
const
K& key)
85
{
86
T *obj =
objList<T, K>::objFirst
;
87
while
(obj) {
88
if
(key == obj->objKey)
89
break
;
90
obj = obj->
objNext
;
91
}
92
return
obj;
93
}
94
95
#ifdef CCXX_NAMESPACES
96
}
97
#endif
98
99
#endif
objList::getObject
static T * getObject(const K &key)
Definition:
objlink.h:84
objList
Used to create and manage a single linked list of objects of a common type.
Definition:
objlink.h:64
objList::objList
objList(const K key)
Definition:
objlink.h:70
objList::objFirst
static T * objFirst
Definition:
objlink.h:66
objList::objNext
T * objNext
Definition:
objlink.h:67
objList::objKey
const K objKey
Definition:
objlink.h:68
Generated on Dec 21, 2017 for commoncpp2-1.8.1, ccrtp-1.7.2, libzrtpcpp-2.3.4, ccscript3-1.1.7, ccaudio2-1.0.0 and bayonne2-2.3.2 (
after installation
in /usr/local/) by
1.8.6