/*
* Software Name : ATK
*
* Copyright (C) 2007 - 2012 France Télécom
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* ------------------------------------------------------------------
* File Name : DownloadMonitor.java
*
* Created : 26/05/2009
* Author(s) : Yvain Leyral
*/
package com.orange.atk.atkUI.corecli.utils;
/**
* This class is responsible for monitoring the status of a download session. A
* user will typically create an instance of Downloader as well as an instance
* of DownloadMonitor. The user will start the Downloader object, as an
* independant thread, then call the DownloadMonitor.waitForEnd() method, which
* is blocked until the status is changed to something else than DLOAD_ONGOING.
* When created, the Downloader thread is passed a pointer to its
* DownloadMonitor, to keep it informed of the evolution of the session's
* status.
*/
public class DownloadMonitor {
public static final int DLOAD_FAILED = 1;
public static final int DLOAD_SUCCESS = 2;
public static final int DLOAD_ONGOING = 3;
public static final int DLOAD_TIMEOUT_C = 4; // during connection
public static final int DLOAD_TIMEOUT_T = 5; // during transfer
public static final int DLOAD_FAILED_NO_NEW_ATTEMPT = 6;
private int status = DLOAD_ONGOING;
int getDownloadStatus() {
return status;
};
void setDownloadStatus(int status) {
this.status = status;
}
/**
* Reset the session status to DLOAD_ONGOING
*/
void reset() {
setDownloadStatus(DLOAD_ONGOING);
}
/**
* Allows to wait for the end (successful of or not) of the download
* session. The method returns only when the session is over (Active wait).
*/
void waitForEnd() {
while (getDownloadStatus() == DLOAD_ONGOING) {
}
};
}