1 /*******************************************************************************
2 
3     Information only interface to a queue. Provides no methods to modify the
4     contents of the queue.
5 
6     Copyright:
7         Copyright (c) 2009-2016 dunnhumby Germany GmbH.
8         All rights reserved.
9 
10     License:
11         Boost Software License Version 1.0. See LICENSE_BOOST.txt for details.
12         Alternatively, this file may be distributed under the terms of the Tango
13         3-Clause BSD License (see LICENSE_BSD.txt for details).
14 
15 *******************************************************************************/
16 
17 module ocean.util.container.queue.model.IQueueInfo;
18 
19 
20 
21 /*******************************************************************************
22 
23     Information interface to a queue.
24 
25 *******************************************************************************/
26 
27 public interface IQueueInfo
28 {
29     /***************************************************************************
30 
31         Returns:
32             the number of items in the queue
33 
34     ***************************************************************************/
35 
36     public size_t length ( );
37 
38 
39     /***************************************************************************
40 
41         Returns:
42             number of bytes stored in queue
43 
44     ***************************************************************************/
45 
46     public ulong used_space ( );
47 
48 
49     /***************************************************************************
50 
51         Returns:
52             number of bytes free in queue
53 
54     ***************************************************************************/
55 
56     public ulong free_space ( );
57 
58 
59     /***************************************************************************
60 
61         Returns:
62             total number of bytes used by queue (used space + free space)
63 
64     ***************************************************************************/
65 
66     public ulong total_space ( );
67 
68 
69     /***************************************************************************
70 
71         Tells whether the queue is empty.
72 
73         Returns:
74             true if the queue is empty
75 
76     ***************************************************************************/
77 
78     public bool is_empty ( );
79 
80 
81     /***************************************************************************
82 
83         Finds out whether the provided number of bytes will fit in the queue.
84 
85         Params:
86             bytes = size of item to check
87 
88         Returns:
89             true if the bytes fits, else false
90 
91     ***************************************************************************/
92 
93     public bool willFit ( size_t bytes );
94 }
95