summaryrefslogtreecommitdiff
path: root/sc/source/ui/collab
diff options
context:
space:
mode:
Diffstat (limited to 'sc/source/ui/collab')
-rw-r--r--sc/source/ui/collab/collab.cxx26
-rw-r--r--sc/source/ui/collab/sendfunc.cxx10
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"))
{