/*! @header FTServiceLoader @abstract Module of FT @availability OS X, GNUstep @copyright 2004, 2005, 2006 Free Software Foundation, Inc. This library 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; either version 2.1 of the License, or (at your option) any later version. This library 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 library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  -------------------------------------------------------------------------
  Modification history

  21.09.05 ola     initial version
  23.08.06 ola     license changed
  -------------------------------------------------------------------------
  
*/ #if !defined(__FTServiceLoader_H) #define __FTServiceLoader_H #include #include #include #include #include #include /*! * @enum t_serviceMode_t * @abstract Used to specify the operation mode of a service * @constant FT_SERVICE_MODE_UNKNOWN unknown mode. May never be set * @constant FT_SERVICE_MODE_STARTED should be set after the setEnvironment call * of a service loader. It indicates that the service has been started * @constant FT_SERVICE_MODE_ONLINE indicates that a service is available for * usage * @constant FT_SERVICE_MODE_SHUTDOWN after being instructed to turn to this * mode a service should disconnect all ressources and be prepared to be * removed */ typedef enum { FT_SERVICE_MODE_UNKNOWN = 0, FT_SERVICE_MODE_STARTED = 1, FT_SERVICE_MODE_ONLINE = 2, FT_SERVICE_MODE_SHUTDOWN = 8 } ft_serviceMode_t; /*! * @protocol FTServiceLoader * @abstract A service loader is used to instantiate and return a service */ @protocol FTServiceLoader /*! * @method serviceAvailability * @result information about the availability of the service */ - (id ) serviceAvailability; /*! * @method serviceForGraph * @param aGraph graph to load the service for * @result loads the service for the specified graph */ - (id ) serviceForGraph: (id ) aGraph; /*! * @method serviceForNode * @param aGraph graph to load the service for * @result loads the service for the specified graph */ - (id ) serviceForNode: (id ) aNode ofGraph: (id ) aGraph; /*! * @method serviceId * @result identifier for this services */ - (NSString *) serviceId; /*! * @method version * @result return the version of this service */ - (id ) serviceVersion; /*! * @method setEnvironment * @abstract called by the service manager directly after this object * is being added to it * @param aServiceEnvironment environment for the serbice * @result self */ - setEnvironment: (id ) aServiceEnvironment; /*! * @method switchToMode * @result self * @abstract used to switch to a given operation mode */ - switchToMode: (ft_serviceMode_t) aServiceMode; @end #endif