FConstants.m 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  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. #import "FirebaseDatabase/Sources/Constants/FConstants.h"
  17. #pragma mark -
  18. #pragma mark Wire Protocol Envelope Constants
  19. NSString *const kFWPRequestType = @"t";
  20. NSString *const kFWPRequestTypeData = @"d";
  21. NSString *const kFWPRequestDataPayload = @"d";
  22. NSString *const kFWPRequestNumber = @"r";
  23. NSString *const kFWPRequestPayloadBody = @"b";
  24. NSString *const kFWPRequestError = @"error";
  25. NSString *const kFWPRequestAction = @"a";
  26. NSString *const kFWPResponseForRNData = @"b";
  27. NSString *const kFWPResponseForActionStatus = @"s";
  28. NSString *const kFWPResponseForActionStatusOk = @"ok";
  29. NSString *const kFWPResponseForActionStatusFailed = @"failed";
  30. NSString *const kFWPResponseForActionStatusDataStale = @"datastale";
  31. NSString *const kFWPResponseForActionData = @"d";
  32. NSString *const kFWPResponseDataWarnings = @"w";
  33. NSString *const kFWPAsyncServerAction = @"a";
  34. NSString *const kFWPAsyncServerPayloadBody = @"b";
  35. NSString *const kFWPAsyncServerDataUpdate = @"d";
  36. NSString *const kFWPAsyncServerDataMerge = @"m";
  37. NSString *const kFWPAsyncServerDataRangeMerge = @"rm";
  38. NSString *const kFWPAsyncServerAuthRevoked = @"ac";
  39. NSString *const kFWPASyncServerListenCancelled = @"c";
  40. NSString *const kFWPAsyncServerSecurityDebug = @"sd";
  41. NSString *const kFWPAsyncServerDataUpdateBodyPath =
  42. @"p"; // {"a": "d", "b": {"p": "/", "d": "<data>"}}
  43. NSString *const kFWPAsyncServerDataUpdateBodyData = @"d";
  44. NSString *const kFWPAsyncServerDataUpdateStartPath = @"s";
  45. NSString *const kFWPAsyncServerDataUpdateEndPath = @"e";
  46. NSString *const kFWPAsyncServerDataUpdateRangeMerge = @"m";
  47. NSString *const kFWPAsyncServerDataUpdateBodyTag = @"t";
  48. NSString *const kFWPAsyncServerDataQueries = @"q";
  49. NSString *const kFWPAsyncServerEnvelopeType = @"t";
  50. NSString *const kFWPAsyncServerEnvelopeData = @"d";
  51. NSString *const kFWPAsyncServerControlMessage = @"c";
  52. NSString *const kFWPAsyncServerControlMessageType = @"t";
  53. NSString *const kFWPAsyncServerControlMessageData = @"d";
  54. NSString *const kFWPAsyncServerDataMessage = @"d";
  55. NSString *const kFWPAsyncServerHello = @"h";
  56. NSString *const kFWPAsyncServerHelloTimestamp = @"ts";
  57. NSString *const kFWPAsyncServerHelloVersion = @"v";
  58. NSString *const kFWPAsyncServerHelloConnectedHost = @"h";
  59. NSString *const kFWPAsyncServerHelloSession = @"s";
  60. NSString *const kFWPAsyncServerControlMessageShutdown = @"s";
  61. NSString *const kFWPAsyncServerControlMessageReset = @"r";
  62. #pragma mark -
  63. #pragma mark Wire Protocol Payload Constants
  64. NSString *const kFWPRequestActionPut = @"p";
  65. NSString *const kFWPRequestActionMerge = @"m";
  66. NSString *const kFWPRequestActionGet = @"g";
  67. NSString *const kFWPRequestActionListen =
  68. @"l"; // {"t": "d", "d": {"r": 1, "a": "l", "b": { "p": "/" } } }
  69. NSString *const kFWPRequestActionUnlisten = @"u";
  70. NSString *const kFWPRequestActionStats = @"s";
  71. NSString *const kFWPRequestActionTaggedListen = @"q";
  72. NSString *const kFWPRequestActionTaggedUnlisten = @"n";
  73. NSString *const kFWPRequestActionDisconnectPut = @"o";
  74. NSString *const kFWPRequestActionDisconnectMerge = @"om";
  75. NSString *const kFWPRequestActionDisconnectCancel = @"oc";
  76. NSString *const kFWPRequestActionAuth = @"auth";
  77. NSString *const kFWPRequestActionUnauth = @"unauth";
  78. NSString *const kFWPRequestCredential = @"cred";
  79. NSString *const kFWPRequestPath = @"p";
  80. NSString *const kFWPRequestCounters = @"c";
  81. NSString *const kFWPRequestQueries = @"q";
  82. NSString *const kFWPRequestTag = @"t";
  83. NSString *const kFWPRequestData = @"d";
  84. NSString *const kFWPRequestHash = @"h";
  85. NSString *const kFWPRequestCompoundHash = @"ch";
  86. NSString *const kFWPRequestCompoundHashPaths = @"ps";
  87. NSString *const kFWPRequestCompoundHashHashes = @"hs";
  88. NSString *const kFWPRequestStatus = @"s";
  89. #pragma mark -
  90. #pragma mark Websock Transport Constants
  91. NSString *const kWireProtocolVersionParam = @"v";
  92. NSString *const kWebsocketProtocolVersion = @"5";
  93. NSString *const kWebsocketServerKillPacket = @"kill";
  94. NSString *const kPersistentConnectionOffline = @"Client is offline.";
  95. const int kWebsocketMaxFrameSize = 16384;
  96. NSUInteger const kWebsocketKeepaliveInterval = 45;
  97. NSUInteger const kWebsocketConnectTimeout = 30;
  98. UInt64 const kPersistentConnectionGetConnectTimeout = 3 * NSEC_PER_SEC;
  99. float const kPersistentConnReconnectMinDelay = 1.0;
  100. float const kPersistentConnReconnectMaxDelay = 30.0;
  101. float const kPersistentConnReconnectMultiplier = 1.3f;
  102. float const kPersistentConnSuccessfulConnectionEstablishedDelay = 30.0;
  103. #pragma mark -
  104. #pragma mark Query constants
  105. NSString *const kQueryDefault = @"default";
  106. NSString *const kQueryDefaultObject = @"{}";
  107. NSString *const kViewManagerDictConstView = @"view";
  108. NSString *const kFQPIndexStartValue = @"sp";
  109. NSString *const kFQPIndexStartName = @"sn";
  110. NSString *const kFQPIndexEndValue = @"ep";
  111. NSString *const kFQPIndexEndName = @"en";
  112. NSString *const kFQPLimit = @"l";
  113. NSString *const kFQPViewFrom = @"vf";
  114. NSString *const kFQPViewFromLeft = @"l";
  115. NSString *const kFQPViewFromRight = @"r";
  116. NSString *const kFQPIndex = @"i";
  117. #pragma mark -
  118. #pragma mark Interrupt Reasons
  119. NSString *const kFInterruptReasonServerKill = @"server_kill";
  120. NSString *const kFInterruptReasonWaitingForOpen = @"waiting_for_open";
  121. NSString *const kFInterruptReasonRepoInterrupt = @"repo_interrupt";
  122. #pragma mark -
  123. #pragma mark Payload constants
  124. NSString *const kPayloadPriority = @".priority";
  125. NSString *const kPayloadValue = @".value";
  126. NSString *const kPayloadMetadataPrefix = @".";
  127. #pragma mark -
  128. #pragma mark ServerValue constants
  129. NSString *const kServerValueSubKey = @".sv";
  130. NSString *const kServerValuePriority = @"timestamp";
  131. #pragma mark -
  132. #pragma mark.info/ constants
  133. NSString *const kDotInfoPrefix = @".info";
  134. NSString *const kDotInfoConnected = @"connected";
  135. NSString *const kDotInfoServerTimeOffset = @"serverTimeOffset";
  136. #pragma mark -
  137. #pragma mark ObjectiveC to JavaScript type constants
  138. NSString *const kJavaScriptObject = @"object";
  139. NSString *const kJavaScriptString = @"string";
  140. NSString *const kJavaScriptBoolean = @"boolean";
  141. NSString *const kJavaScriptNumber = @"number";
  142. NSString *const kJavaScriptNull = @"null";
  143. NSString *const kJavaScriptTrue = @"true";
  144. NSString *const kJavaScriptFalse = @"false";
  145. #pragma mark -
  146. #pragma mark Error handling constants
  147. NSString *const kFErrorDomain = @"com.firebase";
  148. NSUInteger const kFAuthError = 1;
  149. NSString *const kFErrorWriteCanceled = @"write_canceled";
  150. #pragma mark -
  151. #pragma mark Validation Constants
  152. NSUInteger const kFirebaseMaxObjectDepth = 1000;
  153. const unsigned int kFirebaseMaxLeafSize = 1024 * 1024 * 10; // 10 MB
  154. #pragma mark -
  155. #pragma mark Transaction Constants
  156. NSUInteger const kFTransactionMaxRetries = 25;
  157. NSString *const kFTransactionTooManyRetries = @"maxretry";
  158. NSString *const kFTransactionNoData = @"nodata";
  159. NSString *const kFTransactionSet = @"set";
  160. NSString *const kFTransactionDisconnect = @"disconnect";