bool TapeManagerStop::CheckTapeState(const string & tape,enum TapeState state) { bool ret = TapeManagerEntity::CheckTapeState(tape,state); if ( ret ) { switch (state) { case TapeManagerInterface::STATE_READ: case TapeManagerInterface::STATE_WRITE: StartTape(tape); break; default: break; } } return ret; }
bool TapeManagerStop::SetTapeState(const string & tape,enum TapeState state) { #ifdef MORE_TEST bool ret = TapeManagerEntity::SetTapeState(tape,state); if ( ret ) { switch (state) { case TapeManagerInterface::STATE_READ: case TapeManagerInterface::STATE_WRITE: StartTape(tape); break; default: break; } } return ret; #else int retry = 10; do { LogDebug(tape); if ( IsTapeStopped(tape) ) { LogDebug(tape); switch (state) { case TapeManagerInterface::STATE_READ: case TapeManagerInterface::STATE_WRITE: return false; break; default: break; } bool ret = TapeManagerEntity::SetTapeStateNoLock(tape,state); LogDebug(tape << " " << state << ": " << ret); return ret; } if ( TapeManagerEntity::SetTapeState(tape,state) ) { LogDebug(tape); return true; } } while ( retry -- ); return false; #endif }
//============================================================================= // eTape::Start //----------------------------------------------------------------------------- void eTape::Start() { StartTape(); }