motion-logger 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +2 -0
  3. data/README.md +3 -1
  4. data/Rakefile +2 -4
  5. data/lib/logger/version.rb +1 -1
  6. data/motion-logger.gemspec +3 -3
  7. metadata +28 -51
  8. data/vendor/Podfile.lock +0 -5
  9. data/vendor/Pods/CocoaLumberjack/.gitignore +0 -24
  10. data/vendor/Pods/CocoaLumberjack/.hgignore +0 -6
  11. data/vendor/Pods/CocoaLumberjack/CocoaLumberjack.podspec +0 -18
  12. data/vendor/Pods/CocoaLumberjack/LICENSE.txt +0 -18
  13. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDASLLogger.h +0 -41
  14. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDASLLogger.m +0 -99
  15. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDAbstractDatabaseLogger.h +0 -102
  16. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDAbstractDatabaseLogger.m +0 -618
  17. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDFileLogger.h +0 -334
  18. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDFileLogger.m +0 -1346
  19. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDLog.h +0 -498
  20. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDLog.m +0 -979
  21. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDTTYLogger.h +0 -49
  22. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDTTYLogger.m +0 -186
  23. data/vendor/Pods/CocoaLumberjack/README.markdown +0 -37
  24. data/vendor/Pods/Headers/CocoaLumberjack/DDASLLogger.h +0 -41
  25. data/vendor/Pods/Headers/CocoaLumberjack/DDAbstractDatabaseLogger.h +0 -102
  26. data/vendor/Pods/Headers/CocoaLumberjack/DDFileLogger.h +0 -334
  27. data/vendor/Pods/Headers/CocoaLumberjack/DDLog.h +0 -498
  28. data/vendor/Pods/Headers/CocoaLumberjack/DDTTYLogger.h +0 -49
  29. data/vendor/Pods/Pods-Acknowledgements.markdown +0 -24
  30. data/vendor/Pods/Pods-Acknowledgements.plist +0 -54
  31. data/vendor/Pods/Pods-prefix.pch +0 -3
  32. data/vendor/Pods/Pods-resources.sh +0 -19
  33. data/vendor/Pods/Pods.bridgesupport +0 -462
  34. data/vendor/Pods/Pods.xcconfig +0 -4
  35. data/vendor/Pods/PodsDummy_Pods.m +0 -4
@@ -1,618 +0,0 @@
1
- #import "DDAbstractDatabaseLogger.h"
2
- #import <math.h>
3
-
4
- /**
5
- * Welcome to Cocoa Lumberjack!
6
- *
7
- * The project page has a wealth of documentation if you have any questions.
8
- * https://github.com/robbiehanson/CocoaLumberjack
9
- *
10
- * If you're new to the project you may wish to read the "Getting Started" wiki.
11
- * https://github.com/robbiehanson/CocoaLumberjack/wiki/GettingStarted
12
- **/
13
-
14
- #if ! __has_feature(objc_arc)
15
- #warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC).
16
- #endif
17
-
18
- @interface DDAbstractDatabaseLogger ()
19
- - (void)destroySaveTimer;
20
- - (void)destroyDeleteTimer;
21
- @end
22
-
23
- #pragma mark -
24
-
25
- @implementation DDAbstractDatabaseLogger
26
-
27
- - (id)init
28
- {
29
- if ((self = [super init]))
30
- {
31
- saveThreshold = 500;
32
- saveInterval = 60; // 60 seconds
33
- maxAge = (60 * 60 * 24 * 7); // 7 days
34
- deleteInterval = (60 * 5); // 5 minutes
35
- }
36
- return self;
37
- }
38
-
39
- - (void)dealloc
40
- {
41
- [self destroySaveTimer];
42
- [self destroyDeleteTimer];
43
-
44
- }
45
-
46
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
47
- #pragma mark Override Me
48
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
49
-
50
- - (BOOL)db_log:(DDLogMessage *)logMessage
51
- {
52
- // Override me and add your implementation.
53
- //
54
- // Return YES if an item was added to the buffer.
55
- // Return NO if the logMessage was ignored.
56
-
57
- return NO;
58
- }
59
-
60
- - (void)db_save
61
- {
62
- // Override me and add your implementation.
63
- }
64
-
65
- - (void)db_delete
66
- {
67
- // Override me and add your implementation.
68
- }
69
-
70
- - (void)db_saveAndDelete
71
- {
72
- // Override me and add your implementation.
73
- }
74
-
75
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
76
- #pragma mark Private API
77
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
78
-
79
- - (void)performSaveAndSuspendSaveTimer
80
- {
81
- if (unsavedCount > 0)
82
- {
83
- if (deleteOnEverySave)
84
- [self db_saveAndDelete];
85
- else
86
- [self db_save];
87
- }
88
-
89
- unsavedCount = 0;
90
- unsavedTime = 0;
91
-
92
- if (saveTimer && !saveTimerSuspended)
93
- {
94
- dispatch_suspend(saveTimer);
95
- saveTimerSuspended = YES;
96
- }
97
- }
98
-
99
- - (void)performDelete
100
- {
101
- if (maxAge > 0.0)
102
- {
103
- [self db_delete];
104
-
105
- lastDeleteTime = dispatch_time(DISPATCH_TIME_NOW, 0);
106
- }
107
- }
108
-
109
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
110
- #pragma mark Timers
111
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
112
-
113
- - (void)destroySaveTimer
114
- {
115
- if (saveTimer)
116
- {
117
- dispatch_source_cancel(saveTimer);
118
- dispatch_release(saveTimer);
119
- saveTimer = NULL;
120
- }
121
- }
122
-
123
- - (void)updateAndResumeSaveTimer
124
- {
125
- if ((saveTimer != NULL) && (saveInterval > 0.0) && (unsavedTime > 0.0))
126
- {
127
- uint64_t interval = saveInterval * NSEC_PER_SEC;
128
- dispatch_time_t startTime = dispatch_time(unsavedTime, interval);
129
-
130
- dispatch_source_set_timer(saveTimer, startTime, interval, 1.0);
131
-
132
- if (saveTimerSuspended)
133
- {
134
- dispatch_resume(saveTimer);
135
- saveTimerSuspended = NO;
136
- }
137
- }
138
- }
139
-
140
- - (void)createSuspendedSaveTimer
141
- {
142
- if ((saveTimer == NULL) && (saveInterval > 0.0))
143
- {
144
- saveTimer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, loggerQueue);
145
-
146
- dispatch_source_set_event_handler(saveTimer, ^{ @autoreleasepool {
147
-
148
- [self performSaveAndSuspendSaveTimer];
149
-
150
- }});
151
-
152
- saveTimerSuspended = YES;
153
- }
154
- }
155
-
156
- - (void)destroyDeleteTimer
157
- {
158
- if (deleteTimer)
159
- {
160
- dispatch_source_cancel(deleteTimer);
161
- dispatch_release(deleteTimer);
162
- deleteTimer = NULL;
163
- }
164
- }
165
-
166
- - (void)updateDeleteTimer
167
- {
168
- if ((deleteTimer != NULL) && (deleteInterval > 0.0) && (maxAge > 0.0))
169
- {
170
- uint64_t interval = deleteInterval * NSEC_PER_SEC;
171
- dispatch_time_t startTime;
172
-
173
- if (lastDeleteTime > 0)
174
- startTime = dispatch_time(lastDeleteTime, interval);
175
- else
176
- startTime = dispatch_time(DISPATCH_TIME_NOW, interval);
177
-
178
- dispatch_source_set_timer(deleteTimer, startTime, interval, 1.0);
179
- }
180
- }
181
-
182
- - (void)createAndStartDeleteTimer
183
- {
184
- if ((deleteTimer == NULL) && (deleteInterval > 0.0) && (maxAge > 0.0))
185
- {
186
- deleteTimer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, loggerQueue);
187
-
188
- dispatch_source_set_event_handler(deleteTimer, ^{ @autoreleasepool {
189
-
190
- [self performDelete];
191
-
192
- }});
193
-
194
- [self updateDeleteTimer];
195
-
196
- dispatch_resume(deleteTimer);
197
- }
198
- }
199
-
200
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
201
- #pragma mark Configuration
202
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
203
-
204
- - (NSUInteger)saveThreshold
205
- {
206
- if (dispatch_get_current_queue() == loggerQueue)
207
- {
208
- return saveThreshold;
209
- }
210
- else
211
- {
212
- __block NSUInteger result;
213
-
214
- dispatch_sync(loggerQueue, ^{
215
- result = saveThreshold;
216
- });
217
-
218
- return result;
219
- }
220
- }
221
-
222
- - (void)setSaveThreshold:(NSUInteger)threshold
223
- {
224
- dispatch_block_t block = ^{
225
-
226
- if (saveThreshold != threshold)
227
- {
228
- saveThreshold = threshold;
229
-
230
- // Since the saveThreshold has changed,
231
- // we check to see if the current unsavedCount has surpassed the new threshold.
232
- //
233
- // If it has, we immediately save the log.
234
-
235
- if ((unsavedCount >= saveThreshold) && (saveThreshold > 0))
236
- {
237
- @autoreleasepool {
238
-
239
- [self performSaveAndSuspendSaveTimer];
240
-
241
- }
242
- }
243
- }
244
- };
245
-
246
- if (dispatch_get_current_queue() == loggerQueue)
247
- block();
248
- else
249
- dispatch_async(loggerQueue, block);
250
- }
251
-
252
- - (NSTimeInterval)saveInterval
253
- {
254
- if (dispatch_get_current_queue() == loggerQueue)
255
- {
256
- return saveInterval;
257
- }
258
- else
259
- {
260
- __block NSTimeInterval result;
261
-
262
- dispatch_sync(loggerQueue, ^{
263
- result = saveInterval;
264
- });
265
-
266
- return result;
267
- }
268
- }
269
-
270
- - (void)setSaveInterval:(NSTimeInterval)interval
271
- {
272
- dispatch_block_t block = ^{
273
-
274
- // C99 recommended floating point comparison macro
275
- // Read: isLessThanOrGreaterThan(floatA, floatB)
276
-
277
- if (/* saveInterval != interval */ islessgreater(saveInterval, interval))
278
- {
279
- saveInterval = interval;
280
-
281
- // There are several cases we need to handle here.
282
- //
283
- // 1. If the saveInterval was previously enabled and it just got disabled,
284
- // then we need to stop the saveTimer. (And we might as well release it.)
285
- //
286
- // 2. If the saveInterval was previously disabled and it just got enabled,
287
- // then we need to setup the saveTimer. (Plus we might need to do an immediate save.)
288
- //
289
- // 3. If the saveInterval increased, then we need to reset the timer so that it fires at the later date.
290
- //
291
- // 4. If the saveInterval decreased, then we need to reset the timer so that it fires at an earlier date.
292
- // (Plus we might need to do an immediate save.)
293
-
294
- if (saveInterval > 0.0)
295
- {
296
- @autoreleasepool
297
- {
298
- if (saveTimer == NULL)
299
- {
300
- // Handles #2
301
- //
302
- // Since the saveTimer uses the unsavedTime to calculate it's first fireDate,
303
- // if a save is needed the timer will fire immediately.
304
-
305
- [self createSuspendedSaveTimer];
306
- [self updateAndResumeSaveTimer];
307
- }
308
- else
309
- {
310
- // Handles #3
311
- // Handles #4
312
- //
313
- // Since the saveTimer uses the unsavedTime to calculate it's first fireDate,
314
- // if a save is needed the timer will fire immediately.
315
-
316
- [self updateAndResumeSaveTimer];
317
- }
318
- }
319
- }
320
- else if (saveTimer)
321
- {
322
- // Handles #1
323
-
324
- [self destroySaveTimer];
325
- }
326
- }
327
- };
328
-
329
- if (dispatch_get_current_queue() == loggerQueue)
330
- block();
331
- else
332
- dispatch_async(loggerQueue, block);
333
- }
334
-
335
- - (NSTimeInterval)maxAge
336
- {
337
- if (dispatch_get_current_queue() == loggerQueue)
338
- {
339
- return maxAge;
340
- }
341
- else
342
- {
343
- __block NSTimeInterval result;
344
-
345
- dispatch_sync(loggerQueue, ^{
346
- result = maxAge;
347
- });
348
-
349
- return result;
350
- }
351
- }
352
-
353
- - (void)setMaxAge:(NSTimeInterval)interval
354
- {
355
- dispatch_block_t block = ^{
356
-
357
- // C99 recommended floating point comparison macro
358
- // Read: isLessThanOrGreaterThan(floatA, floatB)
359
-
360
- if (/* maxAge != interval */ islessgreater(maxAge, interval))
361
- {
362
- NSTimeInterval oldMaxAge = maxAge;
363
- NSTimeInterval newMaxAge = interval;
364
-
365
- maxAge = interval;
366
-
367
- // There are several cases we need to handle here.
368
- //
369
- // 1. If the maxAge was previously enabled and it just got disabled,
370
- // then we need to stop the deleteTimer. (And we might as well release it.)
371
- //
372
- // 2. If the maxAge was previously disabled and it just got enabled,
373
- // then we need to setup the deleteTimer. (Plus we might need to do an immediate delete.)
374
- //
375
- // 3. If the maxAge was increased,
376
- // then we don't need to do anything.
377
- //
378
- // 4. If the maxAge was decreased,
379
- // then we should do an immediate delete.
380
-
381
- BOOL shouldDeleteNow = NO;
382
-
383
- if (oldMaxAge > 0.0)
384
- {
385
- if (newMaxAge <= 0.0)
386
- {
387
- // Handles #1
388
-
389
- [self destroyDeleteTimer];
390
- }
391
- else if (oldMaxAge > newMaxAge)
392
- {
393
- // Handles #4
394
- shouldDeleteNow = YES;
395
- }
396
- }
397
- else if (newMaxAge > 0.0)
398
- {
399
- // Handles #2
400
- shouldDeleteNow = YES;
401
- }
402
-
403
- if (shouldDeleteNow)
404
- {
405
- @autoreleasepool
406
- {
407
- [self performDelete];
408
-
409
- if (deleteTimer)
410
- [self updateDeleteTimer];
411
- else
412
- [self createAndStartDeleteTimer];
413
- }
414
- }
415
- }
416
- };
417
-
418
- if (dispatch_get_current_queue() == loggerQueue)
419
- block();
420
- else
421
- dispatch_async(loggerQueue, block);
422
- }
423
-
424
- - (NSTimeInterval)deleteInterval
425
- {
426
- if (dispatch_get_current_queue() == loggerQueue)
427
- {
428
- return deleteInterval;
429
- }
430
- else
431
- {
432
- __block NSTimeInterval result;
433
-
434
- dispatch_sync(loggerQueue, ^{
435
- result = deleteInterval;
436
- });
437
-
438
- return result;
439
- }
440
- }
441
-
442
- - (void)setDeleteInterval:(NSTimeInterval)interval
443
- {
444
- dispatch_block_t block = ^{
445
-
446
- // C99 recommended floating point comparison macro
447
- // Read: isLessThanOrGreaterThan(floatA, floatB)
448
-
449
- if (/* deleteInterval != interval */ islessgreater(deleteInterval, interval))
450
- {
451
- deleteInterval = interval;
452
-
453
- // There are several cases we need to handle here.
454
- //
455
- // 1. If the deleteInterval was previously enabled and it just got disabled,
456
- // then we need to stop the deleteTimer. (And we might as well release it.)
457
- //
458
- // 2. If the deleteInterval was previously disabled and it just got enabled,
459
- // then we need to setup the deleteTimer. (Plus we might need to do an immediate delete.)
460
- //
461
- // 3. If the deleteInterval increased, then we need to reset the timer so that it fires at the later date.
462
- //
463
- // 4. If the deleteInterval decreased, then we need to reset the timer so that it fires at an earlier date.
464
- // (Plus we might need to do an immediate delete.)
465
-
466
- if (deleteInterval > 0.0)
467
- {
468
- @autoreleasepool
469
- {
470
- if (deleteTimer == NULL)
471
- {
472
- // Handles #2
473
- //
474
- // Since the deleteTimer uses the lastDeleteTime to calculate it's first fireDate,
475
- // if a delete is needed the timer will fire immediately.
476
-
477
- [self createAndStartDeleteTimer];
478
- }
479
- else
480
- {
481
- // Handles #3
482
- // Handles #4
483
- //
484
- // Since the deleteTimer uses the lastDeleteTime to calculate it's first fireDate,
485
- // if a save is needed the timer will fire immediately.
486
-
487
- [self updateDeleteTimer];
488
- }
489
- }
490
- }
491
- else if (deleteTimer)
492
- {
493
- // Handles #1
494
-
495
- [self destroyDeleteTimer];
496
- }
497
- }
498
- };
499
-
500
- if (dispatch_get_current_queue() == loggerQueue)
501
- block();
502
- else
503
- dispatch_async(loggerQueue, block);
504
- }
505
-
506
- - (BOOL)deleteOnEverySave
507
- {
508
- if (dispatch_get_current_queue() == loggerQueue)
509
- {
510
- return deleteOnEverySave;
511
- }
512
- else
513
- {
514
- __block BOOL result;
515
-
516
- dispatch_sync(loggerQueue, ^{
517
- result = deleteOnEverySave;
518
- });
519
-
520
- return result;
521
- }
522
- }
523
-
524
- - (void)setDeleteOnEverySave:(BOOL)flag
525
- {
526
- dispatch_block_t block = ^{
527
-
528
- deleteOnEverySave = flag;
529
- };
530
-
531
- if (dispatch_get_current_queue() == loggerQueue)
532
- block();
533
- else
534
- dispatch_async(loggerQueue, block);
535
- }
536
-
537
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
538
- #pragma mark Public API
539
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
540
-
541
- - (void)savePendingLogEntries
542
- {
543
- dispatch_block_t block = ^{ @autoreleasepool {
544
-
545
- [self performSaveAndSuspendSaveTimer];
546
- }};
547
-
548
- if (dispatch_get_current_queue() == loggerQueue)
549
- block();
550
- else
551
- dispatch_async(loggerQueue, block);
552
- }
553
-
554
- - (void)deleteOldLogEntries
555
- {
556
- dispatch_block_t block = ^{ @autoreleasepool {
557
-
558
- [self performDelete];
559
- }};
560
-
561
- if (dispatch_get_current_queue() == loggerQueue)
562
- block();
563
- else
564
- dispatch_async(loggerQueue, block);
565
- }
566
-
567
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
568
- #pragma mark DDLogger
569
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
570
-
571
- - (void)didAddLogger
572
- {
573
- // If you override me be sure to invoke [super didAddLogger];
574
-
575
- [self createSuspendedSaveTimer];
576
-
577
- [self createAndStartDeleteTimer];
578
- }
579
-
580
- - (void)willRemoveLogger
581
- {
582
- // If you override me be sure to invoke [super willRemoveLogger];
583
-
584
- [self performSaveAndSuspendSaveTimer];
585
-
586
- [self destroySaveTimer];
587
- [self destroyDeleteTimer];
588
- }
589
-
590
- - (void)logMessage:(DDLogMessage *)logMessage
591
- {
592
- if ([self db_log:logMessage])
593
- {
594
- BOOL firstUnsavedEntry = (++unsavedCount == 1);
595
-
596
- if ((unsavedCount >= saveThreshold) && (saveThreshold > 0))
597
- {
598
- [self performSaveAndSuspendSaveTimer];
599
- }
600
- else if (firstUnsavedEntry)
601
- {
602
- unsavedTime = dispatch_time(DISPATCH_TIME_NOW, 0);
603
- [self updateAndResumeSaveTimer];
604
- }
605
- }
606
- }
607
-
608
- - (void)flush
609
- {
610
- // This method is invoked by DDLog's flushLog method.
611
- //
612
- // It is called automatically when the application quits,
613
- // or if the developer invokes DDLog's flushLog method prior to crashing or something.
614
-
615
- [self performSaveAndSuspendSaveTimer];
616
- }
617
-
618
- @end