ns3::rapidnet Namespace Reference

RapidNet library. More...


Classes

class  Aggregator
 An base class for all database aggregate operations. More...
class  AggrMin
 Implements the database aggregate operation MIN. More...
class  AggrMax
 Implements the database aggregate operation MAX. More...
class  AggWrap
 A base class for all aggregate-wrap implementation. More...
class  AggWrapCount
 Aggregate wrap implementation for the count aggregate. More...
class  AggWrapMinMax
 A single aggregate wrap for both Min/Max. We use the template method pattern to let the base classes implement the. More...
class  AggWrapMin
 Aggregate wrap for the min aggregate operation. More...
class  AggWrapMax
 Aggregate wrap for the max aggregate operation. More...
class  AppDecoratorTrigger
 A generic trigger defined for emitting decorator- frontend events for visualization. More...
class  AppNodeStateTrigger
 A trigger to record a node specific event. More...
class  AppLinkStateTrigger
 A trigger to record a link specific event. More...
class  AppTupleStateTrigger
 A trigger to record a tuple event at a node. More...
class  Assignor
 Implements the database assignment operation. An assignor assigns an attribute with a given name to a tuple by evaluating an. More...
class  BlowfishEncryptionManager
 A blowfish based encryption manager implementation. More...
class  Database
 A RapidNet database. More...
class  EvpKey
 Encapsulates EVP_KEY* type from OpenSSL for automatic memory management and load utilities. More...
class  EvpKeyCache
 A read-only cache for loading EvpKey objects. More...
class  Expression
 Abstract base class for all expressions. More...
class  Operation
 An operation over one (unary) or two (binary) operands which are in turn expressions. More...
class  ValueExpr
 A value expression. Evaluates to the value itself. More...
class  VarExpr
 A variable expression. The variable name is the name of a tuple attribute. It evaluates to the value of that attribute in the given tuple. More...
class  RangeExpr
 Range expression. It is one of the 4 types as defined by Interval. More...
class  FunctionExpr
 Function call as an expression. This class is merely a a marker interface for all functions, it does not provide any functionality. More...
class  HeapRelation
 A special type of relation that is similar to a min-heap or a max-heap. More...
class  PkiAuthenticationManager
 A PKI based authentication manager implementation. More...
class  RapidNetApplicationBase
 A base class for all RapidNet applications. More...
class  AppTrigger
 An application specific trigger. More...
class  InsertTrigger
 A trigger that is invoked when a tuple is inserted. More...
class  DeleteTrigger
 A trigger that is invoked when a tuple is deleted. More...
class  RefreshTrigger
 A trigger that is invoked when a tuple is refreshed. More...
class  RapidNetApplicationHelper
 A base helper for all RapidNet applications. More...
class  RapidNetDecoratorFrontend
 A RapidNet extension to the decorator frontend used for visualization. More...
class  FAppend
 A RapidNet function that returns a list with the given value(s) appended in it. More...
class  FConcat
 A RapidNet function that concatenates two list values. More...
class  FMember
 A RapidNet function that tests if a given value is the member of a list. More...
class  FNow
 A RapidNet function that returns the current time as a string. More...
class  FDiffTime
 A RadidNet function that returns the difference of two time strings (in seconds) as an integer. More...
class  FHslsTtl
 A RadidNet function that returns the TTL or the number of hops that a triggered update should propogate in triggered HSLS implementation. More...
class  FSize
 A RapidNet function that returns the size of a list. More...
class  FLast
 A RapidNet function that returns the last element of a list. More...
class  FRemoveLast
 A RapidNet function that removes and returns last element of a list. More...
class  FTypeOf
 A RapidNet function that returns the string representation of the type of the given expression. More...
class  FRand
 A RapidNet function that returns a random number as a string. More...
class  FSha1
 A RadpidNet function that returns the SHA1 hash of the string representation of the given value. More...
class  FSvIn
 A RapidNet function that tests whether a given ID (string) is hashed in a summary vector. More...
class  FSvAndNot
 A RapidNet function that computes the andNot result of two summary vectors: (SV_1 & (~ SV_2)). More...
class  FSvAppend
 A RapidNet function that hashes a given ID (string) into a new summary vector. More...
class  FSvRemove
 FA RapidNet function that hashes a given ID (string) out from a new summary vector. More...
class  RapidNetHeader
 RapidNet extension of. More...
class  RelationBase
 A base class for relation objects. A relation has a name and is a collection of. More...
class  Relation
 A database relation with key attributes defined. More...
class  Selector
 Implements the database select operation. It evaluates an expression against the given tuple and returns true if the tuple should be selected, false otherwise. More...
class  SendlogAuthenticationManager
 RapidNet applications delegate the authentication features to the SendlogAuthenticationManager. RapidNet applications written in SeNDlog (and not NDlog) require authentication capabilities. This object represents an interface to the authentication operations "sign" and "verify". Concrete implementations of this interface can be associated to the RapidNet applications at the time of initialization. More...
class  SendlogEncryptionManager
 RapidNet applications delegate the encryption features to the SendlogEncryptionManager. RapidNet applications written in SeNDlog (and not NDlog) require encryption capabilities. This object represents an interface to the encryption operations "encrypt" and "decrypt". Concrete implementations of this interface can be associated to the RapidNet applications at the time of initialization. More...
class  TempRelation
 A relation that is implemented as a list of tuples. More...
class  Trigger
 A callback function object that serves as a database trigger. More...
class  TriggerList
 A list of triggers. More...
class  TupleAttribute
 Represents an attribute of a tuple. An attribute is a name-value pair. More...
class  Tuple
 A RapidNet tuple. A RapidNet tuple is a collection of. More...
class  BoolValue
 A value type for booleans. More...
class  ByteArrayValue
 A value type for uint8_t array (byte buffer). More...
class  IdValue
 A value type for 160-bit SHA1 hash values used by chord. More...
class  Int32Value
 RapidNet value type for 32-bit integers. More...
class  Ipv4Value
 A value type for IP v4 addresses. More...
class  ListValue
 A value type that is a list of RapidNet value types. More...
class  NilValue
 A value type that represents a null value. More...
class  RealValue
 A value type for a floating point value. More...
class  StrValue
 A value type for strings. More...
class  SvValue
 A value type for summary vector. This value type is used by the Epidemic protocol for delay tolerant networks. More...
class  Value
 The base for all RapidNet value types. More...

Enumerations

enum  Operator
 Enumeration of all supported operators.
enum  ValueTypeId
 An enumeration of all the value types defined in RapidNet.

Functions

string OpString (Operator op)
 Returns a string representation for the operator.
ApplicationContainer InitRapidNetApps (int numNodes, Ptr< RapidNetApplicationHelper > appHelper, Ipv4Address base="10.1.1.0", string pcapLogFileName="test")
 Initializes RapidNet applications using the given helper on given the given number of nodes and sets addresses with the given base.
void PrintRelation (ApplicationContainer apps, string relnName, ostream &os=cout)
 Prints the given relation for all applications in the container.
NetDeviceContainer InstallWifi (NodeContainer nodes, bool enablePcap, string pcapFilename)
 Installs Wifi NetDevices on the the nodes and returns the container.
NetDeviceContainer InstallCsma (NodeContainer nodes, bool enablePcap, string pcapFilename)
 Installs Ethernet NetDevices on the the nodes and returns the container.
void InstallIpv4 (NodeContainer nodes, NetDeviceContainer netDevices, Ipv4Address network="192.168.1.0", Ipv4Mask mask=DEFAULT_MASK, Ipv4Address base="0.0.0.1")
 Installs the IP stack on the nodes and assigns IP addresses.
void InstallMobility (NodeContainer nodes, string xpos, string ypos, double xbound, double ybound, string modelName, const AttributeValue &speed=EmptyAttributeValue(), const AttributeValue &distance=EmptyAttributeValue())
 Installs the mobility model to the nodes and positions them.
ofstream * InstallDecorator (ApplicationContainer &apps, string dir, double xbound, double ybound)
 Installs the decorator frontend to all applications.
ofstream * InstallDecoratorEmu (ApplicationContainer &apps, string dir, string ipaddr)
 Installs the decorator frontend to all applications for emulation.
void PrintRelations (ApplicationContainer &apps, string relations, string streamName=CLOG, int printPeriod=0, int numTimes=2)
 For printing relations, printPeriod: Period for printing, numTimes: Number of times to execute.
void ImportAppTable (ApplicationContainer &apps, ifstream *apptableStream, double apptablePeriod, double duration)
 Imports app-table into all nodes for application level filtering. This function is used for emulation.
void InstallDsrDecoratorTriggers (ApplicationContainer &apps)
 Installs frontend-decorator triggers specific to the DSR protocol.
void InstallEpidemicDecoratorTriggers (ApplicationContainer &apps)
 Installs frontend-decorator triggers specific to the Epidemic protocol.
void InstallLSUDecoratorTriggers (ApplicationContainer &apps)
 Installs frontend-decorator triggers specific to the link-state and HSLS protocols.
void ScheduleDsrQueries (ApplicationContainer &apps, int count, double duration)
 Schedules DSR route queries at periodic intervals.
void ScheduleEpidemicMessages (ApplicationContainer &apps, int count, double duration)
 Schedules Epidemic messages at periodic intervals.
void SetMaxJitter (ApplicationContainer &apps, uint32_t maxJitter)
 Utility method to set maximum jitter value on all applications in the given ApplicationContainer.
void InitChordApps (ApplicationContainer &apps)
 Initializes the chord applications.
void InstallChordDecoratorTriggers (ApplicationContainer &apps)
 Installs frontend-decorator triggers specific to the link-state and HSLS protocols.
void InstallDecoratorTriggers (string appName, ApplicationContainer &apps)
 Install application specific decorator triggers.
void ScheduleEvents (string appName, ApplicationContainer &apps, int queryNum, double duration)
 Schedule application specific network events.
void StartApps (string appName, ApplicationContainer &apps)
 Initialize and start all applications.
bool HasTimedout (Time timestamp, Time ttl, Time now)
 Returns true if the tuple with given time-stamp and TTL has timed out.
string GetInsertStatusAsString (int statusCode)
 A string representation for the given insert status code.
Ptr< Tupletuple (string name)
 Creates a new tuple with given name and no attributes.
Ptr< Tupletuple (string name, list< Ptr< TupleAttribute > > attributes)
 Creates a new tuple with given name and the attributes from the given list added to it.
Ptr< Tupletuple (string name, Ptr< TupleAttribute > attr1)
 Creates a new tuple with given name and adds the given attribute(s) to it.
Ptr< Tupletuple (string name, Ptr< TupleAttribute > attr1, Ptr< TupleAttribute > attr2)
 Creates a new tuple with given name and adds the given attribute(s) to it.
Ptr< Tupletuple (string name, Ptr< TupleAttribute > attr1, Ptr< TupleAttribute > attr2, Ptr< TupleAttribute > attr3)
 Creates a new tuple with given name and adds the given attribute(s) to it.
Ptr< Tupletuple (string name, Ptr< TupleAttribute > attr1, Ptr< TupleAttribute > attr2, Ptr< TupleAttribute > attr3, Ptr< TupleAttribute > attr4)
 Creates a new tuple with given name and adds the given attribute(s) to it.
Ptr< Tupletuple (string name, Ptr< TupleAttribute > attr1, Ptr< TupleAttribute > attr2, Ptr< TupleAttribute > attr3, Ptr< TupleAttribute > attr4, Ptr< TupleAttribute > attr5)
 Creates a new tuple with given name and adds the given attribute(s) to it.
Ptr< Tupletuple (string name, Ptr< TupleAttribute > attr1, Ptr< TupleAttribute > attr2, Ptr< TupleAttribute > attr3, Ptr< TupleAttribute > attr4, Ptr< TupleAttribute > attr5, Ptr< TupleAttribute > attr6)
 Creates a new tuple with given name and adds the given attribute(s) to it.
template<class T >
list< T > MakeList (T t1)
 Creates a list with object(s) of given type inserted.
template<class T >
list< T > MakeList (T t1, T t2)
 Creates a list with object(s) of given type inserted.
template<class T >
list< T > MakeList (T t1, T t2, T t3)
 Creates a list with object(s) of given type inserted.
template<class T >
list< T > MakeList (T t1, T t2, T t3, T t4)
 Creates a list with object(s) of given type inserted.
template<class T >
list< T > MakeList (T t1, T t2, T t3, T t4, T t5)
 Creates a list with object(s) of given type inserted.
template<class T >
list< T > MakeList (T t1, T t2, T t3, T t4, T t5, T t6)
 Creates a list with object(s) of given type inserted.
template<class T >
list< T > MakeList (T t1, T t2, T t3, T t4, T t5, T t6, T t7)
 Creates a list with object(s) of given type inserted.
template<class T >
list< T > MakeList (T t1, T t2, T t3, T t4, T t5, T t6, T t7, T t8)
 Creates a list with object(s) of given type inserted.
template<class T >
list< T > MakeList (T t1, T t2, T t3, T t4, T t5, T t6, T t7, T t8, T t9)
 Creates a list with object(s) of given type inserted.
template<class T >
list< T > MakeList (T t1, T t2, T t3, T t4, T t5, T t6, T t7, T t8, T t9, T t10)
 Creates a list with object(s) of given type inserted.
string GetSHA1Digest (string message)
 A utility C++ wrapper over openssl's SHA1 function.
Ptr< TupleRemoveAllRapidNetAttributes (Ptr< Tuple > tuple)
 Utility method to strip a tuple of all RapidNet specific indicator attributes (names that begin with "rn-") and returns them as a separate tuple. This method is used before signing or encrypting tuples.
Ptr< ByteArrayValueSerializeTupleToByteArray (Ptr< Tuple > tuple)
 Utility method to serialize the contents of a tuple into a byte array using standard serialize primitives of constituent attributes.
Ptr< TupleDeserializeTupleFromByteArray (Ptr< ByteArrayValue > byteArray)
 Utility method to deserialize a byte array value returned by.
string GetTypeName (ValueTypeId type)
 Returns the string name of the value type of the given ValueTypeId enumeration.
Ptr< ValueNewValueForType (ValueTypeId type)
 Creates and returns a new object for the given ValueTypeId enumeration with the default value as specified by the value type class.


Detailed Description

RapidNet library.


Function Documentation

Ptr<Tuple> ns3::rapidnet::DeserializeTupleFromByteArray ( Ptr< ByteArrayValue >  byteArray  ) 

Utility method to deserialize a byte array value returned by.

See also:
SerializeTupleToByteArray method back to the original tuple.

bool ns3::rapidnet::HasTimedout ( Time  timestamp,
Time  ttl,
Time  now 
)

Returns true if the tuple with given time-stamp and TTL has timed out.

Parameters:
timestamp Timestamp on the tuple
ttl The TTL defined for the corresponding relation.
now The current time.

void ns3::rapidnet::ImportAppTable ( ApplicationContainer apps,
ifstream *  apptableStream,
double  apptablePeriod,
double  duration 
)

Imports app-table into all nodes for application level filtering. This function is used for emulation.

The topology string should have all the necessary IP address pairs. They are just inserted as it is.

void ns3::rapidnet::ScheduleDsrQueries ( ApplicationContainer apps,
int  count,
double  duration 
)

Schedules DSR route queries at periodic intervals.

Parameters:
apps The collection of applications.
count The number of queries to be scheduled.
duration The period between each query.

void ns3::rapidnet::ScheduleEpidemicMessages ( ApplicationContainer apps,
int  count,
double  duration 
)

Schedules Epidemic messages at periodic intervals.

Parameters:
apps The collection of applications.
count The number of queries to be scheduled.
duration The period between each query.


Generated on Fri Apr 9 15:01:11 2010 for NS-3 by  doxygen 1.5.8