compoundActivateVisitor.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef EQSERVER_COMPOUNDACTIVATEVISITOR_H
00019 #define EQSERVER_COMPOUNDACTIVATEVISITOR_H
00020
00021 #include "compoundVisitor.h"
00022
00023 namespace eq
00024 {
00025 namespace server
00026 {
00028 class CompoundActivateVisitor : public CompoundVisitor
00029 {
00030 public:
00031 CompoundActivateVisitor( const bool activate ) : _activate( activate ){}
00032 virtual ~CompoundActivateVisitor() {}
00033
00035 virtual VisitorResult visit( Compound* compound )
00036 {
00037 compound->setActive( _activate );
00038
00039 Channel* channel = compound->getChannel();
00040 if( channel )
00041 {
00042 if( _activate )
00043 channel->activate();
00044 else
00045 channel->deactivate();
00046 }
00047 return TRAVERSE_CONTINUE;
00048 }
00049
00050 private:
00051 const bool _activate;
00052 };
00053 }
00054 }
00055 #endif // EQSERVER_CONSTCOMPOUNDVISITOR_H