/home/travis/build/open62541/open62541/src/server/ua_nodes.h
Go to the documentation of this file.
00001 #ifndef UA_NODES_H_
00002 #define UA_NODES_H_
00003 
00004 #include "ua_server.h"
00005 #include "ua_types_generated.h"
00006 #include "ua_types_encoding_binary.h"
00007 
00008 #define UA_STANDARD_NODEMEMBERS                 \
00009     UA_NodeId nodeId;                           \
00010     UA_NodeClass nodeClass;                     \
00011     UA_QualifiedName browseName;                \
00012     UA_LocalizedText displayName;               \
00013     UA_LocalizedText description;               \
00014     UA_UInt32 writeMask;                        \
00015     UA_UInt32 userWriteMask;                    \
00016     UA_Int32 referencesSize;                    \
00017     UA_ReferenceNode *references;
00018 
00019 typedef struct {
00020     UA_STANDARD_NODEMEMBERS
00021 } UA_Node;
00022 
00023 typedef struct {
00024     UA_STANDARD_NODEMEMBERS
00025     UA_Byte eventNotifier;
00026 } UA_ObjectNode;
00027 UA_TYPE_HANDLING_FUNCTIONS(UA_ObjectNode)
00028 
00029 typedef struct {
00030     UA_STANDARD_NODEMEMBERS
00031     UA_Boolean isAbstract;
00032 } UA_ObjectTypeNode;
00033 UA_TYPE_HANDLING_FUNCTIONS(UA_ObjectTypeNode)
00034 
00035 typedef enum {
00036     UA_VALUESOURCE_VARIANT,
00037     UA_VALUESOURCE_DATASOURCE
00038 } UA_ValueSource;
00039 
00040 typedef struct {
00041     UA_STANDARD_NODEMEMBERS
00042     UA_Int32 valueRank; 
00047     UA_ValueSource valueSource;
00048     union {
00049         UA_Variant variant;
00050         UA_DataSource dataSource;
00051     } value;
00052     /* <--- similar to variabletypenodes up to there--->*/
00053     UA_Byte accessLevel;
00054     UA_Byte userAccessLevel;
00055     UA_Double minimumSamplingInterval;
00056     UA_Boolean historizing;
00057 } UA_VariableNode;
00058 UA_TYPE_HANDLING_FUNCTIONS(UA_VariableNode)
00060 UA_StatusCode UA_VariableNode_copyWithoutRefsAndVariable(const UA_VariableNode *src, UA_VariableNode *dst);
00061 
00062 typedef struct {
00063     UA_STANDARD_NODEMEMBERS
00064     UA_Int32 valueRank;
00065     UA_ValueSource valueSource;
00066     union {
00067         UA_Variant variant;
00068         UA_DataSource dataSource;
00069     } value;
00070     /* <--- similar to variablenodes up to there--->*/
00071     UA_Boolean isAbstract;
00072 } UA_VariableTypeNode;
00073 UA_TYPE_HANDLING_FUNCTIONS(UA_VariableTypeNode)
00074 
00075 typedef struct {
00076     UA_STANDARD_NODEMEMBERS
00077     UA_Boolean isAbstract;
00078     UA_Boolean symmetric;
00079     UA_LocalizedText inverseName;
00080 } UA_ReferenceTypeNode;
00081 UA_TYPE_HANDLING_FUNCTIONS(UA_ReferenceTypeNode)
00082 
00083 typedef struct {
00084     UA_STANDARD_NODEMEMBERS
00085     UA_Boolean executable;
00086     UA_Boolean userExecutable;
00087 } UA_MethodNode;
00088 UA_TYPE_HANDLING_FUNCTIONS(UA_MethodNode)
00089 
00090 typedef struct {
00091     UA_STANDARD_NODEMEMBERS
00092     UA_Boolean containsNoLoops;
00093     UA_Byte eventNotifier;
00094 } UA_ViewNode;
00095 UA_TYPE_HANDLING_FUNCTIONS(UA_ViewNode)
00096 
00097 typedef struct {
00098     UA_STANDARD_NODEMEMBERS
00099     UA_Boolean isAbstract;
00100 } UA_DataTypeNode;
00101 UA_TYPE_HANDLING_FUNCTIONS(UA_DataTypeNode)
00102 
00103 #endif /* UA_NODES_H_ */