session-ios/Signal/src/util/TSAdapterCacheManager.m
dtsbourg ee07490d3e MessagesVC: Paging and fix scrolling bug.
Reviewed-by: @FredericJacobs
2015-01-05 00:29:28 +01:00

59 lines
1.3 KiB
Objective-C

//
// TSAdapterCacheManager.m
// Signal
//
// Created by Dylan Bourgeois on 03/01/15.
// Copyright (c) 2015 Open Whisper Systems. All rights reserved.
//
#import "TSAdapterCacheManager.h"
#import "TSMessageAdapter.h"
@implementation TSAdapterCacheManager
@synthesize messageAdaptersCache;
+ (id)sharedManager {
static TSAdapterCacheManager *sharedManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedManager = [[self alloc] init];
});
return sharedManager;
}
- (id)init {
if (self = [super init]) {
messageAdaptersCache = [[NSCache alloc]init];
}
return self;
}
- (void)cacheAdapter:(TSMessageAdapter*)adapter forInteractionId:(NSString*)identifier
{
NSParameterAssert(adapter);
NSParameterAssert(identifier);
[messageAdaptersCache setObject:adapter forKey:identifier];
}
-(void)clearCacheEntryForInteractionId:(NSString*)identifier
{
NSParameterAssert(identifier);
[messageAdaptersCache removeObjectForKey:identifier];
}
-(TSMessageAdapter*)adapterForInteractionId:(NSString*)identifier
{
NSParameterAssert(identifier);
return [messageAdaptersCache objectForKey:identifier];
}
-(BOOL)containsCacheEntryForInteractionId:(NSString*)identifier
{
return [messageAdaptersCache objectForKey:identifier] != nil;
}
@end