001/**
002 * Copyright (C) 2014  Universidade de Aveiro, DETI/IEETA, Bioinformatics Group - http://bioinformatics.ua.pt/
003 *
004 * This file is part of Dicoogle/dicoogle.
005 *
006 * Dicoogle/dicoogle is free software: you can redistribute it and/or modify
007 * it under the terms of the GNU General Public License as published by
008 * the Free Software Foundation, either version 3 of the License, or
009 * (at your option) any later version.
010 *
011 * Dicoogle/dicoogle is distributed in the hope that it will be useful,
012 * but WITHOUT ANY WARRANTY; without even the implied warranty of
013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
014 * GNU General Public License for more details.
015 *
016 * You should have received a copy of the GNU General Public License
017 * along with Dicoogle.  If not, see <http://www.gnu.org/licenses/>.
018 */
019package pt.ua.dicoogle.rGUI.interfaces.controllers;
020
021import java.io.IOException;
022import java.rmi.Remote;
023import java.rmi.RemoteException;
024
025/**
026 * avaliable methods in Services window
027 *
028 * @author Samuel Campos <samuelcampos@ua.pt>
029 */
030
031/*
032 * Considerar a possibilidade de retirar os métodos que indicam o estado de cada
033 * serviço individualmente e adicionar um método que devolve o estado de todos
034 * os serviços (num objecto "EstadoServiços").
035 * 
036 * Apesar da serialização deste objecto, iria diminuir o número de comuniações
037 * entre o servidor e o cliente.
038 *
039 */
040@Deprecated
041public interface IServices extends Remote {
042
043    boolean stopAllServices() throws RemoteException;
044
045    void startQueryRetrieve() throws RemoteException;
046    void stopQueryRetrieve() throws RemoteException;
047    boolean queryRetrieveIsRunning() throws RemoteException;
048
049    /**
050     *
051     * @return   0 - if everything is fine and the service was started
052     *           1 - if the server's storage path is not defined
053     *           2 - service is already running
054     *
055     * @throws IOException
056     */
057    int startStorage() throws IOException, RemoteException;
058    void stopStorage() throws RemoteException;
059    boolean storageIsRunning() throws RemoteException;
060
061
062    boolean webServerIsRunning() throws RemoteException;
063
064
065    void startWebServices() throws IOException, RemoteException;
066    void stopWebServices() throws IOException, RemoteException;
067    boolean webServicesIsRunning() throws RemoteException;
068    
069    void startWebServer() throws RemoteException;
070    void stopWebServer() throws RemoteException;
071    
072}