Makefile | 6 +- Makefile.top | 10 --- desktop/inc/app.hxx | 3 - desktop/source/app/app.cxx | 9 ++- sc/source/ui/collab/contacts.cxx | 4 - sc/source/ui/collab/sendfunc.cxx | 4 - tubes/inc/tubes/manager.hxx | 41 ++------------- tubes/qa/test_manager.cxx | 5 - tubes/source/manager.cxx | 105 +++++++++------------------------------ 9 files changed, 52 insertions(+), 135 deletions(-)
New commits: commit a236141e4aec1046dab191abcdea226522127242 Author: Matúš Kukan <matus.ku...@gmail.com> Date: Thu Jul 26 15:49:10 2012 +0200 move help target to Makefile; it doesn't need config_host.mk Change-Id: Ib627bb0a12b5b055f8d6077c00cc8099473fa176 diff --git a/Makefile b/Makefile index 8b27545..4d97e71 100644 --- a/Makefile +++ b/Makefile @@ -18,7 +18,7 @@ SRCDIR:=$(patsubst %/,%,$(dir $(realpath $(firstword $(MAKEFILE_LIST))))) .PHONY : $(filter-out $(SRCDIR)/config_host.mk,$(MAKECMDGOALS)) # recursively invoke Makefile.top, which includes config_host.mk -$(firstword $(MAKECMDGOALS)) : $(SRCDIR)/config_host.mk +$(filter-out help,$(firstword $(MAKECMDGOALS))) : $(SRCDIR)/config_host.mk $(MAKE) -r -f $(SRCDIR)/Makefile.top $(MAKECMDGOALS) # run configure in an environment not polluted by config_host.mk @@ -34,4 +34,8 @@ $(SRCDIR)/config_host.mk : \ $(SRCDIR)/autogen.lastrun: @true +help: + @cat $(SRCDIR)/solenv/gbuild/gbuild.help.txt + @true + # vim: set noet sw=4 ts=4: diff --git a/Makefile.top b/Makefile.top index 11468c5..4aaf832 100644 --- a/Makefile.top +++ b/Makefile.top @@ -527,14 +527,4 @@ debugrun: endif # not clean or distclean - -######################### -# help -# -.PHONY: help -help: - @cat $(SRCDIR)/solenv/gbuild/gbuild.help.txt - @true - - # vim: set noet sw=4 ts=4: commit 7f77377850537194ea634f0d2c81e8cc5cb90a1b Author: Matúš Kukan <matus.ku...@gmail.com> Date: Thu Jul 26 12:56:19 2012 +0200 tubes: clean this out Change-Id: I7d4cafbe51695c0ff36480311858b9167344c119 diff --git a/tubes/inc/tubes/manager.hxx b/tubes/inc/tubes/manager.hxx index 9938f6f..b5a68b2 100644 --- a/tubes/inc/tubes/manager.hxx +++ b/tubes/inc/tubes/manager.hxx @@ -30,13 +30,8 @@ #define INCLUDED_TUBES_MANAGER_HXX #include <sal/config.h> -#include "tubes/tubesdllapi.h" -#include "tubes/conference.hxx" -#include "tubes/contact-list.hxx" +#include <tubes/tubesdllapi.h> #include <rtl/ustring.hxx> -#include <salhelper/thread.hxx> -#include <rtl/ref.hxx> -#include <tools/link.hxx> // For testing purposes, we might need more in future. #define LIBO_TUBES_DBUS_INTERFACE "org.libreoffice.calc" @@ -44,11 +39,11 @@ #define LIBO_TUBES_DBUS_PATH "/org/libreoffice/calc" namespace osl { class Mutex; } +class ContactList; +class TeleConference; class TeleManagerImpl; typedef struct _TpAccount TpAccount; typedef struct _TpContact TpContact; -typedef struct _GMainLoop GMainLoop; -typedef struct _GMainContext GMainContext; /** Interface to Telepathy DBus Tubes. @@ -193,8 +188,6 @@ private: static sal_uInt32 nRefCount; static rtl::OString aNameSuffix; - friend class TeleManagerImpl; // access to mutex - static ::osl::Mutex& GetMutex(); }; diff --git a/tubes/source/manager.cxx b/tubes/source/manager.cxx index 9fe6d4f..9df5468 100644 --- a/tubes/source/manager.cxx +++ b/tubes/source/manager.cxx @@ -26,9 +26,11 @@ * instead of those above. */ -#include "tubes/manager.hxx" -#include "tubes/constants.h" -#include "tubes/file-transfer-helper.h" +#include <tubes/manager.hxx> +#include <tubes/conference.hxx> +#include <tubes/constants.h> +#include <tubes/contact-list.hxx> +#include <tubes/file-transfer-helper.h> #include <com/sun/star/uno/Sequence.hxx> #include <com/sun/star/frame/XComponentLoader.hpp> commit b70c2d352ddb6350ec366b055b28b3d892b54b1c Author: Matúš Kukan <matus.ku...@gmail.com> Date: Thu Jul 26 12:17:09 2012 +0200 tubes: avoid unnecessary re-building; move the include into source file Change-Id: Ib45a5fab8d4dc118ac0ae5282d47f46f9f86edc2 diff --git a/desktop/inc/app.hxx b/desktop/inc/app.hxx index 09f0a4d..c31b953 100644 --- a/desktop/inc/app.hxx +++ b/desktop/inc/app.hxx @@ -41,8 +41,9 @@ #include <com/sun/star/task/XStatusIndicator.hpp> #include <com/sun/star/uno/Reference.h> #include <osl/mutex.hxx> + #ifdef ENABLE_TELEPATHY -#include <tubes/manager.hxx> +class TeleManager; #endif using namespace com::sun::star::task; diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx index 6d5ea30..4e76579 100644 --- a/desktop/source/app/app.cxx +++ b/desktop/source/app/app.cxx @@ -102,6 +102,10 @@ #include "langselect.hxx" +#ifdef ENABLE_TELEPATHY +#include <tubes/manager.hxx> +#endif + #if defined MACOSX #include <errno.h> #include <sys/wait.h> commit f86cc45d8795073e61d39edc469a4876085941b8 Author: Matúš Kukan <matus.ku...@gmail.com> Date: Thu Jul 26 12:12:42 2012 +0200 tubes: move mbChannelReadyHandlerInvoked to pImpl Change-Id: If2ddd8bdcb11727be719e8966aa689fbabd94f44 diff --git a/tubes/inc/tubes/manager.hxx b/tubes/inc/tubes/manager.hxx index 163b58e..9938f6f 100644 --- a/tubes/inc/tubes/manager.hxx +++ b/tubes/inc/tubes/manager.hxx @@ -141,8 +141,8 @@ public: // Only for callbacks. void addConference( TeleConference* pConference ); - void setChannelReadyHandlerInvoked( bool b ) { mbChannelReadyHandlerInvoked = b; } - bool isChannelReadyHandlerInvoked() const { return mbChannelReadyHandlerInvoked; } + void setChannelReadyHandlerInvoked( bool b ); + bool isChannelReadyHandlerInvoked() const; void setAccountManagerReadyHandlerInvoked( bool b ); bool isAccountManagerReadyHandlerInvoked() const; @@ -189,8 +189,6 @@ public: private: void ensureLegacyChannel( TpAccount* pAccount, TpContact* pBuddy ); - bool mbChannelReadyHandlerInvoked : 1; - static TeleManagerImpl* pImpl; static sal_uInt32 nRefCount; static rtl::OString aNameSuffix; diff --git a/tubes/source/manager.cxx b/tubes/source/manager.cxx index cfff455..9fe6d4f 100644 --- a/tubes/source/manager.cxx +++ b/tubes/source/manager.cxx @@ -90,7 +90,8 @@ public: TpBaseClient* mpFileTransferClient; TpAccountManager* mpAccountManager; TeleManager::AccountManagerStatus meAccountManagerStatus; - bool mbAccountManagerReadyHandlerInvoked; + bool mbAccountManagerReadyHandlerInvoked : 1; + bool mbChannelReadyHandlerInvoked : 1; ContactList* mpContactList; OString msCurrentUUID; typedef std::map< OString, TeleConference* > MapStringConference; @@ -383,8 +384,6 @@ static void TeleManager_AccountManagerReadyHandler( TeleManager::TeleManager() - : - mbChannelReadyHandlerInvoked( false) { SAL_INFO( "tubes", "TeleManager::get: count: " << nRefCount ); // The glib object types need to be initialized, else we aren't going @@ -734,12 +733,21 @@ void TeleManager::setAccountManagerReadyHandlerInvoked( bool b ) pImpl->mbAccountManagerReadyHandlerInvoked = b; } - bool TeleManager::isAccountManagerReadyHandlerInvoked() const { return pImpl->mbAccountManagerReadyHandlerInvoked; } +void TeleManager::setChannelReadyHandlerInvoked( bool b ) +{ + pImpl->mbChannelReadyHandlerInvoked = b; +} + +bool TeleManager::isChannelReadyHandlerInvoked() const +{ + return pImpl->mbChannelReadyHandlerInvoked; +} + ContactList* TeleManager::getContactList() const { return pImpl->mpContactList; @@ -902,7 +910,8 @@ TeleManagerImpl::TeleManagerImpl() mpFileTransferClient( NULL), mpAccountManager( NULL), meAccountManagerStatus( TeleManager::AMS_UNINITIALIZED), - mbAccountManagerReadyHandlerInvoked( false) + mbAccountManagerReadyHandlerInvoked( false), + mbChannelReadyHandlerInvoked( false) { } commit bb9399e2cf0072d1de7cb0aea162d107ebde4360 Author: Matúš Kukan <matus.ku...@gmail.com> Date: Thu Jul 26 11:55:39 2012 +0200 tubes: kill double-singletonning of TeleManager I am not sure why it was introduced in 0dae49a03c9b4816d8cdde69e30bcd2db2e30724 and hope that it's safe to remove it now. Change-Id: I62f0ac230a83473386eabc45c9fcc387f62631e3 diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx index 8582af5..6d5ea30 100644 --- a/desktop/source/app/app.cxx +++ b/desktop/source/app/app.cxx @@ -624,8 +624,7 @@ Desktop::Desktop() Desktop::~Desktop() { #ifdef ENABLE_TELEPATHY - if (m_pTeleManager) - m_pTeleManager->unref(); + delete m_pTeleManager; #endif } @@ -1708,7 +1707,7 @@ int Desktop::Main() SetSplashScreenProgress(60); #ifdef ENABLE_TELEPATHY - m_pTeleManager = TeleManager::get(); + m_pTeleManager = new TeleManager(); bool bListen = rCmdLineArgs.IsInvisible(); m_pTeleManager->init( bListen ); #endif diff --git a/sc/source/ui/collab/contacts.cxx b/sc/source/ui/collab/contacts.cxx index 80cb756..8529b3d 100644 --- a/sc/source/ui/collab/contacts.cxx +++ b/sc/source/ui/collab/contacts.cxx @@ -170,7 +170,7 @@ public: maBtnListen( this, ScResId( BTN_LISTEN ) ), maListContainer( this, ScResId( CTL_LIST ) ), maList( maListContainer ), - mpManager( TeleManager::get() ) + mpManager( new TeleManager() ) { Hide(); maBtnConnect.SetClickHdl( LINK( this, TubeContacts, BtnConnectHdl ) ); @@ -196,7 +196,7 @@ public: } virtual ~TubeContacts() { - mpManager->unref(); + delete mpManager; } static rtl::OUString fromUTF8( const char *pStr ) diff --git a/sc/source/ui/collab/sendfunc.cxx b/sc/source/ui/collab/sendfunc.cxx index a366956..b78d34c 100644 --- a/sc/source/ui/collab/sendfunc.cxx +++ b/sc/source/ui/collab/sendfunc.cxx @@ -355,9 +355,9 @@ ScDocFunc *ScDocShell::CreateDocFunc() ScDocFuncDirect *pDirect = new ScDocFuncDirect( *this ); ScDocFuncRecv *pReceiver = new ScDocFuncRecv( pDirect ); ScDocFuncSend *pSender = new ScDocFuncSend( *this, pReceiver ); - TeleManager *pManager = TeleManager::get(); + TeleManager *pManager = new TeleManager(); pSender->SetCollaboration( pManager->getConference() ); - pManager->unref(); + delete pManager; return pSender; } else diff --git a/tubes/inc/tubes/manager.hxx b/tubes/inc/tubes/manager.hxx index 0e96826..163b58e 100644 --- a/tubes/inc/tubes/manager.hxx +++ b/tubes/inc/tubes/manager.hxx @@ -72,11 +72,9 @@ public: /** Prepare tube manager with account and service to be offered/listened to. */ - TeleManager(); - ~TeleManager(); + TUBES_DLLPUBLIC TeleManager(); + TUBES_DLLPUBLIC ~TeleManager(); - TUBES_DLLPUBLIC static TeleManager* get(); - TUBES_DLLPUBLIC void unref(); TUBES_DLLPUBLIC bool init( bool bListen ); /** Connect to DBus and create AccountManager. */ @@ -197,13 +195,6 @@ private: static sal_uInt32 nRefCount; static rtl::OString aNameSuffix; - /* FIXME: double-singletonning is bad. These two are used by ::get and - * ::unref, and are a quick hack so that we can have a demo working. - */ - static TeleManager* pSingleton; - static sal_uInt32 nAnotherRefCount; - static ::osl::Mutex& GetAnotherMutex(); - friend class TeleManagerImpl; // access to mutex static ::osl::Mutex& GetMutex(); diff --git a/tubes/qa/test_manager.cxx b/tubes/qa/test_manager.cxx index 81298d0..f914b33 100644 --- a/tubes/qa/test_manager.cxx +++ b/tubes/qa/test_manager.cxx @@ -129,7 +129,7 @@ void TestTeleTubes::testInitialize() mpMainLoop = g_main_loop_new (NULL, FALSE); g_timeout_add_seconds (10, timed_out, mpMainLoop); - mpManager = TeleManager::get(); + mpManager = new TeleManager(); } void TestTeleTubes::testContactList() @@ -279,12 +279,11 @@ void TestTeleTubes::testDestroyTeleTubes() g_object_unref(mpAccepterContact); mpAccepterContact = NULL; } - if (mpManager) - mpManager->unref(); g_main_loop_unref( mpMainLoop ); if (mpConference1) mpConference1->close(); delete mpConference1; + delete mpManager; } void TestTeleTubes::testFailAlways() diff --git a/tubes/source/manager.cxx b/tubes/source/manager.cxx index c60388f..cfff455 100644 --- a/tubes/source/manager.cxx +++ b/tubes/source/manager.cxx @@ -81,10 +81,6 @@ TeleManagerImpl* TeleManager::pImpl = NULL; sal_uInt32 TeleManager::nRefCount = 0; rtl::OString TeleManager::aNameSuffix; -sal_uInt32 TeleManager::nAnotherRefCount = 0; -TeleManager* TeleManager::pSingleton = NULL; - - /** Refcounted singleton implementation class. */ class TeleManagerImpl { @@ -390,6 +386,7 @@ TeleManager::TeleManager() : mbChannelReadyHandlerInvoked( false) { + SAL_INFO( "tubes", "TeleManager::get: count: " << nRefCount ); // The glib object types need to be initialized, else we aren't going // anywhere. g_type_init(); @@ -400,7 +397,6 @@ TeleManager::TeleManager() pImpl = new TeleManagerImpl; } - TeleManager::~TeleManager() { MutexGuard aGuard( GetMutex()); @@ -411,29 +407,7 @@ TeleManager::~TeleManager() delete pImpl; pImpl = NULL; } -} - -TeleManager * -TeleManager::get() -{ - MutexGuard aGuard( GetAnotherMutex()); - SAL_INFO( "tubes", "TeleManager::get: count: " << nAnotherRefCount ); - if (!pSingleton) - pSingleton = new TeleManager(); - - nAnotherRefCount++; - return pSingleton; -} - -void -TeleManager::unref() -{ - MutexGuard aGuard( GetAnotherMutex()); - if (nAnotherRefCount && --nAnotherRefCount == 0) { - delete pSingleton; - pSingleton = NULL; - } - SAL_INFO( "tubes", "TeleManager::unref: count: " << nAnotherRefCount ); + SAL_INFO( "tubes", "TeleManager::unref: count: " << nRefCount ); } bool TeleManager::init( bool bListen ) @@ -913,19 +887,6 @@ Mutex& TeleManager::GetMutex() return *pMutex; } -Mutex& TeleManager::GetAnotherMutex() -{ - static Mutex* pMutex = NULL; - if (!pMutex) - { - MutexGuard aGuard( Mutex::getGlobalMutex()); - if (!pMutex) - pMutex = new Mutex; - } - return *pMutex; -} - - // static void TeleManager::addSuffixToNames( const char* pName ) { commit c55b2d0b32dd210c2a809ce2b5ebca12bfb5b1d8 Author: Matúš Kukan <matus.ku...@gmail.com> Date: Thu Jul 26 10:30:44 2012 +0200 tubes: TeleManger's GMainLoop* now unused Change-Id: I99b482a60155c596c4b64534f62ce4c9d4d9a94b diff --git a/tubes/inc/tubes/manager.hxx b/tubes/inc/tubes/manager.hxx index a47a566..0e96826 100644 --- a/tubes/inc/tubes/manager.hxx +++ b/tubes/inc/tubes/manager.hxx @@ -71,12 +71,8 @@ public: /** Prepare tube manager with account and service to be offered/listened to. - - @param bCreateOwnGMainLoop - Whether to create and iterate an own GMainLoop. For testing - purposes when no GMainLoop is available. */ - TeleManager( bool bCreateOwnGMainLoop = false ); + TeleManager(); ~TeleManager(); TUBES_DLLPUBLIC static TeleManager* get(); @@ -142,11 +138,6 @@ public: void disconnect(); - /// Only for use with MainLoopFlusher - GMainLoop* getMainLoop() const; - - GMainContext* getMainContext() const; - static rtl::OString createUuid(); diff --git a/tubes/source/manager.cxx b/tubes/source/manager.cxx index 80f9c1c..c60388f 100644 --- a/tubes/source/manager.cxx +++ b/tubes/source/manager.cxx @@ -89,7 +89,6 @@ TeleManager* TeleManager::pSingleton = NULL; class TeleManagerImpl { public: - GMainLoop* mpLoop; TpAutomaticClientFactory* mpFactory; TpBaseClient* mpClient; TpBaseClient* mpFileTransferClient; @@ -387,7 +386,7 @@ static void TeleManager_AccountManagerReadyHandler( } -TeleManager::TeleManager( bool bCreateOwnGMainLoop ) +TeleManager::TeleManager() : mbChannelReadyHandlerInvoked( false) { @@ -399,11 +398,6 @@ TeleManager::TeleManager( bool bCreateOwnGMainLoop ) ++nRefCount; if (!pImpl) pImpl = new TeleManagerImpl; - - // We need a main loop, else no callbacks. - /* TODO: could the loop be run in another thread? */ - if (bCreateOwnGMainLoop && !pImpl->mpLoop) - pImpl->mpLoop = g_main_loop_new( NULL, FALSE); } @@ -860,53 +854,37 @@ rtl::OString TeleManager::getFullObjectPath() void TeleManager::iterateLoop() { - GMainContext* pContext = getMainContext(); - g_main_context_iteration( pContext, TRUE); + g_main_context_iteration( NULL, TRUE ); } void TeleManager::iterateLoop( CallBackInvokedFunc pFunc ) { - GMainContext* pContext = getMainContext(); while (!(*pFunc)()) { - g_main_context_iteration( pContext, TRUE); + g_main_context_iteration( NULL, TRUE ); } } void TeleManager::iterateLoop( ManagerCallBackInvokedFunc pFunc ) { - GMainContext* pContext = getMainContext(); while (!(this->*pFunc)()) { - g_main_context_iteration( pContext, TRUE); + g_main_context_iteration( NULL, TRUE ); } } void TeleManager::iterateLoop( const TeleConference* pConference, ConferenceCallBackInvokedFunc pFunc ) { - GMainContext* pContext = getMainContext(); while (!(pConference->*pFunc)()) { - g_main_context_iteration( pContext, TRUE); + g_main_context_iteration( NULL, TRUE ); } } -GMainLoop* TeleManager::getMainLoop() const -{ - return pImpl->mpLoop; -} - - -GMainContext* TeleManager::getMainContext() const -{ - return (pImpl->mpLoop ? g_main_loop_get_context( pImpl->mpLoop) : NULL); -} - - // static rtl::OString TeleManager::createUuid() { @@ -958,7 +936,6 @@ void TeleManager::addSuffixToNames( const char* pName ) TeleManagerImpl::TeleManagerImpl() : - mpLoop( NULL), mpFactory( NULL), mpClient( NULL), mpFileTransferClient( NULL), @@ -986,8 +963,6 @@ TeleManagerImpl::~TeleManagerImpl() g_object_unref( mpAccountManager); if (mpContactList) delete mpContactList; - if (mpLoop) - g_main_loop_unref( mpLoop); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits