All Downloads are FREE. Search and download functionalities are using the official Maven repository.

marytts.modules.MaryModule Maven / Gradle / Ivy

The newest version!
/**
 * Copyright 2000-2006 DFKI GmbH.
 * All Rights Reserved.  Use is subject to license terms.
 *
 * This file is part of MARY TTS.
 *
 * MARY TTS is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, version 3 of the License.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this program.  If not, see .
 *
 */
package marytts.modules;

// DOM classes
import java.util.Locale;

import marytts.datatypes.MaryData;
import marytts.datatypes.MaryDataType;

/**
 * A generic interface for Mary Modules. This interface defines the communication of the Mary.java main program with the
 * individual modules.
 * 

* The main program calls *

    *
  • startup() once after module instantiation,
  • *
  • process() many times, from different threads, possibly at the same time, during the lifetime of the server
  • *
  • shutdown() once, at the end of the program.
  • *
* * @author Marc Schröder */ public interface MaryModule { public final int MODULE_OFFLINE = 0; public final int MODULE_RUNNING = 1; /** * This module's name, as free text, for example "Tokeniser" * * @return name */ public String name(); /** * The type of input data needed by this module. * * @return input type */ @Deprecated public MaryDataType inputType(); public MaryDataType getInputType(); /** * The type of output data produced by this module. * * @return outputType */ @Deprecated public MaryDataType outputType(); public MaryDataType getOutputType(); /** * The locale of this module, i.e. the locale of data that this module can process. If null, indicates that the module can use * data of any locale (i.e., the module is language-independent.) * * @return the locale of this module, if any, or null */ public Locale getLocale(); /** * Allow the module to start up, performing whatever is necessary to become operational. After successful completion, * getState() should return MODULE_RUNNING. * * @throws Exception * Exception */ public void startup() throws Exception; /** * Inform about the state of this module. * * @return an int identifying the state of this module, either MODULE_OFFLINE or MODULE_RUNNING. */ public int getState(); /** * Perform a power-on self test by processing some example input data. * * @throws Error * if the module does not work properly. */ public void powerOnSelfTest() throws Error; /** * Allow the module to shut down cleanly. After this has successfully completed, getState() should return MODULE_OFFLINE. */ public void shutdown(); /** * Perform this module's processing on abstract "MaryData" input d. Classes implementing this interface need to * make the process() method thread-safe, because in server-mode, it will be called from different threads at the * same time. *

* The result is returned encapsulated in a MaryData object of type outputType(). *

* This method should never return null ; in case of a failure, an exception should be thrown. * * @param d * d * @throws Exception * Exception * @return result */ public MaryData process(MaryData d) throws Exception; }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy