Homepage Demos Overview Downloads Tutorials Reference
Credits

BehaviorBase.cc

Go to the documentation of this file.
00001 #include "BehaviorBase.h"
00002 
00003 std::set<BehaviorBase*> BehaviorBase::registry;
00004 
00005 /*! @deprecated, behavior constructors should take a name argument (which by default should be the name of the type of the class) */
00006 BehaviorBase::BehaviorBase()
00007   : ReferenceCounter(), EventListener(), started(false),
00008     instanceName("?"), className("BehaviorBase")
00009 {
00010   registry.insert(this);
00011 }
00012 
00013 BehaviorBase::BehaviorBase(const std::string& name)
00014   : ReferenceCounter(), EventListener(), started(false),
00015     instanceName(name), className(name)
00016 {
00017   registry.insert(this);
00018 }
00019 
00020 BehaviorBase::BehaviorBase(const std::string& classname, const std::string& instancename)
00021   : ReferenceCounter(), EventListener(), started(false),
00022     instanceName(instancename), className(classname)
00023 {
00024   registry.insert(this);
00025 }
00026 
00027 
00028 BehaviorBase::BehaviorBase(const BehaviorBase& b)
00029   : ReferenceCounter(b), EventListener(b), started(b.started),
00030     instanceName(b.instanceName), className(b.className)
00031 {
00032   registry.insert(this);
00033 }
00034 
00035 BehaviorBase&
00036 BehaviorBase::operator=(const BehaviorBase& b) {
00037   ReferenceCounter::operator=(b);
00038   EventListener::operator=(b);
00039   started=b.started;
00040   instanceName=b.instanceName;
00041   return *this;
00042 }
00043 
00044 BehaviorBase::~BehaviorBase() {
00045   SetAutoDelete(false);
00046   if(started)
00047     DoStop();
00048   //{ if(started) { references++; DoStop(); references--; } }
00049   registry.erase(this);
00050 }
00051 
00052 void
00053 BehaviorBase::DoStart() {
00054   //std::cout << getName() << " started " << this << std::endl;
00055   if(!started) {
00056     started=true;
00057     AddReference();
00058   }
00059 }
00060 
00061 void
00062 BehaviorBase::DoStop() {
00063   //std::cout << getName() << " stopped " << this << std::endl;
00064   if(started) {
00065     started=false;
00066     RemoveReference();
00067   }
00068 }
00069 

Tekkotsu v2.2.1
Generated Tue Nov 23 16:36:37 2004 by Doxygen 1.3.9.1