Main Page | Modules | Class Hierarchy | Class List | Directories | Class Members | Related Pages | Examples

StreamKey Class Reference
[Network Data Structures]

superclass for classes used to distinguish between streams in a Decomposition More...

#include <Aggregate.h>

Inheritance diagram for StreamKey:

FullIPv4SessionKey IPv4Key NullKey SessionKey TransportKey List of all members.

Public Member Functions

 StreamKey (const StreamKey &toCopy)
virtual StreamKeyoperator= (const StreamKey &rhs)
virtual StreamKeyclone (void) const =0
virtual bool operator== (const StreamKey &rhs) const =0
virtual bool operator< (const StreamKey &rhs) const =0
virtual const PacketAttributeValuegetAttrib (const PacketAttribute &attrib) const =0 throw ( UnknownAttributeException )
 Get a packet attribute for the entire stream keyed by the StreamKey.
virtual bool isBidirectional (void) const
 Does the stream represent both sides of a bidirectional flow?
virtual uint32_t getDirection (const TraceIterator &packet) const
 determine the direction of a packet relative to a bidirectional StreamKey
virtual std::string toString (void) const =0

Static Public Attributes

static const uint32_t DIR_FORWARD = 0
static const uint32_t DIR_REVERSE = 1

Detailed Description

superclass for classes used to distinguish between streams in a Decomposition

StreamKey is an abstract class / interface; StreamKey subclasses are used to identify the criteria used to decompose an Aggregate, e.g. ( ip.src, ip.dst ).


Member Function Documentation

virtual const PacketAttributeValue& StreamKey::getAttrib const PacketAttribute attrib  )  const throw ( UnknownAttributeException ) [pure virtual]
 

Get a packet attribute for the entire stream keyed by the StreamKey.

Exceptions:
UnknownAttributeException The StreamKey does not deal with this PacketAttribute, so packets may or may not meet the criterion.

Implemented in NullKey, FullIPv4SessionKey, IPv4Key, SessionKey, and TransportKey.

uint32_t StreamKey::getDirection const TraceIterator packet  )  const [virtual]
 

determine the direction of a packet relative to a bidirectional StreamKey

Returns:
StreamKey::DIR_FORWARD if the packet is in the forward direction (always true for a unidirectional StreamKey), StreamKey::DIR_REVERSE if it is in the reverse direction
Todo:
Possible support for StreamKeys with more than two directions?

Reimplemented in FullIPv4SessionKey, IPv4Key, and TransportKey.

virtual bool StreamKey::operator< const StreamKey rhs  )  const [pure virtual]
 

operator< provided to support StrictWeakOrdering for STL containers

Implemented in NullKey, FullIPv4SessionKey, IPv4Key, SessionKey, and TransportKey.

virtual bool StreamKey::operator== const StreamKey rhs  )  const [pure virtual]
 

compare two StreamKeys for equality

Implemented in NullKey, FullIPv4SessionKey, IPv4Key, SessionKey, and TransportKey.


Member Data Documentation

const uint32_t StreamKey::DIR_FORWARD = 0 [static]
 

Last type identifier used by a StreamKey subclass; a new StreamKey should use a type identifier one greater than this.


The documentation for this class was generated from the following files:
Generated on Thu Apr 5 01:02:38 2007 for ANTARES by  doxygen 1.4.2