[Libreoffice-commits] .: Branch 'feature/remote' - sd/source
Andrzej J.R. Hunt
ajrhunt at kemper.freedesktop.org
Thu Jul 19 02:04:57 PDT 2012
sd/source/ui/remotecontrol/Listener.cxx | 10 +++++++---
sd/source/ui/remotecontrol/Server.cxx | 7 ++++---
sd/source/ui/remotecontrol/Transmitter.cxx | 5 ++++-
3 files changed, 15 insertions(+), 7 deletions(-)
New commits:
commit 55925e0944922a638d0b10615f520b7db0a50d68
Author: Andrzej J. R. Hunt <andrzej at ahunt.org>
Date: Thu Jul 19 11:00:47 2012 +0200
Finally fixed the Transmitter bug.
Change-Id: Ia4c345b9ecb58a47219ceb0af14b66294ca3309e
diff --git a/sd/source/ui/remotecontrol/Listener.cxx b/sd/source/ui/remotecontrol/Listener.cxx
index a21977e..7b607ab 100644
--- a/sd/source/ui/remotecontrol/Listener.cxx
+++ b/sd/source/ui/remotecontrol/Listener.cxx
@@ -23,9 +23,12 @@ using rtl::OStringBuffer;
Listener::Listener( sd::Transmitter *aTransmitter )
- : ::cppu::WeakComponentImplHelper1< XSlideShowListener>( m_aMutex )
+ : ::cppu::WeakComponentImplHelper1< XSlideShowListener >( m_aMutex ),
+ pTransmitter( NULL )
{
+ fprintf( stderr, "listener:: address of Transmitter1:%p\n", aTransmitter );
pTransmitter = aTransmitter;
+ fprintf( stderr, "listener:: address of Transmitter2:%p\n", pTransmitter );
}
Listener::~Listener()
@@ -37,7 +40,7 @@ void Listener::init( const css::uno::Reference< css::presentation::XSlideShowCon
if (aController.is() )
{
mController = css::uno::Reference< css::presentation::XSlideShowController >( aController );
- aController->addSlideShowListener(this);
+ aController->addSlideShowListener( this );
fprintf( stderr, "Registered listener.\n" );
}
}
@@ -80,6 +83,7 @@ void SAL_CALL Listener::resumed (void)
void SAL_CALL Listener::slideEnded (sal_Bool bReverse)
throw (css::uno::RuntimeException)
{
+ fprintf( stderr, "listener:: address of Transmitter__:%p\n", pTransmitter );
fprintf( stderr, "slideEnded\n" );
(void) bReverse;
sal_Int32 aSlide = mController->getCurrentSlideIndex();
@@ -125,7 +129,7 @@ void SAL_CALL Listener::disposing (void)
pTransmitter = NULL;
if ( mController.is() )
{
- mController->removeSlideShowListener( static_cast<XSlideShowListener*>(this) );
+ mController->removeSlideShowListener( this );
}
}
diff --git a/sd/source/ui/remotecontrol/Server.cxx b/sd/source/ui/remotecontrol/Server.cxx
index 8ed3b70..2906f6c 100644
--- a/sd/source/ui/remotecontrol/Server.cxx
+++ b/sd/source/ui/remotecontrol/Server.cxx
@@ -35,9 +35,11 @@ Server::~Server()
// Run as a thread
void Server::listenThread()
{
+ fprintf( stderr, "Server:: address of Transmitter before:%p\n", pTransmitter );
pTransmitter = new Transmitter( mStreamSocket );
pTransmitter->launch();
Receiver aReceiver( pTransmitter );
+ fprintf( stderr, "Server:: address of Transmitter:%p\n", pTransmitter );
// aTransmitter.addMessage( "Hello world\n\n", Transmitter::Priority::HIGH );
try {
fprintf( stderr, "Trying to add a Listener in listenThread\n" );
@@ -75,14 +77,13 @@ void Server::listenThread()
aRet = mStreamSocket.recv( &aBuffer[aRead], 100 );
if ( aRet == 0 )
{
- return; // closed
+ break; // I.e. transmission finished.
}
aRead += aRet;
vector<char>::iterator aIt;
- while ( (aIt = find( aBuffer.begin() + aRead - aRet, aBuffer.end(), '\n' ))
+ while ( (aIt = find( aBuffer.begin(), aBuffer.end(), '\n' ))
!= aBuffer.end() )
{
- fprintf( stderr, "we have string\n" );
sal_uInt64 aLocation = aIt - aBuffer.begin();
aCommand.push_back( OString( &(*aBuffer.begin()), aLocation ) );
diff --git a/sd/source/ui/remotecontrol/Transmitter.cxx b/sd/source/ui/remotecontrol/Transmitter.cxx
index d7cfda0..efece0f 100644
--- a/sd/source/ui/remotecontrol/Transmitter.cxx
+++ b/sd/source/ui/remotecontrol/Transmitter.cxx
@@ -21,13 +21,15 @@ Transmitter::Transmitter( StreamSocket &aSocket )
mLowPriority(),
mHighPriority()
{
+ fprintf( stderr, "Address of low queue in constructor:%p\n", &mLowPriority );
}
void Transmitter::execute()
{
fprintf( stderr, "Waiting\n" );
- while( mQueuesNotEmpty.wait() )
+ while ( true )
{
+ mQueuesNotEmpty.wait();
fprintf( stderr, "Continuing after condition\n" );
while ( true )
{
@@ -71,6 +73,7 @@ void Transmitter::addMessage( const OString& aMessage, const Priority aPriority
fprintf(stderr, "Acquiring\n");
::osl::MutexGuard aQueueGuard( mQueueMutex );
fprintf(stderr, "Acquired\n" );
+ fprintf( stderr, "Address of low queue in addMessge:%p\n", &mLowPriority );
switch ( aPriority )
{
case Priority::LOW:
More information about the Libreoffice-commits
mailing list