1 /* 2 Copyright (C) 2004-2005 SKYRIX Software AG 3 4 This file is part of OpenGroupware.org. 5 6 OGo is free software; you can redistribute it and/or modify it under 7 the terms of the GNU Lesser General Public License as published by the 8 Free Software Foundation; either version 2, or (at your option) any 9 later version. 10 11 OGo is distributed in the hope that it will be useful, but WITHOUT ANY 12 WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 14 License for more details. 15 16 You should have received a copy of the GNU Lesser General Public 17 License along with OGo; see the file COPYING. If not, write to the 18 Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 19 02111-1307, USA. 20 */ 21 22 #ifndef __GDLContentStore_GCSChannelManager_H__ 23 #define __GDLContentStore_GCSChannelManager_H__ 24 25 26 /* 27 GCSChannelManager 28 29 This object manages the connection pooling. 30 */ 31 32 @class NSURL, NSMutableDictionary, NSMutableArray, NSTimer; 33 @class EOAdaptorChannel, EOAdaptor; 34 35 @interface GCSChannelManager : NSObject 36 { 37 NSMutableDictionary *urlToAdaptor; 38 39 NSMutableDictionary *lastFailures; 40 41 NSMutableArray *availableChannels; 42 NSMutableArray *busyChannels; 43 NSTimer *gcTimer; 44 } 45 46 + (id)defaultChannelManager; 47 48 /* channels */ 49 50 - (EOAdaptorChannel *)acquireOpenChannelForURL:(NSURL *)_url; 51 - (void)releaseChannel:(EOAdaptorChannel *)_channel; 52 - (void)releaseChannel:(EOAdaptorChannel *)_channel 53 immediately:(BOOL)_immediately; 54 - (void) releaseAllChannels; 55 56 /* checking for tables */ 57 58 - (BOOL)canConnect:(NSURL *)_url; 59 60 @end 61 62 #endif /* __GDLContentStore_GCSChannelManager_H__ */ 63