/** GSWBundle.h - GSWeb: Class GSWBundle Copyright (C) 1999-2002 Free Software Foundation, Inc. Written by: Manuel Guesdon Date: Mar 1999 $Revision$ $Date$ This file is part of the GNUstep Web Library. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. **/ // $Id$ #ifndef _GSWBundle_h__ #define _GSWBundle_h__ //==================================================================== @interface GSWBundle : NSObject { NSString* _path; NSString* _baseURL; NSString* _frameworkName; NSMutableDictionary* _archiveCache; NSMutableDictionary* _apiCache;//NDFN NSMutableDictionary* _encodingCache; NSMutableDictionary* _templateParserTypeCache;//NDFN NSMutableDictionary* _pathCache; NSMutableDictionary* _urlCache; NSMutableDictionary* _stringsTableCache; NSMutableDictionary* _stringsTableArrayCache; //NDFN NSMutableDictionary* _templateCache; NSMutableDictionary* _classCache; NSRecursiveLock* _selfLock; #ifndef NDEBUG int _selfLockn; #endif }; -(NSString*)baseURL; -(NSString*)path; -(NSString*)frameworkName; -(NSString*)description; -(void)dealloc; -(id)initWithPath:(NSString*)aPath baseURL:(NSString*)aBaseURL inFrameworkNamed:(NSString*)aFrameworkName; -(id)initWithPath:(NSString*)aPath baseURL:(NSString*)aBaseURL; -(void)unlock; -(void)lock; @end @interface GSWBundle (GSWBundleCache) -(void)clearCache; -(void)loadCache; @end @interface GSWBundle (GSWBundleA) -(id)lockedResourceNamed:(NSString*)aName ofType:(NSString*)aType withLanguages:(NSArray*)languages usingCache:(NSMutableDictionary*)cache relativePath:(NSString**)relativePath absolutePath:(NSString**)absolutePath; @end @interface GSWBundle (GSWResourceManagement) -(void)initializeObject:(id)anObject fromArchiveNamed:(NSString*)aName; -(void)initializeObject:(id)anObject fromArchive:(NSDictionary*)archive; -(Class)scriptedClassWithName:(NSString*)aName superclassName:(NSString*)superclassName; -(Class)lockedScriptedClassWithName:(NSString*)aName pathName:(NSString*)pathName superclassName:(NSString*)superclassName; -(NSString*)lockedScriptedClassPathWithName:(NSString*)aName; -(Class)compiledClassWithName:(NSString*)aName superclassName:(NSString*)superclassName; -(GSWElement*)templateNamed:(NSString*)aName languages:(NSArray*)languages; -(GSWElement*)lockedTemplateNamed:(NSString*)aName languages:(NSArray*)languages; -(NSString*)stringForKey:(NSString*)key_ inTableNamed:(NSString*)aName withDefaultValue:(NSString*)defaultValue languages:(NSArray*)languages; //NDFN -(NSDictionary*)stringsTableNamed:(NSString*)aName withLanguages:(NSArray*)languages; //NDFN -(NSArray*)stringsTableArrayNamed:(NSString*)aName withLanguages:(NSArray*)languages; -(NSString*)urlForResourceNamed:(NSString*)aName ofType:(NSString*)aType languages:(NSArray*)languages request:(GSWRequest*)aRequest; -(NSString*)pathForResourceNamed:(NSString*)aName ofType:(NSString*)aType languages:(NSArray*)languages; -(NSStringEncoding)encodingForResourcesNamed:(NSString*)aName; -(GSWTemplateParserType)templateParserTypeForResourcesNamed:(NSString*)aName;//NDFN -(NSDictionary*)archiveNamed:(NSString*)aName; -(NSDictionary*)apiNamed:(NSString*)aName;//NDFN -(NSDictionary*)lockedArchiveNamed:(NSString*)aName; -(NSDictionary*)lockedApiNamed:(NSString*)aName;//NDFN @end @interface GSWBundle (GSWBundleC) -(id)scriptedClassNameFromClassName:(NSString*)aName; -(id)scriptPathNameFromScriptedClassName:(NSString*)aName; @end #endif //_GSWBundle_h__