Go to the documentation of this file.00001
00003
00004 #include "EventFilter/StorageManager/interface/Configuration.h"
00005 #include "EventFilter/StorageManager/interface/ErrorStreamConfigurationInfo.h"
00006 #include "EventFilter/StorageManager/interface/EventStreamConfigurationInfo.h"
00007 #include "EventFilter/StorageManager/interface/Exception.h"
00008 #include "EventFilter/StorageManager/interface/DiscardManager.h"
00009 #include "EventFilter/StorageManager/interface/SharedResources.h"
00010 #include "EventFilter/StorageManager/interface/StateMachine.h"
00011 #include "EventFilter/StorageManager/interface/StatisticsReporter.h"
00012 #include "EventFilter/StorageManager/interface/TransitionRecord.h"
00013
00014 #include "xcept/tools.h"
00015
00016 #include <iostream>
00017
00018 using namespace std;
00019 using namespace stor;
00020
00021 Ready::Ready( my_context c ): my_base(c)
00022 {
00023 safeEntryAction();
00024 }
00025
00026 void Ready::do_entryActionWork()
00027 {
00028 TransitionRecord tr( stateName(), true );
00029 outermost_context().updateHistory( tr );
00030
00031 SharedResourcesPtr sharedResources =
00032 outermost_context().getSharedResources();
00033
00034
00035 std::string errorMsg = "Failed to update configuration parameters in Ready state";
00036 try
00037 {
00038 sharedResources->configuration_->updateAllParams();
00039 }
00040 catch(xcept::Exception &e)
00041 {
00042 XCEPT_DECLARE_NESTED(stor::exception::Configuration,
00043 sentinelException, errorMsg, e);
00044 sharedResources->moveToFailedState( sentinelException );
00045 return;
00046 }
00047 catch( std::exception &e )
00048 {
00049 errorMsg.append(": ");
00050 errorMsg.append( e.what() );
00051
00052 XCEPT_DECLARE(stor::exception::Configuration,
00053 sentinelException, errorMsg);
00054 sharedResources->moveToFailedState( sentinelException );
00055 return;
00056 }
00057 catch(...)
00058 {
00059 errorMsg.append(": unknown exception");
00060
00061 XCEPT_DECLARE(stor::exception::Configuration,
00062 sentinelException, errorMsg);
00063 sharedResources->moveToFailedState( sentinelException );
00064 return;
00065 }
00066
00067
00068 QueueConfigurationParams queueParams =
00069 sharedResources->configuration_->getQueueConfigurationParams();
00070 sharedResources->commandQueue_->
00071 setCapacity(queueParams.commandQueueSize_);
00072 sharedResources->fragmentQueue_->
00073 setCapacity(queueParams.fragmentQueueSize_);
00074 sharedResources->fragmentQueue_->
00075 setMemory(queueParams.fragmentQueueMemoryLimitMB_ * 1024*1024);
00076 sharedResources->registrationQueue_->
00077 setCapacity(queueParams.registrationQueueSize_);
00078 sharedResources->streamQueue_->
00079 setCapacity(queueParams.streamQueueSize_);
00080 sharedResources->streamQueue_->
00081 setMemory(queueParams.streamQueueMemoryLimitMB_ * 1024*1024);
00082 sharedResources->dqmEventQueue_->
00083 setCapacity(queueParams.dqmEventQueueSize_);
00084 sharedResources->dqmEventQueue_->
00085 setMemory(queueParams.dqmEventQueueMemoryLimitMB_ * 1024*1024);
00086
00087
00088
00089 DiskWritingParams dwParams =
00090 sharedResources->configuration_->getDiskWritingParams();
00091 EvtStrConfigListPtr evtCfgList(new EvtStrConfigList);
00092 ErrStrConfigListPtr errCfgList(new ErrStrConfigList);
00093
00094 parseStreamConfiguration(dwParams.streamConfiguration_, evtCfgList,
00095 errCfgList);
00096 sharedResources->configuration_->setCurrentEventStreamConfig(evtCfgList);
00097 sharedResources->configuration_->setCurrentErrorStreamConfig(errCfgList);
00098
00099
00100 ResourceMonitorCollection& rmc =
00101 sharedResources->statisticsReporter_->getResourceMonitorCollection();
00102 AlarmParams ap =
00103 sharedResources->configuration_->getAlarmParams();
00104 ResourceMonitorParams rmp =
00105 sharedResources->configuration_->getResourceMonitorParams();
00106 rmc.configureAlarms(ap);
00107 rmc.configureResources(rmp);
00108 rmc.configureDisks(dwParams);
00109
00110
00111 RunMonitorCollection& run_mc =
00112 sharedResources->statisticsReporter_->getRunMonitorCollection();
00113 run_mc.configureAlarms(ap);
00114
00115
00116 sharedResources->discardManager_->configure();
00117 }
00118
00119 Ready::~Ready()
00120 {
00121 safeExitAction();
00122 }
00123
00124 void Ready::do_exitActionWork()
00125 {
00126 TransitionRecord tr( stateName(), false );
00127 outermost_context().updateHistory( tr );
00128 }
00129
00130 string Ready::do_stateName() const
00131 {
00132 return std::string( "Ready" );
00133 }
00134
00135 void Ready::do_moveToFailedState( xcept::Exception& exception ) const
00136 {
00137 outermost_context().getSharedResources()->moveToFailedState( exception );
00138 }
00139
00140