Tekkotsu Homepage
Demos
Overview
Downloads
Dev. Resources
Reference
Credits

MCNodeBase Class Reference

#include <MCNode.h>

Inheritance diagram for MCNodeBase:

List of all members.


Detailed Description

Common parent class for all the templated MCNode, which is what you want to instantiate.

Definition at line 10 of file MCNode.h.


Public Member Functions

virtual ~MCNodeBase ()
 destructor, free mc
virtual void DoStart ()
 Adds the motion command to the motion manager, add a listener for the motion's completion event.
virtual void processEvent (const EventBase &)
 Assumes the event is a completion event from the motion, throws a corresponding state node completion event.
virtual void DoStop ()
 Removes the motion command from the motion manager if it was our own creation.
virtual void setMC (MotionManager::MC_ID mcid)
 Allows you to assign a previously created motion, which might be shared among several MCNodes.
virtual MotionManager::MC_ID getMC_ID ()
 reveal the MC_ID; if the motion isn't currently active, returns MotionManager::invalid_MC_ID
virtual std::string getDescription () const
 Gives a short description of what this particular instantiation does (in case a more specific description is needed on an individual basis).

Static Public Member Functions

static std::string getClassDescription ()
 Gives a short description of what this class of behaviors does... you should override this (but don't have to).

Static Public Attributes

static const char defName [] = "MCNode"
 the default name for MCNodes -- can be overridden via MCNode's template arguments
static const char defDesc [] = "A generic wrapper for any MotionCommand"
 the default description for MCNodes -- can be overridden via MCNode's template arguments

Protected Member Functions

 MCNodeBase (const std::string &class_name, const std::string &node_name, bool expectCompletion=true)
 constructor for subclasses (which would need to provide a different class name)
virtual SharedObjectBasegetPrivateMC ()=0
 returns reference to mc or a new SharedObject<T> if mc is currently NULL (so it will always return a valid value)
virtual bool hasPrivateMC ()
 returns true if the motion command being used was created internally via getPrivateMC()

Protected Attributes

SharedObjectBasemc
 MotionCommand used by this node (may be NULL if sharing the MC with other nodes).
MotionManager::MC_ID mc_id
 id number for the MotionCommand
bool mcCompletes
 if true, will post a completion when the underlying MotionCommand posts a status

Private Member Functions

 MCNodeBase (const MCNodeBase &)
 don't call (copy constructor)
MCNodeBaseoperator= (const MCNodeBase &)
 don't call (assignment operator)

Constructor & Destructor Documentation

virtual MCNodeBase::~MCNodeBase (  )  [inline, virtual]

destructor, free mc

Definition at line 16 of file MCNode.h.

MCNodeBase::MCNodeBase ( const std::string &  class_name,
const std::string &  node_name,
bool  expectCompletion = true 
) [inline, protected]

constructor for subclasses (which would need to provide a different class name)

Definition at line 39 of file MCNode.h.

MCNodeBase::MCNodeBase ( const MCNodeBase  )  [private]

don't call (copy constructor)


Member Function Documentation

void MCNodeBase::DoStart (  )  [virtual]

Adds the motion command to the motion manager, add a listener for the motion's completion event.

Reimplemented from StateNode.

Reimplemented in PostureNode, WalkEngineNode< W, mcName, mcDesc >, and WaypointEngineNode< W, mcName, mcDesc >.

Definition at line 33 of file MCNode.cc.

Referenced by WaypointEngineNode< W, mcName, mcDesc >::DoStart(), WalkEngineNode< W, mcName, mcDesc >::DoStart(), and PostureNode::DoStart().

void MCNodeBase::processEvent ( const EventBase  )  [virtual]

Assumes the event is a completion event from the motion, throws a corresponding state node completion event.

Reimplemented from BehaviorBase.

Reimplemented in WaypointEngineNode< W, mcName, mcDesc >.

Definition at line 42 of file MCNode.cc.

void MCNodeBase::DoStop (  )  [virtual]

Removes the motion command from the motion manager if it was our own creation.

Reimplemented from StateNode.

Definition at line 47 of file MCNode.cc.

void MCNodeBase::setMC ( MotionManager::MC_ID  mcid  )  [virtual]

Allows you to assign a previously created motion, which might be shared among several MCNodes.

If this node already has an mc, then it will be freed, removing from MotionManager if necessary

Definition at line 58 of file MCNode.cc.

virtual MotionManager::MC_ID MCNodeBase::getMC_ID (  )  [inline, virtual]

reveal the MC_ID; if the motion isn't currently active, returns MotionManager::invalid_MC_ID

Definition at line 32 of file MCNode.h.

static std::string MCNodeBase::getClassDescription (  )  [inline, static]

Gives a short description of what this class of behaviors does... you should override this (but don't have to).

If you do override this, also consider overriding getDescription() to return it

Reimplemented from BehaviorBase.

Reimplemented in LedNode, MCNode< T, mcName, mcDesc, completes >, MCNode< LedMC >, MCNode< PostureMC, defPostureNodeName, defPostureNodeDesc, true >, MCNode< TailWagMC, defTailWagNodeName, defTailWagNodeDesc, false >, MCNode< W, mcName, mcDesc >, and MCNode< HeadPointerMC, defHeadPointerNodeName, defHeadPointerNodeDesc, true >.

Definition at line 34 of file MCNode.h.

Referenced by getDescription().

virtual std::string MCNodeBase::getDescription (  )  const [inline, virtual]

Gives a short description of what this particular instantiation does (in case a more specific description is needed on an individual basis).

By default simply returns getName(), because any calls from a BehaviorBase function to getClassDescription() are going to call BehaviorBase::getClassDescription(), not ~YourSubClass~getClassDescription(), because static functions can't be virtual in C++ (doh!)

This means that getDescription called on a pointer to a BehaviorBase of unknown subtype would always return an empty string, which is pretty useless. So instead we return the name in this situation. If you want getDescription to return getClassDescription, you'll have to override it in your subclass to do so.

Reimplemented from BehaviorBase.

Reimplemented in LedNode, MCNode< T, mcName, mcDesc, completes >, MCNode< LedMC >, MCNode< PostureMC, defPostureNodeName, defPostureNodeDesc, true >, MCNode< TailWagMC, defTailWagNodeName, defTailWagNodeDesc, false >, MCNode< W, mcName, mcDesc >, and MCNode< HeadPointerMC, defHeadPointerNodeName, defHeadPointerNodeDesc, true >.

Definition at line 35 of file MCNode.h.

virtual SharedObjectBase& MCNodeBase::getPrivateMC (  )  [protected, pure virtual]

returns reference to mc or a new SharedObject<T> if mc is currently NULL (so it will always return a valid value)

if a particular motion command needs some initial setup besides the default constructor, overriding this function is a good opportunity to do so

Implemented in LedNode, MCNode< T, mcName, mcDesc, completes >, MCNode< LedMC >, MCNode< PostureMC, defPostureNodeName, defPostureNodeDesc, true >, MCNode< TailWagMC, defTailWagNodeName, defTailWagNodeDesc, false >, MCNode< W, mcName, mcDesc >, and MCNode< HeadPointerMC, defHeadPointerNodeName, defHeadPointerNodeDesc, true >.

Referenced by DoStart().

virtual bool MCNodeBase::hasPrivateMC (  )  [inline, protected, virtual]

returns true if the motion command being used was created internally via getPrivateMC()

Definition at line 49 of file MCNode.h.

Referenced by DoStop(), and setMC().

MCNodeBase& MCNodeBase::operator= ( const MCNodeBase  )  [private]

don't call (assignment operator)


Member Data Documentation

const char MCNodeBase::defName = "MCNode" [static]

the default name for MCNodes -- can be overridden via MCNode's template arguments

Definition at line 12 of file MCNode.h.

Referenced by getClassDescription().

const char MCNodeBase::defDesc = "A generic wrapper for any MotionCommand" [static]

the default description for MCNodes -- can be overridden via MCNode's template arguments

Definition at line 13 of file MCNode.h.

MotionCommand used by this node (may be NULL if sharing the MC with other nodes).

Definition at line 51 of file MCNode.h.

Referenced by MCNode< T, mcName, mcDesc, completes >::getPrivateMC(), LedNode::getPrivateMC(), hasPrivateMC(), setMC(), and ~MCNodeBase().

bool MCNodeBase::mcCompletes [protected]

if true, will post a completion when the underlying MotionCommand posts a status

Definition at line 53 of file MCNode.h.

Referenced by processEvent().


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

Tekkotsu v4.0
Generated Thu Nov 22 00:58:31 2007 by Doxygen 1.5.4