]>
Commit | Line | Data |
---|---|---|
1 | /* | |
2 | * Copyright (C) 1996-2015 The Squid Software Foundation and contributors | |
3 | * | |
4 | * Squid software is distributed under GPLv2+ license and includes | |
5 | * contributions from numerous individuals and organizations. | |
6 | * Please see the COPYING and CONTRIBUTORS files for details. | |
7 | */ | |
8 | ||
9 | // Author: Jens-S. V?ckler <voeckler@rvs.uni-hannover.de> | |
10 | // | |
11 | // File: squid-tlv.cc | |
12 | // Tue Jun 15 1999 | |
13 | // | |
14 | // (c) 1999 Lehrgebiet Rechnernetze und Verteilte Systeme | |
15 | // Universit?t Hannover, Germany | |
16 | // | |
17 | // Permission to use, copy, modify, distribute, and sell this software | |
18 | // and its documentation for any purpose is hereby granted without fee, | |
19 | // provided that (i) the above copyright notices and this permission | |
20 | // notice appear in all copies of the software and related documentation, | |
21 | // and (ii) the names of the Lehrgebiet Rechnernetze und Verteilte | |
22 | // Systeme and the University of Hannover may not be used in any | |
23 | // advertising or publicity relating to the software without the | |
24 | // specific, prior written permission of Lehrgebiet Rechnernetze und | |
25 | // Verteilte Systeme and the University of Hannover. | |
26 | // | |
27 | // THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, | |
28 | // EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY | |
29 | // WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | |
30 | // | |
31 | // IN NO EVENT SHALL THE LEHRGEBIET RECHNERNETZE UND VERTEILTE SYSTEME OR | |
32 | // THE UNIVERSITY OF HANNOVER BE LIABLE FOR ANY SPECIAL, INCIDENTAL, | |
33 | // INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES | |
34 | // WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT | |
35 | // ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, | |
36 | // ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS | |
37 | // SOFTWARE. | |
38 | // | |
39 | // Revision 1.1 1999/06/15 21:10:16 voeckler | |
40 | // Initial revision | |
41 | // | |
42 | ||
43 | #include "squid.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 | } | |
84 |