Panda3D
Loading...
Searching...
No Matches
configVariableInt.I
Go to the documentation of this file.
1/**
2 * PANDA 3D SOFTWARE
3 * Copyright (c) Carnegie Mellon University. All rights reserved.
4 *
5 * All use of this software is subject to the terms of the revised BSD
6 * license. You should have received a copy of this license along
7 * with this source code in a file named "LICENSE."
8 *
9 * @file configVariableInt.I
10 * @author drose
11 * @date 2004-10-20
12 */
13
14/**
15 *
16 */
17INLINE ConfigVariableInt::
18ConfigVariableInt(const std::string &name) :
19 ConfigVariable(name, VT_int),
20 _local_modified(initial_invalid_cache())
21{
22 _core->set_used();
23}
24
25/**
26 *
27 */
28INLINE ConfigVariableInt::
29ConfigVariableInt(const std::string &name, int default_value,
30 const std::string &description, int flags) :
31#ifdef PRC_SAVE_DESCRIPTIONS
32 ConfigVariable(name, ConfigVariableCore::VT_int, description, flags),
33#else
34 ConfigVariable(name, ConfigVariableCore::VT_int, std::string(), flags),
35#endif
36 _local_modified(initial_invalid_cache())
37{
38 set_default_value(default_value);
39 _core->set_used();
40}
41
42/**
43 *
44 */
45INLINE ConfigVariableInt::
46ConfigVariableInt(const std::string &name, const std::string &default_value,
47 const std::string &description, int flags) :
48#ifdef PRC_SAVE_DESCRIPTIONS
49 ConfigVariable(name, ConfigVariableCore::VT_int, description, flags),
50#else
51 ConfigVariable(name, ConfigVariableCore::VT_int, std::string(), flags),
52#endif
53 _local_modified(initial_invalid_cache())
54{
55 _core->set_default_value(default_value);
56 _core->set_used();
57}
58
59/**
60 * Reassigns the variable's local value.
61 */
63operator = (int value) {
64 set_value(value);
65}
66
67/**
68 * Returns the variable's value.
69 */
70INLINE ConfigVariableInt::
71operator int () const {
72 return get_value();
73}
74
75/**
76 * Returns the number of unique words in the variable.
77 */
79size() const {
80 return get_num_words();
81}
82
83/**
84 * Returns the value of the variable's nth word.
85 */
87operator [] (size_t n) const {
88 return get_word(n);
89}
90
91/**
92 * Reassigns the variable's local value.
93 */
94INLINE void ConfigVariableInt::
95set_value(int value) {
97 set_int_word(0, value);
98}
99
100/**
101 * Returns the variable's value.
102 */
103INLINE int ConfigVariableInt::
104get_value() const {
105 TAU_PROFILE("int ConfigVariableInt::get_value() const", " ", TAU_USER);
106 if (!is_cache_valid(_local_modified)) {
107 mark_cache_valid(((ConfigVariableInt *)this)->_local_modified);
108 ((ConfigVariableInt *)this)->_cache = get_int_word(0);
109 }
110 return _cache;
111}
112
113/**
114 * Returns the variable's default value.
115 */
116INLINE int ConfigVariableInt::
117get_default_value() const {
118 const ConfigDeclaration *decl = ConfigVariable::get_default_value();
119 if (decl != nullptr) {
120 return decl->get_int_word(0);
121 }
122 return 0;
123}
124
125/**
126 * Returns the variable's nth value.
127 */
129get_word(size_t n) const {
130 return get_int_word(n);
131}
132
133/**
134 * Reassigns the variable's nth value. This makes a local copy of the
135 * variable's overall value.
136 */
138set_word(size_t n, int value) {
139 set_int_word(n, value);
140}
A single declaration of a config variable, typically defined as one line in a .prc file,...
int get_int_word(size_t n) const
Returns the integer value of the nth word of the declaration's value, or 0 if there is no nth value.
The internal definition of a ConfigVariable.
This is a convenience class to specialize ConfigVariable as an integer type.
void set_word(size_t n, int value)
Reassigns the variable's nth value.
int operator[](size_t n) const
Returns the value of the variable's nth word.
void operator=(int value)
Reassigns the variable's local value.
get_default_value
Returns the variable's default value.
size_t size() const
Returns the number of unique words in the variable.
int get_word(size_t n) const
Returns the variable's nth value.
get_value
Returns the variable's value.
set_value
Reassigns the variable's local value.
This is a generic, untyped ConfigVariable.
size_t get_num_words() const
Returns the number of words in the variable's value.
void set_string_value(const std::string &value)
Changes the value assigned to this variable.
STL namespace.