/* Copyright (C) 2004-2005 SKYRIX Software AG This file is part of OpenGroupware.org. OGo 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, or (at your option) any later version. OGo 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 OGo; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __GDLContentStore_GCSFolderManager_H__ #define __GDLContentStore_GCSFolderManager_H__ /* GCSFolderManager Objects of this class manage the "folder_info" table, they manage the model and manage the tables required for a folder. */ @class NSString, NSArray, NSURL, NSDictionary, NSException; @class GCSChannelManager, GCSAlarmsFolder, GCSFolder, GCSFolderType, GCSSessionsFolder; @interface GCSFolderManager : NSObject { GCSChannelManager *channelManager; NSDictionary *nameToType; NSURL *folderInfoLocation; NSURL *storeLocation; NSURL *aclLocation; NSURL *cacheFolderLocation; } + (BOOL) singleStoreMode; + (id)defaultFolderManager; - (id)initWithFolderInfoLocation: (NSURL *)_infoUrl andStoreLocation: (NSURL *)_storeUrl andAclLocation: (NSURL *)_aclUrl andCacheFolderLocation: (NSURL *)_cacheFolderUrl; /* accessors */ - (NSURL *)folderInfoLocation; - (NSString *)folderInfoTableName; - (NSURL *)storeLocation; - (NSString *)storeTableName; - (NSURL *)aclLocation; - (NSString *)aclTableName; - (NSURL *)cacheFolderLocation; - (NSString *)cacheFolderTableName; /* connection */ - (GCSChannelManager *)channelManager; - (BOOL)canConnect; /* handling folder names */ - (NSString *)internalNameFromPath:(NSString *)_path; - (NSArray *)internalNamesFromPath:(NSString *)_path; - (NSString *)pathFromInternalName:(NSString *)_name; /* operations */ - (BOOL)folderExistsAtPath:(NSString *)_path; - (NSArray *)listSubFoldersAtPath:(NSString *)_path recursive:(BOOL)_flag; - (NSDictionary *) recordAtPath: (NSString *) _path; - (GCSFolder *)folderAtPath:(NSString *)_path; - (NSException *)createFolderOfType:(NSString *)_type withName:(NSString *)_name atPath:(NSString *)_path; - (NSException *)deleteFolderAtPath:(NSString *)_path; /* alarms */ - (GCSAlarmsFolder *)alarmsFolder; /* sessions */ - (GCSSessionsFolder *)sessionsFolder; /* folder types */ - (GCSFolderType *)folderTypeWithName:(NSString *)_name; /* cache management */ - (void)reset; @end #endif /* __GDLContentStore_GCSFolderManager_H__ */