--- /dev/null
+/*
+ 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 <Foundation/NSURL.h>
+
+/*
+ "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__ */
--- /dev/null
+/*
+ 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) */
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 <Foundation/NSObject.h>