OMK Namespace Reference

The root namespace, it is used namespace for every OpenMASK class. More...


Classes

class  DistributedController
 A controller who has a notion of distribution A distributed controller only controls part of the simulation. More...
class  ControlParameterDuplique
 experimental : controlParameter for duplicated objects More...
class  DuplicatedObjectHandle
 in this implementation, a duplicated object handle is a reference object handle this means that event sent to a duplicated object aren't propoagated to other copies More...
class  IncomingSynchronisationMessage
 this is the abstract class for any sent synchronisation message used on a message passing distributed architecture. More...
class  LocalObjectHandle
class  MirrorObjectHandle
 defines an object handle for mirors (ghosts) of reference objects More...
class  OutgoingSynchronisationMessage
 this is the abstract class for any sent synchronisation message used on a message passing distributed architecture. More...
class  ChangedControlParameterEventListener
 the base event listener for reacting to proposed changes to a control parameter implementing default behaviour the last suggested change arriving to the object is enacted More...
class  Event
 Base class for all events exchanged between simulation objects. More...
class  EventAssociationList
 the class used to implement pointer correpondance between associated events More...
class  EventCreator
 Class defining what a creator of an event is. More...
class  EventIdentifier
 Base class for all event identifiers. More...
class  EventListener
 The base class for event listener, wich enable automatic reaction on registred events. More...
class  EventListenerCallBack
 Untyped event listener calling an object's method to handle the event. More...
class  SystemEventIdentifier
 base class for all event identifiers that require special handling by the receiver's controler this class also defines statically all event Identifiers More...
class  ValuedEvent
 An event that carries an associated value. More...
class  ValuedEventListenerCallBack
 Valued event listener which calling a object's method to handle the event. More...
class  EmptyFifoException
 The exception raised when an empty Fifo is read. More...
class  Exception
 Base class for all exceptions generated by an execution of OpenMASK. More...
class  InvalidOutputException
class  NoMemoryAvailableException
 Exception throwed by memory managers when they are unable to allocate memory. More...
class  UnallowedOverloadingException
 exception throwed when an attribute is redefined with the same name and a different type More...
class  UnInitialisedAttributeException
 abstract exception throwed when an uninitialised attribute is read More...
class  UnInitialisedControlParameterException
 exception throwed when an uninitialised control parameter is read More...
class  UnInitialisedOutputException
 exception to throwed when an uninitialized output is read More...
class  UserException
 Base class for all exceptions generated outside the OpenMASK kernel. More...
class  IAttributeBaseT
 Attribute interface. More...
class  IAttributeT
 Attribute interface. More...
class  AttributeT
 Attribute with encapsulated value for types that are not sons of OMKType. More...
class  AttributeTypeT
 Attribute with encapsulated value for types that are sons of OMKType. More...
class  AttributeAccT
 Attribute with indirect access to value for types that are not sons of OMKType. More...
class  AttributeAccTypeT
 Attribute with indirect access to value for types that are sons of OMKType. More...
class  AttributeFctT
 Attribute with indirect access to value for types that are not sons of OMKType. More...
class  AttributeFctTypeT
 Attribute with indirect access to value for types that are not sons of OMKType. More...
class  ContainerExtension
 An extension which is a container for other extensions. More...
class  DuplicatedAttributeExtension
 Extension to add an offset to a Transform attribute of the object. More...
class  DuplicatedAttributeExtensionCreatorT
class  EventTypeForAttributeT
 Attribute valued event type. More...
class  Extension
 Ancestor of every extension of extensible simulated objects. More...
class  ExtensionT
 Specialisation of Extension which references the extension owner. More...
class  ExtensionCreator
 Ancestor of every Extension creator class used by the PrototypeFactory. More...
class  ExtensionCreatorT
 Extension creator class to be parametrized by the descendants of Extension. More...
class  ExtensionManager
 Ancestor of classes which manage extensions. More...
class  ExtensionOfExtensionCreatorEvent
 Extension to create extension by event. More...
class  IAccessorT
 The interface class for accessor to a simple value. More...
class  AccessorT
 The implementation class for accessor to encapsuled value. More...
class  AccessorFctT
 The implementation class for accessor through accessors method of an associated object. More...
class  AccessorAccT
 The implementation class for accessor through accessors method of an associated object. More...
class  IAttribute
 Attribute interface. More...
class  PluginsLoaderClass
 This class is used in the singleton PluginsLoader. More...
class  AbstractInput
 class AbstractInput More...
class  ControlParameter
 a typed control parameter More...
class  GenericControlParameter
 a genric control parameter. More...
class  Input
 An input for a simulation object. More...
class  InputAlias
 Class InputAlias. More...
class  InputConnectionEventListener
 the base event listener for reacting to proposed connections by objects other than the owner of the concerned input the last suggested connection arriving to the object is enacted More...
class  InputNT
 class InputNT defines what an input is, regardless of the encapsulated data type More...
class  KernelAttribute
 Base class for all attributes of a simulated object. More...
class  Output
 An output of a certain type for a simulated object. More...
class  OutputAlias
class  OutputNT
 abstract definition of an output. More...
class  AbstractFifo
 Abstract Fifo used to store attribute history information For thread safety reasons, this class should ensure that multiple reads and one write can be done in concurrent fashion and with coherant results. More...
class  Clock
 A clock to synchronize the time in simulation. More...
class  ConfigurationParameterDescriptor
 a generic abstract class describing simulated object configuration parameters More...
class  Controller
 Defining what a controller is. More...
class  ControllerCreator
 base class for all instance creators. More...
class  CurrentActiveObject
 class CurrentActiveObject. More...
class  DoubleList
 to lists, one being a subset of the other This class is used to store the list of object to activate at a given simulation step (active objects list), as well as the list of suspended objects which would be activated at that given simulation step if they weren't suspended (super list). More...
class  DoubleListElement
 An element of a OMKDoubleList}. More...
class  ExtensibleSimulatedObject
 Ancestor of every extensible objects. More...
class  Fifo
 a Fifo to store attribute history thread safety : provided no reader tries to acces values with an offset greater than the numbre of values returned by getNumberOfPresentValues, multiple reads can take place concurrently with one write. More...
class  Flowable
 base class for insertion and extraction to and from streams More...
class  FrameScheduler
 the basic frame scheduler, where each scheduled object is queued on the appropriate frame for multifrequential execution More...
class  KernelObjectAbstractFactory
 the factory used to create correct attributes depending on the controller More...
class  KernelObjectClassicFactory
 OMKKernelObjectClassicFactory. More...
class  MultipleConfigurationParameter
 class MultipleConfigurationParameter : stores multiple configuration parameters. More...
class  Name
 Class for naming things in Mask. More...
class  NameServer
 Defines a name server for OMKNames. More...
class  NameToPointerMap
 Specialised map to keep track of named objects. More...
class  ObjectDescriptor
 object of this class are used to store the description of simulated object, with data meaningfull for object outside the kernel. More...
class  ObjectHandle
 An object handle is the data structure used by controllers to access simulated objects. More...
class  Packable
class  ParametersAccessor
 Provide some accessors for configuration parameters. More...
class  ReferenceObjectHandle
 Defining an reference object handle. More...
class  Scheduler
 Abstract class encapsulating all the scheduling functionnality. More...
class  IServiceRootAccess
class  ServiceRootAccess
 Service to get the simulation root node. More...
class  SignalDispatcher
 this class implements signal dispatching More...
class  SimulatedObject
 This is the class defining what a object or entity is like in Mask. More...
class  SimulatedObjectCreator
 Ancestor of every simulated object creator class used by the PrototypeFactory. More...
class  SimulatedObjectCreatorT
 Simulated object creator class to be parametrised by the descendants of SimulatedObject. More...
class  SynchronisationMessage
 class defining the common markers between synchronisation messages More...
class  TracerIdTmp
 A class to activate temporarily an id. More...
class  UniqueConfigurationParameter
 class to describe one unique parameter, represented as a string More...
class  Process
 How the distributed kernel for a message passing architecture sees processes. More...
class  PvmCentralNameServer
 a central name servers for the PVm version of OpenMASK More...
class  PvmController
 Class defining a local controller for a pvm session. More...
class  PvmControllerCreator
 a generic instance creator. More...
class  PvmDuplicatedObjectHandle
 An object handle for duplicated objects. More...
class  PvmException
class  PvmIncomingMessage
 Defining a received message for a message passing architecture. More...
class  PvmLocalObjectHandle
 An object handle for duplicated objects. More...
class  PvmMessage
 Defining a message for a message passing virtual machine. More...
class  PvmMirrorObjectHandle
 defines an object handle for mirors (ghosts) of reference objects only for pvm More...
class  PvmMulticastMessage
 class refining the pvm outgoing message for a send with any number of recipients More...
class  PvmNameServer
 a name server for pvm. More...
class  PvmOutgoingMessage
 defining a sent message for a message passing architecture. More...
class  PvmReferenceObjectHandle
 Defines an reference object handle for pvm controllers. More...
class  PvmSvm
 class encapsulating the PVM virtual machine More...
class  PvmSvmLink
 a Pvm communication chanel. More...
class  PvmUnicastMessage
 refine the Pvm outgoing message with a send to only one destination site. More...
class  Svm
 Defines an abstract message passing virtual machine. More...
class  SvmLink
 defines a communication chanel More...
class  IAttributeAnimatorT
 Attribute for animator interface. More...
class  AttributeAnimatorT
 Attribute with encapsulated value for types that are not sons of OMKType. More...
class  AttributeAnimatorTypeT
 Attribute with encapsulated value for types that are sons of OMKType. More...
class  AttributeAnimatorAccT
 Attribute with indirect access to value for types that are not sons of OMKType. More...
class  AttributeAnimatorAccTypeT
 Attribute with indirect access to value for types that are sons of OMKType. More...
class  AttributeAnimatorFctT
 Attribute with indirect access to value for types that are not sons of OMKType. More...
class  AttributeAnimatorFctTypeT
 Attribute with indirect access to value for types that are not sons of OMKType. More...
class  EventSignalEmitterUtil
 Base class to emit an event. More...
class  ValuedEventSignalEmitterUtilT
 Base class to emit a valued event. More...
class  MultiValuedEventSignalEmitterUtilT
 Base class to emit a valued event. More...
class  NotAttributeExtension
 This extension add a boolean attribute which is the not of an other boolean attribute of the object. More...
class  PreOffsetExtension
 Extension to add an offset to a Transform attribute of the object. More...
class  PostOffsetExtension
class  TriggerContainerExtension
 An extension which is a container for other extensions. More...
class  MultiTriggerContainerExtension
 An extension which is a container for other extensions. More...
class  TriggerEmitterExtension
 Extension to emit an event on a trigger front. More...
class  TriggerEmitterExtensionT
 Extension to emit a valued event on a trigger front. More...
class  MultiTriggerEmitterExtensionT
 Extension to emit a valued event on a trigger front. More...
class  DistanceToExtension
 Calculates a distance to a target. More...
class  TriggerBaseExtension
 Base class for trigger. More...
class  TriggerAttributeExtension
 A trigger which sets a boolean attribute to true if the distance between the object and the target is less than the thresold. More...
class  TriggerExtension
 A trigger which adds a boolean attribute which is set to true if the distance between the object and the target is less than the thresold. More...
class  BasicHumano
 Base class for humano simulated objects. More...
class  FixedPoint
 This Simulated object give a position in the space. More...
class  HumanoPlayer
 Humano simulated objects which replays a sequence read from a file. More...
class  HumanoRecorder
 This Simulated object defines a position which moves in the space. More...
class  MovingHumano
 This simulated object defines a humano which gives a posture attribute to animate its associated avatars through animators. More...
class  Orbit
 This Simulated object defines a position which moves in the space. More...
class  SimplePoint
 This Simulated object give a position in the space. More...
class  StaticHumano
 This Simulated object defines a position which moves in the space. More...
class  Tracker
 This Simulated object defines a position which moves in the space. More...
class  Trajectory
 This Simulated object defines a position which moves in the space. More...
class  GroundExtension
class  GroundService
class  MKMHeadToTaskExtension
class  MKMHumano
 This Simulated object defines a position which moves in the space. More...
class  MKMMotionTaskExtension
class  MKMMoveToTaskExtension

Namespaces

namespace  EventId
namespace  Iii
namespace  Inp
namespace  Type
 Namespace of the interactor/inspector/interactive objects.
namespace  Vis

Typedefs

typedef OBT::Singleton< OBT::PrototypeFactory<
OMK::Name, ExtensionCreator > > 
ExtensionFactory
 The factory of the extension.
typedef OBT::Singleton< PluginsLoaderClassPluginsLoader
 This class is the singleton of the class PluginsLoaderClass.
typedef int Frequency
typedef long Date
typedef OBT::Singleton< OBT::PrototypeFactory<
OMK::Name, SimulatedObjectCreator > > 
SimulatedObjectFactory
 The factory of the simulated object.
typedef OBT::Singleton< OBT::PrototypeFactory<
OMK::Name, Iii::AccessRuleCreator > > 
AccessRuleFactory
 The factory of the access rules.
typedef OBT::Singleton< OBT::PrototypeFactory<
OMK::Name, Iii::ConnectorCreator > > 
ConnectorFactory
 The factory of the connectors.
typedef OBT::Singleton< OBT::PrototypeFactory<
std::pair< std::string, std::string >,
Iii::InteractorOutputCreator > > 
InteractorOutputFactory
 The factory of the interactor output.
typedef TriggerEmitterExtensionT<
int, OMK::Type::IntType
TriggerIntEmitterExtension
typedef TriggerEmitterExtensionT<
bool, OMK::Type::BoolType
TriggerBoolEmitterExtension
typedef TriggerEmitterExtensionT<
Name, Name
TriggerNameEmitterExtension
typedef TriggerEmitterExtensionT<
OMK::Type::StringType, OMK::Type::StringType
TriggerStringEmitterExtension
typedef TriggerEmitterExtensionT<
float, OMK::Type::FloatType
TriggerFloatEmitterExtension
typedef TriggerEmitterExtensionT<
OMK::Type::Transform, OMK::Type::TransformType
TriggerTransformEmitterExtension
typedef TriggerEmitterExtensionT<
std::pair< OMK::Name, OMK::Name >,
OMK::Type::SimpleTypeT< std::pair<
OMK::Name, OMK::Name > > > 
TriggerConnectEmitterExtension
typedef MultiTriggerEmitterExtensionT<
int, OMK::Type::IntType
MultiTriggerIntEmitterExtension
typedef MultiTriggerEmitterExtensionT<
bool, OMK::Type::BoolType
MultiTriggerBoolEmitterExtension
typedef MultiTriggerEmitterExtensionT<
Name, Name
MultiTriggerNameEmitterExtension
typedef MultiTriggerEmitterExtensionT<
OMK::Type::StringType, OMK::Type::StringType
MultiTriggerStringEmitterExtension
typedef MultiTriggerEmitterExtensionT<
float, OMK::Type::FloatType
MultiTriggerFloatEmitterExtension
typedef MultiTriggerEmitterExtensionT<
OMK::Type::Transform, OMK::Type::TransformType
MultiTriggerTransformEmitterExtension
typedef MultiTriggerEmitterExtensionT<
std::pair< OMK::Name, OMK::Name >,
OMK::Type::SimpleTypeT< std::pair<
OMK::Name, OMK::Name > > > 
MultiTriggerConnectEmitterExtension

Enumerations

enum  RequestType {
  SynchronisationMessage,
  InitialValuesMessage,
  Registration,
  CancelRegistration,
  GET_ALL_PARAM,
  GET_PARAM,
  EventReceived,
  RegisterForSignal,
  CancelRegistrationForSignal
}

Functions

void printTabToStream (std::ostream &out, int nbSpaces)
 print nbSpaces to out
bool operator< (const Name &premier, const Name &second)
bool operator> (const Name &premier, const Name &second)
bool operator<= (const Name &premier, const Name &second)
bool operator>= (const Name &premier, const Name &second)
bool operator== (const NameServer &source1, const NameServer &source2)
std::string getAttrOwnerMsg (const IAttribute *attr)
template<>
OMKIII_API bool ParametersAccessor::getValue< OMK::Type::AccessibleParameterPrm > (const ConfigurationParameterDescriptor *nodeValue, OMK::Type::AccessibleParameterPrm &value, std::string &errorStr)
 ParametersAccessor specific implementation for AccessibleParameterPrm.
template<>
OMKIII_API bool ParametersAccessor::getValue< OMK::Type::AccessGroup > (const ConfigurationParameterDescriptor *nodeValue, OMK::Type::AccessGroup &value, std::string &errorStr)
 ParametersAccessor specific implementation for AccessGroup.
template<>
OMKIII_API bool ParametersAccessor::getValue< OMK::Type::TwoIdsPrm > (const ConfigurationParameterDescriptor *nodeValue, OMK::Type::TwoIdsPrm &value, std::string &errorStr)
 ParametersAccessor specific implementation for TwoIdsPrm.
template<>
OMKIII_API bool ParametersAccessor::getValue< OMK::Type::ControlTakeOverPrm > (const ConfigurationParameterDescriptor *nodeValue, OMK::Type::ControlTakeOverPrm &value, std::string &errorStr)
 ParametersAccessor specific implementation for ControlTakeOverPrm.
registration loaders
void loadSignalRegistrationParameters (const OMK::ConfigurationParameterDescriptor *node, OMK::SimulatedObject *owner, const OMK::EventIdentifier &eventId, const std::string &cfgName)
 Registers for the signal eventId according to the configuration node informations named cfgName.
template<class CallerClass, class ListenerCallBack>
ListenerCallBack * createListenerAndLoadSignalRegistrationParameters (const OMK::ConfigurationParameterDescriptor *node, OMK::SimulatedObject *owner, CallerClass *callerInstance, typename ListenerCallBack::CallBackFct callBackFct, const OMK::EventIdentifier &eventId, const std::string &cfgName)
 Creates the listener and register according to the configuration node informations.
template<class CallerClass, class ListenerCallBack>
ListenerCallBack * createListenerAndLoadSignalRegistrationParameters (const OMK::ConfigurationParameterDescriptor *node, CallerClass *callerInstance, typename ListenerCallBack::CallBackFct callBackFct, const OMK::EventIdentifier &eventId, const std::string &cfgName)
 Creates the listener and register according to the configuration node informations.
functions and object-function to manipulate names
bool operator!= (const Name &first, const Name &second)
 compare.
Comparasion of 2 reference object handles
order between two referenceObjectHandles is execution order in a simulation step

bool operator< (const ReferenceObjectHandle &, const ReferenceObjectHandle &)
 <
bool operator<= (const ReferenceObjectHandle &, const ReferenceObjectHandle &)
 <=
bool operator> (const ReferenceObjectHandle &, const ReferenceObjectHandle &)
 >
bool operator>= (const ReferenceObjectHandle &, const ReferenceObjectHandle &)
 >=
Message formatting functions.
Use these functions to format the message.

std::string debugMsg (const SimulatedObject *obj)
 Message formatting for simulated object.
std::string debugMsg (const Extension *ext, ExtensibleSimulatedObject *obj=0)
 Message formatting for extension.
std::string debugMsg (const IAttribute *attr)
 Message formatting for attribute.

Variables

OMK_API Exception


Detailed Description

The root namespace, it is used namespace for every OpenMASK class.

Typedef Documentation

typedef long OMK::Date

Definition at line 24 of file OMKBasicTypes.h.

typedef int OMK::Frequency

Definition at line 23 of file OMKBasicTypes.h.

typedef OBT::Singleton< OBT::PrototypeFactory< std::pair< std::string, std::string >, Iii::InteractorOutputCreator > > OMK::InteractorOutputFactory

The factory of the interactor output.

Definition at line 183 of file OMKInteractorOutput.h.

typedef MultiTriggerEmitterExtensionT< bool, OMK::Type::BoolType > OMK::MultiTriggerBoolEmitterExtension

Definition at line 316 of file OMKTriggerEmitterExtension.h.

typedef MultiTriggerEmitterExtensionT< std::pair< OMK::Name, OMK::Name >, OMK::Type::SimpleTypeT< std::pair< OMK::Name, OMK::Name > > > OMK::MultiTriggerConnectEmitterExtension

Definition at line 322 of file OMKTriggerEmitterExtension.h.

typedef MultiTriggerEmitterExtensionT< float, OMK::Type::FloatType > OMK::MultiTriggerFloatEmitterExtension

Definition at line 319 of file OMKTriggerEmitterExtension.h.

typedef MultiTriggerEmitterExtensionT< int, OMK::Type::IntType > OMK::MultiTriggerIntEmitterExtension

Definition at line 315 of file OMKTriggerEmitterExtension.h.

typedef MultiTriggerEmitterExtensionT< Name, Name > OMK::MultiTriggerNameEmitterExtension

Definition at line 317 of file OMKTriggerEmitterExtension.h.

typedef MultiTriggerEmitterExtensionT< OMK::Type::StringType, OMK::Type::StringType > OMK::MultiTriggerStringEmitterExtension

Definition at line 318 of file OMKTriggerEmitterExtension.h.

typedef MultiTriggerEmitterExtensionT< OMK::Type::Transform, OMK::Type::TransformType > OMK::MultiTriggerTransformEmitterExtension

Definition at line 320 of file OMKTriggerEmitterExtension.h.

typedef OBT::Singleton< PluginsLoaderClass > OMK::PluginsLoader

This class is the singleton of the class PluginsLoaderClass.

Date:
2007-07-16
Author:
Benoît Chanclou
To add the loading of plugins to your application you just have to add the following line after creating the controller:
  OMK::PluginsLoader::getInstance().init( controller ) ;
See kernelPluginSec.

Definition at line 50 of file OMKPluginsLoader.h.

typedef OBT::Singleton< OBT::PrototypeFactory< OMK::Name, SimulatedObjectCreator > > OMK::SimulatedObjectFactory

The factory of the simulated object.

Date:
2007-07-13
Author:
Benoît Chanclou
Every simulated object must be dynamically created and must be registered in this factory.
OMK::SimulatedObjectFactory::getInstance().registerCreator
< OMK::SimulatedObjectCreatorT< MyObject > >( MyObject::s_id ) ;
where

Definition at line 772 of file OMKSimulatedObject.h.

typedef TriggerEmitterExtensionT< bool, OMK::Type::BoolType > OMK::TriggerBoolEmitterExtension

Definition at line 181 of file OMKTriggerEmitterExtension.h.

typedef TriggerEmitterExtensionT< std::pair< OMK::Name, OMK::Name >, OMK::Type::SimpleTypeT< std::pair< OMK::Name, OMK::Name > > > OMK::TriggerConnectEmitterExtension

Definition at line 187 of file OMKTriggerEmitterExtension.h.

typedef TriggerEmitterExtensionT< float, OMK::Type::FloatType > OMK::TriggerFloatEmitterExtension

Definition at line 184 of file OMKTriggerEmitterExtension.h.

typedef TriggerEmitterExtensionT< int, OMK::Type::IntType > OMK::TriggerIntEmitterExtension

Definition at line 180 of file OMKTriggerEmitterExtension.h.

typedef TriggerEmitterExtensionT< Name, Name > OMK::TriggerNameEmitterExtension

Definition at line 182 of file OMKTriggerEmitterExtension.h.

typedef TriggerEmitterExtensionT< OMK::Type::StringType, OMK::Type::StringType > OMK::TriggerStringEmitterExtension

Definition at line 183 of file OMKTriggerEmitterExtension.h.

typedef TriggerEmitterExtensionT< OMK::Type::Transform, OMK::Type::TransformType > OMK::TriggerTransformEmitterExtension

Definition at line 185 of file OMKTriggerEmitterExtension.h.


Enumeration Type Documentation

enum OMK::RequestType

Enumerator:
SynchronisationMessage 
InitialValuesMessage 
Registration 
CancelRegistration 
GET_ALL_PARAM 
GET_PARAM 
EventReceived 
RegisterForSignal 
CancelRegistrationForSignal 

Definition at line 34 of file OMKObjectHandle.h.


Function Documentation

template<class CallerClass, class ListenerCallBack>
ListenerCallBack* OMK::createListenerAndLoadSignalRegistrationParameters ( const OMK::ConfigurationParameterDescriptor node,
CallerClass *  callerInstance,
typename ListenerCallBack::CallBackFct  callBackFct,
const OMK::EventIdentifier eventId,
const std::string &  cfgName 
) [inline]

Creates the listener and register according to the configuration node informations.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters:
CallerClass the extensible simulated object class which is the owner of the call back method.
ListenerCallBack the event listener class.
[in] node the configuration node where are the informations.
[in] callerInstance a extensible simulated object which is the owner of the call back method.
[in] callBackFct the call back method.
[in] eventId the event id.
[in] cfgName the name of the configuration parameters.
Returns:
The created event listener.
You must include the inline file to use this method :

Definition at line 194 of file OMKSignalRegistrationLoader.h.

00198   {
00199     return createListenerAndLoadSignalRegistrationParameters< CallerClass, ListenerCallBack >( node, callerInstance, callerInstance, callBackFct, eventId, cfgName ) ;
00200   }

template<class CallerClass, class ListenerCallBack>
ListenerCallBack* OMK::createListenerAndLoadSignalRegistrationParameters ( const OMK::ConfigurationParameterDescriptor node,
OMK::SimulatedObject owner,
CallerClass *  callerInstance,
typename ListenerCallBack::CallBackFct  callBackFct,
const OMK::EventIdentifier eventId,
const std::string &  cfgName 
) [inline]

Creates the listener and register according to the configuration node informations.

Parameters:
CallerClass the extensible simulated object class which is the owner of the call back method.
ListenerCallBack The event listener class.
[in] node The configuration node where are the informations.
[in] owner The owner of the event listener which the registration are made.
[in] callerInstance The class which defines the call back method.
[in] callBackFct Tthe call back method.
[in] eventId The event id.
[in] cfgName The name of the configuration parameters.
Returns:
The created event listener.
This method creates the event listener with the given parameters then calls OMK::loadSignalRegistrationParameters to load the parameters of signal registration.

The event listener must be a OMK::ValuedEventListenerCallBack or a OMK::EventListenerCallBack.

Example of use

Declare your call back methods in the extensible simulated object or extension declaration header file :

   bool myValuedCallBackMethod( OMK::ValuedEvent< OMK::Type::IntType >* e ) ;
   bool myCallBackMethod( OMK::Event* e ) ;

In the loadParameters of the object, add the call to the overload function :

 bool MyObject::loadParameters( const OMK::ConfigurationParameterDescriptor * node )
 {
   bool ok = true ;
   OMK::EventListener* eventListener = OMK::createListenerAndLoadSignalRegistrationParameters
     < MyObject, OMK::ValuedEventListenerCallBack< MyObject, OMK::Type::IntType > >
     ( node, this, &MyObject::myValuedCallBackMethod, ValuedEventId, "ValuedEventRegistration" ) ;
   ok = ok && eventListener ;
   eventListener = OMK::createListenerAndLoadSignalRegistrationParameters
     < MyObject, OMK::EventListenerCallBack< MyObject > >
     ( node, this, &MyObject::myCallBackMethod, EventId, "EventRegistration" ) ;
   ok = ok && eventListener ;
   ...
   return ok ;
 }
or in the loadExtensionParameters of the object, add the call to this function :
 bool MyExtension::loadExtensionParameters( const OMK::ConfigurationParameterDescriptor * node )
 {
   bool ok = true ;
   OMK::EventListener* eventListener = OMK::createListenerAndLoadSignalRegistrationParameters
     < MyExtension, OMK::ValuedEventListenerCallBack< MyExtension, OMK::Type::IntType > >
     ( node, _owner, this, &MyExtension::myValuedCallBackMethod, ValuedEventId, "ValuedEventRegistration" ) ;
   ok = ok && eventListener ;
   eventListener = OMK::createListenerAndLoadSignalRegistrationParameters
     < MyExtension, OMK::EventListenerCallBack< MyExtension > >
     ( node, _owner, this, &MyExtension::myCallBackMethod, EventId, "EventRegistration" ) ;
   ok = ok && eventListener ;
   ...
   return ok ;
 }
The two entries for the configuration will be ValuedEventRegistration and EventRegistration, see OMK::loadSignalRegistrationParameters to configuration them.

You must include the inline file to use this method :

Definition at line 167 of file OMKSignalRegistrationLoader.h.

References loadSignalRegistrationParameters().

00171   {
00172     ListenerCallBack* eventListener = new ListenerCallBack( *owner, callerInstance, callBackFct, eventId ) ;
00173     loadSignalRegistrationParameters( node, owner, eventId, cfgName ) ;
00174     return eventListener ;
00175   }

std::string OMK_API OMK::debugMsg ( const IAttribute attr  ) 

Message formatting for attribute.

Returns:
the following string
  • attribute "AttributeName" (TypeOfTheAttribute type) of object ...
    or :
  • attribute "null" (unknow type) of the object ...
    if the attribute is null, or :
  • attribute "AttributeName" (TypeOfTheAttribute type) not include in an object
    if the attribute is not include in an object

Definition at line 75 of file OMKTracer.cpp.

References getAttrOwnerMsg(), OMK::IAttribute::getId(), OMK::Name::getString(), and OMK::IAttribute::getTypeId().

00076 {
00077   std::ostringstream txt ;
00078   txt << "attribute \"" << (attr ? attr->getId().getString() : std::string( "null" ) ) 
00079     << "\" (" << (attr ? attr->getTypeId().name() : "unknow" ) << " type)" << getAttrOwnerMsg( attr ) ;
00080   return txt.str() ;
00081 }

std::string OMK_API OMK::debugMsg ( const Extension ext,
ExtensibleSimulatedObject obj = 0 
)

Message formatting for extension.

Returns:
the following string
  • extension "ExtensionName" of the object ...
    or :
  • extension "null" of the object ...
    if the extension is null

Definition at line 62 of file OMKTracer.cpp.

References debugMsg(), OMK::Extension::getId(), and OMK::Name::getString().

00063 {
00064   std::ostringstream txt ;
00065   txt << "extension \"" << (ext ? ext->getId().getString() : std::string( "null" ) ) 
00066     << "\"" ;
00067   if( obj ) 
00068           txt << " of the " << OMK::debugMsg( obj ) ;
00069   else
00070     txt << " not include in an object" ;
00071   return txt.str() ;
00072 }

std::string OMK_API OMK::debugMsg ( const SimulatedObject obj  ) 

Message formatting for simulated object.

Returns:
the following string
  • object "ObjectName" (class ClassOfTheObject)
    or :
  • object "null" (class unknow)
    if the object is null

Definition at line 53 of file OMKTracer.cpp.

References OMK::ObjectDescriptor::getClass(), OMK::SimulatedObject::getName(), OMK::SimulatedObject::getObjectDescriptor(), and OMK::Name::getString().

Referenced by OMK::IAttribute::activateConnectByEvent(), OMK::IAttribute::activateGetByEvent(), OMK::IAttributeT< PrmType, ModelType, AccessorType >::activateSetByEvent(), OMK::IAttributeT< PrmType, ModelType, AccessorType >::activateSetByEventOf(), OMK::ExtensibleSimulatedObject::addAttribute(), OMK::SimulatedObject::addControlParameter(), OMK::SimulatedObject::addInput(), OMK::SimulatedObject::addInputAlias(), OMK::Inp::InputExtension::addListener(), OMK::SimulatedObject::addOutput(), OMK::SimulatedObject::addOutputAlias(), OMK::SimulatedObject::addSensitiveInput(), OMK::SimulatedObject::addSensitiveInputAlias(), OMK::SimulatedObject::addSensitiveNotifyingInput(), OMK::SimulatedObject::addSensitiveNotifyingInputAlias(), OMK::Iii::InteractorExtension::closeSessionWith(), OMK::ReferenceObjectHandle::compute(), OMK::OutputNT::connect(), OMK::Iii::SharedConnectorT< Type >::connect(), OMK::Iii::SimpleConnectorT< Type >::connect(), OMK::IAttribute::connectTo(), OMK::Iii::InteractorOutput::create(), OMK::ExtensionManager::createAndAddExtension(), debugMsg(), OMK::Iii::SharedConnectorT< Type >::disconnect(), OMK::Iii::SimpleConnectorT< Type >::disconnect(), OMK::ParametersAccessor::displayError(), OMK::ExtensionT< SimulatedObjectType >::ExtensionT(), getAttrOwnerMsg(), OMK::ReferenceObjectHandle::init(), OMK::ExtensibleSimulatedObject::init(), OMK::Type::AddVisualObjectPrm::innerParametersLoader(), OMK::Inp::AddInputListenerPrm::innerParametersLoader(), OMK::Inp::AddInputKeyPrm::innerParametersLoader(), OMK::Type::AddAnimatorPrm::innerParametersLoader(), OMK::Iii::InteractorExtension::InteractorExtension(), OMK::Iii::JointInteractorExtension::loadExtensionParameters(), OMK::Iii::InteractorExtension::loadExtensionParameters(), OMK::IAttributeBaseT< PrmType >::loadParameters(), OMK::PreOffsetExtension::preComputeParameters(), OMK::Iii::InteractorExtension::processAccessibleParameters(), OMK::Iii::InteractiveExtension::processControlRelease(), OMK::Iii::InteractiveExtension::processControlUnfreeze(), OMK::ValuedEventListenerCallBack< CallerClass, PrmType >::processEvent(), OMK::ReferenceObjectHandle::processEvents(), OMK::ExtensibleSimulatedObject::removeAttribute(), OMK::ExtensionManager::removeExtension(), OMK::Inp::InputExtension::removeListener(), OMK::FrameScheduler::runStep(), and OMK::Iii::InteractorExtension::startSessionWith().

00054 {
00055   std::ostringstream txt ;
00056   txt << "object \"" << (obj ? obj->getName().getString() : std::string( "null" ) ) << "\" (class "
00057     << (obj ? obj->getObjectDescriptor().getClass().getString() : std::string( "unknow" ) ) << ")" ;
00058   return txt.str() ;
00059 }

std::string OMK_API OMK::getAttrOwnerMsg ( const IAttribute attr  ) 

Definition at line 84 of file OMKTracer.cpp.

References debugMsg(), and OMK::IAttribute::getOwner().

Referenced by debugMsg().

00085 {
00086   std::ostringstream txt ;
00087   if( attr ) 
00088   {
00089     if( attr->getOwner() ) 
00090       txt << " of " << debugMsg( attr->getOwner() ) ;
00091     else
00092       txt << " not include in an object" ;
00093   }
00094   return txt.str() ;
00095 }

void OMK::loadSignalRegistrationParameters ( const OMK::ConfigurationParameterDescriptor node,
OMK::SimulatedObject owner,
const OMK::EventIdentifier eventId,
const std::string &  cfgName 
) [inline]

Registers for the signal eventId according to the configuration node informations named cfgName.

Parameters:
[in] node The configuration node where are the informations.
[in] owner The owner of the event listener which the registration are made.
[in] eventId The event id.
[in] cfgName The name of the configuration parameters.
Load the configuration named cfgName which can be true or false or a list of emitters :

if true, the owner listens any broadcasted signals identified by eventId; if a list of emitters id is given, the owner listens only the signals that coming from those emitters; if false or if the configuration parameter doesn't exist nothing is done.

Examples

You can read such configuration

 UserParams
 {
   ...
   ListenedFooSignal on
   ListenedMySignal off
   ListenedSomeSignal ["FirstEmitterId" "SecondEmitterId"]
   ListenedTriggerSignal ["Trigger"]
   ...
 }
with
 bool MyObject::loadParameters( const OMK::ConfigurationParameterDescriptor * node )
 {
   bool ok = true ;
   ...
   loadSignalRegistrationParameters( node, this, FooEventId, "ListenedFooSignal" ) ;
   loadSignalRegistrationParameters( node, this, MyEventId, "ListenedMySignal" ) ;
   loadSignalRegistrationParameters( node, this, SomeEventId, "ListenedSomeSignal" ) ;
   loadSignalRegistrationParameters( node, this, TriggerEventId, "ListenedTriggerSignal" ) ;
   ...
   return ok ;
 }

If you want to create the listener use OMK::createListenerAndLoadSignalRegistrationParameters

You must include the inline file to use this method :

Definition at line 79 of file OMKSignalRegistrationLoader.h.

References OMK::ParametersAccessor::get(), OMK::SimulatedObject::registerForSignal(), and OMK::SimulatedObject::registerForSignalBy().

Referenced by createListenerAndLoadSignalRegistrationParameters().

00081   {
00082     bool activate = false ;
00083     std::vector< OMK::Name > emitters ;
00084     if( OMK::ParametersAccessor::get( node, cfgName, activate ) && activate ) 
00085     {
00086       owner->registerForSignal( eventId ) ;
00087     }
00088     else if( OMK::ParametersAccessor::get( node, cfgName, emitters ) )
00089     {
00090       for( size_t i = 0 ; i < emitters.size() ; i++ ) owner->registerForSignalBy( eventId, emitters[ i ] ) ;
00091     }
00092   }

bool OMK::operator!= ( const Name &  first,
const Name &  second 
) [inline]

compare.

inlined because != is heavely used in the maps of the kernel

Definition at line 302 of file OMKName.h.

References OMK::Name::_identifier.

00303 {
00304   return first._identifier != second._identifier;
00305 }

bool OMK::operator< ( const ReferenceObjectHandle un,
const ReferenceObjectHandle deux 
)

<

Definition at line 192 of file OMKReferenceObjectHandle.cpp.

References OMK::ObjectHandle::_myObject, and OMK::SimulatedObject::getName().

00194 {   
00195    return un._myObject. getObjectDescriptor ().getName()<deux._myObject. getObjectDescriptor ().getName();
00196 }

bool OMK::operator< ( const Name premier,
const Name second 
)

Warning:
here, lexicographic order isn't used, it's the identifier order.

Definition at line 191 of file OMKName.cpp.

References OMK::Name::_identifier.

00192 { 
00193    return premier._identifier < second._identifier; 
00194 }

bool OMK::operator<= ( const ReferenceObjectHandle un,
const ReferenceObjectHandle deux 
)

<=

Definition at line 198 of file OMKReferenceObjectHandle.cpp.

References OMK::ObjectHandle::_myObject, OMK::ObjectDescriptor::getName(), and OMK::SimulatedObject::getObjectDescriptor().

00200 {
00201    return un._myObject.getObjectDescriptor ().getName()<=deux._myObject.getObjectDescriptor ().getName();
00202 }

bool OMK::operator<= ( const Name premier,
const Name second 
)

Warning:
here, lexicographic order isn't used, it's the identifier order.

Definition at line 203 of file OMKName.cpp.

References OMK::Name::_identifier.

00204 { 
00205    return premier._identifier <= second._identifier; 
00206 }

bool OMK::operator== ( const NameServer source1,
const NameServer source2 
)

Definition at line 232 of file OMKNameServer.cpp.

References OMK::NameServer::getCanonicalRepresentation().

00233 {
00234    NameServer::CanonicalRepresentationType * canonicalRepresentation1 = source1.getCanonicalRepresentation() ;
00235    NameServer::CanonicalRepresentationType * canonicalRepresentation2 = source2.getCanonicalRepresentation() ;
00236    bool resul = *canonicalRepresentation1 == *canonicalRepresentation2 ;
00237    delete canonicalRepresentation1 ;
00238    delete canonicalRepresentation2 ;
00239    return resul ;
00240 }

bool OMK::operator> ( const ReferenceObjectHandle un,
const ReferenceObjectHandle deux 
)

>

Definition at line 204 of file OMKReferenceObjectHandle.cpp.

00206 {
00207    return !(un<=deux);
00208 }

bool OMK::operator> ( const Name premier,
const Name second 
)

Warning:
here, lexicographic order isn't used, it's the identifier order.

Definition at line 197 of file OMKName.cpp.

References OMK::Name::_identifier.

00198 { 
00199    return premier._identifier > second._identifier; 
00200 }

bool OMK::operator>= ( const ReferenceObjectHandle un,
const ReferenceObjectHandle deux 
)

>=

Definition at line 210 of file OMKReferenceObjectHandle.cpp.

00212 {
00213    return !(un<deux);
00214 }

bool OMK::operator>= ( const Name premier,
const Name second 
)

Warning:
here, lexicographic order isn't used, it's the identifier order.

Definition at line 210 of file OMKName.cpp.

References OMK::Name::_identifier.

00211 { 
00212    return premier._identifier >= second._identifier; 
00213 }

template<>
OMKIII_API bool OMK::ParametersAccessor::getValue< OMK::Type::AccessGroup > ( const ConfigurationParameterDescriptor *  nodeValue,
OMK::Type::AccessGroup value,
std::string &  errorStr 
)

ParametersAccessor specific implementation for AccessGroup.

template<>
OMKIII_API bool OMK::ParametersAccessor::getValue< OMK::Type::AccessibleParameterPrm > ( const ConfigurationParameterDescriptor *  nodeValue,
OMK::Type::AccessibleParameterPrm value,
std::string &  errorStr 
)

ParametersAccessor specific implementation for AccessibleParameterPrm.

template<>
OMKIII_API bool OMK::ParametersAccessor::getValue< OMK::Type::ControlTakeOverPrm > ( const ConfigurationParameterDescriptor *  nodeValue,
OMK::Type::ControlTakeOverPrm value,
std::string &  errorStr 
)

ParametersAccessor specific implementation for ControlTakeOverPrm.

template<>
OMKIII_API bool OMK::ParametersAccessor::getValue< OMK::Type::TwoIdsPrm > ( const ConfigurationParameterDescriptor *  nodeValue,
OMK::Type::TwoIdsPrm value,
std::string &  errorStr 
)

ParametersAccessor specific implementation for TwoIdsPrm.

void OMK::printTabToStream ( std::ostream &  out,
int  nbSpaces 
)

print nbSpaces to out

Definition at line 35 of file OMKConfigurationParameterDescriptor.cpp.

Referenced by OMK::ObjectDescriptor::printToStream(), and OMK::MultipleConfigurationParameter::printToStream().

00036 {
00037    for (int i = 0; i < nbSpaces ; ++i)
00038       {
00039          out<<" ";
00040       } 
00041 } 


Variable Documentation

class OMK_API OMK::Exception

Definition at line 26 of file OMKException.h.

Referenced by OMK::Vis::VisualObjectCreator::operator()(), OMK::Iii::InteractorOutputCreator::operator()(), OMK::Inp::InputListenerCreator::operator()(), and OMK::Iii::ConnectorCreator::operator()().


logo OpenMask

Documentation generated on Mon Jun 9 11:46:01 2008

Generated with doxygen by Dimitri van Heesch ,   1997-2007