mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
296 lines
6.9 KiB
Objective-C
296 lines
6.9 KiB
Objective-C
#import "TGBridgeCommon.h"
|
|
|
|
NSString *const TGBridgeIncomingFileTypeKey = @"type";
|
|
NSString *const TGBridgeIncomingFileIdentifierKey = @"identifier";
|
|
NSString *const TGBridgeIncomingFileRandomIdKey = @"randomId";
|
|
NSString *const TGBridgeIncomingFilePeerIdKey = @"peerId";
|
|
NSString *const TGBridgeIncomingFileReplyToMidKey = @"replyToMid";
|
|
NSString *const TGBridgeIncomingFileTypeAudio = @"audio";
|
|
NSString *const TGBridgeIncomingFileTypeImage = @"image";
|
|
|
|
NSString *const TGBridgeResponseSubscriptionIdentifier = @"identifier";
|
|
NSString *const TGBridgeResponseTypeKey = @"type";
|
|
NSString *const TGBridgeResponseNextKey = @"next";
|
|
NSString *const TGBridgeResponseErrorKey = @"error";
|
|
|
|
@implementation TGBridgeResponse
|
|
|
|
- (instancetype)initWithCoder:(NSCoder *)aDecoder
|
|
{
|
|
self = [super init];
|
|
if (self != nil)
|
|
{
|
|
_subscriptionIdentifier = [aDecoder decodeInt64ForKey:TGBridgeResponseSubscriptionIdentifier];
|
|
_type = [aDecoder decodeInt32ForKey:TGBridgeResponseTypeKey];
|
|
_next = [aDecoder decodeObjectForKey:TGBridgeResponseNextKey];
|
|
_error = [aDecoder decodeObjectForKey:TGBridgeResponseErrorKey];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (void)encodeWithCoder:(NSCoder *)aCoder
|
|
{
|
|
[aCoder encodeInt64:self.subscriptionIdentifier forKey:TGBridgeResponseSubscriptionIdentifier];
|
|
[aCoder encodeInt32:self.type forKey:TGBridgeResponseTypeKey];
|
|
[aCoder encodeObject:self.next forKey:TGBridgeResponseNextKey];
|
|
[aCoder encodeObject:self.error forKey:TGBridgeResponseErrorKey];
|
|
}
|
|
|
|
+ (TGBridgeResponse *)single:(id)next forSubscription:(TGBridgeSubscription *)subscription
|
|
{
|
|
TGBridgeResponse *response = [[TGBridgeResponse alloc] init];
|
|
response->_subscriptionIdentifier = subscription.identifier;
|
|
response->_type = TGBridgeResponseTypeNext;
|
|
response->_next = next;
|
|
return response;
|
|
}
|
|
|
|
+ (TGBridgeResponse *)fail:(id)error forSubscription:(TGBridgeSubscription *)subscription
|
|
{
|
|
TGBridgeResponse *response = [[TGBridgeResponse alloc] init];
|
|
response->_subscriptionIdentifier = subscription.identifier;
|
|
response->_type = TGBridgeResponseTypeFailed;
|
|
response->_error = error;
|
|
return response;
|
|
}
|
|
|
|
+ (TGBridgeResponse *)completeForSubscription:(TGBridgeSubscription *)subscription
|
|
{
|
|
TGBridgeResponse *response = [[TGBridgeResponse alloc] init];
|
|
response->_subscriptionIdentifier = subscription.identifier;
|
|
response->_type = TGBridgeResponseTypeCompleted;
|
|
return response;
|
|
}
|
|
|
|
@end
|
|
|
|
|
|
NSString *const TGBridgeSubscriptionIdentifierKey = @"identifier";
|
|
NSString *const TGBridgeSubscriptionNameKey = @"name";
|
|
NSString *const TGBridgeSubscriptionParametersKey = @"parameters";
|
|
|
|
@implementation TGBridgeSubscription
|
|
|
|
- (instancetype)init
|
|
{
|
|
self = [super init];
|
|
if (self != nil)
|
|
{
|
|
int64_t randomId = 0;
|
|
arc4random_buf(&randomId, sizeof(int64_t));
|
|
_identifier = randomId;
|
|
_name = [[self class] subscriptionName];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (instancetype)initWithCoder:(NSCoder *)aDecoder
|
|
{
|
|
self = [super init];
|
|
if (self != nil)
|
|
{
|
|
_identifier = [aDecoder decodeInt64ForKey:TGBridgeSubscriptionIdentifierKey];
|
|
_name = [aDecoder decodeObjectForKey:TGBridgeSubscriptionNameKey];
|
|
[self _unserializeParametersWithCoder:aDecoder];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (bool)synchronous
|
|
{
|
|
return false;
|
|
}
|
|
|
|
- (bool)renewable
|
|
{
|
|
return true;
|
|
}
|
|
|
|
- (bool)dropPreviouslyQueued
|
|
{
|
|
return false;
|
|
}
|
|
|
|
- (void)_serializeParametersWithCoder:(NSCoder *)__unused aCoder
|
|
{
|
|
|
|
}
|
|
|
|
- (void)_unserializeParametersWithCoder:(NSCoder *)__unused aDecoder
|
|
{
|
|
|
|
}
|
|
|
|
- (void)encodeWithCoder:(NSCoder *)aCoder
|
|
{
|
|
[aCoder encodeInt64:self.identifier forKey:TGBridgeSubscriptionIdentifierKey];
|
|
[aCoder encodeObject:self.name forKey:TGBridgeSubscriptionNameKey];
|
|
[self _serializeParametersWithCoder:aCoder];
|
|
}
|
|
|
|
+ (NSString *)subscriptionName
|
|
{
|
|
return nil;
|
|
}
|
|
|
|
@end
|
|
|
|
|
|
@implementation TGBridgeDisposal
|
|
|
|
- (instancetype)initWithIdentifier:(int64_t)identifier
|
|
{
|
|
self = [super init];
|
|
if (self != nil)
|
|
{
|
|
_identifier = identifier;
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (instancetype)initWithCoder:(NSCoder *)aDecoder
|
|
{
|
|
self = [super init];
|
|
if (self != nil)
|
|
{
|
|
_identifier = [aDecoder decodeInt64ForKey:TGBridgeSubscriptionIdentifierKey];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (void)encodeWithCoder:(NSCoder *)aCoder
|
|
{
|
|
[aCoder encodeInt64:self.identifier forKey:TGBridgeSubscriptionIdentifierKey];
|
|
}
|
|
|
|
@end
|
|
|
|
NSString *const TGBridgeFileDataKey = @"data";
|
|
NSString *const TGBridgeFileMetadataKey = @"metadata";
|
|
|
|
@implementation TGBridgeFile
|
|
|
|
- (instancetype)initWithData:(NSData *)data metadata:(NSDictionary *)metadata
|
|
{
|
|
self = [super init];
|
|
if (self != nil)
|
|
{
|
|
_data = data;
|
|
_metadata = metadata;
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (instancetype)initWithCoder:(NSCoder *)aDecoder
|
|
{
|
|
self = [super init];
|
|
if (self != nil)
|
|
{
|
|
_data = [aDecoder decodeObjectForKey:TGBridgeFileDataKey];
|
|
_metadata = [aDecoder decodeObjectForKey:TGBridgeFileMetadataKey];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (void)encodeWithCoder:(NSCoder *)aCoder
|
|
{
|
|
[aCoder encodeObject:self.data forKey:TGBridgeFileDataKey];
|
|
[aCoder encodeObject:self.metadata forKey:TGBridgeFileMetadataKey];
|
|
}
|
|
|
|
@end
|
|
|
|
|
|
NSString *const TGBridgeSessionIdKey = @"sessionId";
|
|
|
|
@implementation TGBridgePing
|
|
|
|
- (instancetype)initWithSessionId:(int32_t)sessionId
|
|
{
|
|
self = [super init];
|
|
if (self != nil)
|
|
{
|
|
_sessionId = sessionId;
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (instancetype)initWithCoder:(NSCoder *)aDecoder
|
|
{
|
|
self = [super init];
|
|
if (self != nil)
|
|
{
|
|
_sessionId = [aDecoder decodeInt32ForKey:TGBridgeSessionIdKey];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (void)encodeWithCoder:(NSCoder *)aCoder
|
|
{
|
|
[aCoder encodeInt32:self.sessionId forKey:TGBridgeSessionIdKey];
|
|
}
|
|
|
|
@end
|
|
|
|
|
|
@implementation TGBridgeSubscriptionListRequest
|
|
|
|
- (instancetype)initWithSessionId:(int32_t)sessionId
|
|
{
|
|
self = [super init];
|
|
if (self != nil)
|
|
{
|
|
_sessionId = sessionId;
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (instancetype)initWithCoder:(NSCoder *)aDecoder
|
|
{
|
|
self = [super init];
|
|
if (self != nil)
|
|
{
|
|
_sessionId = [aDecoder decodeInt32ForKey:TGBridgeSessionIdKey];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (void)encodeWithCoder:(NSCoder *)aCoder
|
|
{
|
|
[aCoder encodeInt32:self.sessionId forKey:TGBridgeSessionIdKey];
|
|
}
|
|
|
|
@end
|
|
|
|
|
|
NSString *const TGBridgeSubscriptionListSubscriptionsKey = @"subscriptions";
|
|
|
|
@implementation TGBridgeSubscriptionList
|
|
|
|
- (instancetype)initWithArray:(NSArray *)array
|
|
{
|
|
self = [super init];
|
|
if (self != nil)
|
|
{
|
|
_subscriptions = array;
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (instancetype)initWithCoder:(NSCoder *)aDecoder
|
|
{
|
|
self = [super init];
|
|
if (self != nil)
|
|
{
|
|
_subscriptions = [aDecoder decodeObjectForKey:TGBridgeSubscriptionListSubscriptionsKey];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (void)encodeWithCoder:(NSCoder *)aCoder
|
|
{
|
|
[aCoder encodeObject:self.subscriptions forKey:TGBridgeSubscriptionListSubscriptionsKey];
|
|
}
|
|
|
|
@end
|