Skip to content

Commit 47feead

Browse files
Revert "Generate EncodingMask encoding and decoding according to the current SDK release (#212)"
Does not work, breaks many things.
1 parent 6ba561e commit 47feead

File tree

9 files changed

+94
-226
lines changed

9 files changed

+94
-226
lines changed

Opc.Ua.ModelCompiler/ModelGenerator2.cs

Lines changed: 4 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -3815,14 +3815,6 @@ private bool WriteTemplate_ListOfTypes(Template template, Context context)
38153815
new LoadTemplateEventHandler(LoadTemplate_ListOfEncodingMaskFields),
38163816
null);
38173817

3818-
AddTemplate(
3819-
template,
3820-
"// EncodingMaskProperty",
3821-
TemplatePath + "Version2.EncodingMaskProperty.cs",
3822-
new DataTypeDesign[] { dataType },
3823-
new LoadTemplateEventHandler(LoadTemplate_EncodingMaskProperty),
3824-
new WriteTemplateEventHandler(WriteTemplate_EncodingMaskProperty));
3825-
38263818
AddTemplate(
38273819
template,
38283820
"// ListOfEncodedFields",
@@ -4604,7 +4596,7 @@ private string LoadTemplate_ListOfEncodedFields(Template template, Context conte
46044596

46054597
if (field.IsOptional)
46064598
{
4607-
template.Write($"if ((EncodingMask & {dataType.ClassName}Fields.{field.Name}) != 0) ");
4599+
template.Write($"if ((EncodingMask & (uint){dataType.ClassName}Fields.{field.Name}) != 0) ");
46084600
}
46094601

46104602
string functionName = field.DataTypeNode.BasicDataType.ToString();
@@ -4775,7 +4767,7 @@ private string LoadTemplate_ListOfDecodedFields(Template template, Context conte
47754767

47764768
if (field.IsOptional)
47774769
{
4778-
template.Write($"if ((EncodingMask & {dataType.ClassName}Fields.{field.Name}) != 0) ");
4770+
template.Write($"if ((EncodingMask & (uint){dataType.ClassName}Fields.{field.Name}) != 0) ");
47794771
}
47804772

47814773
string functionName = field.DataTypeNode.BasicDataType.ToString();
@@ -4933,7 +4925,7 @@ private string LoadTemplate_ListOfComparedFields(Template template, Context cont
49334925

49344926
if (field.IsOptional)
49354927
{
4936-
template.Write($"if ((EncodingMask & {dataType.ClassName}Fields.{field.Name}) != 0) ");
4928+
template.Write($"if ((EncodingMask & (uint){dataType.ClassName}Fields.{field.Name}) != 0) ");
49374929
}
49384930

49394931
template.Write("if (!Utils.IsEqual({0}, value.{0})) return false;", GetChildFieldName(field));
@@ -4968,7 +4960,7 @@ private string LoadTemplate_ListOfClonedFields(Template template, Context contex
49684960

49694961
if (field.IsOptional)
49704962
{
4971-
template.Write($"if ((EncodingMask & {dataType.ClassName}Fields.{field.Name}) != 0) ");
4963+
template.Write($"if ((EncodingMask & (uint){dataType.ClassName}Fields.{field.Name}) != 0) ");
49724964
}
49734965

49744966
template.Write("clone.{0} = ({1})Utils.Clone(this.{0});", GetChildFieldName(field), GetSystemTypeName(field.DataTypeNode, field.ValueRank));
@@ -5384,54 +5376,6 @@ private bool WriteTemplate_InitializeOptionalChildren(Template template, Context
53845376
}
53855377
#endregion
53865378

5387-
#region "// EncodingMaskProperty"
5388-
5389-
private string LoadTemplate_EncodingMaskProperty(Template template, Context context)
5390-
{
5391-
if (context.Target is not DataTypeDesign _)
5392-
{
5393-
return null;
5394-
}
5395-
5396-
return TemplatePath + "Version2.DataTypes.EncodingMaskProperty.cs";
5397-
}
5398-
5399-
private bool WriteTemplate_EncodingMaskProperty(Template template, Context context)
5400-
{
5401-
if (context.Target is not DataTypeDesign dataType)
5402-
{
5403-
return false;
5404-
}
5405-
5406-
template.AddReplacement("_hide_by_new_", IsFirstDataTypeWithOptionalFields(dataType) ? string.Empty : "new ");
5407-
template.AddReplacement("_ClassName_", dataType.ClassName);
5408-
5409-
var result = template.WriteTemplate(context);
5410-
template.WriteLine(string.Empty);
5411-
5412-
return result;
5413-
}
5414-
5415-
private static bool HasOptionalFields(DataTypeDesign dataType)
5416-
{
5417-
return dataType.Fields?.Any(field => field.IsOptional) ?? false;
5418-
}
5419-
5420-
private static bool HasOptionalFieldsInherited(DataTypeDesign dataType)
5421-
{
5422-
return dataType.BaseTypeNode is DataTypeDesign baseDataType
5423-
&& (HasOptionalFields(baseDataType) || HasOptionalFieldsInherited(baseDataType));
5424-
}
5425-
5426-
private static bool IsFirstDataTypeWithOptionalFields(DataTypeDesign dataType)
5427-
{
5428-
return dataType.IsStructure
5429-
&& HasOptionalFields(dataType)
5430-
&& !HasOptionalFieldsInherited(dataType);
5431-
}
5432-
5433-
#endregion
5434-
54355379
#region "// ListOfPropertiesForType and // ListOfProperties"
54365380
private string LoadTemplate_ListOfPropertiesForType(Template template, Context context)
54375381
{

Opc.Ua.ModelCompiler/Opc.Ua.ModelCompiler.csproj

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -471,7 +471,6 @@
471471
<EmbeddedResource Include="Templates\Version2\DataTypes\DerivedClass.cs" />
472472
<EmbeddedResource Include="Templates\Version2\DataTypes\Enumeration.cs" />
473473
<EmbeddedResource Include="Templates\Version2\DataTypes\EnumerationValue.cs" />
474-
<EmbeddedResource Include="Templates\Version2\DataTypes\EncodingMaskProperty.cs" />
475474
<EmbeddedResource Include="Templates\Version2\DataTypes\Property.cs" />
476475
<EmbeddedResource Include="Templates\Version2\File.cs" />
477476
<EmbeddedResource Include="Templates\Version2\FindChildCase.cs" />

Opc.Ua.ModelCompiler/Templates/Version2/ConstantsFile.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
*
2727
* The complete license agreement can be found here:
2828
* http://opcfoundation.org/License/MIT/1.00/
29-
* <auto-generated/>
3029
* ======================================================================*/
3130

3231
using System;

Opc.Ua.ModelCompiler/Templates/Version2/DataTypes/Class.cs

Lines changed: 10 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -8,33 +8,9 @@ namespace X {
88
[DataContract(Namespace = _XmlNamespaceUri_)]
99
public _IsAbstract_partial class _BrowseName_ : IEncodeable, IJsonEncodeable
1010
{
11-
#region Fields
12-
13-
private readonly ExpandedNodeId _typeId;
14-
private readonly ExpandedNodeId _binaryEncodingId;
15-
private readonly ExpandedNodeId _xmlEncodingId;
16-
private readonly ExpandedNodeId _jsonEncodingId;
17-
18-
#endregion
19-
2011
#region Constructors
21-
/// <remarks />
22-
public _BrowseName_() : this(
23-
DataTypeIds._BrowseName_,
24-
ObjectIds._BrowseName__Encoding_DefaultBinary,
25-
ObjectIds._BrowseName__Encoding_DefaultXml,
26-
ObjectIds._BrowseName__Encoding_DefaultJson)
27-
{
28-
}
29-
30-
/// <remarks />
31-
protected _BrowseName_(ExpandedNodeId typeId, ExpandedNodeId binaryEncodingId, ExpandedNodeId xmlEncodingId, ExpandedNodeId jsonEncodingId)
12+
public _BrowseName_()
3213
{
33-
_typeId = typeId;
34-
_binaryEncodingId = binaryEncodingId;
35-
_xmlEncodingId = xmlEncodingId;
36-
_jsonEncodingId = jsonEncodingId;
37-
3814
Initialize();
3915
}
4016

@@ -56,53 +32,37 @@ private void Initialize()
5632

5733
#region IEncodeable Members
5834
/// <summary cref="IEncodeable.TypeId" />
59-
ExpandedNodeId IEncodeable.TypeId => _typeId;
35+
public virtual ExpandedNodeId TypeId => DataTypeIds._BrowseName_;
6036

6137
/// <summary cref="IEncodeable.BinaryEncodingId" />
62-
ExpandedNodeId IEncodeable.BinaryEncodingId => _binaryEncodingId;
38+
public virtual ExpandedNodeId BinaryEncodingId => ObjectIds._BrowseName__Encoding_DefaultBinary;
6339

6440
/// <summary cref="IEncodeable.XmlEncodingId" />
65-
ExpandedNodeId IEncodeable.XmlEncodingId => _xmlEncodingId;
66-
41+
public virtual ExpandedNodeId XmlEncodingId => ObjectIds._BrowseName__Encoding_DefaultXml;
42+
6743
/// <summary cref="IJsonEncodeable.JsonEncodingId" />
68-
ExpandedNodeId IJsonEncodeable.JsonEncodingId => _jsonEncodingId;
44+
public virtual ExpandedNodeId JsonEncodingId => ObjectIds._BrowseName__Encoding_DefaultJson;
6945

7046
/// <summary cref="IEncodeable.Encode(IEncoder)" />
71-
void IEncodeable.Encode(IEncoder encoder)
47+
public virtual void Encode(IEncoder encoder)
7248
{
7349
encoder.PushNamespace(_XmlNamespaceUri_);
7450

75-
OnWriteEncodingMask(encoder);
76-
OnEncodeFields(encoder);
51+
// ListOfEncodedFields
7752

7853
encoder.PopNamespace();
7954
}
8055

81-
protected virtual void OnWriteEncodingMask(IEncoder encoder) { }
82-
83-
protected virtual void OnEncodeFields(IEncoder encoder)
84-
{
85-
// ListOfEncodedFields
86-
}
87-
8856
/// <summary cref="IEncodeable.Decode(IDecoder)" />
89-
void IEncodeable.Decode(IDecoder decoder)
57+
public virtual void Decode(IDecoder decoder)
9058
{
9159
decoder.PushNamespace(_XmlNamespaceUri_);
9260

93-
OnReadEncodingMask(decoder);
94-
OnDecodeFields(decoder);
61+
// ListOfDecodedFields
9562

9663
decoder.PopNamespace();
9764
}
9865

99-
protected virtual void OnReadEncodingMask(IDecoder decoder) { }
100-
101-
protected virtual void OnDecodeFields(IDecoder decoder)
102-
{
103-
// ListOfDecodedFields
104-
}
105-
10666
/// <summary cref="IEncodeable.IsEqual(IEncodeable)" />
10767
public virtual bool IsEqual(IEncodeable encodeable)
10868
{

Opc.Ua.ModelCompiler/Templates/Version2/DataTypes/ClassWithOptionalFields.cs

Lines changed: 15 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -19,33 +19,9 @@ public enum _ClassName_Fields : uint
1919
[DataContract(Namespace = _XmlNamespaceUri_)]
2020
public partial class _BrowseName_ : IEncodeable, IJsonEncodeable
2121
{
22-
#region Fields
23-
24-
private readonly ExpandedNodeId _typeId;
25-
private readonly ExpandedNodeId _binaryEncodingId;
26-
private readonly ExpandedNodeId _xmlEncodingId;
27-
private readonly ExpandedNodeId _jsonEncodingId;
28-
29-
#endregion
30-
3122
#region Constructors
32-
/// <remarks />
33-
public _BrowseName_() : this(
34-
DataTypeIds._BrowseName_,
35-
ObjectIds._BrowseName__Encoding_DefaultBinary,
36-
ObjectIds._BrowseName__Encoding_DefaultXml,
37-
ObjectIds._BrowseName__Encoding_DefaultJson)
23+
public _BrowseName_()
3824
{
39-
}
40-
41-
/// <remarks />
42-
protected _BrowseName_(ExpandedNodeId typeId, ExpandedNodeId binaryEncodingId, ExpandedNodeId xmlEncodingId, ExpandedNodeId jsonEncodingId)
43-
{
44-
_typeId = typeId;
45-
_binaryEncodingId = binaryEncodingId;
46-
_xmlEncodingId = xmlEncodingId;
47-
_jsonEncodingId = jsonEncodingId;
48-
4925
Initialize();
5026
}
5127

@@ -57,72 +33,52 @@ private void Initialize(StreamingContext context)
5733

5834
private void Initialize()
5935
{
60-
EncodingMask = _ClassName_Fields.None;
36+
EncodingMask = (uint)_ClassName_Fields.None;
6137
// ListOfFieldInitializers
6238
}
6339
#endregion
6440

6541
#region Public Properties
6642
[DataMember(Name = "EncodingMask", IsRequired = true, Order = 0)]
67-
public _ClassName_Fields EncodingMask { get; set; }
43+
public virtual uint EncodingMask { get; set; }
6844

6945
// ListOfProperties
7046
#endregion
7147

7248
#region IEncodeable Members
7349
/// <summary cref="IEncodeable.TypeId" />
74-
ExpandedNodeId IEncodeable.TypeId => _typeId;
50+
public virtual ExpandedNodeId TypeId => DataTypeIds._BrowseName_;
7551

7652
/// <summary cref="IEncodeable.BinaryEncodingId" />
77-
ExpandedNodeId IEncodeable.BinaryEncodingId => _binaryEncodingId;
53+
public virtual ExpandedNodeId BinaryEncodingId => ObjectIds._BrowseName__Encoding_DefaultBinary;
7854

7955
/// <summary cref="IEncodeable.XmlEncodingId" />
80-
ExpandedNodeId IEncodeable.XmlEncodingId => _xmlEncodingId;
81-
56+
public virtual ExpandedNodeId XmlEncodingId => ObjectIds._BrowseName__Encoding_DefaultXml;
57+
8258
/// <summary cref="IJsonEncodeable.JsonEncodingId" />
83-
ExpandedNodeId IJsonEncodeable.JsonEncodingId => _jsonEncodingId;
59+
public virtual ExpandedNodeId JsonEncodingId => ObjectIds._BrowseName__Encoding_DefaultJson;
8460

8561
/// <summary cref="IEncodeable.Encode(IEncoder)" />
86-
void IEncodeable.Encode(IEncoder encoder)
62+
public virtual void Encode(IEncoder encoder)
8763
{
8864
encoder.PushNamespace(_XmlNamespaceUri_);
65+
encoder.WriteEncodingMask((uint)EncodingMask);
8966

90-
OnWriteEncodingMask(encoder);
91-
OnEncodeFields(encoder);
67+
// ListOfEncodedFields
9268

9369
encoder.PopNamespace();
9470
}
9571

96-
protected virtual void OnWriteEncodingMask(IEncoder encoder)
97-
{
98-
encoder.WriteEncodingMask((uint)EncodingMask);
99-
}
100-
101-
protected virtual void OnEncodeFields(IEncoder encoder)
102-
{
103-
// ListOfEncodedFields
104-
}
105-
106-
10772
/// <summary cref="IEncodeable.Decode(IDecoder)" />
108-
void IEncodeable.Decode(IDecoder decoder)
73+
public virtual void Decode(IDecoder decoder)
10974
{
11075
decoder.PushNamespace(_XmlNamespaceUri_);
11176

112-
OnReadEncodingMask(decoder);
113-
OnDecodeFields(decoder);
114-
115-
decoder.PopNamespace();
116-
}
117-
118-
protected virtual void OnReadEncodingMask(IDecoder decoder)
119-
{
120-
EncodingMask = (_ClassName_Fields)decoder.ReadEncodingMask(m_FieldNames);
121-
}
77+
EncodingMask = decoder.ReadEncodingMask(m_FieldNames);
12278

123-
protected virtual void OnDecodeFields(IDecoder decoder)
124-
{
12579
// ListOfDecodedFields
80+
81+
decoder.PopNamespace();
12682
}
12783

12884
/// <summary cref="IEncodeable.IsEqual(IEncodeable)" />

0 commit comments

Comments
 (0)