]> err.no Git - scalable-opengroupware.org/commitdiff
git-svn-id: http://svn.opengroupware.org/SOGo/trunk@25 d1b88da0-ebda-0310-925b-ed51d8...
authorhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Mon, 7 Jun 2004 15:57:18 +0000 (15:57 +0000)
committerhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Mon, 7 Jun 2004 15:57:18 +0000 (15:57 +0000)
OGoContentStore/NSURL+OCS.h [new file with mode: 0644]
OGoContentStore/NSURL+OCS.m [new file with mode: 0644]
OGoContentStore/OCSFolderType.h

diff --git a/OGoContentStore/NSURL+OCS.h b/OGoContentStore/NSURL+OCS.h
new file mode 100644 (file)
index 0000000..1d0c204
--- /dev/null
@@ -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 <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__ */
diff --git a/OGoContentStore/NSURL+OCS.m b/OGoContentStore/NSURL+OCS.m
new file mode 100644 (file)
index 0000000..19b9a3d
--- /dev/null
@@ -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) */
index 015745b707dad869de321b175e0a841a81a643f9..b7149a54a93ff8fe548ae5854538155aedf1df7a 100644 (file)
   
   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>