From d1a9c47d760c103798feeb6174a09ddadff68952 Mon Sep 17 00:00:00 2001 From: helge Date: Mon, 7 Jun 2004 15:57:18 +0000 Subject: [PATCH] git-svn-id: http://svn.opengroupware.org/SOGo/trunk@25 d1b88da0-ebda-0310-925b-ed51d893ca5b --- OGoContentStore/NSURL+OCS.h | 42 ++++++++++++++++++++++++++ OGoContentStore/NSURL+OCS.m | 52 +++++++++++++++++++++++++++++++++ OGoContentStore/OCSFolderType.h | 4 +++ 3 files changed, 98 insertions(+) create mode 100644 OGoContentStore/NSURL+OCS.h create mode 100644 OGoContentStore/NSURL+OCS.m diff --git a/OGoContentStore/NSURL+OCS.h b/OGoContentStore/NSURL+OCS.h new file mode 100644 index 00000000..1d0c204b --- /dev/null +++ b/OGoContentStore/NSURL+OCS.h @@ -0,0 +1,42 @@ +/* + Copyright (C) 2004 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. +*/ +// $Id$ + +#ifndef __OGoContentStore_NSURL_OCS_H__ +#define __OGoContentStore_NSURL_OCS_H__ + +#import + +/* + "Database URLs" + + We use the schema: + postgresql://[user]:[password]@[host]:[port]/[dbname]/[tablename] +*/ + +@interface NSURL(OCS) + +- (NSString *)ocsDatabaseName; +- (NSString *)ocsTableName; + +@end + +#endif /* __OGoContentStore_NSURL_OCS_H__ */ diff --git a/OGoContentStore/NSURL+OCS.m b/OGoContentStore/NSURL+OCS.m new file mode 100644 index 00000000..19b9a3db --- /dev/null +++ b/OGoContentStore/NSURL+OCS.m @@ -0,0 +1,52 @@ +/* + Copyright (C) 2004 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. +*/ +// $Id$ + +#include "NSURL+OCS.h" +#include "common.h" + +@implementation NSURL(OCS) + +- (NSString *)ocsPathComponent:(unsigned)_idx { + NSString *p; + NSArray *pcs; + unsigned len; + + p = [self path]; + if ([p length] == 0) + return nil; + + pcs = [p componentsSeparatedByString:@"/"]; + if ((len = [pcs count]) == 0) + return nil; + if (len <= _idx) + return nil; + return [pcs objectAtIndex:_idx]; +} + +- (NSString *)ocsDatabaseName { + return [self ocsPathComponent:1]; +} +- (NSString *)ocsTableName { + return [self ocsPathComponent:2]; +} + +@end /* NSURL(OCS) */ diff --git a/OGoContentStore/OCSFolderType.h b/OGoContentStore/OCSFolderType.h index 015745b7..b7149a54 100644 --- a/OGoContentStore/OCSFolderType.h +++ b/OGoContentStore/OCSFolderType.h @@ -31,6 +31,10 @@ For now, we only support one 'quick' table (we might want to have multiple ones in the future). + + Note: using the 'folderQualifier' we are actually prepared for 'multiple + folders in a single table' setups. So in case we want to go that + route later, we can still do it :-) */ #import -- 2.39.5