1 /*******************************************************************************
2 3 Interfaces to manage and get information about a limitable pool. A limitable
4 pool has a maximum size (i.e. number of items) which cannot be exceeded.
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 moduleocean.util.container.pool.model.ILimitable;
18 19 20 21 /*******************************************************************************
22 23 Informational interface to a limitable pool.
24 25 *******************************************************************************/26 27 publicinterfaceILimitableInfo28 {
29 /***************************************************************************
30 31 Returns:
32 limit of items in pool
33 34 ***************************************************************************/35 36 size_tlimit ( );
37 38 39 /***************************************************************************
40 41 Returns:
42 true if the number of items in the pool is limited or fase otherwise
43 44 ***************************************************************************/45 46 boolis_limited ( );
47 }
48 49 50 /*******************************************************************************
51 52 Management interface to a limitable pool.
53 54 *******************************************************************************/55 56 publicinterfaceILimitable : ILimitableInfo57 {
58 /**************************************************************************
59 60 Magic limit value indicating no limitation
61 62 **************************************************************************/63 64 staticimmutablesize_tunlimited = size_t.max;
65 66 67 /***************************************************************************
68 69 Sets the limit of number of items in pool or disables limitation for
70 limit = unlimited. When limiting the pool, any excess idle items are
71 reset and deleted.
72 73 Params:
74 limit = new limit of number of items in pool; unlimited disables
75 limitation
76 77 Returns:
78 new limit
79 80 ***************************************************************************/81 82 size_tsetLimit ( size_tlimit );
83 }
84