query

package
v0.0.0-...-751e0fc Latest Latest
Warning

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

Go to latest
Published: May 27, 2024 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	NumberConditionSummandTypeID          NumberConditionSummandType = iota
	NumberConditionSummandTypeClientBytes NumberConditionSummandType = iota
	NumberConditionSummandTypeServerBytes NumberConditionSummandType = iota
	NumberConditionSummandTypeClientPort  NumberConditionSummandType = iota
	NumberConditionSummandTypeServerPort  NumberConditionSummandType = iota

	HostConditionSourceTypeClient HostConditionSourceType = false
	HostConditionSourceTypeServer HostConditionSourceType = true

	DataRequirementSequenceFlagsDirection               = 0b1
	DataRequirementSequenceFlagsDirectionClientToServer = 0b0
	DataRequirementSequenceFlagsDirectionServerToClient = 0b1

	FlagsHostConditionInverted     = 0b01
	FlagsHostConditionSource       = 0b10
	FlagsHostConditionSourceClient = 0b00
	FlagsHostConditionSourceServer = 0b10

	TagConditionAcceptMatching          TagConditionAccept = 0b0001
	TagConditionAcceptFailing           TagConditionAccept = 0b0010
	TagConditionAcceptUncertainMatching TagConditionAccept = 0b0100
	TagConditionAcceptUncertainFailing  TagConditionAccept = 0b1000
)
View Source
const (
	SortingKeyID SortingKey = iota
	SortingKeyClientBytes
	SortingKeyServerBytes
	SortingKeyFirstPacketTime
	SortingKeyLastPacketTime
	SortingKeyClientHost
	SortingKeyServerHost
	SortingKeyClientPort
	SortingKeyServerPort

	SortingDirAscending  SortingDir = false
	SortingDirDescending SortingDir = true
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Condition

type Condition interface {
	fmt.Stringer
	// contains filtered or unexported methods
}

type Conditions

type Conditions []Condition

func (*Conditions) String

func (c *Conditions) String() string

type ConditionsSet

type ConditionsSet []Conditions

func (ConditionsSet) And

func (ConditionsSet) Clean

func (c ConditionsSet) Clean() ConditionsSet

func (*ConditionsSet) Features

func (cs *ConditionsSet) Features() FeatureSet

func (ConditionsSet) InlineTagFilters

func (cs ConditionsSet) InlineTagFilters(tags map[string]TagDetails) ConditionsSet

func (ConditionsSet) Or

func (*ConditionsSet) StreamIDs

func (cs *ConditionsSet) StreamIDs(nextStreamID uint64) (bitmask.LongBitmask, bool)

returns a list of stream id's that match the query, returns nil if other conditions exist

func (ConditionsSet) String

func (qcs ConditionsSet) String() string

func (*ConditionsSet) SubQueries

func (cs *ConditionsSet) SubQueries() []string

func (*ConditionsSet) UpdateReferenceTime

func (cs *ConditionsSet) UpdateReferenceTime(oldReferenceTime, newReferenceTime time.Time)

type DataCondition

type DataCondition struct {
	Elements []DataConditionElement
	Inverted bool
}

func (*DataCondition) String

func (c *DataCondition) String() string

type DataConditionElement

type DataConditionElement struct {
	SubQuery      string
	Regex         string
	Variables     []DataConditionElementVariable
	Flags         uint8
	ConverterName string
}

type DataConditionElementVariable

type DataConditionElementVariable struct {
	Position uint
	SubQuery string
	Name     string
}

type Feature

type Feature uint8
const (
	FeatureFilterID Feature = 1 << iota
	FeatureFilterProtocol
	FeatureFilterPort
	FeatureFilterHost
	FeatureFilterTimeAbsolute
	FeatureFilterTimeRelative
	FeatureFilterTags
	FeatureFilterData
)

type FeatureSet

type FeatureSet struct {
	MainFeatures, SubQueryFeatures Feature
	MainTags, SubQueryTags         []string
}

type FlagCondition

type FlagCondition struct {
	// this is fulfilled, when (xored(i.Flags for i in SubQueries) ^ Value) & Mask != 0
	SubQueries []string
	Value      uint16
	Mask       uint16
}

func (*FlagCondition) String

func (c *FlagCondition) String() string

type Grouping

type Grouping struct {
	Constant  string
	Variables []DataConditionElementVariable
}

type HostCondition

type HostCondition struct {
	HostConditionSources []HostConditionSource
	Host                 net.IP
	Mask4                net.IP
	Mask6                net.IP
	Invert               bool
}

func (*HostCondition) String

func (c *HostCondition) String() string

type HostConditionSource

type HostConditionSource struct {
	SubQuery string
	Type     HostConditionSourceType
}

type HostConditionSourceType

type HostConditionSourceType bool

type ImpossibleCondition

type ImpossibleCondition struct{}

func (*ImpossibleCondition) String

func (c *ImpossibleCondition) String() string

type NumberCondition

type NumberCondition struct {
	// this is fulfilled, when Number+X >= 0
	Summands []NumberConditionSummand
	Number   int
}

func (*NumberCondition) String

func (c *NumberCondition) String() string

type NumberConditionSummand

type NumberConditionSummand struct {
	SubQuery string
	Factor   int
	Type     NumberConditionSummandType
}

type NumberConditionSummandType

type NumberConditionSummandType uint8

type Query

type Query struct {
	Debug         []string
	Conditions    ConditionsSet
	Sorting       []Sorting
	Limit         *uint
	Grouping      *Grouping
	ReferenceTime time.Time
}

func Parse

func Parse(q string) (*Query, error)

type Sorting

type Sorting struct {
	Key SortingKey
	Dir SortingDir
}

type SortingDir

type SortingDir bool

type SortingKey

type SortingKey byte

type TagCondition

type TagCondition struct {
	// this is fulfilled, when
	SubQuery string
	TagName  string
	Accept   TagConditionAccept
}

func (*TagCondition) String

func (c *TagCondition) String() string

type TagConditionAccept

type TagConditionAccept uint8

type TagDetails

type TagDetails struct {
	Matches, Uncertain bitmask.LongBitmask
	Conditions         ConditionsSet
}

type TimeCondition

type TimeCondition struct {
	// this is fulfilled, when Duration+sum(ftime*Summands.FTimeFactor)+sum(ltime*Summands.LTimeFactor) >= 0
	Summands            []TimeConditionSummand
	Duration            time.Duration
	ReferenceTimeFactor int
}

func (*TimeCondition) String

func (c *TimeCondition) String() string

type TimeConditionSummand

type TimeConditionSummand struct {
	SubQuery    string
	LTimeFactor int
	FTimeFactor int
}

Jump to

Keyboard shortcuts

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