squid-tlv.cc
Go to the documentation of this file.
1/*
2 * Copyright (C) 1996-2023 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
46SquidTLV::SquidTLV( SquidMetaType _type, size_t _size, void* _data )
47 :next(nullptr),size(_size)
48{
49 type = _type;
50 data = (char*) _data;
51}
52
53SquidMetaList::SquidMetaList()
54{
55 head = tail = nullptr;
56}
57
58SquidMetaList::~SquidMetaList()
59{
60 for ( SquidTLV* temp = head; temp; temp = head ) {
61 head = temp->next;
62 delete temp;
63 }
64}
65
66void
67SquidMetaList::append( SquidMetaType type, size_t size, void* data )
68{
69 SquidTLV* temp = new SquidTLV( type, size, data );
70 if ( head == nullptr ) head = tail = temp;
71 else {
72 tail->next = temp;
73 tail = temp;
74 }
75}
76
77const SquidTLV*
78SquidMetaList::search( SquidMetaType type ) const
79{
80 const SquidTLV* temp = head;
81 while ( temp && temp->type != type ) temp = temp->next;
82 return temp;
83}
84
int size
Definition: ModDevPoll.cc:75
squidaio_request_t * head
Definition: aiops.cc:127
struct squidaio_request_t * next
Definition: aiops.cc:51

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors