Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "model_impl.h"
00021
00022 #include <opc/ua/model.h>
00023
00024 namespace OpcUa
00025 {
00026 namespace Model
00027 {
00028
00029 ObjectType::ObjectType(NodeId objectId, Services::SharedPtr services)
00030 : Node(services)
00031 {
00032 Id = objectId;
00033 ReadParameters attrs;
00034 attrs.AttributesToRead.push_back(ToReadValueId(objectId, AttributeId::DisplayName));
00035 attrs.AttributesToRead.push_back(ToReadValueId(objectId, AttributeId::BrowseName));
00036 attrs.AttributesToRead.push_back(ToReadValueId(objectId, AttributeId::IsAbstract));
00037 std::vector<DataValue> values = services->Attributes()->Read(attrs);
00038 DisplayName = values[0].Value.As<LocalizedText>();
00039 BrowseName = values[1].Value.As<QualifiedName>();
00040 Abstract = values[2].Value.As<bool>();
00041 }
00042
00043 bool ObjectType::IsAbstract() const
00044 {
00045 return false;
00046 }
00047
00048 std::vector<Variable> ObjectType::Variables() const
00049 {
00050 return Browse<Variable>(GetId(), NodeClass::Variable, GetServices());
00051 }
00052
00053 std::vector<Object> ObjectType::Objects() const
00054 {
00055 return Browse<Object>(GetId(), NodeClass::Object, GetServices());
00056 }
00057
00058 std::vector<ObjectType> ObjectType::SubTypes() const
00059 {
00060 return Browse<ObjectType>(GetId(), NodeClass::ObjectType, GetServices());
00061 }
00062
00063 ObjectType ObjectType::Parent() const
00064 {
00065 return ObjectType(ObjectId::Null, GetServices());
00066 }
00067
00068 }
00069 }