Просмотр исходного кода

VLCEventManager: hide implementation details

Gleb Pinigin 11 лет назад
Родитель
Сommit
0d0883feb1
2 измененных файлов с 33 добавлено и 35 удалено
  1. 0 8
      Headers/Internal/VLCEventManager.h
  2. 33 27
      Sources/VLCEventManager.m

+ 0 - 8
Headers/Internal/VLCEventManager.h

@@ -28,14 +28,6 @@
  * The VLCEventManager class provides a safe way for inter-thread communications.
  */
 @interface VLCEventManager : NSObject
-{
-    NSMutableArray *messageQueue;      //< Holds a queue of messages.
-    NSMutableArray *pendingMessagesOnMainThread;   //< Holds the message that are being posted on main thread.
-    NSLock          *pendingMessagesLock;
-    pthread_t        dispatcherThread;  //< Thread responsible for dispatching messages.
-    pthread_mutex_t  queueLock;         //< Queue lock.
-    pthread_cond_t   signalData;        //< Data lock.
-}
 
 /* Factories */
 /**

+ 33 - 27
Sources/VLCEventManager.m

@@ -68,7 +68,16 @@ typedef enum
 
 @end
 
-@interface VLCEventManager (Private)
+@interface VLCEventManager ()
+{
+    NSMutableArray *_messageQueue;      //< Holds a queue of messages.
+    NSMutableArray *_pendingMessagesOnMainThread;   //< Holds the message that are being posted on main thread.
+    NSLock          *_pendingMessagesLock;
+    pthread_t        _dispatcherThread;  //< Thread responsible for dispatching messages.
+    pthread_mutex_t  _queueLock;         //< Queue lock.
+    pthread_cond_t   _signalData;        //< Data lock.
+}
+
 - (void)callDelegateOfObjectAndSendNotificationWithArgs:(message_t *)message;
 - (void)callObjectMethodWithArgs:(message_t *)message;
 - (void)callDelegateOfObject:(id)aTarget withDelegateMethod:(SEL)aSelector withNotificationName:(NSString *)aNotificationName;
@@ -193,21 +202,21 @@ static void * EventDispatcherMainLoop(void * user_data)
             NSAssert([NSThread isMultiThreaded], @"Can't put Cocoa in multithreaded mode");
         }
 
-        messageQueue = [NSMutableArray new];
-        pendingMessagesOnMainThread = [NSMutableArray new];
-        pendingMessagesLock = [[NSLock alloc] init];
+        _messageQueue = [NSMutableArray new];
+        _pendingMessagesOnMainThread = [NSMutableArray new];
+        _pendingMessagesLock = [[NSLock alloc] init];
 
-        pthread_mutex_init(&queueLock, NULL);
-        pthread_cond_init(&signalData, NULL);
-        pthread_create(&dispatcherThread, NULL, EventDispatcherMainLoop, (__bridge void *)(self));
+        pthread_mutex_init(&_queueLock, NULL);
+        pthread_cond_init(&_signalData, NULL);
+        pthread_create(&_dispatcherThread, NULL, EventDispatcherMainLoop, (__bridge void *)(self));
     }
     return self;
 }
 
 - (void)dealloc
 {
-    pthread_kill(dispatcherThread, SIGKILL);
-    pthread_join(dispatcherThread, NULL);
+    pthread_kill(_dispatcherThread, SIGKILL);
+    pthread_join(_dispatcherThread, NULL);
 }
 
 - (void)callOnMainThreadDelegateOfObject:(id)aTarget withDelegateMethod:(SEL)aSelector withNotificationName:(NSString *)aNotificationName
@@ -248,7 +257,7 @@ static void * EventDispatcherMainLoop(void * user_data)
 
     // Remove all queued message
     pthread_mutex_lock([self queueLock]);
-    [pendingMessagesLock lock];
+    [_pendingMessagesLock lock];
 
     NSMutableArray *queue = [self messageQueue];
     for (NSInteger i = [queue count] - 1; i >= 0; i--) {
@@ -258,7 +267,7 @@ static void * EventDispatcherMainLoop(void * user_data)
     }
 
     // Remove all pending messages
-    NSMutableArray *messages = pendingMessagesOnMainThread;
+    NSMutableArray *messages = _pendingMessagesOnMainThread;
     // need to interate in reverse since we are removing objects
     for (NSInteger i = [messages count] - 1; i >= 0; i--) {
         message_t *message = messages[i];
@@ -267,29 +276,26 @@ static void * EventDispatcherMainLoop(void * user_data)
             [messages removeObjectAtIndex:i];
     }
 
-    [pendingMessagesLock unlock];
+    [_pendingMessagesLock unlock];
     pthread_mutex_unlock([self queueLock]);
 }
-@end
-
-@implementation VLCEventManager (Private)
 
 - (void)addMessageToHandleOnMainThread:(message_t *)message
 {
-    [pendingMessagesLock lock];
-    [pendingMessagesOnMainThread addObject:message];
-    [pendingMessagesLock unlock];
+    [_pendingMessagesLock lock];
+    [_pendingMessagesOnMainThread addObject:message];
+    [_pendingMessagesLock unlock];
 
 }
 
 - (BOOL)markMessageHandledOnMainThreadIfExists:(message_t *)message
 {
-    [pendingMessagesLock lock];
-    BOOL cancelled = ![pendingMessagesOnMainThread containsObject:message];
+    [_pendingMessagesLock lock];
+    BOOL cancelled = ![_pendingMessagesOnMainThread containsObject:message];
     if (!cancelled) {
-        [pendingMessagesOnMainThread removeObject:message];
+        [_pendingMessagesOnMainThread removeObject:message];
     }
-    [pendingMessagesLock unlock];
+    [_pendingMessagesLock unlock];
 
     return !cancelled;
 }
@@ -325,27 +331,27 @@ static void * EventDispatcherMainLoop(void * user_data)
 
 - (NSMutableArray *)messageQueue
 {
-    return messageQueue;
+    return _messageQueue;
 }
 
 - (NSMutableArray *)pendingMessagesOnMainThread
 {
-    return pendingMessagesOnMainThread;
+    return _pendingMessagesOnMainThread;
 }
 
 - (NSLock *)pendingMessagesLock
 {
-    return pendingMessagesLock;
+    return _pendingMessagesLock;
 }
 
 
 - (pthread_cond_t *)signalData
 {
-    return &signalData;
+    return &_signalData;
 }
 
 - (pthread_mutex_t *)queueLock
 {
-    return &queueLock;
+    return &_queueLock;
 }
 @end