aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firebase/Database/Utilities/FUtilities.h
blob: f7fe7a544557debc130f2cb6df1a10ebede23d1d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
/*
 * Copyright 2017 Google
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#import <Foundation/Foundation.h>
#import "FParsedUrl.h"

@interface FUtilities : NSObject

+ (NSArray *) splitString:(NSString *)str intoMaxSize:(const unsigned int)size;
+ (NSNumber *) LUIDGenerator;
+ (FParsedUrl *) parseUrl:(NSString *)url;
+ (NSString *) getJavascriptType:(id)obj;
+ (NSError *) errorForStatus:(NSString *)status andReason:(NSString *)reason;
+ (NSNumber *) intForString:(NSString *)string;
+ (NSString *) ieee754StringForNumber:(NSNumber *)val;
+ (void) setLoggingEnabled:(BOOL)enabled;
+ (BOOL) getLoggingEnabled;

+ (NSString*) minName;
+ (NSString*) maxName;
+ (NSComparisonResult) compareKey:(NSString *)a toKey:(NSString *)b;
+ (NSComparator) stringComparator;
+ (NSComparator) keyComparator;

+ (double)randomDouble;

@end

typedef enum {
    FLogLevelDebug = 1,
    FLogLevelInfo = 2,
    FLogLevelWarn = 3,
    FLogLevelError = 4,
    FLogLevelNone = 5
} FLogLevel;

// Log tags
FOUNDATION_EXPORT NSString *const kFPersistenceLogTag;

#define FFLog(code, format, ...) FFDebug((code), (format), ##__VA_ARGS__)

#define FFDebug(code, format, ...) do { \
  if (FFIsLoggingEnabled(FLogLevelDebug)) { \
    FIRLogDebug(kFIRLoggerDatabase, (code), (format), ##__VA_ARGS__); \
  } \
} while(0)

#define FFInfo(code, format, ...) do { \
  if (FFIsLoggingEnabled(FLogLevelInfo)) { \
    FIRLogError(kFIRLoggerDatabase, (code), (format), ##__VA_ARGS__); \
  } \
} while(0)

#define FFWarn(code, format, ...) do { \
  if (FFIsLoggingEnabled(FLogLevelWarn)) { \
    FIRLogWarning(kFIRLoggerDatabase, (code), (format), ##__VA_ARGS__); \
  } \
} while(0)

BOOL FFIsLoggingEnabled(FLogLevel logLevel);
void firebaseUncaughtExceptionHandler(NSException *exception);
void firebaseJobsTroll(void);