CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Private Member Functions
evf::rb_statemachine::Enabling Class Reference

#include <RBStateMachine.h>

Inheritance diagram for evf::rb_statemachine::Enabling:
evf::rb_statemachine::BaseState

Public Types

typedef bsc::transition
< EnableDone, Enabled
ED
 
typedef boost::mpl::list< EDreactions
 

Public Member Functions

virtual void do_stateAction () const
 
virtual void do_stateNotify ()
 
 Enabling (my_context)
 
virtual int stateID () const
 
virtual ~Enabling ()
 
- Public Member Functions inherited from evf::rb_statemachine::BaseState
 BaseState ()
 
virtual bool discardDataEvent (MemRef_t *bufRef) const
 
virtual bool discardDqmEvent (MemRef_t *bufRef) const
 
void moveToFailedState (xcept::Exception &exception) const
 
std::string stateName () const
 
virtual ~BaseState ()=0
 

Private Member Functions

virtual void do_entryActionWork ()
 
virtual void do_exitActionWork ()
 
virtual void do_moveToFailedState (xcept::Exception &exception) const
 
virtual std::string do_stateName () const
 

Additional Inherited Members

- Protected Member Functions inherited from evf::rb_statemachine::BaseState
void fail ()
 
void safeEntryAction ()
 
void safeExitAction ()
 

Detailed Description

Enabling state

Definition at line 498 of file RBStateMachine.h.

Member Typedef Documentation

Definition at line 504 of file RBStateMachine.h.

Definition at line 505 of file RBStateMachine.h.

Constructor & Destructor Documentation

Enabling::Enabling ( my_context  c)

Definition at line 92 of file Enabling.cc.

References evf::rb_statemachine::BaseState::safeEntryAction().

92  :
93  my_base(c) {
95 }
Enabling::~Enabling ( )
virtual

Definition at line 97 of file Enabling.cc.

References evf::rb_statemachine::BaseState::safeExitAction().

97  {
99 }

Member Function Documentation

void Enabling::do_entryActionWork ( )
privatevirtual

Implements evf::rb_statemachine::BaseState.

Definition at line 17 of file Enabling.cc.

17  {
18 }
void Enabling::do_exitActionWork ( )
privatevirtual

Implements evf::rb_statemachine::BaseState.

Definition at line 103 of file Enabling.cc.

103  {
104 }
void Enabling::do_moveToFailedState ( xcept::Exception &  exception) const
privatevirtual

Implements evf::rb_statemachine::BaseState.

Definition at line 110 of file Enabling.cc.

References edm::hlt::Fail, and evf::rb_statemachine::BaseState::fail().

110  {
111  SharedResourcesPtr_t res = outermost_context().getSharedResources();
112  res->reasonForFailed_ = exception.what();
113  LOG4CPLUS_FATAL(res->log_,
114  "Moving to FAILED state! Reason: " << exception.what());
115  EventPtr fail(new Fail());
116  res->commands_.enqEvent(fail);
117 }
boost::shared_ptr< SharedResources > SharedResourcesPtr_t
reject
Definition: HLTenums.h:23
boost::shared_ptr< boost::statechart::event_base > EventPtr
Definition: CommandQueue.h:23
void Enabling::do_stateAction ( ) const
virtual

State-dependent actions

Reimplemented from evf::rb_statemachine::BaseState.

Definition at line 30 of file Enabling.cc.

References alignCSCRings::e, edm::hlt::Exception, evf::rb_statemachine::BaseState::moveToFailedState(), evf::IPCMethod::resetCounters(), evf::IPCMethod::sendAllocate(), and evf::IPCMethod::setRunNumber().

30  {
31  SharedResourcesPtr_t res = outermost_context().getSharedResources();
32  IPCMethod* resourceStructure = res->resourceStructure_;
33 
34  try {
35  LOG4CPLUS_INFO(res->log_, "Start enabling ...");
36 
37  // set current run number and reset GUI counters
38  // UPDATED
39  res->reset();
40  resourceStructure->setRunNumber(res->runNumber_);
41  res->lock();
42 
43  /*
44  * UPDATE:
45  * releaseResources
46  * resetPendingAllocates
47  * resetIPC
48  *
49  * after stopping
50  */
51 
52  resourceStructure->resetCounters();
53  res->unlock();
54 
55  LOG4CPLUS_INFO(res->log_, "Starting monitoring / watching workloops.");
56  // starting monitoring workloop
57  res->startMonitoringWorkLoop();
58 
59  // Watching Workloop is used only for Shared Memory IPC
60  if (!res->useMessageQueueIPC_)
61  res->startWatchingWorkLoop();
62 
63  // starting main workloops
64  // 1. Discard
65  res->startDiscardWorkLoop();
66  // 2. Send Data
67  res->startSendDataWorkLoop();
68  // 3. Send DQM
69  res->startSendDqmWorkLoop();
70 
71  resourceStructure->sendAllocate();
72 
73  res->nbTimeoutsWithEvent_ = 0;
74  res->nbTimeoutsWithoutEvent_ = 0;
75  res->dataErrorFlag_ = 0;
76 
77  // make sure I2O discards are allowed
78  // (re-enable discards after stop)
79  res->allowI2ODiscards_ = true;
80 
81  LOG4CPLUS_INFO(res->log_, "Finished enabling!");
82  EventPtr enableDone(new EnableDone());
83  res->commands_.enqEvent(enableDone);
84 
85  } catch (xcept::Exception &e) {
87  }
88 }
boost::shared_ptr< SharedResources > SharedResourcesPtr_t
boost::shared_ptr< boost::statechart::event_base > EventPtr
Definition: CommandQueue.h:23
void moveToFailedState(xcept::Exception &exception) const
Definition: BaseState.cc:35
string Enabling::do_stateName ( ) const
privatevirtual

Implements evf::rb_statemachine::BaseState.

Definition at line 106 of file Enabling.cc.

106  {
107  return string("Enabling");
108 }
void Enabling::do_stateNotify ( )
virtual

State entry notifications

Implements evf::rb_statemachine::BaseState.

Definition at line 20 of file Enabling.cc.

References evf::rb_statemachine::BaseState::stateName().

20  {
21  SharedResourcesPtr_t res = outermost_context().getSharedResources();
22  LOG4CPLUS_INFO(res->log_, "--> ResourceBroker: NEW STATE: " << stateName());
23  outermost_context().setExternallyVisibleState(stateName());
24  outermost_context().setInternalStateName(stateName());
25  // RCMS notification no longer required here
26  // this is done in FUResourceBroker in SOAP reply
27  //outermost_context().rcmsStateChangeNotify();
28 }
boost::shared_ptr< SharedResources > SharedResourcesPtr_t
std::string stateName() const
Definition: BaseState.cc:31
virtual int evf::rb_statemachine::Enabling::stateID ( ) const
inlinevirtual

Return the current state ID

Implements evf::rb_statemachine::BaseState.

Definition at line 512 of file RBStateMachine.h.

References evf::rb_statemachine::ENABLING.