Apple WebObjects 3.5 User Manual
Page 129

State Storage Strategies
129
// WebScript StateStorage FileSessionStore.wos
@interface FileSessionStore:NSObject {
id archiveDirectory;
}
- init;
- archiveFileForSessionID:aSessionID;
- archiveForSessionID:aSessionID;
- restoreSession;
- saveSession:aSession;
@end
These methods have the following implementation:
@implementation FileSessionStore
- init {
self = [super init];
archiveDirectory = [WOApp pathForResourceNamed:@"SessionArchives"
ofType:nil];
return self;
}
- archiveFileForSessionID:aSessionID {
return [NSString stringWithFormat:@"%@/%@", archiveDirectory,
aSessionID];
}
- archiveForSessionID:aSessionID {
id archiveFile = [self archiveFileForSessionID:aSessionID];
return [NSData dataWithContentsOfFile:archiveFile];
}
- restoreSession {
id request = [[WOApp context] request];
id archivedSession;
id restoredSession;
// Allow requests in this session to go to any application instance.
[[WOApp context] setDistributionEnabled:YES];
// Get archived session (as an NSData object)
archivedSession = [self archiveForSessionID:[request sessionID]];