/*!
@header FTDictionaryServiceLoader
@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
16.07.06 ola new implementation
23.08.06 ola license changed
-------------------------------------------------------------------------
*/
#if !defined(__FTDictionaryServiceLoader_H)
#define __FTDictionaryServiceLoader_H
#include
#include
#include
#include
/*!
* @class FTDictionaryServiceLoader
* @abstract Used to integrate the service FTDictionaryService
*/
@interface FTDictionaryServiceLoader : FTObject {
@private
id serviceVersion;
id serviceAvailability;
id serviceEnvironment;
/*
* String containg basic name scheme used by all instances of
* FTDictionaryServiceForGraphImpl
*/
NSString *databaseNameScheme;
ECCache *graphToServiceImpl;
NSLock *generalLock;
}
/*!
* @method initialize
* @abstract used to set up this
*/
- init;
- (void) dealloc;
/*!
* @method databaseNameScheme
* @result the naming schema for each graph dictionary database
*/
- (NSString *) databaseNameScheme;
/*!
* @method onGraphClosed
* @abstract called by notification center in case a graph has been closed
* @param notification underlying notification
* @result self
*/
- onGraphClosed: (NSNotification *) notification;
/*!
* @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 setDatabaseNameSchema
* @abstract specifies the naming schema for each graph dictionary database
* @param aDatabaseName the naming schema for each graph dictionary database
* @result self
*/
- setDatabaseNameSchema: (NSString *) aDatabaseName;
/*!
* @method setEnvironment
* @abstract called by the service manager directly after this object
* is being added to it
* @param aServiceEnvironment environment for the service
* @result self
*/
- setEnvironment: (id ) aServiceEnvironment;
/*!
* @method switchToMode
* @result self
* @abstract used to switch to a given operation mode
*/
- switchToMode: (ft_serviceMode_t) aServiceMode;
@end
/*!
* @class FTDictionaryServiceAvailability
* @abstract Gives information about the availability
* @discussion This dictionary service is available for all graphs and nodes.
*/
@interface FTDictionaryServiceAvailability : FTObject
/*!
* @method availableForGraph
* @abstract checks wether the service is available for the given graph
* @result returns YES if the service is available for the specified graph
*/
- (BOOL) availableForGraph: (id ) aGraph;
/*!
* @method availableForNodesOfGraph
* @abstract checks wether the service is available for the specified graph
* @result YES if the service is available for the specified graph
*/
- (BOOL) availableForNodesOfGraph: (id ) aGraph;
/*!
* @method availableForNode
* @abstract checks wether the service is available for the specified node
* @result YES if the service is available for the specified node
*/
- (BOOL) availableForNode: (id ) aNode ofGraph: (id ) aGraph;
@end
#endif