MADARA
3.2.3
|
Stages a string value to and from the knowledge base. More...
#include <StringStaged.h>
Public Types | |
typedef std::string | type |
trait that describes the value type More... | |
Public Member Functions | |
StringStaged (const KnowledgeUpdateSettings &settings=KnowledgeUpdateSettings()) | |
Default constructor. More... | |
StringStaged (const std::string &name, KnowledgeBase &knowledge, const KnowledgeUpdateSettings &settings=KnowledgeUpdateSettings()) | |
Constructor. More... | |
StringStaged (const std::string &name, Variables &knowledge, const KnowledgeUpdateSettings &settings=KnowledgeUpdateSettings()) | |
Constructor. More... | |
StringStaged (const std::string &name, KnowledgeBase &knowledge, const type &value, const KnowledgeUpdateSettings &settings=KnowledgeUpdateSettings()) | |
Default constructor. More... | |
StringStaged (const std::string &name, Variables &knowledge, const type &value, const KnowledgeUpdateSettings &settings=KnowledgeUpdateSettings()) | |
Default constructor. More... | |
StringStaged (const StringStaged &rhs) | |
Copy constructor. More... | |
virtual | ~StringStaged () |
Destructor. More... | |
virtual BaseContainer * | clone (void) const |
Clones this container. More... | |
void | exchange (StringStaged &other) |
Exchanges the integer at this location with the integer at another location. More... | |
bool | exists (void) const |
Checks to see if the variable has ever been assigned a value. More... | |
std::string | get_debug_info (void) |
Returns the type of the container along with name and any other useful information. More... | |
std::string | get_name (void) const |
Returns the name of the container. More... | |
KnowledgeUpdateSettings | get_settings (void) |
Gets the update settings for the container. More... | |
bool | is_false (void) const |
Determines if the value is zero. More... | |
bool | is_true (void) const |
Determines if the value is true. More... | |
void | modify (void) |
Mark the value as modified. More... | |
virtual bool | modify_if_false (BaseContainer &conditional) |
Modifies the container if the argument is false. More... | |
virtual bool | modify_if_true (BaseContainer &conditional) |
Modifies the container if the argument is true. More... | |
bool | operator!= (const StringStaged &value) const |
Checks for inequality. More... | |
bool | operator!= (const type &value) const |
Checks for inequality. More... | |
type | operator* (void) const |
Returns the value of the variable. More... | |
type | operator+= (const type &value) |
Increments by a value. More... | |
type | operator-= (const type &value) |
Decrements by a value. More... | |
bool | operator< (const type &value) const |
Checks for less than relationship. More... | |
bool | operator<= (const type &value) const |
Checks for less than or equal to relationship. More... | |
void | operator= (const StringStaged &rhs) |
Assignment operator. More... | |
type | operator= (const type &value) |
Sets the value of the variable. More... | |
bool | operator== (const StringStaged &value) const |
Checks for equality. More... | |
bool | operator== (const type &value) const |
Checks for equality. More... | |
bool | operator> (const type &value) const |
Checks for greater than relationship. More... | |
bool | operator>= (const type &value) const |
Checks for greater than or equal to relationship. More... | |
void | read (void) |
Reads the value from the knowledge base. More... | |
void | set_name (const std::string &var_name, KnowledgeBase &knowledge, bool sync=true) |
Sets the variable name that this refers to. More... | |
void | set_name (const std::string &var_name, Variables &knowledge, bool sync=true) |
Sets the variable name that this refers to. More... | |
void | set_name (const std::string &var_name, ThreadSafeContext &knowledge, bool sync=true) |
Sets the variable name that this refers to. More... | |
void | set_quality (uint32_t quality, const KnowledgeReferenceSettings &settings=KnowledgeReferenceSettings(false)) |
Sets the quality of writing to the variable. More... | |
void | set_settings (const KnowledgeUpdateSettings &settings) |
Sets the update settings for the container. More... | |
double | to_double (void) const |
Returns the value as a double. More... | |
knowledge::KnowledgeRecord::Integer | to_integer (void) const |
Returns the value as an integer (same as *) More... | |
knowledge::KnowledgeRecord | to_record (void) const |
Returns the value as a knowledge::KnowledgeRecord. More... | |
std::string | to_string (void) const |
Returns the value as a string. More... | |
void | write (void) |
Writes the value to the knowledge base. More... | |
Protected Attributes | |
MADARA_LOCK_TYPE | mutex_ |
guard for access and changes More... | |
std::string | name_ |
Prefix of variable. More... | |
KnowledgeUpdateSettings | settings_ |
Settings for modifications. More... | |
Private Member Functions | |
virtual std::string | get_debug_info_ (void) |
Returns the type of the container along with name and any other useful information. More... | |
virtual bool | is_false_ (void) const |
Polymorphic is false method which can be used to determine if at least one value in the container is false. More... | |
virtual bool | is_true_ (void) const |
Polymorphic is true method which can be used to determine if all values in the container are true. More... | |
virtual void | modify_ (void) |
Polymorphic modify method used by collection containers. More... | |
Private Attributes | |
ThreadSafeContext * | context_ |
Variable context that we are modifying. More... | |
bool | has_changed_ |
Tracks if value_ has changed since last read. More... | |
type | value_ |
The staged value. More... | |
VariableReference | variable_ |
Variable reference. More... | |
Stages a string value to and from the knowledge base.
This container is highly optimized for using a staged value (an intermediate value between the user application and the knowledge base) for common operations and then writing that staged value to the knowledge base after operations are complete with the write method. The value is only updated from the knowledge base on construction and when read is called.
Definition at line 38 of file StringStaged.h.
typedef std::string madara::knowledge::containers::StringStaged::type |
trait that describes the value type
Definition at line 42 of file StringStaged.h.
madara::knowledge::containers::StringStaged::StringStaged | ( | const KnowledgeUpdateSettings & | settings = KnowledgeUpdateSettings () | ) |
Default constructor.
settings | settings for updating knowledge |
Definition at line 4 of file StringStaged.cpp.
madara::knowledge::containers::StringStaged::StringStaged | ( | const std::string & | name, |
KnowledgeBase & | knowledge, | ||
const KnowledgeUpdateSettings & | settings = KnowledgeUpdateSettings () |
||
) |
Constructor.
name | name of the integer in the knowledge base |
knowledge | the knowledge base that will contain the vector |
settings | settings for updating knowledge |
Definition at line 10 of file StringStaged.cpp.
madara::knowledge::containers::StringStaged::StringStaged | ( | const std::string & | name, |
Variables & | knowledge, | ||
const KnowledgeUpdateSettings & | settings = KnowledgeUpdateSettings () |
||
) |
Constructor.
name | the name of the map within the variable context |
knowledge | the variable context |
settings | settings for updating knowledge |
Definition at line 21 of file StringStaged.cpp.
madara::knowledge::containers::StringStaged::StringStaged | ( | const std::string & | name, |
KnowledgeBase & | knowledge, | ||
const type & | value, | ||
const KnowledgeUpdateSettings & | settings = KnowledgeUpdateSettings () |
||
) |
Default constructor.
name | name of the integer in the knowledge base |
knowledge | the knowledge base that will contain the vector |
value | new value of the variable in the knowledge base |
settings | settings for updating knowledge |
Definition at line 32 of file StringStaged.cpp.
madara::knowledge::containers::StringStaged::StringStaged | ( | const std::string & | name, |
Variables & | knowledge, | ||
const type & | value, | ||
const KnowledgeUpdateSettings & | settings = KnowledgeUpdateSettings () |
||
) |
Default constructor.
name | name of the integer in the knowledge base |
knowledge | the knowledge base that will contain the vector |
value | new value of the variable in the knowledge base |
settings | settings for updating knowledge |
Definition at line 45 of file StringStaged.cpp.
madara::knowledge::containers::StringStaged::StringStaged | ( | const StringStaged & | rhs | ) |
Copy constructor.
Definition at line 59 of file StringStaged.cpp.
|
virtual |
Destructor.
Definition at line 67 of file StringStaged.cpp.
|
inlinevirtual |
Clones this container.
Implements madara::knowledge::containers::BaseContainer.
Definition at line 38 of file StringStaged.inl.
void madara::knowledge::containers::StringStaged::exchange | ( | containers::StringStaged & | other | ) |
Exchanges the integer at this location with the integer at another location.
other | the other integer to exchange with |
Definition at line 85 of file StringStaged.cpp.
|
inline |
Checks to see if the variable has ever been assigned a value.
Definition at line 189 of file StringStaged.inl.
|
inline |
Returns the type of the container along with name and any other useful information.
The provided information should be useful for developers wishing to debug container operations, especially as it pertains to pending network operations (i.e., when used in conjunction with modify)
Definition at line 19 of file StringStaged.inl.
|
privatevirtual |
Returns the type of the container along with name and any other useful information.
The provided information should be useful for developers wishing to debug container operations, especially as it pertains to pending network operations (i.e., when used in conjunction with modify)
Implements madara::knowledge::containers::BaseContainer.
Definition at line 79 of file StringStaged.cpp.
|
inlineinherited |
Returns the name of the container.
Definition at line 5 of file BaseContainer.inl.
|
inherited |
Gets the update settings for the container.
Definition at line 37 of file BaseContainer.cpp.
|
inline |
Determines if the value is zero.
Definition at line 210 of file StringStaged.inl.
|
privatevirtual |
Polymorphic is false method which can be used to determine if at least one value in the container is false.
Implements madara::knowledge::containers::BaseContainer.
Definition at line 111 of file StringStaged.cpp.
|
inline |
Determines if the value is true.
Definition at line 204 of file StringStaged.inl.
|
privatevirtual |
Polymorphic is true method which can be used to determine if all values in the container are true.
Implements madara::knowledge::containers::BaseContainer.
Definition at line 105 of file StringStaged.cpp.
|
inline |
Mark the value as modified.
The StringStaged retains the same value but will resend its value as if it had been modified.
Definition at line 9 of file StringStaged.inl.
|
privatevirtual |
Polymorphic modify method used by collection containers.
This method calls the modify method for this class. We separate the faster version (modify) from this version (modify_) to allow users the opportunity to have a fastery version that does not use polymorphic functions (generally virtual functions are half as efficient as normal function calls)
Implements madara::knowledge::containers::BaseContainer.
Definition at line 73 of file StringStaged.cpp.
|
virtualinherited |
Modifies the container if the argument is false.
conditional | the container that must be false to modify |
Definition at line 64 of file BaseContainer.cpp.
|
virtualinherited |
Modifies the container if the argument is true.
conditional | the container that must be true to modify |
Definition at line 44 of file BaseContainer.cpp.
|
inline |
Checks for inequality.
value | the value to compare to |
Definition at line 152 of file StringStaged.inl.
|
inline |
Checks for inequality.
value | the value to compare to |
Definition at line 139 of file StringStaged.inl.
|
inline |
Returns the value of the variable.
Definition at line 183 of file StringStaged.inl.
|
inline |
Increments by a value.
value | the value to add |
Definition at line 229 of file StringStaged.inl.
|
inline |
Decrements by a value.
value | the value to remove |
Definition at line 238 of file StringStaged.inl.
|
inline |
Checks for less than relationship.
value | the value to compare to |
Definition at line 159 of file StringStaged.inl.
|
inline |
Checks for less than or equal to relationship.
value | the value to compare to |
Definition at line 165 of file StringStaged.inl.
|
inline |
|
inline |
Sets the value of the variable.
value | the new value of the variable |
Definition at line 126 of file StringStaged.inl.
|
inline |
Checks for equality.
value | the value to compare to |
Definition at line 145 of file StringStaged.inl.
|
inline |
Checks for equality.
value | the value to compare to |
Definition at line 133 of file StringStaged.inl.
|
inline |
Checks for greater than relationship.
value | the value to compare to |
Definition at line 171 of file StringStaged.inl.
|
inline |
Checks for greater than or equal to relationship.
value | the value to compare to |
Definition at line 177 of file StringStaged.inl.
|
inline |
Reads the value from the knowledge base.
Definition at line 273 of file StringStaged.inl.
|
inline |
Sets the variable name that this refers to.
var_name | the name of the variable in the knowledge base |
knowledge | the knowledge base the variable is housed in |
sync | synchronize the value from the underlying knowledge |
Definition at line 60 of file StringStaged.inl.
|
inline |
Sets the variable name that this refers to.
var_name | the name of the variable in the knowledge base |
knowledge | the knowledge base the variable is housed in |
sync | synchronize the value from the underlying knowledge |
Definition at line 104 of file StringStaged.inl.
|
inline |
Sets the variable name that this refers to.
var_name | the name of the variable in the knowledge base |
knowledge | the knowledge base the variable is housed in |
sync | synchronize the value from the underlying knowledge |
Definition at line 82 of file StringStaged.inl.
|
inline |
Sets the quality of writing to the variable.
quality | quality of writing to this location |
settings | settings for referring to knowledge variables |
Definition at line 260 of file StringStaged.inl.
|
inherited |
Sets the update settings for the container.
settings | the new settings to use |
Definition at line 28 of file BaseContainer.cpp.
|
inline |
Returns the value as a double.
Definition at line 247 of file StringStaged.inl.
|
inline |
Returns the value as an integer (same as *)
Definition at line 222 of file StringStaged.inl.
|
inline |
Returns the value as a knowledge::KnowledgeRecord.
This is useful for referencing clock and other record info.
Definition at line 216 of file StringStaged.inl.
|
inline |
Returns the value as a string.
Definition at line 254 of file StringStaged.inl.
|
inline |
Writes the value to the knowledge base.
Definition at line 280 of file StringStaged.inl.
|
private |
Variable context that we are modifying.
Definition at line 362 of file StringStaged.h.
|
private |
Tracks if value_ has changed since last read.
Definition at line 377 of file StringStaged.h.
|
mutableprotectedinherited |
guard for access and changes
Mutex for local changes
Definition at line 141 of file BaseContainer.h.
|
protectedinherited |
Prefix of variable.
Definition at line 151 of file BaseContainer.h.
|
protectedinherited |
Settings for modifications.
Definition at line 156 of file BaseContainer.h.
|
private |
The staged value.
Definition at line 372 of file StringStaged.h.
|
private |
Variable reference.
Definition at line 367 of file StringStaged.h.