diff options
author | Will Thompson <will.thompson@collabora.co.uk> | 2012-03-23 17:14:36 +0000 |
---|---|---|
committer | Matúš Kukan <matus.kukan@gmail.com> | 2012-07-17 16:39:57 +0200 |
commit | 58499ea785ca7dd2661a54e9df4fa9d66f0d8895 (patch) | |
tree | 02dfb4f6a07312dc2e50f54fa48bf59420dbd115 /tubes | |
parent | c4bf2c3ff0dcdcd427d7001dab3728c22629d077 (diff) |
Include packet in packetReceived signals.
(And also signalify receiving files.)
Diffstat (limited to 'tubes')
-rw-r--r-- | tubes/inc/tubes/manager.hxx | 10 | ||||
-rw-r--r-- | tubes/qa/test_manager.cxx | 19 | ||||
-rw-r--r-- | tubes/source/conference.cxx | 2 | ||||
-rw-r--r-- | tubes/source/manager.cxx | 12 |
4 files changed, 16 insertions, 27 deletions
diff --git a/tubes/inc/tubes/manager.hxx b/tubes/inc/tubes/manager.hxx index 6d26b0225222..7c877f5fc786 100644 --- a/tubes/inc/tubes/manager.hxx +++ b/tubes/inc/tubes/manager.hxx @@ -142,9 +142,9 @@ public: /** Emitted when a packet is received, with a TeleConference* pointing to the instance that received the packet. */ - boost::signals2::signal<void (TeleConference*)> sigPacketReceived; + boost::signals2::signal<void (TeleConference*, TelePacket&)> sigPacketReceived; /* FIXME: listen to a signal on the conference rather than having it call us */ - void callbackOnRecieved( TeleConference* pConference ) const; + void callbackOnRecieved( TeleConference* pConference, TelePacket& rPacket ) const; /** Pop a received data packet. @@ -158,8 +158,7 @@ public: void sendFile( rtl::OUString &localUri, TeleConference::FileSentCallback pCallback, void* pUserData); - typedef void (*FileReceivedCallback)( rtl::OUString &localUri, void* pUserData ); - void setFileReceivedCallback( FileReceivedCallback callback, void* pUserData ); + boost::signals2::signal<void ( rtl::OUString &localUri )> sigFileReceived; /// Only for use with MainLoopFlusher GMainLoop* getMainLoop() const; @@ -237,9 +236,6 @@ private: static sal_uInt32 nAnotherRefCount; TUBES_DLLPRIVATE static ::osl::Mutex& GetAnotherMutex(); - FileReceivedCallback mpFileReceivedCallback; - void *mpFileReceivedCallbackData; - friend class TeleManagerImpl; // access to mutex TUBES_DLLPRIVATE static ::osl::Mutex& GetMutex(); diff --git a/tubes/qa/test_manager.cxx b/tubes/qa/test_manager.cxx index ebd31762b5b4..cb3136285b26 100644 --- a/tubes/qa/test_manager.cxx +++ b/tubes/qa/test_manager.cxx @@ -66,13 +66,13 @@ public: void testDestroyAccepterContact(); void testFailAlways(); - void ReceiverCallback( TeleConference* pConference ); + void ReceiverCallback( TeleConference* pConference, const TelePacket &rPacket ); GMainLoop* mpMainLoop; void spinMainLoop(); static void FileSent( bool success, void *user_data); - static void FileReceived( rtl::OUString& aUri, void *user_data); + void FileReceived( rtl::OUString& aUri ); // Order is significant. CPPUNIT_TEST_SUITE( TestTeleTubes ); @@ -233,7 +233,7 @@ void TestTeleTubes::testPrepareAccountManager2() CPPUNIT_ASSERT( eStatus == TeleManager::AMS_PREPARED); } -void TestTeleTubes::ReceiverCallback( TeleConference* pConference ) +void TestTeleTubes::ReceiverCallback( TeleConference* pConference, const TelePacket & ) { SAL_INFO( "tubes", "TestTeleTubes::ReceiverCallback: " << pConference); if (pConference) @@ -275,7 +275,7 @@ void TestTeleTubes::testSendPacket() { TelePacket aPacket( "", RTL_CONSTASCII_STRINGPARAM( "from 1 to 2")); - mpManager1->sigPacketReceived.connect( boost::bind( &TestTeleTubes::ReceiverCallback, this, _1 ) ); + mpManager1->sigPacketReceived.connect( boost::bind( &TestTeleTubes::ReceiverCallback, this, _1, _2 ) ); nSentPackets = mpManager1->sendPacket( aPacket); CPPUNIT_ASSERT( nSentPackets == 2); // expect out+in conference, as own instance accepted self CPPUNIT_ASSERT( mnPacketReceivedEmissions == 2 ); @@ -318,12 +318,10 @@ void TestTeleTubes::FileSent( bool success, void *user_data) g_main_loop_quit (self->mpMainLoop); } -void TestTeleTubes::FileReceived( rtl::OUString& aUri, void *user_data) +void TestTeleTubes::FileReceived( rtl::OUString& aUri ) { - TestTeleTubes *self = reinterpret_cast<TestTeleTubes *>(user_data); - - self->maFileReceivedUri = aUri; - g_main_loop_quit (self->mpMainLoop); + maFileReceivedUri = aUri; + g_main_loop_quit (mpMainLoop); } void TestTeleTubes::testSendFile() @@ -333,7 +331,8 @@ void TestTeleTubes::testSendFile() /* This has to run after testContactList has run successfully. */ CPPUNIT_ASSERT( mpAccepterContact != 0); - mpManager1->setFileReceivedCallback(&TestTeleTubes::FileReceived, this); + mpManager1->sigFileReceived.connect( + boost::bind(&TestTeleTubes::FileReceived, this, _1)); mpManager1->sendFile( maTestConfigIniURL, &TestTeleTubes::FileSent, this); diff --git a/tubes/source/conference.cxx b/tubes/source/conference.cxx index 4e218b85108a..f91799f963db 100644 --- a/tubes/source/conference.cxx +++ b/tubes/source/conference.cxx @@ -447,7 +447,7 @@ void TeleConference::queue( TelePacket &rPacket ) maPacketQueue.push( rPacket); - getManager()->callbackOnRecieved( this); + getManager()->callbackOnRecieved( this, rPacket); } diff --git a/tubes/source/manager.cxx b/tubes/source/manager.cxx index e0e242574bda..3128ea2898d6 100644 --- a/tubes/source/manager.cxx +++ b/tubes/source/manager.cxx @@ -188,7 +188,7 @@ void TeleManager::TransferDone( EmpathyFTHandler *handler, TpFileTransferChannel rtl::OUString aUri( uri, strlen( uri), RTL_TEXTENCODING_UTF8); g_free( uri); - pManager->mpFileReceivedCallback( aUri, pManager->mpFileReceivedCallbackData); + pManager->sigFileReceived( aUri ); g_object_unref( handler); } @@ -742,11 +742,11 @@ sal_uInt32 TeleManager::sendPacket( const TelePacket& rPacket ) const } -void TeleManager::callbackOnRecieved( TeleConference* pConference ) const +void TeleManager::callbackOnRecieved( TeleConference* pConference, TelePacket& rPacket) const { INFO_LOGGER( "TeleManager::callbackOnRecieved"); - sigPacketReceived( pConference ); + sigPacketReceived( pConference, rPacket ); } @@ -774,12 +774,6 @@ void TeleManager::sendFile( rtl::OUString &localUri, TeleConference::FileSentCal } } -void TeleManager::setFileReceivedCallback( TeleManager::FileReceivedCallback callback, void* pUserData ) -{ - mpFileReceivedCallback = callback; - mpFileReceivedCallbackData = pUserData; -} - void TeleManager::unregisterConference( TeleConferencePtr pConference ) { INFO_LOGGER( "TeleManager::unregisterConference"); |