1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-02-05 03:50:07 +00:00

Added JUCE_DECLARE_WEAK_REFERENCEABLE macro to make it easier to creat weak-referenceable classes

This commit is contained in:
jules 2017-09-27 12:57:55 +01:00
parent b44cb8b710
commit 1aaa598a5f
13 changed files with 50 additions and 62 deletions

View file

@ -26,22 +26,16 @@ namespace juce
struct InterprocessConnection::ConnectionThread : public Thread
{
ConnectionThread (InterprocessConnection& c) : Thread ("JUCE IPC"), owner (c) {}
void run() override { owner.runThread(); }
private:
InterprocessConnection& owner;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ConnectionThread)
};
//==============================================================================
InterprocessConnection::InterprocessConnection (const bool callbacksOnMessageThread,
const uint32 magicMessageHeaderNumber)
: callbackConnectionState (false),
useMessageThread (callbacksOnMessageThread),
magicMessageHeader (magicMessageHeaderNumber),
pipeReceiveMessageTimeout (-1)
InterprocessConnection::InterprocessConnection (bool callbacksOnMessageThread, uint32 magicMessageHeaderNumber)
: useMessageThread (callbacksOnMessageThread),
magicMessageHeader (magicMessageHeaderNumber)
{
thread = new ConnectionThread (*this);
}
@ -207,7 +201,7 @@ struct ConnectionStateMessage : public MessageManager::MessageBase
void messageCallback() override
{
if (InterprocessConnection* const ipc = owner)
if (auto* ipc = owner.get())
{
if (connectionMade)
ipc->connectionMade();
@ -256,7 +250,7 @@ struct DataDeliveryMessage : public Message
void messageCallback() override
{
if (InterprocessConnection* const ipc = owner)
if (auto* ipc = owner.get())
ipc->messageReceived (data);
}
@ -331,7 +325,7 @@ void InterprocessConnection::runThread()
{
if (socket != nullptr)
{
const int ready = socket->waitUntilReady (true, 0);
auto ready = socket->waitUntilReady (true, 0);
if (ready < 0)
{