C++ TargetRTS
Loading...
Searching...
No Matches
RTQueue.h
1/*
2 * Licensed Materials - Property of HCL and/or IBM
3 * Copyright HCL Technologies Ltd. 2016, 2021. All Rights Reserved.
4 * Copyright IBM Corporation 1999, 2016. All Rights Reserved.
5 *
6 * U.S. Government Users Restricted Rights - Use, duplication or
7 * disclosure restricted by GSA ADP Schedule.
8 */
9
10#ifndef __RTQueue_h__
11#define __RTQueue_h__ included
12
13#ifdef PRAGMA
14#pragma interface
15#endif
16
17#ifndef __RTConfig_h__
18#include <RTConfig.h>
19#endif
20
22{
23public:
24 struct Block
25 {
26 enum { Size = 30 };
27
28 Block * next;
29 int used;
30 void * data[ Size ];
31 };
32
34 {
35 public:
36 RTS_INLINE explicit Iterator( const RTQueue & );
37 RTS_INLINE ~Iterator( void );
38
39 void * next( void );
40
41 private:
42 Block * block;
43 int index;
44
45 // useful only to silence lint
46 RTS_INLINE Iterator( void );
47 };
48
49 RTS_INLINE RTQueue( void );
50 RTQueue( const RTQueue & );
51 ~RTQueue( void );
52
53 RTQueue & operator=( const RTQueue & );
54
55 void add( void * );
56 void remove( void * );
57 RTS_INLINE int isEmpty( void ) const;
58 int length( void ) const;
59
60private:
61 friend class Iterator;
62
63 Block * head;
64 Block * tail;
65};
66
67#if RTS_INLINES
68#include <RTQueue.inl>
69#endif
70
71#endif // __RTQueue_h__
Definition: RTQueue.h:34
Definition: RTQueue.h:22
Definition: RTQueue.h:25