Changeset 142672 in webkit


Ignore:
Timestamp:
Feb 12, 2013 2:17:36 PM (11 years ago)
Author:
andersca@apple.com
Message:

Introduce a WorkQueueMessageReceiver class as a replacement for QueueClient
https://bugs.webkit.org/show_bug.cgi?id=109612

Reviewed by Andreas Kling.

  • Platform/CoreIPC/Connection.cpp:

(CoreIPC::Connection::addWorkQueueMessageReceiver):
(CoreIPC):
(CoreIPC::Connection::removeWorkQueueMessageReceiver):
(CoreIPC::Connection::addWorkQueueMessageReceiverOnConnectionWorkQueue):
(CoreIPC::Connection::removeWorkQueueMessageReceiverOnConnectionWorkQueue):

  • Platform/CoreIPC/Connection.h:

(Connection):

Location:
trunk/Source/WebKit2
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r142668 r142672  
     12013-02-12  Anders Carlsson  <andersca@apple.com>
     2
     3        Introduce a WorkQueueMessageReceiver class as a replacement for QueueClient
     4        https://bugs.webkit.org/show_bug.cgi?id=109612
     5
     6        Reviewed by Andreas Kling.
     7
     8        * Platform/CoreIPC/Connection.cpp:
     9        (CoreIPC::Connection::addWorkQueueMessageReceiver):
     10        (CoreIPC):
     11        (CoreIPC::Connection::removeWorkQueueMessageReceiver):
     12        (CoreIPC::Connection::addWorkQueueMessageReceiverOnConnectionWorkQueue):
     13        (CoreIPC::Connection::removeWorkQueueMessageReceiverOnConnectionWorkQueue):
     14        * Platform/CoreIPC/Connection.h:
     15        (Connection):
     16
    1172013-02-12  Csaba Osztrogonác  <ossy@webkit.org>
    218
  • trunk/Source/WebKit2/Platform/CoreIPC/Connection.cpp

    r142656 r142672  
    270270}
    271271
     272void Connection::addWorkQueueMessageReceiver(StringReference messageReceiverName, WorkQueue* workQueue, WorkQueueMessageReceiver* workQueueMessageReceiver)
     273{
     274    ASSERT(RunLoop::current() == m_clientRunLoop);
     275    ASSERT(!m_isConnected);
     276
     277    m_connectionQueue->dispatch(bind(&Connection::addWorkQueueMessageReceiverOnConnectionWorkQueue, this, messageReceiverName, RefPtr<WorkQueue>(workQueue), RefPtr<WorkQueueMessageReceiver>(workQueueMessageReceiver)));
     278}
     279
     280void Connection::removeWorkQueueMessageReceiver(StringReference messageReceiverName)
     281{
     282    ASSERT(RunLoop::current() == m_clientRunLoop);
     283
     284    m_connectionQueue->dispatch(bind(&Connection::removeWorkQueueMessageReceiverOnConnectionWorkQueue, this, messageReceiverName));
     285}
     286
     287void Connection::addWorkQueueMessageReceiverOnConnectionWorkQueue(StringReference messageReceiverName, WorkQueue* workQueue, WorkQueueMessageReceiver* workQueueMessageReceiver)
     288{
     289    ASSERT(!m_workQueueMessageReceivers.contains(messageReceiverName));
     290    m_workQueueMessageReceivers.add(messageReceiverName, std::make_pair(workQueue, workQueueMessageReceiver));
     291}
     292
     293void Connection::removeWorkQueueMessageReceiverOnConnectionWorkQueue(StringReference messageReceiverName)
     294{
     295    ASSERT(m_workQueueMessageReceivers.contains(messageReceiverName));
     296    m_workQueueMessageReceivers.remove(messageReceiverName);
     297}
     298
    272299void Connection::addQueueClientOnWorkQueue(QueueClient* queueClient)
    273300{
  • trunk/Source/WebKit2/Platform/CoreIPC/Connection.h

    r141814 r142672  
    9393    };
    9494
     95    class WorkQueueMessageReceiver : public MessageReceiver, public ThreadSafeRefCounted<WorkQueueMessageReceiver> {
     96    };
     97
    9598    class QueueClient {
    9699    public:
     
    166169    void setDidCloseOnConnectionWorkQueueCallback(DidCloseOnConnectionWorkQueueCallback callback);
    167170
     171    void addWorkQueueMessageReceiver(StringReference messageReceiverName, WorkQueue*, WorkQueueMessageReceiver*);
     172    void removeWorkQueueMessageReceiver(StringReference messageReceiverName);
     173
    168174    void addQueueClient(QueueClient*);
    169175    void removeQueueClient(QueueClient*);
     
    206212    void processIncomingMessage(PassOwnPtr<MessageDecoder>);
    207213    void processIncomingSyncReply(PassOwnPtr<MessageDecoder>);
     214
     215    void addWorkQueueMessageReceiverOnConnectionWorkQueue(StringReference messageReceiverName, WorkQueue*, WorkQueueMessageReceiver*);
     216    void removeWorkQueueMessageReceiverOnConnectionWorkQueue(StringReference messageReceiverName);
    208217
    209218    void addQueueClientOnWorkQueue(QueueClient*);
     
    240249
    241250    Vector<QueueClient*> m_connectionQueueClients;
     251
     252    HashMap<StringReference, std::pair<RefPtr<WorkQueue>, RefPtr<WorkQueueMessageReceiver> > > m_workQueueMessageReceivers;
    242253
    243254    unsigned m_inDispatchMessageCount;
Note: See TracChangeset for help on using the changeset viewer.