summaryrefslogtreecommitdiff
path: root/tubes
diff options
context:
space:
mode:
authorWill Thompson <will.thompson@collabora.co.uk>2012-03-23 17:14:36 +0000
committerMatúš Kukan <matus.kukan@gmail.com>2012-07-17 16:39:57 +0200
commit58499ea785ca7dd2661a54e9df4fa9d66f0d8895 (patch)
tree02dfb4f6a07312dc2e50f54fa48bf59420dbd115 /tubes
parentc4bf2c3ff0dcdcd427d7001dab3728c22629d077 (diff)
Include packet in packetReceived signals.
(And also signalify receiving files.)
Diffstat (limited to 'tubes')
-rw-r--r--tubes/inc/tubes/manager.hxx10
-rw-r--r--tubes/qa/test_manager.cxx19
-rw-r--r--tubes/source/conference.cxx2
-rw-r--r--tubes/source/manager.cxx12
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");