aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/lscript/llscriptresource.h
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra/lscript/llscriptresource.h')
-rw-r--r--linden/indra/lscript/llscriptresource.h75
1 files changed, 75 insertions, 0 deletions
diff --git a/linden/indra/lscript/llscriptresource.h b/linden/indra/lscript/llscriptresource.h
new file mode 100644
index 0000000..8509413
--- /dev/null
+++ b/linden/indra/lscript/llscriptresource.h
@@ -0,0 +1,75 @@
1/**
2 * @file llscriptresource.h
3 * @brief LLScriptResource class definition
4 *
5 * $LicenseInfo:firstyear=2008&license=viewergpl$
6 *
7 * Copyright (c) 2008-2009, Linden Research, Inc.
8 *
9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab
11 * to you under the terms of the GNU General Public License, version 2.0
12 * ("GPL"), unless you have obtained a separate licensing agreement
13 * ("Other License"), formally executed by you and Linden Lab. Terms of
14 * the GPL can be found in doc/GPL-license.txt in this distribution, or
15 * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
16 *
17 * There are special exceptions to the terms and conditions of the GPL as
18 * it is applied to this Source Code. View the full text of the exception
19 * in the file doc/FLOSS-exception.txt in this software distribution, or
20 * online at
21 * http://secondlifegrid.net/programs/open_source/licensing/flossexception
22 *
23 * By copying, modifying or distributing this software, you acknowledge
24 * that you have read and understood your obligations described above,
25 * and agree to abide by those obligations.
26 *
27 * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
28 * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
29 * COMPLETENESS OR PERFORMANCE.
30 * $/LicenseInfo$
31 */
32
33#ifndef LL_LLSCRIPTRESOURCE_H
34#define LL_LLSCRIPTRESOURCE_H
35
36#include "stdtypes.h"
37
38// An LLScriptResource is a limited resource per ID.
39class LLScriptResource
40{
41public:
42 LLScriptResource();
43
44 // If amount resources are available will mark amount resouces
45 // used and returns true
46 // Otherwise returns false and doesn't mark any resources used.
47 bool request(S32 amount = 1);
48
49 // Release amount resources from use if at least amount resources are used and return true
50 // If amount is more than currently used no resources are released and return false
51 bool release(S32 amount = 1);
52
53 // Returns how many resources are available
54 S32 getAvailable() const;
55
56 // Sets the total amount of available resources
57 // It is possible to set the amount to less than currently used
58 // Most likely to happen on parcel ownership change
59 void setTotal(S32 amount);
60
61 // Get the total amount of available resources
62 S32 getTotal() const;
63
64 // Get the number of resources used
65 S32 getUsed() const;
66
67 // true if more resources used than total available
68 bool isOverLimit() const;
69
70private:
71 S32 mTotal; // How many resources have been set aside
72 S32 mUsed; // How many resources are currently in use
73};
74
75#endif // LL_LLSCRIPTRESOURCE_H