#include <DynamicData.h>
Public Member Functions | |
RTPS_DllAPI ReturnCode_t | get_descriptor (MemberDescriptor &value, MemberId id) |
RTPS_DllAPI ReturnCode_t | set_descriptor (MemberId id, const MemberDescriptor *value) |
RTPS_DllAPI ReturnCode_t | clear_all_values () |
RTPS_DllAPI ReturnCode_t | clear_nonkey_values () |
RTPS_DllAPI ReturnCode_t | clear_value (MemberId id) |
RTPS_DllAPI bool | equals (const DynamicData *other) const |
RTPS_DllAPI TypeKind | get_kind () const |
RTPS_DllAPI uint32_t | get_item_count () const |
RTPS_DllAPI std::string | get_name () |
RTPS_DllAPI MemberId | get_member_id_by_name (const std::string &name) const |
RTPS_DllAPI MemberId | get_member_id_at_index (uint32_t index) const |
RTPS_DllAPI DynamicData * | loan_value (MemberId id) |
RTPS_DllAPI ReturnCode_t | return_loaned_value (const DynamicData *value) |
RTPS_DllAPI MemberId | get_array_index (const std::vector< uint32_t > &position) |
RTPS_DllAPI ReturnCode_t | insert_sequence_data (MemberId &outId) |
RTPS_DllAPI ReturnCode_t | insert_int32_value (int32_t value, MemberId &outId) |
RTPS_DllAPI ReturnCode_t | insert_uint32_value (uint32_t value, MemberId &outId) |
RTPS_DllAPI ReturnCode_t | insert_int16_value (int16_t value, MemberId &outId) |
RTPS_DllAPI ReturnCode_t | insert_uint16_value (uint16_t value, MemberId &outId) |
RTPS_DllAPI ReturnCode_t | insert_int64_value (int64_t value, MemberId &outId) |
RTPS_DllAPI ReturnCode_t | insert_uint64_value (uint64_t value, MemberId &outId) |
RTPS_DllAPI ReturnCode_t | insert_float32_value (float value, MemberId &outId) |
RTPS_DllAPI ReturnCode_t | insert_float64_value (double value, MemberId &outId) |
RTPS_DllAPI ReturnCode_t | insert_float128_value (long double value, MemberId &outId) |
RTPS_DllAPI ReturnCode_t | insert_char8_value (char value, MemberId &outId) |
RTPS_DllAPI ReturnCode_t | insert_char16_value (wchar_t value, MemberId &outId) |
RTPS_DllAPI ReturnCode_t | insert_byte_value (octet value, MemberId &outId) |
RTPS_DllAPI ReturnCode_t | insert_bool_value (bool value, MemberId &outId) |
RTPS_DllAPI ReturnCode_t | insert_string_value (const std::string &value, MemberId &outId) |
RTPS_DllAPI ReturnCode_t | insert_wstring_value (const std::wstring &value, MemberId &outId) |
RTPS_DllAPI ReturnCode_t | insert_enum_value (const std::string &value, MemberId &outId) |
RTPS_DllAPI ReturnCode_t | insert_complex_value (const DynamicData *value, MemberId &outId) |
RTPS_DllAPI ReturnCode_t | insert_complex_value (DynamicData *value, MemberId &outId) |
RTPS_DllAPI ReturnCode_t | insert_complex_value (DynamicData_ptr value, MemberId &outId) |
RTPS_DllAPI ReturnCode_t | remove_sequence_data (MemberId id) |
RTPS_DllAPI ReturnCode_t | clear_data () |
RTPS_DllAPI ReturnCode_t | clear_array_data (MemberId indexId) |
RTPS_DllAPI ReturnCode_t | insert_map_data (const DynamicData *key, MemberId &outKeyId, MemberId &outValueId) |
RTPS_DllAPI ReturnCode_t | insert_map_data (const DynamicData *key, DynamicData *value, MemberId &outKey, MemberId &outValue) |
RTPS_DllAPI ReturnCode_t | insert_map_data (const DynamicData *key, const DynamicData *value, MemberId &outKey, MemberId &outValue) |
RTPS_DllAPI ReturnCode_t | insert_map_data (const DynamicData *key, DynamicData_ptr value, MemberId &outKey, MemberId &outValue) |
RTPS_DllAPI ReturnCode_t | remove_map_data (MemberId keyId) |
RTPS_DllAPI ReturnCode_t | get_int32_value (int32_t &value, MemberId id) const |
RTPS_DllAPI ReturnCode_t | set_int32_value (int32_t value, MemberId id=MEMBER_ID_INVALID) |
RTPS_DllAPI ReturnCode_t | get_uint32_value (uint32_t &value, MemberId id) const |
RTPS_DllAPI ReturnCode_t | set_uint32_value (uint32_t value, MemberId id=MEMBER_ID_INVALID) |
RTPS_DllAPI ReturnCode_t | get_int16_value (int16_t &value, MemberId id) const |
RTPS_DllAPI ReturnCode_t | set_int16_value (int16_t value, MemberId id=MEMBER_ID_INVALID) |
RTPS_DllAPI ReturnCode_t | get_uint16_value (uint16_t &value, MemberId id) const |
RTPS_DllAPI ReturnCode_t | set_uint16_value (uint16_t value, MemberId id=MEMBER_ID_INVALID) |
RTPS_DllAPI ReturnCode_t | get_int64_value (int64_t &value, MemberId id) const |
RTPS_DllAPI ReturnCode_t | set_int64_value (int64_t value, MemberId id=MEMBER_ID_INVALID) |
RTPS_DllAPI ReturnCode_t | get_uint64_value (uint64_t &value, MemberId id) const |
RTPS_DllAPI ReturnCode_t | set_uint64_value (uint64_t value, MemberId id=MEMBER_ID_INVALID) |
RTPS_DllAPI ReturnCode_t | get_float32_value (float &value, MemberId id) const |
RTPS_DllAPI ReturnCode_t | set_float32_value (float value, MemberId id=MEMBER_ID_INVALID) |
RTPS_DllAPI ReturnCode_t | get_float64_value (double &value, MemberId id) const |
RTPS_DllAPI ReturnCode_t | set_float64_value (double value, MemberId id=MEMBER_ID_INVALID) |
RTPS_DllAPI ReturnCode_t | get_float128_value (long double &value, MemberId id) const |
RTPS_DllAPI ReturnCode_t | set_float128_value (long double value, MemberId id=MEMBER_ID_INVALID) |
RTPS_DllAPI ReturnCode_t | get_char8_value (char &value, MemberId id) const |
RTPS_DllAPI ReturnCode_t | set_char8_value (char value, MemberId id=MEMBER_ID_INVALID) |
RTPS_DllAPI ReturnCode_t | get_char16_value (wchar_t &value, MemberId id) const |
RTPS_DllAPI ReturnCode_t | set_char16_value (wchar_t value, MemberId id=MEMBER_ID_INVALID) |
RTPS_DllAPI ReturnCode_t | get_byte_value (octet &value, MemberId id) const |
RTPS_DllAPI ReturnCode_t | set_byte_value (octet value, MemberId id=MEMBER_ID_INVALID) |
RTPS_DllAPI ReturnCode_t | get_int8_value (int8_t &value, MemberId id) const |
RTPS_DllAPI ReturnCode_t | set_int8_value (int8_t value, MemberId id=MEMBER_ID_INVALID) |
RTPS_DllAPI ReturnCode_t | get_uint8_value (uint8_t &value, MemberId id) const |
RTPS_DllAPI ReturnCode_t | set_uint8_value (uint8_t value, MemberId id=MEMBER_ID_INVALID) |
RTPS_DllAPI ReturnCode_t | get_bool_value (bool &value, MemberId id) const |
RTPS_DllAPI ReturnCode_t | set_bool_value (bool value, MemberId id=MEMBER_ID_INVALID) |
RTPS_DllAPI ReturnCode_t | set_bool_value (bool value, const std::string &name) |
RTPS_DllAPI ReturnCode_t | get_string_value (std::string &value, MemberId id) const |
RTPS_DllAPI ReturnCode_t | set_string_value (const std::string &value, MemberId id=MEMBER_ID_INVALID) |
RTPS_DllAPI ReturnCode_t | get_wstring_value (std::wstring &value, MemberId id) const |
RTPS_DllAPI ReturnCode_t | set_wstring_value (const std::wstring &value, MemberId id=MEMBER_ID_INVALID) |
RTPS_DllAPI ReturnCode_t | get_enum_value (std::string &value, MemberId id) const |
RTPS_DllAPI ReturnCode_t | set_enum_value (const std::string &value, MemberId id=MEMBER_ID_INVALID) |
RTPS_DllAPI ReturnCode_t | get_enum_value (uint32_t &value, MemberId id) const |
RTPS_DllAPI ReturnCode_t | set_enum_value (const uint32_t &value, MemberId id=MEMBER_ID_INVALID) |
RTPS_DllAPI ReturnCode_t | get_bitmask_value (uint64_t &value) const |
RTPS_DllAPI uint64_t | get_bitmask_value () const |
RTPS_DllAPI ReturnCode_t | set_bitmask_value (uint64_t value) |
RTPS_DllAPI ReturnCode_t | get_complex_value (DynamicData **value, MemberId id) const |
RTPS_DllAPI ReturnCode_t | set_complex_value (DynamicData *value, MemberId id=MEMBER_ID_INVALID) |
RTPS_DllAPI ReturnCode_t | get_union_label (uint64_t &value) const |
RTPS_DllAPI int32_t | get_int32_value (MemberId id) const |
RTPS_DllAPI uint32_t | get_uint32_value (MemberId id) const |
RTPS_DllAPI int16_t | get_int16_value (MemberId id) const |
RTPS_DllAPI uint16_t | get_uint16_value (MemberId id) const |
RTPS_DllAPI int64_t | get_int64_value (MemberId id) const |
RTPS_DllAPI uint64_t | get_uint64_value (MemberId id) const |
RTPS_DllAPI float | get_float32_value (MemberId id) const |
RTPS_DllAPI double | get_float64_value (MemberId id) const |
RTPS_DllAPI long double | get_float128_value (MemberId id) const |
RTPS_DllAPI char | get_char8_value (MemberId id) const |
RTPS_DllAPI wchar_t | get_char16_value (MemberId id) const |
RTPS_DllAPI octet | get_byte_value (MemberId id) const |
RTPS_DllAPI int8_t | get_int8_value (MemberId id) const |
RTPS_DllAPI uint8_t | get_uint8_value (MemberId id) const |
RTPS_DllAPI bool | get_bool_value (MemberId id) const |
RTPS_DllAPI bool | get_bool_value (const std::string &name) const |
RTPS_DllAPI std::string | get_string_value (MemberId id) const |
RTPS_DllAPI std::wstring | get_wstring_value (MemberId id) const |
RTPS_DllAPI std::string | get_enum_value (MemberId id) const |
RTPS_DllAPI uint64_t | get_union_label () const |
RTPS_DllAPI uint64_t | get_discriminator_value () const |
RTPS_DllAPI void | get_discriminator_value (uint64_t &outValue) const |
RTPS_DllAPI void | set_discriminator_value (uint64_t value) |
Protected Member Functions | |
DynamicData () | |
DynamicData (const DynamicData *pData) | |
DynamicData (DynamicType_ptr pType) | |
~DynamicData () | |
void | add_value (TypeKind kind, MemberId id) |
void | create_members (DynamicType_ptr pType) |
void | create_members (const DynamicData *pData) |
void | clean () |
void | clean_members () |
void * | clone_value (MemberId id, TypeKind kind) const |
bool | compare_values (TypeKind kind, void *left, void *right) const |
ReturnCode_t | insert_array_data (MemberId indexId) |
void | serialize_empty_data (const DynamicType_ptr pType, eprosima::fastcdr::Cdr &cdr) const |
void | set_default_value (MemberId id) |
void | get_value (std::string &sOutValue, MemberId id=MEMBER_ID_INVALID) const |
void | set_value (const std::string &sValue, MemberId id=MEMBER_ID_INVALID) |
void | set_type_name (const std::string &name) |
MemberId | get_union_id () const |
ReturnCode_t | set_union_id (MemberId id) |
void | update_union_discriminator () |
void | sort_member_ids (MemberId startId) |
void | set_union_discriminator (DynamicData *pData) |
bool | deserialize (eprosima::fastcdr::Cdr &cdr) |
bool | deserialize_discriminator (eprosima::fastcdr::Cdr &cdr) |
void | serialize (eprosima::fastcdr::Cdr &cdr) const |
void | serialize_discriminator (eprosima::fastcdr::Cdr &cdr) const |
void | serializeKey (eprosima::fastcdr::Cdr &cdr) const |
Static Protected Member Functions | |
static size_t | getCdrSerializedSize (const DynamicData *data, size_t current_alignment=0) |
static size_t | getEmptyCdrSerializedSize (const DynamicType *type, size_t current_alignment=0) |
static size_t | getKeyMaxCdrSerializedSize (const DynamicType_ptr type, size_t current_alignment=0) |
static size_t | getMaxCdrSerializedSize (const DynamicType_ptr type, size_t current_alignment=0) |
Protected Attributes | |
DynamicType_ptr | type_ |
std::map< MemberId, MemberDescriptor * > | descriptors_ |
std::map< MemberId, void * > | values_ |
std::vector< MemberId > | loaned_values_ |
bool | key_element_ |
DynamicData * | default_array_value_ |
uint64_t | union_label_ |
MemberId | union_id_ |
DynamicData * | union_discriminator_ |
uint64_t | discriminator_value_ |
Friends | |
class | DynamicDataFactory |
class | DynamicPubSubType |
class | DynamicDataHelper |
class | eprosima::fastdds::dds::DDSSQLFilter::DDSFilterExpression |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
RTPS_DllAPI ReturnCode_t clear_all_values | ( | ) |
RTPS_DllAPI ReturnCode_t clear_array_data | ( | MemberId | indexId | ) |
RTPS_DllAPI ReturnCode_t clear_data | ( | ) |
RTPS_DllAPI ReturnCode_t clear_nonkey_values | ( | ) |
RTPS_DllAPI ReturnCode_t clear_value | ( | MemberId | id | ) |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
RTPS_DllAPI bool equals | ( | const DynamicData * | other | ) | const |
RTPS_DllAPI MemberId get_array_index | ( | const std::vector< uint32_t > & | position | ) |
|
inline |
RTPS_DllAPI ReturnCode_t get_bitmask_value | ( | uint64_t & | value | ) | const |
RTPS_DllAPI ReturnCode_t get_bool_value | ( | bool & | value, |
MemberId | id | ||
) | const |
|
inline |
|
inline |
|
inline |
RTPS_DllAPI ReturnCode_t get_byte_value | ( | octet & | value, |
MemberId | id | ||
) | const |
|
inline |
RTPS_DllAPI ReturnCode_t get_char16_value | ( | wchar_t & | value, |
MemberId | id | ||
) | const |
RTPS_DllAPI ReturnCode_t get_char8_value | ( | char & | value, |
MemberId | id | ||
) | const |
|
inline |
RTPS_DllAPI ReturnCode_t get_complex_value | ( | DynamicData ** | value, |
MemberId | id | ||
) | const |
RTPS_DllAPI ReturnCode_t get_descriptor | ( | MemberDescriptor & | value, |
MemberId | id | ||
) |
|
inline |
|
inline |
|
inline |
RTPS_DllAPI ReturnCode_t get_enum_value | ( | std::string & | value, |
MemberId | id | ||
) | const |
RTPS_DllAPI ReturnCode_t get_enum_value | ( | uint32_t & | value, |
MemberId | id | ||
) | const |
RTPS_DllAPI ReturnCode_t get_float128_value | ( | long double & | value, |
MemberId | id | ||
) | const |
|
inline |
RTPS_DllAPI ReturnCode_t get_float32_value | ( | float & | value, |
MemberId | id | ||
) | const |
|
inline |
RTPS_DllAPI ReturnCode_t get_float64_value | ( | double & | value, |
MemberId | id | ||
) | const |
|
inline |
RTPS_DllAPI ReturnCode_t get_int16_value | ( | int16_t & | value, |
MemberId | id | ||
) | const |
|
inline |
RTPS_DllAPI ReturnCode_t get_int32_value | ( | int32_t & | value, |
MemberId | id | ||
) | const |
|
inline |
RTPS_DllAPI ReturnCode_t get_int64_value | ( | int64_t & | value, |
MemberId | id | ||
) | const |
|
inline |
|
inline |
|
inline |
RTPS_DllAPI uint32_t get_item_count | ( | ) | const |
RTPS_DllAPI TypeKind get_kind | ( | ) | const |
RTPS_DllAPI MemberId get_member_id_at_index | ( | uint32_t | index | ) | const |
RTPS_DllAPI MemberId get_member_id_by_name | ( | const std::string & | name | ) | const |
RTPS_DllAPI std::string get_name | ( | ) |
|
inline |
RTPS_DllAPI ReturnCode_t get_string_value | ( | std::string & | value, |
MemberId | id | ||
) | const |
|
inline |
RTPS_DllAPI ReturnCode_t get_uint16_value | ( | uint16_t & | value, |
MemberId | id | ||
) | const |
|
inline |
RTPS_DllAPI ReturnCode_t get_uint32_value | ( | uint32_t & | value, |
MemberId | id | ||
) | const |
|
inline |
RTPS_DllAPI ReturnCode_t get_uint64_value | ( | uint64_t & | value, |
MemberId | id | ||
) | const |
|
inline |
|
inline |
|
protected |
|
inline |
RTPS_DllAPI ReturnCode_t get_union_label | ( | uint64_t & | value | ) | const |
|
protected |
|
inline |
RTPS_DllAPI ReturnCode_t get_wstring_value | ( | std::wstring & | value, |
MemberId | id | ||
) | const |
|
staticprotected |
|
staticprotected |
|
staticprotected |
|
staticprotected |
|
protected |
RTPS_DllAPI ReturnCode_t insert_bool_value | ( | bool | value, |
MemberId & | outId | ||
) |
RTPS_DllAPI ReturnCode_t insert_byte_value | ( | octet | value, |
MemberId & | outId | ||
) |
RTPS_DllAPI ReturnCode_t insert_char16_value | ( | wchar_t | value, |
MemberId & | outId | ||
) |
RTPS_DllAPI ReturnCode_t insert_char8_value | ( | char | value, |
MemberId & | outId | ||
) |
RTPS_DllAPI ReturnCode_t insert_complex_value | ( | const DynamicData * | value, |
MemberId & | outId | ||
) |
RTPS_DllAPI ReturnCode_t insert_complex_value | ( | DynamicData * | value, |
MemberId & | outId | ||
) |
RTPS_DllAPI ReturnCode_t insert_complex_value | ( | DynamicData_ptr | value, |
MemberId & | outId | ||
) |
RTPS_DllAPI ReturnCode_t insert_enum_value | ( | const std::string & | value, |
MemberId & | outId | ||
) |
RTPS_DllAPI ReturnCode_t insert_float128_value | ( | long double | value, |
MemberId & | outId | ||
) |
RTPS_DllAPI ReturnCode_t insert_float32_value | ( | float | value, |
MemberId & | outId | ||
) |
RTPS_DllAPI ReturnCode_t insert_float64_value | ( | double | value, |
MemberId & | outId | ||
) |
RTPS_DllAPI ReturnCode_t insert_int16_value | ( | int16_t | value, |
MemberId & | outId | ||
) |
RTPS_DllAPI ReturnCode_t insert_int32_value | ( | int32_t | value, |
MemberId & | outId | ||
) |
RTPS_DllAPI ReturnCode_t insert_int64_value | ( | int64_t | value, |
MemberId & | outId | ||
) |
RTPS_DllAPI ReturnCode_t insert_map_data | ( | const DynamicData * | key, |
const DynamicData * | value, | ||
MemberId & | outKey, | ||
MemberId & | outValue | ||
) |
RTPS_DllAPI ReturnCode_t insert_map_data | ( | const DynamicData * | key, |
DynamicData * | value, | ||
MemberId & | outKey, | ||
MemberId & | outValue | ||
) |
RTPS_DllAPI ReturnCode_t insert_map_data | ( | const DynamicData * | key, |
DynamicData_ptr | value, | ||
MemberId & | outKey, | ||
MemberId & | outValue | ||
) |
RTPS_DllAPI ReturnCode_t insert_map_data | ( | const DynamicData * | key, |
MemberId & | outKeyId, | ||
MemberId & | outValueId | ||
) |
RTPS_DllAPI ReturnCode_t insert_sequence_data | ( | MemberId & | outId | ) |
RTPS_DllAPI ReturnCode_t insert_string_value | ( | const std::string & | value, |
MemberId & | outId | ||
) |
RTPS_DllAPI ReturnCode_t insert_uint16_value | ( | uint16_t | value, |
MemberId & | outId | ||
) |
RTPS_DllAPI ReturnCode_t insert_uint32_value | ( | uint32_t | value, |
MemberId & | outId | ||
) |
RTPS_DllAPI ReturnCode_t insert_uint64_value | ( | uint64_t | value, |
MemberId & | outId | ||
) |
RTPS_DllAPI ReturnCode_t insert_wstring_value | ( | const std::wstring & | value, |
MemberId & | outId | ||
) |
RTPS_DllAPI DynamicData * loan_value | ( | MemberId | id | ) |
RTPS_DllAPI ReturnCode_t remove_map_data | ( | MemberId | keyId | ) |
RTPS_DllAPI ReturnCode_t remove_sequence_data | ( | MemberId | id | ) |
RTPS_DllAPI ReturnCode_t return_loaned_value | ( | const DynamicData * | value | ) |
|
protected |
|
protected |
|
protected |
|
protected |
RTPS_DllAPI ReturnCode_t set_bitmask_value | ( | uint64_t | value | ) |
|
inline |
RTPS_DllAPI ReturnCode_t set_bool_value | ( | bool | value, |
MemberId | id = MEMBER_ID_INVALID |
||
) |
RTPS_DllAPI ReturnCode_t set_byte_value | ( | octet | value, |
MemberId | id = MEMBER_ID_INVALID |
||
) |
RTPS_DllAPI ReturnCode_t set_char16_value | ( | wchar_t | value, |
MemberId | id = MEMBER_ID_INVALID |
||
) |
RTPS_DllAPI ReturnCode_t set_char8_value | ( | char | value, |
MemberId | id = MEMBER_ID_INVALID |
||
) |
RTPS_DllAPI ReturnCode_t set_complex_value | ( | DynamicData * | value, |
MemberId | id = MEMBER_ID_INVALID |
||
) |
|
protected |
RTPS_DllAPI ReturnCode_t set_descriptor | ( | MemberId | id, |
const MemberDescriptor * | value | ||
) |
|
inline |
RTPS_DllAPI ReturnCode_t set_enum_value | ( | const std::string & | value, |
MemberId | id = MEMBER_ID_INVALID |
||
) |
RTPS_DllAPI ReturnCode_t set_enum_value | ( | const uint32_t & | value, |
MemberId | id = MEMBER_ID_INVALID |
||
) |
RTPS_DllAPI ReturnCode_t set_float128_value | ( | long double | value, |
MemberId | id = MEMBER_ID_INVALID |
||
) |
RTPS_DllAPI ReturnCode_t set_float32_value | ( | float | value, |
MemberId | id = MEMBER_ID_INVALID |
||
) |
RTPS_DllAPI ReturnCode_t set_float64_value | ( | double | value, |
MemberId | id = MEMBER_ID_INVALID |
||
) |
RTPS_DllAPI ReturnCode_t set_int16_value | ( | int16_t | value, |
MemberId | id = MEMBER_ID_INVALID |
||
) |
RTPS_DllAPI ReturnCode_t set_int32_value | ( | int32_t | value, |
MemberId | id = MEMBER_ID_INVALID |
||
) |
RTPS_DllAPI ReturnCode_t set_int64_value | ( | int64_t | value, |
MemberId | id = MEMBER_ID_INVALID |
||
) |
|
inline |
RTPS_DllAPI ReturnCode_t set_string_value | ( | const std::string & | value, |
MemberId | id = MEMBER_ID_INVALID |
||
) |
|
protected |
RTPS_DllAPI ReturnCode_t set_uint16_value | ( | uint16_t | value, |
MemberId | id = MEMBER_ID_INVALID |
||
) |
RTPS_DllAPI ReturnCode_t set_uint32_value | ( | uint32_t | value, |
MemberId | id = MEMBER_ID_INVALID |
||
) |
RTPS_DllAPI ReturnCode_t set_uint64_value | ( | uint64_t | value, |
MemberId | id = MEMBER_ID_INVALID |
||
) |
|
inline |
|
protected |
|
protected |
|
protected |
RTPS_DllAPI ReturnCode_t set_wstring_value | ( | const std::wstring & | value, |
MemberId | id = MEMBER_ID_INVALID |
||
) |
|
protected |
|
protected |
|
friend |
|
friend |
|
friend |
|
friend |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |