IBR-DTNSuite
0.8
|
00001 /* 00002 * Component.cpp 00003 * 00004 * Created on: 21.04.2010 00005 * Author: morgenro 00006 */ 00007 00008 #include "Component.h" 00009 #include <ibrcommon/thread/MutexLock.h> 00010 #include <ibrcommon/Logger.h> 00011 00012 namespace dtn 00013 { 00014 namespace daemon 00015 { 00016 Component::~Component() 00017 { 00018 } 00019 00020 IndependentComponent::IndependentComponent() 00021 { 00022 } 00023 00024 IndependentComponent::~IndependentComponent() 00025 { 00026 join(); 00027 } 00028 00029 void IndependentComponent::initialize() 00030 { 00031 componentUp(); 00032 } 00033 00034 void IndependentComponent::startup() 00035 { 00036 try { 00037 this->start(); 00038 } catch (const ibrcommon::ThreadException &ex) { 00039 IBRCOMMON_LOGGER(error) << "failed to start IndependentComponent\n" << ex.what() << IBRCOMMON_LOGGER_ENDL; 00040 } 00041 } 00042 00043 void IndependentComponent::terminate() 00044 { 00045 componentDown(); 00046 JoinableThread::stop(); 00047 } 00048 00049 void IndependentComponent::run() 00050 { 00051 componentRun(); 00052 } 00053 00054 IntegratedComponent::IntegratedComponent() 00055 { 00056 } 00057 00058 IntegratedComponent::~IntegratedComponent() 00059 { 00060 } 00061 00062 void IntegratedComponent::initialize() 00063 { 00064 componentUp(); 00065 } 00066 00067 void IntegratedComponent::startup() 00068 { 00069 // nothing to do 00070 } 00071 00072 void IntegratedComponent::terminate() 00073 { 00074 componentDown(); 00075 } 00076 } 00077 }