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 #import <Foundation/NSObject.h> 26 27 /* 28 GCSChannelManager 29 30 This object manages the connection pooling. 31 */ 32 33 @class NSURL, NSMutableDictionary, NSMutableArray, NSTimer; 34 @class EOAdaptorChannel, EOAdaptor; 35 36 @interface GCSChannelManager : NSObject 37 { 38 NSMutableDictionary *urlToAdaptor; 39 40 NSMutableDictionary *lastFailures; 41 42 NSMutableArray *availableChannels; 43 NSMutableArray *busyChannels; 44 NSTimer *gcTimer; 45 } 46 47 + (id)defaultChannelManager; 48 49 /* channels */ 50 51 - (EOAdaptorChannel *)acquireOpenChannelForURL:(NSURL *)_url; 52 - (void)releaseChannel:(EOAdaptorChannel *)_channel; 53 - (void)releaseChannel:(EOAdaptorChannel *)_channel 54 immediately:(BOOL)_immediately; 55 56 /* checking for tables */ 57 58 - (BOOL)canConnect:(NSURL *)_url; 59 60 @end 61 62 #endif /* __GDLContentStore_GCSChannelManager_H__ */ 63