Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
    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
    }
Exemplo n.º 3
0
//=============================================================================
//	eTape::Start
//-----------------------------------------------------------------------------
void eTape::Start()
{
	StartTape();
}