MCPcopy Create free account
hub / github.com/OpenZWave/open-zwave / CreateValueFromXML

Method CreateValueFromXML

cpp/src/Node.cpp:2762–2804  ·  view source on GitHub ↗

----------------------------------------------------------------------------- Get the value object with the specified ID -----------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

2760// Get the value object with the specified ID
2761//-----------------------------------------------------------------------------
2762bool Node::CreateValueFromXML
2763(
2764 uint8 const _commandClassId,
2765 TiXmlElement const* _valueElement
2766)
2767{
2768 Value* value = NULL;
2769
2770 // Create the value
2771 ValueID::ValueType type = Value::GetTypeEnumFromName( _valueElement->Attribute( "type" ) );
2772
2773 switch( type )
2774 {
2775 case ValueID::ValueType_BitSet: { value = new ValueBitSet(); break; }
2776 case ValueID::ValueType_Bool: { value = new ValueBool(); break; }
2777 case ValueID::ValueType_Byte: { value = new ValueByte(); break; }
2778 case ValueID::ValueType_Decimal: { value = new ValueDecimal(); break; }
2779 case ValueID::ValueType_Int: { value = new ValueInt(); break; }
2780 case ValueID::ValueType_List: { value = new ValueList(); break; }
2781 case ValueID::ValueType_Schedule: { value = new ValueSchedule(); break; }
2782 case ValueID::ValueType_Short: { value = new ValueShort(); break; }
2783 case ValueID::ValueType_String: { value = new ValueString(); break; }
2784 case ValueID::ValueType_Button: { value = new ValueButton(); break; }
2785 case ValueID::ValueType_Raw: { value = new ValueRaw(); break; }
2786 }
2787
2788 if( value )
2789 {
2790 value->ReadXML( m_homeId, m_nodeId, _commandClassId, _valueElement );
2791 ValueStore* store = GetValueStore();
2792 if( store->AddValue( value ) )
2793 {
2794 value->Release();
2795 return true;
2796 }
2797
2798 value->Release();
2799 } else {
2800 Log::Write( LogLevel_Info, m_nodeId, "Unknown ValueType in XML: %s", _valueElement->Attribute( "type" ) );
2801 }
2802
2803 return false;
2804}
2805
2806//-----------------------------------------------------------------------------
2807// <Node::ReadValueFromXML>

Callers

nothing calls this directly

Calls 5

WriteFunction · 0.85
AttributeMethod · 0.80
ReadXMLMethod · 0.45
AddValueMethod · 0.45
ReleaseMethod · 0.45

Tested by

no test coverage detected