added iOS source code
[wl-app.git] / iOS / Pods / FirebaseMessaging / Firebase / Messaging / FIRMessagingPacketQueue.m
1 /*
2  * Copyright 2017 Google
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 #import "FIRMessagingPacketQueue.h"
18
19 #import "FIRMessagingDefines.h"
20
21 @interface FIRMessagingPacket ()
22
23 @property(nonatomic, readwrite, strong) NSData *data;
24 @property(nonatomic, readwrite, assign) int8_t tag;
25 @property(nonatomic, readwrite, assign) NSString *rmqId;
26
27 @end
28
29 @implementation FIRMessagingPacket
30
31 + (FIRMessagingPacket *)packetWithTag:(int8_t)tag rmqId:(NSString *)rmqId data:(NSData *)data {
32   return [[self alloc] initWithTag:tag rmqId:rmqId data:data];
33 }
34
35 - (instancetype)init {
36   FIRMessagingInvalidateInitializer();
37 }
38
39 - (instancetype)initWithTag:(int8_t)tag rmqId:(NSString *)rmqId data:(NSData *)data {
40   self = [super init];
41   if (self != nil) {
42     _data = data;
43     _tag = tag;
44     _rmqId = rmqId;
45   }
46   return self;
47 }
48
49 - (NSString *)description {
50   if ([self.rmqId length]) {
51     return [NSString stringWithFormat:@"<Packet: Tag - %d, Length - %lu>, RmqId - %@",
52             self.tag, _FIRMessaging_UL(self.data.length), self.rmqId];
53   } else {
54     return [NSString stringWithFormat:@"<Packet: Tag - %d, Length - %lu>",
55             self.tag, _FIRMessaging_UL(self.data.length)];
56   }
57 }
58
59 @end
60
61 @interface FIRMessagingPacketQueue ()
62
63 @property(nonatomic, readwrite, strong) NSMutableArray *packetsContainer;
64
65 @end
66
67
68 @implementation FIRMessagingPacketQueue;
69
70 - (id)init {
71   self = [super init];
72   if (self) {
73     _packetsContainer = [[NSMutableArray alloc] init];
74   }
75   return self;
76 }
77
78 - (BOOL)isEmpty {
79   return self.packetsContainer.count == 0;
80 }
81
82 - (NSUInteger)count {
83   return self.packetsContainer.count;
84 }
85
86 - (void)push:(FIRMessagingPacket *)packet {
87   [self.packetsContainer addObject:packet];
88 }
89
90 - (void)pushHead:(FIRMessagingPacket *)packet {
91   [self.packetsContainer insertObject:packet atIndex:0];
92 }
93
94 - (FIRMessagingPacket *)pop {
95   if (!self.isEmpty) {
96     FIRMessagingPacket *packet = self.packetsContainer[0];
97     [self.packetsContainer removeObjectAtIndex:0];
98     return packet;
99   }
100   return nil;
101 }
102
103 @end