xrootd
Main Page
Namespaces
Classes
Files
File List
File Members
src
XrdSut
XrdSutBuckList.hh
Go to the documentation of this file.
1
// $Id$
2
#ifndef __SUT_BUCKLIST_H__
3
#define __SUT_BUCKLIST_H__
4
/******************************************************************************/
5
/* */
6
/* X r d S u t B u c k L i s t . h h */
7
/* */
8
/* (c) 2004 by the Board of Trustees of the Leland Stanford, Jr., University */
9
/* All Rights Reserved. See XrdInfo.cc for complete License Terms */
10
/* Produced by Andrew Hanushevsky for Stanford University under contract */
11
/* DE-AC03-76-SFO0515 with the Department of Energy */
12
/******************************************************************************/
13
14
#ifndef __SUT_BUCKET_H__
15
#include <
XrdSut/XrdSutBucket.hh
>
16
#endif
17
18
/******************************************************************************/
19
/* */
20
/* Light single-linked list for managing buckets inside the exchanged */
21
/* buffer */
22
/* */
23
/******************************************************************************/
24
25
//
26
// Node definition
27
//
28
class
XrdSutBuckListNode
{
29
private
:
30
XrdSutBucket
*
buck
;
31
XrdSutBuckListNode
*
next
;
32
public
:
33
XrdSutBuckListNode
(
XrdSutBucket
*b = 0,
XrdSutBuckListNode
*n = 0)
34
{
buck
= b;
next
= n;}
35
virtual
~XrdSutBuckListNode
() { }
36
37
XrdSutBucket
*
Buck
()
const
{
return
buck
; }
38
39
XrdSutBuckListNode
*
Next
()
const
{
return
next
; }
40
41
void
SetNext
(
XrdSutBuckListNode
*n) {
next
= n; }
42
};
43
44
class
XrdSutBuckList
{
45
46
private
:
47
XrdSutBuckListNode
*
begin
;
48
XrdSutBuckListNode
*
current
;
49
XrdSutBuckListNode
*
end
;
50
XrdSutBuckListNode
*
previous
;
51
int
size
;
52
53
XrdSutBuckListNode
*
Find
(
XrdSutBucket
*b);
54
55
public
:
56
XrdSutBuckList
(
XrdSutBucket
*b = 0);
57
virtual
~XrdSutBuckList
();
58
59
// Access information
60
int
Size
()
const
{
return
size
; }
61
XrdSutBucket
*
End
()
const
{
return
end
->
Buck
(); }
62
63
// Modifiers
64
void
PutInFront
(
XrdSutBucket
*b);
65
void
PushBack
(
XrdSutBucket
*b);
66
void
Remove
(
XrdSutBucket
*b);
67
68
// Pseudo - iterator functionality
69
XrdSutBucket
*
Begin
();
70
XrdSutBucket
*
Next
();
71
};
72
73
#endif
74
Generated by
1.8.1.2