I3Trigger Class Reference

#include <I3Trigger.h>

List of all members.


Detailed Description

Implementation of an Internet Indirection Infrastructure trigger.

Author:
Antonio Zea An I3Trigger is composed of an I3Identifier and a I3IdentifierStack (a stack of I3SubIdentifier). In the most basic case, the subidentifier stack contains a single I3IPAddress. When a packet is matched to a trigger, it is sent to the first valid subidentifier found - the rest is passed to the application. If none is found, the packet is dropped.

Antonio Zea

See also:
I3, I3Identifier, I3IdentifierStack, I3SubIdentifier

Public Member Functions

 I3Trigger ()
 Constructor.
int compareTo (const I3Trigger &t) const
 Comparison function.
bool operator< (const I3Trigger &t) const
 "Less than" comparison function
bool operator> (const I3Trigger &t) const
 "Greater than" comparison function
bool operator== (const I3Trigger &t) const
 "Equals" comparison function
void setIdentifier (const I3Identifier &id)
 Sets the identifier.
void setInsertionTime (simtime_t time)
 Sets the insertion time.
void setIdentifierStack (I3IdentifierStack &stack)
 Sets the identifier stack.
I3IdentifiergetIdentifier ()
 Returns the identifier.
const I3IdentifiergetIdentifier () const
 Returns the identifier.
simtime_t getInsertionTime () const
 Returns the insertion time.
void clear ()
I3IdentifierStackgetIdentifierStack ()
 Returns the insertion time.
const I3IdentifierStackgetIdentifierStack () const
 Returns the identifier stack.
int length () const

Protected Attributes

I3Identifier identifier
 Identifier to be matched.
I3IdentifierStack identifierStack
 Identifier stack.
simtime_t insertionTime
 Time in which the trigger was inserted into I3.

Friends

std::ostream & operator<< (std::ostream &os, const I3Trigger &t)
 String stream operator <<.

Constructor & Destructor Documentation

I3Trigger::I3Trigger (  ) 

Constructor.

Author:
Antonio Zea
00022                      :
00023         insertionTime(0)
00024 {
00025 }


Member Function Documentation

int I3Trigger::compareTo ( const I3Trigger t  )  const

Comparison function.

Parameters:
t Trigger to compare to

Referenced by operator<(), operator==(), and operator>().

00028 {
00029     int cmp = identifier.compareTo(t.identifier);
00030     return (cmp != 0) ? cmp : identifierStack.compareTo(t.identifierStack);
00031 }

bool I3Trigger::operator< ( const I3Trigger t  )  const

"Less than" comparison function

Parameters:
t Trigger to compare to
00034 {
00035     return compareTo(t) < 0;
00036 }

bool I3Trigger::operator> ( const I3Trigger t  )  const

"Greater than" comparison function

Parameters:
t Trigger to compare to
00039 {
00040     return compareTo(t) > 0;
00041 }

bool I3Trigger::operator== ( const I3Trigger t  )  const

"Equals" comparison function

Parameters:
t Trigger to compare to
00044 {
00045     return compareTo(t) == 0;
00046 }

void I3Trigger::setIdentifier ( const I3Identifier id  ) 

Sets the identifier.

Parameters:
id Identifier to set.

Referenced by I3TRTClient::handleTimerEvent(), I3BaseApp::insertTrigger(), and I3BaseApp::removeTrigger().

00050 {
00051     identifier = id;
00052 }

void I3Trigger::setInsertionTime ( simtime_t  time  ) 

Sets the insertion time.

Parameters:
time Insertion time

Referenced by I3::insertTrigger().

00055 {
00056     insertionTime = time;
00057 }

void I3Trigger::setIdentifierStack ( I3IdentifierStack stack  ) 

Sets the identifier stack.

Parameters:
stack Insertion time
00060 {
00061     identifierStack = stack;
00062 }

I3Identifier & I3Trigger::getIdentifier (  ) 

Returns the identifier.

Returns:
Identifier stack

Referenced by I3Triggers::deliver(), I3::insertTrigger(), and I3::removeTrigger().

00065 {
00066     return identifier;
00067 }

const I3Identifier & I3Trigger::getIdentifier (  )  const

Returns the identifier.

Returns:
A const reference to the identifier
00070 {
00071     return identifier;
00072 }

simtime_t I3Trigger::getInsertionTime (  )  const

Returns the insertion time.

Returns:
Insertion time
00075 {
00076     return insertionTime;
00077 }

void I3Trigger::clear (  ) 

00080 {
00081     identifier.clear();
00082     identifierStack.clear();
00083 }

I3IdentifierStack & I3Trigger::getIdentifierStack (  ) 

Returns the insertion time.

Returns:
Insertion time

Referenced by I3TRTClient::handleTimerEvent(), I3BaseApp::insertTrigger(), and I3::insertTrigger().

00086 {
00087     return identifierStack;
00088 }

const I3IdentifierStack & I3Trigger::getIdentifierStack (  )  const

Returns the identifier stack.

Returns:
A const reference to the identifier stack
00091 {
00092     return identifierStack;
00093 }

int I3Trigger::length (  )  const

00095                             {
00096     /* insertionTime is an internal variable and doesn't count as part of the message */
00097     return identifier.length() + identifierStack.length();
00098 }


Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const I3Trigger t 
) [friend]

String stream operator <<.

Parameters:
os Output string stream
t Trigger to be output
Returns:
os parameter
00101 {
00102     os << "(" << t.identifier << ", {" << t.identifierStack << "})";
00103     return os;
00104 }


Member Data Documentation

Identifier to be matched.

Referenced by clear(), compareTo(), getIdentifier(), length(), operator<<(), and setIdentifier().

simtime_t I3Trigger::insertionTime [protected]

Time in which the trigger was inserted into I3.

Referenced by getInsertionTime(), and setInsertionTime().


The documentation for this class was generated from the following files:

Generated on Fri Sep 19 13:05:07 2008 for ITM OverSim by  doxygen 1.5.5