Main Page | Modules | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

DC_ControlList.cpp

00001 // 00002 // Copyright 2004 P&P Software GmbH - All Rights Reserved 00003 // 00004 // DC_ControlList.cpp 00005 // 00006 // Version 1.0 00007 // Date 08.10.03 (Version 1.0) 00008 // Author R. Totaro 00009 // 00010 // Change Record: 00011 00012 #include "../GeneralInclude/CompilerSwitches.h" 00013 #include "../GeneralInclude/DebugSupport.h" 00014 #include "../GeneralInclude/Constants.h" 00015 #include "../GeneralInclude/ClassId.h" 00016 #include "../Base/CC_RootObject.h" 00017 #include "DC_ControlList.h" 00018 00019 DC_ControlList::DC_ControlList(void) { 00020 listSize =0; 00021 controlBlockList=pNULL; 00022 setClassId(ID_CONTROLLIST); 00023 } 00024 00025 void DC_ControlList::setListSize(unsigned int listSize) { 00026 assert(listSize!=0 && this->listSize==0); 00027 00028 this->listSize=listSize; 00029 controlBlockList=new ControlBlock*[listSize]; 00030 00031 for (unsigned int i=0;i<listSize;i++) 00032 controlBlockList[i]=pNULL; 00033 } 00034 00035 unsigned int DC_ControlList::getListSize(void) const { 00036 return listSize; 00037 } 00038 00039 void DC_ControlList::setControlBlock(unsigned int i,ControlBlock *item) { 00040 assert(item!=pNULL && i<listSize); 00041 00042 if (i<listSize) 00043 controlBlockList[i]=item; 00044 else 00045 CC_RootObject::getEventRepository()->create(this,EVT_ILLEGAL_CL); 00046 } 00047 00048 ControlBlock *DC_ControlList::getControlBlock(unsigned int i) const { 00049 assert(i<listSize); 00050 00051 return controlBlockList[i]; 00052 } 00053 00054 TD_ActionOutcome DC_ControlList::doConditionalAction(void) { 00055 assert(isObjectConfigured()); 00056 00057 for (unsigned int i=0;i<listSize;i++) 00058 controlBlockList[i]->propagate(); 00059 00060 return ACTION_SUCCESS; 00061 } 00062 00063 bool DC_ControlList::canExecute(void) { 00064 assert(isObjectConfigured()); 00065 00066 return true; 00067 } 00068 00069 void DC_ControlList::reset(void) { 00070 assert(isObjectConfigured()); 00071 00072 for (unsigned int i=0;i<listSize;i++) 00073 controlBlockList[i]->reset(); 00074 } 00075 00076 bool DC_ControlList::isObjectConfigured(void) { 00077 if (!ConditionalPunctualAction::isObjectConfigured() || listSize==0) 00078 return NOT_CONFIGURED; 00079 00080 for (unsigned int i=0;i<listSize;i++) 00081 if (controlBlockList[i]==pNULL) 00082 return NOT_CONFIGURED; 00083 00084 return CONFIGURED; 00085 }
Copyright 2003 P&P Software GmbH - All Rights Reserved