mirror of
https://github.com/gnustep/libs-gsweb.git
synced 2025-02-22 19:21:23 +00:00
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gsweb/trunk@26815 72102866-910b-0410-8b05-ffd578937521
229 lines
6.3 KiB
Objective-C
229 lines
6.3 KiB
Objective-C
/** GSWSession.h - <title>GSWeb: Class GSWSession</title>
|
|
|
|
Copyright (C) 1999-2004 Free Software Foundation, Inc.
|
|
|
|
Written by: Manuel Guesdon <mguesdon@orange-concept.com>
|
|
Date: Jan 1999
|
|
|
|
$Revision$
|
|
$Date$
|
|
|
|
This file is part of the GNUstep Web Library.
|
|
|
|
<license>
|
|
This library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Library General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2 of the License, or (at your option) any later version.
|
|
|
|
This library 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
|
|
Library General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Library General Public
|
|
License along with this library; if not, write to the Free
|
|
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
</license>
|
|
**/
|
|
|
|
// $Id$
|
|
|
|
#ifndef _GSWSession_h__
|
|
#define _GSWSession_h__
|
|
|
|
@class EOEditingContext;
|
|
|
|
@interface GSWSession : NSObject <NSCoding,NSCopying>
|
|
{
|
|
@private
|
|
NSString* _sessionID;
|
|
NSAutoreleasePool* _autoreleasePool;
|
|
NSTimeInterval _timeOut;
|
|
NSMutableArray* _contextArrayStack;
|
|
NSMutableDictionary* _contextRecords;
|
|
EOEditingContext* _editingContext;
|
|
NSArray* _languages;
|
|
NSMutableDictionary* _componentState;
|
|
NSDate* _birthDate;
|
|
BOOL _wasTimedOut;
|
|
NSMutableArray* _statistics;
|
|
NSMutableString* _formattedStatistics;
|
|
GSWContext* _currentContext;
|
|
NSMutableDictionary* _permanentPageCache;
|
|
NSMutableArray* _permanentContextIDArray;
|
|
int _contextCounter;
|
|
int _requestCounter;
|
|
BOOL _isAllowedToViewStatistics;
|
|
BOOL _isAllowedToViewEvents;
|
|
BOOL _isTerminating;
|
|
BOOL _isDistributionEnabled;
|
|
BOOL _storesIDsInCookies;
|
|
BOOL _storesIDsInURLs;
|
|
BOOL _hasSessionLockedEditingContext;
|
|
NSString* _domainForIDCookies;
|
|
};
|
|
|
|
|
|
+(NSString*)createSessionID;
|
|
|
|
-(NSString*)domainForIDCookies;
|
|
-(BOOL)storesIDsInURLs;
|
|
-(void)setStoresIDsInURLs:(BOOL)flag;
|
|
-(NSDate*)expirationDateForIDCookies;
|
|
-(BOOL)storesIDsInCookies;
|
|
-(void)setStoresIDsInCookies:(BOOL)flag;
|
|
|
|
/** Returns NO if URLs contains application number so requests are
|
|
directed to the specific application instance.
|
|
Resturns YES if URLs doesn't contain application number so requests
|
|
can be directed to any instance (load balancing)
|
|
Default value is NO
|
|
**/
|
|
-(BOOL)isDistributionEnabled;
|
|
|
|
/** Enables or disables application instance number in URLs.
|
|
If flag is NO, URLs contains application number so requests are directed
|
|
to the specific application instance.
|
|
If flag is YES, URLs doesn't contain application number so requests can
|
|
be directed to any instance (load balancing)
|
|
**/
|
|
-(void)setDistributionEnabled:(BOOL)flag;
|
|
|
|
|
|
-(NSString*)sessionID;
|
|
-(void)setSessionID:(NSString*)sessionID;
|
|
-(NSString*)description;
|
|
|
|
|
|
-(id)_initWithSessionID:(NSString*)aSessionID;
|
|
|
|
// Termination
|
|
|
|
-(void)terminate;
|
|
-(void)_terminateByTimeout;
|
|
-(BOOL)isTerminating;
|
|
-(void)setTimeOut:(NSTimeInterval)timeInterval;
|
|
-(NSTimeInterval)timeOut;
|
|
|
|
// SessionDebugging
|
|
|
|
-(void)debugWithFormat:(NSString*)format,...;
|
|
|
|
// SessionD
|
|
|
|
-(void)_debugWithString:(NSString*)string;
|
|
|
|
// PageManagement
|
|
|
|
-(void)savePage:(GSWComponent*)page;
|
|
-(GSWComponent*)restorePageForContextID:(NSString*)aContextID;
|
|
-(unsigned int)permanentPageCacheSize;
|
|
-(void)savePageInPermanentCache:(GSWComponent*)page;
|
|
|
|
// SessionF
|
|
|
|
-(void)clearCookieFromResponse:(GSWResponse*)aResponse;
|
|
-(void)appendCookieToResponse:(GSWResponse*)aResponse;
|
|
|
|
// SessionG
|
|
|
|
-(void)_releaseAutoreleasePool;
|
|
-(void)_createAutoreleasePool;
|
|
-(GSWComponent*)_permanentPageWithContextID:(NSString*)aContextID;
|
|
-(NSMutableDictionary*)_permanentPageCache;
|
|
-(NSString*)_contextIDMatchingIDsInContext:(GSWContext*)aContext;
|
|
-(void)_rearrangeContextArrayStackForContextID:(NSString*)contextID;
|
|
-(NSMutableArray*)_contextArrayForContextID:(NSString*)aContextID
|
|
stackIndex:(unsigned int*)pStackIndex
|
|
contextArrayIndex:(unsigned int*)pContextArrayIndex;
|
|
-(void)_replacePage:(GSWComponent*)page;
|
|
-(unsigned int)pageCacheSize;
|
|
-(void)_saveCurrentPage;
|
|
-(int)_requestCounter;
|
|
-(void)_contextDidIncrementContextID;
|
|
-(int)_contextCounter;
|
|
-(void)_setContext:(GSWContext*)aContext;
|
|
-(void)sleepInContext:(GSWContext*)aContext;
|
|
-(void)awakeInContext:(GSWContext*)aContext;
|
|
|
|
// Localization
|
|
|
|
-(void)setLanguages:(NSArray*)languages;
|
|
|
|
/** GSWeb specific
|
|
Insert language language at the begining of session languages array
|
|
**/
|
|
-(void)insertLanguage:(NSString*)language;
|
|
|
|
/** GSWeb specific
|
|
Add language language at the end of session languages array if language
|
|
is not present
|
|
**/
|
|
-(void)addLanguage:(NSString*)language;
|
|
|
|
-(NSArray*)languages;
|
|
-(NSArray*)_languages;
|
|
|
|
/** GSWeb specific
|
|
Returns first element of languages or nil if languages is empty
|
|
**/
|
|
-(NSString*)firstLanguage;
|
|
|
|
// ComponentStateManagement
|
|
|
|
-(void)setObject:(id)object
|
|
forKey:(NSString*)key;
|
|
|
|
-(id)objectForKey:(NSString*)key;
|
|
-(void)removeObjectForKey:(NSString*)key;
|
|
-(NSMutableDictionary*)componentState;//NDFN
|
|
|
|
// EnterpriseObjects
|
|
|
|
-(EOEditingContext*)defaultEditingContext;
|
|
-(void)setDefaultEditingContext:(EOEditingContext*)editingContext;
|
|
|
|
// RequestHandling
|
|
|
|
-(GSWContext*)context;
|
|
-(void)awake;
|
|
-(void)takeValuesFromRequest:(GSWRequest*)aRequest
|
|
inContext:(GSWContext*)aContext;
|
|
|
|
-(GSWElement*)invokeActionForRequest:(GSWRequest*)aRequest
|
|
inContext:(GSWContext*)aContext;
|
|
|
|
-(void)appendToResponse:(GSWResponse*)aResponse
|
|
inContext:(GSWContext*)aContext;
|
|
|
|
-(void)sleep;
|
|
|
|
// Statistics
|
|
|
|
-(NSArray*)statistics;
|
|
-(BOOL)_allowedToViewStatistics;
|
|
-(void)_allowToViewStatistics;
|
|
-(void)_setAllowedToViewStatistics:(BOOL)flag;
|
|
-(BOOL)validateStatisticsLogin:(NSString*)login
|
|
withPassword:(NSString*)password;
|
|
-(NSString*)_formattedStatistics;
|
|
-(NSDate*)_birthDate;
|
|
-(void)_setBirthDate:(NSDate*)birthDate;
|
|
|
|
|
|
-(BOOL)_allowedToViewEvents;
|
|
-(void)_allowToViewEvents;
|
|
-(void)_setAllowedToViewEvents:(BOOL)flag;
|
|
-(BOOL)validateEventsLogin:(NSString*)login
|
|
withPassword:(NSString*)password;
|
|
|
|
-(GSWApplication*)application;
|
|
|
|
-(void)_validateAPI;
|
|
|
|
+(void)__setContextCounterIncrementingEnabled:(BOOL)flag;
|
|
+(int)__counterIncrementingEnabledFlag;
|
|
|
|
@end
|
|
#endif
|