diff options
Diffstat (limited to 'sc/source/ui/collab')
-rw-r--r-- | sc/source/ui/collab/collab.cxx | 26 | ||||
-rw-r--r-- | sc/source/ui/collab/sendfunc.cxx | 10 |
2 files changed, 10 insertions, 26 deletions
diff --git a/sc/source/ui/collab/collab.cxx b/sc/source/ui/collab/collab.cxx index cf8777c0bd39..a68ba45f97a6 100644 --- a/sc/source/ui/collab/collab.cxx +++ b/sc/source/ui/collab/collab.cxx @@ -61,28 +61,22 @@ void ScCollaboration::receivedFile( rtl::OUString &rFileURL ) maLinkFile.Call( &rFileURL ); } -extern "C" { - void file_recv_cb( rtl::OUString &localUri, void* pUserData ) - { - ScCollaboration *pCollab = reinterpret_cast<ScCollaboration *>( pUserData ); - pCollab->receivedFile( localUri ); - } -} - -void ScCollaboration::packetReceivedCallback( TeleConference *pConference ) +void ScCollaboration::packetReceivedCallback( TeleConference *pConference, TelePacket &rPacket ) { + rtl::OString aString( rPacket.getData(), rPacket.getSize()); /* Relay the signal out… */ - sigPacketReceived( pConference); + sigPacketReceived( pConference, aString); } bool ScCollaboration::initManager() { mpManager = TeleManager::get(); mpManager->sigPacketReceived.connect( - boost::bind( &ScCollaboration::packetReceivedCallback, this, _1 )); + boost::bind( &ScCollaboration::packetReceivedCallback, this, _1, _2 )); mpManager->connect(); mpManager->prepareAccountManager(); - mpManager->setFileReceivedCallback( file_recv_cb, (void *)this ); + mpManager->sigFileReceived.connect( + boost::bind( &ScCollaboration::receivedFile, this, _1 )); return true; } @@ -119,14 +113,6 @@ bool ScCollaboration::sendPacket( const rtl::OString& rString ) } -bool ScCollaboration::recvPacket( rtl::OString& rString, TeleConference* pConference ) -{ - TelePacket aPacket; - bool bOk = (pConference ? pConference->popPacket( aPacket) : mpManager->popPacket( aPacket)); - rString = rtl::OString( aPacket.getData(), aPacket.getSize()); - return bOk; -} - extern "C" { static void file_sent_cb( bool aSuccess, void* /* pUserData */ ) { diff --git a/sc/source/ui/collab/sendfunc.cxx b/sc/source/ui/collab/sendfunc.cxx index 08383faef5ff..38c598fac84b 100644 --- a/sc/source/ui/collab/sendfunc.cxx +++ b/sc/source/ui/collab/sendfunc.cxx @@ -261,7 +261,7 @@ public: mpCollab = pCollab; } - void packetReceived( TeleConference* pConference); + void packetReceived( TeleConference* pConference, const rtl::OString & ); DECL_LINK( ReceiveFileCallback, rtl::OUString * ); void RecvMessage( const rtl::OString &rString ) @@ -301,11 +301,9 @@ public: } }; -void ScDocFuncRecv::packetReceived( TeleConference* pConference) +void ScDocFuncRecv::packetReceived( TeleConference* pConference, const rtl::OString &rStr) { - rtl::OString aStr; - if (mpCollab && mpCollab->recvPacket( aStr, pConference)) - RecvMessage( aStr); + RecvMessage( rStr); } IMPL_LINK( ScDocFuncRecv, ReceiveFileCallback, rtl::OUString *, pStr ) @@ -557,7 +555,7 @@ SC_DLLPRIVATE ScDocFunc *ScDocShell::CreateDocFunc() ScCollaboration* pCollab = new ScCollaboration( LINK( pReceiver, ScDocFuncRecv, ReceiveFileCallback) ); pCollab->sigPacketReceived.connect( - boost::bind( &ScDocFuncRecv::packetReceived, pReceiver, _1 )); + boost::bind( &ScDocFuncRecv::packetReceived, pReceiver, _1, _2 )); bOk = bOk && pCollab->initManager(); if (!strcmp( pEnv, "master")) { |