Comments, minor consting, use a better target for sizeof in AP_VarT

git-svn-id: https://arducopter.googlecode.com/svn/trunk@1578 f9c3cf11-9bcb-44bc-f272-b75c42450872
This commit is contained in:
DrZiplok@gmail.com 2011-01-30 20:14:42 +00:00
parent f6dec2503e
commit 072103ef07

View File

@ -146,6 +146,8 @@ public:
/// ///
static const Flags k_flag_unlisted = (1 << 3); static const Flags k_flag_unlisted = (1 << 3);
/// @todo Flag that indicates variable is non-volatile (auto-saved when set).
static AP_Meta_class::Type_id k_typeid_float; ///< meta_type_id() value for AP_Float static AP_Meta_class::Type_id k_typeid_float; ///< meta_type_id() value for AP_Float
static AP_Meta_class::Type_id k_typeid_float16; ///< meta_type_id() value for AP_Float16 static AP_Meta_class::Type_id k_typeid_float16; ///< meta_type_id() value for AP_Float16
static AP_Meta_class::Type_id k_typeid_int32; ///< meta_type_id() value for AP_Int32 static AP_Meta_class::Type_id k_typeid_int32; ///< meta_type_id() value for AP_Int32
@ -457,7 +459,7 @@ public:
/// @param name An optional name by which the variable may be known. /// @param name An optional name by which the variable may be known.
/// @param flags Optional flags that may affect the behaviour of the variable. /// @param flags Optional flags that may affect the behaviour of the variable.
/// ///
AP_VarT<T> (T initial_value = 0, AP_VarT<T> (const T initial_value = 0,
Key key = k_key_none, Key key = k_key_none,
const prog_char *name = NULL, const prog_char *name = NULL,
Flags flags = k_flags_none) : Flags flags = k_flags_none) :
@ -478,7 +480,7 @@ public:
/// @param name An optional name by which the variable may be known. /// @param name An optional name by which the variable may be known.
/// @param flags Optional flags that may affect the behaviour of the variable. /// @param flags Optional flags that may affect the behaviour of the variable.
/// ///
AP_VarT<T> (AP_Var_group *group, AP_VarT<T> (AP_Var_group *group, // XXX maybe make this a ref?
Key index, Key index,
T initial_value, T initial_value,
const prog_char *name = NULL, const prog_char *name = NULL,
@ -491,19 +493,19 @@ public:
// serialize _value into the buffer, but only if it is big enough. // serialize _value into the buffer, but only if it is big enough.
// //
virtual size_t serialize(void *buf, size_t size) const { virtual size_t serialize(void *buf, size_t size) const {
if (size >= sizeof(T)) { if (size >= sizeof(_value)) {
*(T *)buf = _value; *(T *)buf = _value;
} }
return sizeof(T); return sizeof(_value);
} }
// Unserialize from the buffer, but only if it is big enough. // Unserialize from the buffer, but only if it is big enough.
// //
virtual size_t unserialize(void *buf, size_t size) { virtual size_t unserialize(void *buf, size_t size) {
if (size >= sizeof(T)) { if (size >= sizeof(_value)) {
_value = *(T *)buf; _value = *(T *)buf;
} }
return sizeof(T); return sizeof(_value);
} }
/// Value getter /// Value getter
@ -518,6 +520,12 @@ public:
_value = v; _value = v;
} }
/// Combined set and save
void set_and_save(T v) {
set(v);
save();
}
/// Conversion to T returns a reference to the value. /// Conversion to T returns a reference to the value.
/// ///
/// This allows the class to be used in many situations where the value would be legal. /// This allows the class to be used in many situations where the value would be legal.