plc4go/protocols/ads/readwrite/model/AdsSymbolTableEntry.go (697 lines of code) (raw):
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package model
import (
"context"
"encoding/binary"
"fmt"
"github.com/pkg/errors"
"github.com/rs/zerolog"
"github.com/apache/plc4x/plc4go/spi/codegen"
. "github.com/apache/plc4x/plc4go/spi/codegen/fields"
. "github.com/apache/plc4x/plc4go/spi/codegen/io"
"github.com/apache/plc4x/plc4go/spi/utils"
)
// Code generated by code-generation. DO NOT EDIT.
// Constant values.
const AdsSymbolTableEntry_NAMETERMINATOR uint8 = 0x00
const AdsSymbolTableEntry_DATATYPENAMETERMINATOR uint8 = 0x00
const AdsSymbolTableEntry_COMMENTTERMINATOR uint8 = 0x00
// AdsSymbolTableEntry is the corresponding interface of AdsSymbolTableEntry
type AdsSymbolTableEntry interface {
fmt.Stringer
utils.LengthAware
utils.Serializable
utils.Copyable
// GetEntryLength returns EntryLength (property field)
GetEntryLength() uint32
// GetGroup returns Group (property field)
GetGroup() uint32
// GetOffset returns Offset (property field)
GetOffset() uint32
// GetSize returns Size (property field)
GetSize() uint32
// GetDataType returns DataType (property field)
GetDataType() uint32
// GetFlagMethodDeref returns FlagMethodDeref (property field)
GetFlagMethodDeref() bool
// GetFlagItfMethodAccess returns FlagItfMethodAccess (property field)
GetFlagItfMethodAccess() bool
// GetFlagReadOnly returns FlagReadOnly (property field)
GetFlagReadOnly() bool
// GetFlagTComInterfacePointer returns FlagTComInterfacePointer (property field)
GetFlagTComInterfacePointer() bool
// GetFlagTypeGuid returns FlagTypeGuid (property field)
GetFlagTypeGuid() bool
// GetFlagReferenceTo returns FlagReferenceTo (property field)
GetFlagReferenceTo() bool
// GetFlagBitValue returns FlagBitValue (property field)
GetFlagBitValue() bool
// GetFlagPersistent returns FlagPersistent (property field)
GetFlagPersistent() bool
// GetFlagExtendedFlags returns FlagExtendedFlags (property field)
GetFlagExtendedFlags() bool
// GetFlagInitOnReset returns FlagInitOnReset (property field)
GetFlagInitOnReset() bool
// GetFlagStatic returns FlagStatic (property field)
GetFlagStatic() bool
// GetFlagAttributes returns FlagAttributes (property field)
GetFlagAttributes() bool
// GetFlagContextMask returns FlagContextMask (property field)
GetFlagContextMask() bool
// GetName returns Name (property field)
GetName() string
// GetDataTypeName returns DataTypeName (property field)
GetDataTypeName() string
// GetComment returns Comment (property field)
GetComment() string
// GetRest returns Rest (property field)
GetRest() []byte
// IsAdsSymbolTableEntry is a marker method to prevent unintentional type checks (interfaces of same signature)
IsAdsSymbolTableEntry()
// CreateBuilder creates a AdsSymbolTableEntryBuilder
CreateAdsSymbolTableEntryBuilder() AdsSymbolTableEntryBuilder
}
// _AdsSymbolTableEntry is the data-structure of this message
type _AdsSymbolTableEntry struct {
EntryLength uint32
Group uint32
Offset uint32
Size uint32
DataType uint32
FlagMethodDeref bool
FlagItfMethodAccess bool
FlagReadOnly bool
FlagTComInterfacePointer bool
FlagTypeGuid bool
FlagReferenceTo bool
FlagBitValue bool
FlagPersistent bool
FlagExtendedFlags bool
FlagInitOnReset bool
FlagStatic bool
FlagAttributes bool
FlagContextMask bool
Name string
DataTypeName string
Comment string
Rest []byte
// Reserved Fields
reservedField0 *uint8
reservedField1 *uint16
}
var _ AdsSymbolTableEntry = (*_AdsSymbolTableEntry)(nil)
// NewAdsSymbolTableEntry factory function for _AdsSymbolTableEntry
func NewAdsSymbolTableEntry(entryLength uint32, group uint32, offset uint32, size uint32, dataType uint32, flagMethodDeref bool, flagItfMethodAccess bool, flagReadOnly bool, flagTComInterfacePointer bool, flagTypeGuid bool, flagReferenceTo bool, flagBitValue bool, flagPersistent bool, flagExtendedFlags bool, flagInitOnReset bool, flagStatic bool, flagAttributes bool, flagContextMask bool, name string, dataTypeName string, comment string, rest []byte) *_AdsSymbolTableEntry {
return &_AdsSymbolTableEntry{EntryLength: entryLength, Group: group, Offset: offset, Size: size, DataType: dataType, FlagMethodDeref: flagMethodDeref, FlagItfMethodAccess: flagItfMethodAccess, FlagReadOnly: flagReadOnly, FlagTComInterfacePointer: flagTComInterfacePointer, FlagTypeGuid: flagTypeGuid, FlagReferenceTo: flagReferenceTo, FlagBitValue: flagBitValue, FlagPersistent: flagPersistent, FlagExtendedFlags: flagExtendedFlags, FlagInitOnReset: flagInitOnReset, FlagStatic: flagStatic, FlagAttributes: flagAttributes, FlagContextMask: flagContextMask, Name: name, DataTypeName: dataTypeName, Comment: comment, Rest: rest}
}
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
/////////////////////// Builder
///////////////////////
// AdsSymbolTableEntryBuilder is a builder for AdsSymbolTableEntry
type AdsSymbolTableEntryBuilder interface {
utils.Copyable
// WithMandatoryFields adds all mandatory fields (convenience for using multiple builder calls)
WithMandatoryFields(entryLength uint32, group uint32, offset uint32, size uint32, dataType uint32, flagMethodDeref bool, flagItfMethodAccess bool, flagReadOnly bool, flagTComInterfacePointer bool, flagTypeGuid bool, flagReferenceTo bool, flagBitValue bool, flagPersistent bool, flagExtendedFlags bool, flagInitOnReset bool, flagStatic bool, flagAttributes bool, flagContextMask bool, name string, dataTypeName string, comment string, rest []byte) AdsSymbolTableEntryBuilder
// WithEntryLength adds EntryLength (property field)
WithEntryLength(uint32) AdsSymbolTableEntryBuilder
// WithGroup adds Group (property field)
WithGroup(uint32) AdsSymbolTableEntryBuilder
// WithOffset adds Offset (property field)
WithOffset(uint32) AdsSymbolTableEntryBuilder
// WithSize adds Size (property field)
WithSize(uint32) AdsSymbolTableEntryBuilder
// WithDataType adds DataType (property field)
WithDataType(uint32) AdsSymbolTableEntryBuilder
// WithFlagMethodDeref adds FlagMethodDeref (property field)
WithFlagMethodDeref(bool) AdsSymbolTableEntryBuilder
// WithFlagItfMethodAccess adds FlagItfMethodAccess (property field)
WithFlagItfMethodAccess(bool) AdsSymbolTableEntryBuilder
// WithFlagReadOnly adds FlagReadOnly (property field)
WithFlagReadOnly(bool) AdsSymbolTableEntryBuilder
// WithFlagTComInterfacePointer adds FlagTComInterfacePointer (property field)
WithFlagTComInterfacePointer(bool) AdsSymbolTableEntryBuilder
// WithFlagTypeGuid adds FlagTypeGuid (property field)
WithFlagTypeGuid(bool) AdsSymbolTableEntryBuilder
// WithFlagReferenceTo adds FlagReferenceTo (property field)
WithFlagReferenceTo(bool) AdsSymbolTableEntryBuilder
// WithFlagBitValue adds FlagBitValue (property field)
WithFlagBitValue(bool) AdsSymbolTableEntryBuilder
// WithFlagPersistent adds FlagPersistent (property field)
WithFlagPersistent(bool) AdsSymbolTableEntryBuilder
// WithFlagExtendedFlags adds FlagExtendedFlags (property field)
WithFlagExtendedFlags(bool) AdsSymbolTableEntryBuilder
// WithFlagInitOnReset adds FlagInitOnReset (property field)
WithFlagInitOnReset(bool) AdsSymbolTableEntryBuilder
// WithFlagStatic adds FlagStatic (property field)
WithFlagStatic(bool) AdsSymbolTableEntryBuilder
// WithFlagAttributes adds FlagAttributes (property field)
WithFlagAttributes(bool) AdsSymbolTableEntryBuilder
// WithFlagContextMask adds FlagContextMask (property field)
WithFlagContextMask(bool) AdsSymbolTableEntryBuilder
// WithName adds Name (property field)
WithName(string) AdsSymbolTableEntryBuilder
// WithDataTypeName adds DataTypeName (property field)
WithDataTypeName(string) AdsSymbolTableEntryBuilder
// WithComment adds Comment (property field)
WithComment(string) AdsSymbolTableEntryBuilder
// WithRest adds Rest (property field)
WithRest(...byte) AdsSymbolTableEntryBuilder
// Build builds the AdsSymbolTableEntry or returns an error if something is wrong
Build() (AdsSymbolTableEntry, error)
// MustBuild does the same as Build but panics on error
MustBuild() AdsSymbolTableEntry
}
// NewAdsSymbolTableEntryBuilder() creates a AdsSymbolTableEntryBuilder
func NewAdsSymbolTableEntryBuilder() AdsSymbolTableEntryBuilder {
return &_AdsSymbolTableEntryBuilder{_AdsSymbolTableEntry: new(_AdsSymbolTableEntry)}
}
type _AdsSymbolTableEntryBuilder struct {
*_AdsSymbolTableEntry
err *utils.MultiError
}
var _ (AdsSymbolTableEntryBuilder) = (*_AdsSymbolTableEntryBuilder)(nil)
func (b *_AdsSymbolTableEntryBuilder) WithMandatoryFields(entryLength uint32, group uint32, offset uint32, size uint32, dataType uint32, flagMethodDeref bool, flagItfMethodAccess bool, flagReadOnly bool, flagTComInterfacePointer bool, flagTypeGuid bool, flagReferenceTo bool, flagBitValue bool, flagPersistent bool, flagExtendedFlags bool, flagInitOnReset bool, flagStatic bool, flagAttributes bool, flagContextMask bool, name string, dataTypeName string, comment string, rest []byte) AdsSymbolTableEntryBuilder {
return b.WithEntryLength(entryLength).WithGroup(group).WithOffset(offset).WithSize(size).WithDataType(dataType).WithFlagMethodDeref(flagMethodDeref).WithFlagItfMethodAccess(flagItfMethodAccess).WithFlagReadOnly(flagReadOnly).WithFlagTComInterfacePointer(flagTComInterfacePointer).WithFlagTypeGuid(flagTypeGuid).WithFlagReferenceTo(flagReferenceTo).WithFlagBitValue(flagBitValue).WithFlagPersistent(flagPersistent).WithFlagExtendedFlags(flagExtendedFlags).WithFlagInitOnReset(flagInitOnReset).WithFlagStatic(flagStatic).WithFlagAttributes(flagAttributes).WithFlagContextMask(flagContextMask).WithName(name).WithDataTypeName(dataTypeName).WithComment(comment).WithRest(rest...)
}
func (b *_AdsSymbolTableEntryBuilder) WithEntryLength(entryLength uint32) AdsSymbolTableEntryBuilder {
b.EntryLength = entryLength
return b
}
func (b *_AdsSymbolTableEntryBuilder) WithGroup(group uint32) AdsSymbolTableEntryBuilder {
b.Group = group
return b
}
func (b *_AdsSymbolTableEntryBuilder) WithOffset(offset uint32) AdsSymbolTableEntryBuilder {
b.Offset = offset
return b
}
func (b *_AdsSymbolTableEntryBuilder) WithSize(size uint32) AdsSymbolTableEntryBuilder {
b.Size = size
return b
}
func (b *_AdsSymbolTableEntryBuilder) WithDataType(dataType uint32) AdsSymbolTableEntryBuilder {
b.DataType = dataType
return b
}
func (b *_AdsSymbolTableEntryBuilder) WithFlagMethodDeref(flagMethodDeref bool) AdsSymbolTableEntryBuilder {
b.FlagMethodDeref = flagMethodDeref
return b
}
func (b *_AdsSymbolTableEntryBuilder) WithFlagItfMethodAccess(flagItfMethodAccess bool) AdsSymbolTableEntryBuilder {
b.FlagItfMethodAccess = flagItfMethodAccess
return b
}
func (b *_AdsSymbolTableEntryBuilder) WithFlagReadOnly(flagReadOnly bool) AdsSymbolTableEntryBuilder {
b.FlagReadOnly = flagReadOnly
return b
}
func (b *_AdsSymbolTableEntryBuilder) WithFlagTComInterfacePointer(flagTComInterfacePointer bool) AdsSymbolTableEntryBuilder {
b.FlagTComInterfacePointer = flagTComInterfacePointer
return b
}
func (b *_AdsSymbolTableEntryBuilder) WithFlagTypeGuid(flagTypeGuid bool) AdsSymbolTableEntryBuilder {
b.FlagTypeGuid = flagTypeGuid
return b
}
func (b *_AdsSymbolTableEntryBuilder) WithFlagReferenceTo(flagReferenceTo bool) AdsSymbolTableEntryBuilder {
b.FlagReferenceTo = flagReferenceTo
return b
}
func (b *_AdsSymbolTableEntryBuilder) WithFlagBitValue(flagBitValue bool) AdsSymbolTableEntryBuilder {
b.FlagBitValue = flagBitValue
return b
}
func (b *_AdsSymbolTableEntryBuilder) WithFlagPersistent(flagPersistent bool) AdsSymbolTableEntryBuilder {
b.FlagPersistent = flagPersistent
return b
}
func (b *_AdsSymbolTableEntryBuilder) WithFlagExtendedFlags(flagExtendedFlags bool) AdsSymbolTableEntryBuilder {
b.FlagExtendedFlags = flagExtendedFlags
return b
}
func (b *_AdsSymbolTableEntryBuilder) WithFlagInitOnReset(flagInitOnReset bool) AdsSymbolTableEntryBuilder {
b.FlagInitOnReset = flagInitOnReset
return b
}
func (b *_AdsSymbolTableEntryBuilder) WithFlagStatic(flagStatic bool) AdsSymbolTableEntryBuilder {
b.FlagStatic = flagStatic
return b
}
func (b *_AdsSymbolTableEntryBuilder) WithFlagAttributes(flagAttributes bool) AdsSymbolTableEntryBuilder {
b.FlagAttributes = flagAttributes
return b
}
func (b *_AdsSymbolTableEntryBuilder) WithFlagContextMask(flagContextMask bool) AdsSymbolTableEntryBuilder {
b.FlagContextMask = flagContextMask
return b
}
func (b *_AdsSymbolTableEntryBuilder) WithName(name string) AdsSymbolTableEntryBuilder {
b.Name = name
return b
}
func (b *_AdsSymbolTableEntryBuilder) WithDataTypeName(dataTypeName string) AdsSymbolTableEntryBuilder {
b.DataTypeName = dataTypeName
return b
}
func (b *_AdsSymbolTableEntryBuilder) WithComment(comment string) AdsSymbolTableEntryBuilder {
b.Comment = comment
return b
}
func (b *_AdsSymbolTableEntryBuilder) WithRest(rest ...byte) AdsSymbolTableEntryBuilder {
b.Rest = rest
return b
}
func (b *_AdsSymbolTableEntryBuilder) Build() (AdsSymbolTableEntry, error) {
if b.err != nil {
return nil, errors.Wrap(b.err, "error occurred during build")
}
return b._AdsSymbolTableEntry.deepCopy(), nil
}
func (b *_AdsSymbolTableEntryBuilder) MustBuild() AdsSymbolTableEntry {
build, err := b.Build()
if err != nil {
panic(err)
}
return build
}
func (b *_AdsSymbolTableEntryBuilder) DeepCopy() any {
_copy := b.CreateAdsSymbolTableEntryBuilder().(*_AdsSymbolTableEntryBuilder)
if b.err != nil {
_copy.err = b.err.DeepCopy().(*utils.MultiError)
}
return _copy
}
// CreateAdsSymbolTableEntryBuilder creates a AdsSymbolTableEntryBuilder
func (b *_AdsSymbolTableEntry) CreateAdsSymbolTableEntryBuilder() AdsSymbolTableEntryBuilder {
if b == nil {
return NewAdsSymbolTableEntryBuilder()
}
return &_AdsSymbolTableEntryBuilder{_AdsSymbolTableEntry: b.deepCopy()}
}
///////////////////////
///////////////////////
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
/////////////////////// Accessors for property fields.
///////////////////////
func (m *_AdsSymbolTableEntry) GetEntryLength() uint32 {
return m.EntryLength
}
func (m *_AdsSymbolTableEntry) GetGroup() uint32 {
return m.Group
}
func (m *_AdsSymbolTableEntry) GetOffset() uint32 {
return m.Offset
}
func (m *_AdsSymbolTableEntry) GetSize() uint32 {
return m.Size
}
func (m *_AdsSymbolTableEntry) GetDataType() uint32 {
return m.DataType
}
func (m *_AdsSymbolTableEntry) GetFlagMethodDeref() bool {
return m.FlagMethodDeref
}
func (m *_AdsSymbolTableEntry) GetFlagItfMethodAccess() bool {
return m.FlagItfMethodAccess
}
func (m *_AdsSymbolTableEntry) GetFlagReadOnly() bool {
return m.FlagReadOnly
}
func (m *_AdsSymbolTableEntry) GetFlagTComInterfacePointer() bool {
return m.FlagTComInterfacePointer
}
func (m *_AdsSymbolTableEntry) GetFlagTypeGuid() bool {
return m.FlagTypeGuid
}
func (m *_AdsSymbolTableEntry) GetFlagReferenceTo() bool {
return m.FlagReferenceTo
}
func (m *_AdsSymbolTableEntry) GetFlagBitValue() bool {
return m.FlagBitValue
}
func (m *_AdsSymbolTableEntry) GetFlagPersistent() bool {
return m.FlagPersistent
}
func (m *_AdsSymbolTableEntry) GetFlagExtendedFlags() bool {
return m.FlagExtendedFlags
}
func (m *_AdsSymbolTableEntry) GetFlagInitOnReset() bool {
return m.FlagInitOnReset
}
func (m *_AdsSymbolTableEntry) GetFlagStatic() bool {
return m.FlagStatic
}
func (m *_AdsSymbolTableEntry) GetFlagAttributes() bool {
return m.FlagAttributes
}
func (m *_AdsSymbolTableEntry) GetFlagContextMask() bool {
return m.FlagContextMask
}
func (m *_AdsSymbolTableEntry) GetName() string {
return m.Name
}
func (m *_AdsSymbolTableEntry) GetDataTypeName() string {
return m.DataTypeName
}
func (m *_AdsSymbolTableEntry) GetComment() string {
return m.Comment
}
func (m *_AdsSymbolTableEntry) GetRest() []byte {
return m.Rest
}
///////////////////////
///////////////////////
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
/////////////////////// Accessors for const fields.
///////////////////////
func (m *_AdsSymbolTableEntry) GetNameTerminator() uint8 {
return AdsSymbolTableEntry_NAMETERMINATOR
}
func (m *_AdsSymbolTableEntry) GetDataTypeNameTerminator() uint8 {
return AdsSymbolTableEntry_DATATYPENAMETERMINATOR
}
func (m *_AdsSymbolTableEntry) GetCommentTerminator() uint8 {
return AdsSymbolTableEntry_COMMENTTERMINATOR
}
///////////////////////
///////////////////////
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// Deprecated: use the interface for direct cast
func CastAdsSymbolTableEntry(structType any) AdsSymbolTableEntry {
if casted, ok := structType.(AdsSymbolTableEntry); ok {
return casted
}
if casted, ok := structType.(*AdsSymbolTableEntry); ok {
return *casted
}
return nil
}
func (m *_AdsSymbolTableEntry) GetTypeName() string {
return "AdsSymbolTableEntry"
}
func (m *_AdsSymbolTableEntry) GetLengthInBits(ctx context.Context) uint16 {
lengthInBits := uint16(0)
// Simple field (entryLength)
lengthInBits += 32
// Simple field (group)
lengthInBits += 32
// Simple field (offset)
lengthInBits += 32
// Simple field (size)
lengthInBits += 32
// Simple field (dataType)
lengthInBits += 32
// Simple field (flagMethodDeref)
lengthInBits += 1
// Simple field (flagItfMethodAccess)
lengthInBits += 1
// Simple field (flagReadOnly)
lengthInBits += 1
// Simple field (flagTComInterfacePointer)
lengthInBits += 1
// Simple field (flagTypeGuid)
lengthInBits += 1
// Simple field (flagReferenceTo)
lengthInBits += 1
// Simple field (flagBitValue)
lengthInBits += 1
// Simple field (flagPersistent)
lengthInBits += 1
// Reserved Field (reserved)
lengthInBits += 3
// Simple field (flagExtendedFlags)
lengthInBits += 1
// Simple field (flagInitOnReset)
lengthInBits += 1
// Simple field (flagStatic)
lengthInBits += 1
// Simple field (flagAttributes)
lengthInBits += 1
// Simple field (flagContextMask)
lengthInBits += 1
// Reserved Field (reserved)
lengthInBits += 16
// Implicit Field (nameLength)
lengthInBits += 16
// Implicit Field (dataTypeNameLength)
lengthInBits += 16
// Implicit Field (commentLength)
lengthInBits += 16
// Simple field (name)
lengthInBits += uint16(int32(uint16(len(m.GetName()))) * int32(int32(8)))
// Const Field (nameTerminator)
lengthInBits += 8
// Simple field (dataTypeName)
lengthInBits += uint16(int32(uint16(len(m.GetDataTypeName()))) * int32(int32(8)))
// Const Field (dataTypeNameTerminator)
lengthInBits += 8
// Simple field (comment)
lengthInBits += uint16(int32(uint16(len(m.GetComment()))) * int32(int32(8)))
// Const Field (commentTerminator)
lengthInBits += 8
// Array field
if len(m.Rest) > 0 {
lengthInBits += 8 * uint16(len(m.Rest))
}
return lengthInBits
}
func (m *_AdsSymbolTableEntry) GetLengthInBytes(ctx context.Context) uint16 {
return m.GetLengthInBits(ctx) / 8
}
func AdsSymbolTableEntryParse(ctx context.Context, theBytes []byte) (AdsSymbolTableEntry, error) {
return AdsSymbolTableEntryParseWithBuffer(ctx, utils.NewReadBufferByteBased(theBytes, utils.WithByteOrderForReadBufferByteBased(binary.LittleEndian)))
}
func AdsSymbolTableEntryParseWithBufferProducer() func(ctx context.Context, readBuffer utils.ReadBuffer) (AdsSymbolTableEntry, error) {
return func(ctx context.Context, readBuffer utils.ReadBuffer) (AdsSymbolTableEntry, error) {
return AdsSymbolTableEntryParseWithBuffer(ctx, readBuffer)
}
}
func AdsSymbolTableEntryParseWithBuffer(ctx context.Context, readBuffer utils.ReadBuffer) (AdsSymbolTableEntry, error) {
v, err := (&_AdsSymbolTableEntry{}).parse(ctx, readBuffer)
if err != nil {
return nil, err
}
return v, nil
}
func (m *_AdsSymbolTableEntry) parse(ctx context.Context, readBuffer utils.ReadBuffer) (__adsSymbolTableEntry AdsSymbolTableEntry, err error) {
positionAware := readBuffer
_ = positionAware
if pullErr := readBuffer.PullContext("AdsSymbolTableEntry"); pullErr != nil {
return nil, errors.Wrap(pullErr, "Error pulling for AdsSymbolTableEntry")
}
currentPos := positionAware.GetPos()
_ = currentPos
var startPos = positionAware.GetPos()
_ = startPos
entryLength, err := ReadSimpleField(ctx, "entryLength", ReadUnsignedInt(readBuffer, uint8(32)), codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'entryLength' field"))
}
m.EntryLength = entryLength
group, err := ReadSimpleField(ctx, "group", ReadUnsignedInt(readBuffer, uint8(32)), codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'group' field"))
}
m.Group = group
offset, err := ReadSimpleField(ctx, "offset", ReadUnsignedInt(readBuffer, uint8(32)), codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'offset' field"))
}
m.Offset = offset
size, err := ReadSimpleField(ctx, "size", ReadUnsignedInt(readBuffer, uint8(32)), codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'size' field"))
}
m.Size = size
dataType, err := ReadSimpleField(ctx, "dataType", ReadUnsignedInt(readBuffer, uint8(32)), codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'dataType' field"))
}
m.DataType = dataType
flagMethodDeref, err := ReadSimpleField(ctx, "flagMethodDeref", ReadBoolean(readBuffer), codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'flagMethodDeref' field"))
}
m.FlagMethodDeref = flagMethodDeref
flagItfMethodAccess, err := ReadSimpleField(ctx, "flagItfMethodAccess", ReadBoolean(readBuffer), codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'flagItfMethodAccess' field"))
}
m.FlagItfMethodAccess = flagItfMethodAccess
flagReadOnly, err := ReadSimpleField(ctx, "flagReadOnly", ReadBoolean(readBuffer), codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'flagReadOnly' field"))
}
m.FlagReadOnly = flagReadOnly
flagTComInterfacePointer, err := ReadSimpleField(ctx, "flagTComInterfacePointer", ReadBoolean(readBuffer), codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'flagTComInterfacePointer' field"))
}
m.FlagTComInterfacePointer = flagTComInterfacePointer
flagTypeGuid, err := ReadSimpleField(ctx, "flagTypeGuid", ReadBoolean(readBuffer), codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'flagTypeGuid' field"))
}
m.FlagTypeGuid = flagTypeGuid
flagReferenceTo, err := ReadSimpleField(ctx, "flagReferenceTo", ReadBoolean(readBuffer), codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'flagReferenceTo' field"))
}
m.FlagReferenceTo = flagReferenceTo
flagBitValue, err := ReadSimpleField(ctx, "flagBitValue", ReadBoolean(readBuffer), codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'flagBitValue' field"))
}
m.FlagBitValue = flagBitValue
flagPersistent, err := ReadSimpleField(ctx, "flagPersistent", ReadBoolean(readBuffer), codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'flagPersistent' field"))
}
m.FlagPersistent = flagPersistent
reservedField0, err := ReadReservedField(ctx, "reserved", ReadUnsignedByte(readBuffer, uint8(3)), uint8(0x00), codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing reserved field"))
}
m.reservedField0 = reservedField0
flagExtendedFlags, err := ReadSimpleField(ctx, "flagExtendedFlags", ReadBoolean(readBuffer), codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'flagExtendedFlags' field"))
}
m.FlagExtendedFlags = flagExtendedFlags
flagInitOnReset, err := ReadSimpleField(ctx, "flagInitOnReset", ReadBoolean(readBuffer), codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'flagInitOnReset' field"))
}
m.FlagInitOnReset = flagInitOnReset
flagStatic, err := ReadSimpleField(ctx, "flagStatic", ReadBoolean(readBuffer), codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'flagStatic' field"))
}
m.FlagStatic = flagStatic
flagAttributes, err := ReadSimpleField(ctx, "flagAttributes", ReadBoolean(readBuffer), codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'flagAttributes' field"))
}
m.FlagAttributes = flagAttributes
flagContextMask, err := ReadSimpleField(ctx, "flagContextMask", ReadBoolean(readBuffer), codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'flagContextMask' field"))
}
m.FlagContextMask = flagContextMask
reservedField1, err := ReadReservedField(ctx, "reserved", ReadUnsignedShort(readBuffer, uint8(16)), uint16(0x0000), codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing reserved field"))
}
m.reservedField1 = reservedField1
nameLength, err := ReadImplicitField[uint16](ctx, "nameLength", ReadUnsignedShort(readBuffer, uint8(16)), codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'nameLength' field"))
}
_ = nameLength
dataTypeNameLength, err := ReadImplicitField[uint16](ctx, "dataTypeNameLength", ReadUnsignedShort(readBuffer, uint8(16)), codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'dataTypeNameLength' field"))
}
_ = dataTypeNameLength
commentLength, err := ReadImplicitField[uint16](ctx, "commentLength", ReadUnsignedShort(readBuffer, uint8(16)), codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'commentLength' field"))
}
_ = commentLength
name, err := ReadSimpleField(ctx, "name", ReadString(readBuffer, uint32(int32(nameLength)*int32(int32(8)))), codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'name' field"))
}
m.Name = name
nameTerminator, err := ReadConstField[uint8](ctx, "nameTerminator", ReadUnsignedByte(readBuffer, uint8(8)), AdsSymbolTableEntry_NAMETERMINATOR, codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'nameTerminator' field"))
}
_ = nameTerminator
dataTypeName, err := ReadSimpleField(ctx, "dataTypeName", ReadString(readBuffer, uint32(int32(dataTypeNameLength)*int32(int32(8)))), codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'dataTypeName' field"))
}
m.DataTypeName = dataTypeName
dataTypeNameTerminator, err := ReadConstField[uint8](ctx, "dataTypeNameTerminator", ReadUnsignedByte(readBuffer, uint8(8)), AdsSymbolTableEntry_DATATYPENAMETERMINATOR, codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'dataTypeNameTerminator' field"))
}
_ = dataTypeNameTerminator
comment, err := ReadSimpleField(ctx, "comment", ReadString(readBuffer, uint32(int32(commentLength)*int32(int32(8)))), codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'comment' field"))
}
m.Comment = comment
commentTerminator, err := ReadConstField[uint8](ctx, "commentTerminator", ReadUnsignedByte(readBuffer, uint8(8)), AdsSymbolTableEntry_COMMENTTERMINATOR, codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'commentTerminator' field"))
}
_ = commentTerminator
rest, err := readBuffer.ReadByteArray("rest", int(int32(entryLength)-int32((positionAware.GetPos()-startPos))), codegen.WithByteOrder(binary.LittleEndian))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'rest' field"))
}
m.Rest = rest
if closeErr := readBuffer.CloseContext("AdsSymbolTableEntry"); closeErr != nil {
return nil, errors.Wrap(closeErr, "Error closing for AdsSymbolTableEntry")
}
return m, nil
}
func (m *_AdsSymbolTableEntry) Serialize() ([]byte, error) {
wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer(binary.LittleEndian))
if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
return nil, err
}
return wb.GetBytes(), nil
}
func (m *_AdsSymbolTableEntry) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
positionAware := writeBuffer
_ = positionAware
log := zerolog.Ctx(ctx)
_ = log
if pushErr := writeBuffer.PushContext("AdsSymbolTableEntry"); pushErr != nil {
return errors.Wrap(pushErr, "Error pushing for AdsSymbolTableEntry")
}
if err := WriteSimpleField[uint32](ctx, "entryLength", m.GetEntryLength(), WriteUnsignedInt(writeBuffer, 32), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'entryLength' field")
}
if err := WriteSimpleField[uint32](ctx, "group", m.GetGroup(), WriteUnsignedInt(writeBuffer, 32), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'group' field")
}
if err := WriteSimpleField[uint32](ctx, "offset", m.GetOffset(), WriteUnsignedInt(writeBuffer, 32), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'offset' field")
}
if err := WriteSimpleField[uint32](ctx, "size", m.GetSize(), WriteUnsignedInt(writeBuffer, 32), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'size' field")
}
if err := WriteSimpleField[uint32](ctx, "dataType", m.GetDataType(), WriteUnsignedInt(writeBuffer, 32), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'dataType' field")
}
if err := WriteSimpleField[bool](ctx, "flagMethodDeref", m.GetFlagMethodDeref(), WriteBoolean(writeBuffer), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'flagMethodDeref' field")
}
if err := WriteSimpleField[bool](ctx, "flagItfMethodAccess", m.GetFlagItfMethodAccess(), WriteBoolean(writeBuffer), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'flagItfMethodAccess' field")
}
if err := WriteSimpleField[bool](ctx, "flagReadOnly", m.GetFlagReadOnly(), WriteBoolean(writeBuffer), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'flagReadOnly' field")
}
if err := WriteSimpleField[bool](ctx, "flagTComInterfacePointer", m.GetFlagTComInterfacePointer(), WriteBoolean(writeBuffer), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'flagTComInterfacePointer' field")
}
if err := WriteSimpleField[bool](ctx, "flagTypeGuid", m.GetFlagTypeGuid(), WriteBoolean(writeBuffer), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'flagTypeGuid' field")
}
if err := WriteSimpleField[bool](ctx, "flagReferenceTo", m.GetFlagReferenceTo(), WriteBoolean(writeBuffer), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'flagReferenceTo' field")
}
if err := WriteSimpleField[bool](ctx, "flagBitValue", m.GetFlagBitValue(), WriteBoolean(writeBuffer), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'flagBitValue' field")
}
if err := WriteSimpleField[bool](ctx, "flagPersistent", m.GetFlagPersistent(), WriteBoolean(writeBuffer), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'flagPersistent' field")
}
if err := WriteReservedField[uint8](ctx, "reserved", uint8(0x00), WriteUnsignedByte(writeBuffer, 3), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'reserved' field number 1")
}
if err := WriteSimpleField[bool](ctx, "flagExtendedFlags", m.GetFlagExtendedFlags(), WriteBoolean(writeBuffer), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'flagExtendedFlags' field")
}
if err := WriteSimpleField[bool](ctx, "flagInitOnReset", m.GetFlagInitOnReset(), WriteBoolean(writeBuffer), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'flagInitOnReset' field")
}
if err := WriteSimpleField[bool](ctx, "flagStatic", m.GetFlagStatic(), WriteBoolean(writeBuffer), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'flagStatic' field")
}
if err := WriteSimpleField[bool](ctx, "flagAttributes", m.GetFlagAttributes(), WriteBoolean(writeBuffer), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'flagAttributes' field")
}
if err := WriteSimpleField[bool](ctx, "flagContextMask", m.GetFlagContextMask(), WriteBoolean(writeBuffer), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'flagContextMask' field")
}
if err := WriteReservedField[uint16](ctx, "reserved", uint16(0x0000), WriteUnsignedShort(writeBuffer, 16), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'reserved' field number 2")
}
nameLength := uint16(uint16(len(m.GetName())))
if err := WriteImplicitField(ctx, "nameLength", nameLength, WriteUnsignedShort(writeBuffer, 16), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'nameLength' field")
}
dataTypeNameLength := uint16(uint16(len(m.GetDataTypeName())))
if err := WriteImplicitField(ctx, "dataTypeNameLength", dataTypeNameLength, WriteUnsignedShort(writeBuffer, 16), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'dataTypeNameLength' field")
}
commentLength := uint16(uint16(len(m.GetComment())))
if err := WriteImplicitField(ctx, "commentLength", commentLength, WriteUnsignedShort(writeBuffer, 16), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'commentLength' field")
}
if err := WriteSimpleField[string](ctx, "name", m.GetName(), WriteString(writeBuffer, int32(int32(uint16(len(m.GetName())))*int32(int32(8)))), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'name' field")
}
if err := WriteConstField(ctx, "nameTerminator", AdsSymbolTableEntry_NAMETERMINATOR, WriteUnsignedByte(writeBuffer, 8), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'nameTerminator' field")
}
if err := WriteSimpleField[string](ctx, "dataTypeName", m.GetDataTypeName(), WriteString(writeBuffer, int32(int32(uint16(len(m.GetDataTypeName())))*int32(int32(8)))), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'dataTypeName' field")
}
if err := WriteConstField(ctx, "dataTypeNameTerminator", AdsSymbolTableEntry_DATATYPENAMETERMINATOR, WriteUnsignedByte(writeBuffer, 8), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'dataTypeNameTerminator' field")
}
if err := WriteSimpleField[string](ctx, "comment", m.GetComment(), WriteString(writeBuffer, int32(int32(uint16(len(m.GetComment())))*int32(int32(8)))), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'comment' field")
}
if err := WriteConstField(ctx, "commentTerminator", AdsSymbolTableEntry_COMMENTTERMINATOR, WriteUnsignedByte(writeBuffer, 8), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'commentTerminator' field")
}
if err := WriteByteArrayField(ctx, "rest", m.GetRest(), WriteByteArray(writeBuffer, 8), codegen.WithByteOrder(binary.LittleEndian)); err != nil {
return errors.Wrap(err, "Error serializing 'rest' field")
}
if popErr := writeBuffer.PopContext("AdsSymbolTableEntry"); popErr != nil {
return errors.Wrap(popErr, "Error popping for AdsSymbolTableEntry")
}
return nil
}
func (m *_AdsSymbolTableEntry) IsAdsSymbolTableEntry() {}
func (m *_AdsSymbolTableEntry) DeepCopy() any {
return m.deepCopy()
}
func (m *_AdsSymbolTableEntry) deepCopy() *_AdsSymbolTableEntry {
if m == nil {
return nil
}
_AdsSymbolTableEntryCopy := &_AdsSymbolTableEntry{
m.EntryLength,
m.Group,
m.Offset,
m.Size,
m.DataType,
m.FlagMethodDeref,
m.FlagItfMethodAccess,
m.FlagReadOnly,
m.FlagTComInterfacePointer,
m.FlagTypeGuid,
m.FlagReferenceTo,
m.FlagBitValue,
m.FlagPersistent,
m.FlagExtendedFlags,
m.FlagInitOnReset,
m.FlagStatic,
m.FlagAttributes,
m.FlagContextMask,
m.Name,
m.DataTypeName,
m.Comment,
utils.DeepCopySlice[byte, byte](m.Rest),
m.reservedField0,
m.reservedField1,
}
return _AdsSymbolTableEntryCopy
}
func (m *_AdsSymbolTableEntry) String() string {
if m == nil {
return "<nil>"
}
wb := utils.NewWriteBufferBoxBased(
utils.WithWriteBufferBoxBasedMergeSingleBoxes(),
utils.WithWriteBufferBoxBasedOmitEmptyBoxes(),
utils.WithWriteBufferBoxBasedPrintPosLengthFooter(),
)
if err := wb.WriteSerializable(context.Background(), m); err != nil {
return err.Error()
}
return wb.GetBox().String()
}