entities

package
v0.3.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 23, 2020 License: Apache-2.0 Imports: 6 Imported by: 30

Documentation

Index

Constants

View Source
const (
	// TemplateRefreshTimeOut is the template refresh time out for exporting process
	TemplateRefreshTimeOut uint32 = 1800
	// TemplateTTL is the template time to live for collecting process
	TemplateTTL = TemplateRefreshTimeOut * 3
	// TemplateSetID is the setID for template record
	TemplateSetID uint16 = 2
)
View Source
const (
	MaxTcpSocketMsgSize uint16 = 65535
)
View Source
const VariableLength uint16 = 65535

Variables

Functions

func DecodeToIEDataType added in v0.3.0

func DecodeToIEDataType(dataType IEDataType, val interface{}) (interface{}, error)

DecodeToIEDataType is to decode to specific type

func EncodeToIEDataType added in v0.3.0

func EncodeToIEDataType(dataType IEDataType, val interface{}, buff *bytes.Buffer) (interface{}, error)

EncodeToIEDataType is to encode data to specific type to the buff

func IsValidDataType

func IsValidDataType(tp IEDataType) bool

func NewDataRecord

func NewDataRecord(id uint16) *dataRecord

func NewTemplateRecord

func NewTemplateRecord(count uint16, id uint16) *templateRecord

Types

type ContentType

type ContentType uint8
const (
	Template ContentType = iota
	Data
	// Add OptionsTemplate too when it is supported
	Undefined = 255
)

type IEDataType

type IEDataType uint8
const (
	OctetArray IEDataType = iota
	Unsigned8
	Unsigned16
	Unsigned32
	Unsigned64
	Signed8
	Signed16
	Signed32
	Signed64
	Float32
	Float64
	Boolean
	MacAddress
	String
	DateTimeSeconds
	DateTimeMilliseconds
	DateTimeMicroseconds
	DateTimeNanoseconds
	Ipv4Address
	Ipv6Address
	BasicList
	SubTemplateList
	SubTemplateMultiList
	InvalidDataType = 255
)

func IENameToType

func IENameToType(name string) IEDataType

type InfoElement

type InfoElement struct {
	// Name of the IE
	Name string
	// Identifier for IE; follows Section 4.3 of RFC7013
	ElementId uint16
	// dataType follows the specification in RFC7012(section 3.1)/RFC5610(section 3.1)
	DataType IEDataType
	// Enterprise number or 0 (0 for IANA registry)
	EnterpriseId uint32
	// Length of IE
	Len uint16
}

InfoElement (IE) follows the specification in Section 2.1 of RFC7012

func NewInfoElement

func NewInfoElement(name string, ieID uint16, ieType IEDataType, entID uint32, len uint16) *InfoElement

type InfoElementWithValue added in v0.3.0

type InfoElementWithValue struct {
	Element *InfoElement
	Value   interface{}
}

InfoElementWithValue represents mapping from element to value for data records

func NewInfoElementWithValue added in v0.3.0

func NewInfoElementWithValue(element *InfoElement, value interface{}) *InfoElementWithValue

type Message added in v0.2.0

type Message struct {
	Version       uint16
	BufferLength  uint16
	SeqNumber     uint32
	ObsDomainID   uint32
	ExportTime    uint32
	ExportAddress string
	Set           Set
}

data struct of processed message

type MsgBuffer

type MsgBuffer struct {
	// contains filtered or unexported fields
}

func NewMsgBuffer

func NewMsgBuffer() *MsgBuffer

func (*MsgBuffer) GetDataRecFlag

func (m *MsgBuffer) GetDataRecFlag() bool

func (*MsgBuffer) GetMsgBuffer

func (m *MsgBuffer) GetMsgBuffer() *bytes.Buffer

func (*MsgBuffer) SetDataRecFlag

func (m *MsgBuffer) SetDataRecFlag(flag bool)

type Record

type Record interface {
	PrepareRecord() (uint16, error)
	AddInfoElement(element *InfoElementWithValue, isDecoding bool) (uint16, error)
	// TODO: Functions for multiple elements as well.
	GetBuffer() *bytes.Buffer
	GetTemplateID() uint16
	GetFieldCount() uint16
	GetOrderedElementList() []*InfoElementWithValue
	GetInfoElementWithValue(name string) (*InfoElementWithValue, bool)
	GetMinDataRecordLen() uint16
}

type Set

type Set interface {
	GetBuffLen() uint16
	GetBuffer() *bytes.Buffer
	GetSetType() ContentType
	FinishSet()
	AddRecord(elements []*InfoElementWithValue, templateID uint16) error
	GetRecords() []Record
	GetNumberOfRecords() uint32
}

func NewSet

func NewSet(setType ContentType, templateID uint16, isDecoding bool) Set

Directories

Path Synopsis
Package testing is a generated GoMock package.
Package testing is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL