]> git.ipfire.org Git - thirdparty/squid.git/blob - tools/purge/squid-tlv.cc
Merged from parent (trunk r11672, v3.2.0.10+).
[thirdparty/squid.git] / tools / purge / squid-tlv.cc
1 //
2 // $Id$
3 //
4 // Author: Jens-S. V?ckler <voeckler@rvs.uni-hannover.de>
5 //
6 // File: squid-tlv.cc
7 // Tue Jun 15 1999
8 //
9 // (c) 1999 Lehrgebiet Rechnernetze und Verteilte Systeme
10 // Universit?t Hannover, Germany
11 //
12 // Permission to use, copy, modify, distribute, and sell this software
13 // and its documentation for any purpose is hereby granted without fee,
14 // provided that (i) the above copyright notices and this permission
15 // notice appear in all copies of the software and related documentation,
16 // and (ii) the names of the Lehrgebiet Rechnernetze und Verteilte
17 // Systeme and the University of Hannover may not be used in any
18 // advertising or publicity relating to the software without the
19 // specific, prior written permission of Lehrgebiet Rechnernetze und
20 // Verteilte Systeme and the University of Hannover.
21 //
22 // THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
23 // EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
24 // WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
25 //
26 // IN NO EVENT SHALL THE LEHRGEBIET RECHNERNETZE UND VERTEILTE SYSTEME OR
27 // THE UNIVERSITY OF HANNOVER BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
28 // INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES
29 // WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT
30 // ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY,
31 // ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
32 // SOFTWARE.
33 //
34 // Revision 1.1 1999/06/15 21:10:16 voeckler
35 // Initial revision
36 //
37 //
38 #if (defined(__GNUC__) || defined(__GNUG__)) && !defined(__clang__)
39 #pragma implementation
40 #endif
41
42 #include "config.h"
43 //#include <assert.h>
44 #include "squid-tlv.hh"
45
46 SquidTLV::SquidTLV( SquidMetaType _type, size_t _size, void* _data )
47 :next(0),size(_size)
48 {
49 type = _type;
50 data = (char*) _data;
51 }
52
53 SquidMetaList::SquidMetaList()
54 {
55 head = tail = 0;
56 }
57
58 SquidMetaList::~SquidMetaList()
59 {
60 for ( SquidTLV* temp = head; temp; temp = head ) {
61 head = temp->next;
62 delete temp;
63 }
64 }
65
66 void
67 SquidMetaList::append( SquidMetaType type, size_t size, void* data )
68 {
69 SquidTLV* temp = new SquidTLV( type, size, data );
70 if ( head == 0 ) head = tail = temp;
71 else {
72 tail->next = temp;
73 tail = temp;
74 }
75 }
76
77 const SquidTLV*
78 SquidMetaList::search( SquidMetaType type ) const
79 {
80 const SquidTLV* temp = head;
81 while ( temp && temp->type != type ) temp = temp->next;
82 return temp;
83 }