mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-07-04 10:30:42 +00:00

git-subtree-dir: submodules/MtProtoKit git-subtree-mainline: 3b155750f5a4894ff3dedf1860a37e94e0ea9571 git-subtree-split: 14ab734b977fd4f1686a2a13415f6a4c9b9fdd6d
71 lines
1.6 KiB
Objective-C
71 lines
1.6 KiB
Objective-C
|
|
|
|
#import "MTOutgoingMessage.h"
|
|
|
|
#import <libkern/OSAtomic.h>
|
|
|
|
@interface MTOutgoingMessageInternalId : NSObject <NSCopying>
|
|
{
|
|
NSUInteger _value;
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation MTOutgoingMessageInternalId
|
|
|
|
- (instancetype)init
|
|
{
|
|
self = [super init];
|
|
if (self != nil)
|
|
{
|
|
static int32_t nextValue = 1;
|
|
_value = OSAtomicIncrement32(&nextValue);
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (BOOL)isEqual:(id)object
|
|
{
|
|
return [object isKindOfClass:[MTOutgoingMessageInternalId class]] && ((MTOutgoingMessageInternalId *)object)->_value == _value;
|
|
}
|
|
|
|
- (NSUInteger)hash
|
|
{
|
|
return _value;
|
|
}
|
|
|
|
- (instancetype)copyWithZone:(NSZone *)__unused zone
|
|
{
|
|
MTOutgoingMessageInternalId *another = [[MTOutgoingMessageInternalId alloc] init];
|
|
if (another != nil)
|
|
another->_value = _value;
|
|
return another;
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation MTOutgoingMessage
|
|
|
|
- (instancetype)initWithData:(NSData *)data metadata:(id)metadata shortMetadata:(id)shortMetadata
|
|
{
|
|
return [self initWithData:data metadata:metadata shortMetadata:shortMetadata messageId:0 messageSeqNo:0];
|
|
}
|
|
|
|
- (instancetype)initWithData:(NSData *)data metadata:(id)metadata shortMetadata:(id)shortMetadata messageId:(int64_t)messageId messageSeqNo:(int32_t)messageSeqNo
|
|
{
|
|
self = [super init];
|
|
if (self != nil)
|
|
{
|
|
_internalId = [[MTOutgoingMessageInternalId alloc] init];
|
|
_data = data;
|
|
_metadata = metadata;
|
|
_shortMetadata = shortMetadata;
|
|
_messageId = messageId;
|
|
_messageSeqNo = messageSeqNo;
|
|
_requiresConfirmation = true;
|
|
}
|
|
return self;
|
|
}
|
|
|
|
@end
|