Changes: add event loop to qdeclarative booster

RevBy: Pertti Kellomäki
pull/1/head
Alexey Shilov 15 years ago
parent 525990d4e0
commit 50bfea727d

@ -2,18 +2,20 @@
include(${QT_USE_FILE})
set(LAUNCHER "${CMAKE_HOME_DIRECTORY}/src/launcherlib")
set(COMMON "${CMAKE_HOME_DIRECTORY}/src/common")
include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_HOME_DIRECTORY}/src/common ${LAUNCHER})
include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${COMMON} ${LAUNCHER})
# Hide all symbols except the ones explicitly exported in the code (like main())
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
# Set sources
set(SRC mbooster.cpp pluginfactory.cpp eventhandler.cpp ${LAUNCHER}/appdata.cpp ${LAUNCHER}/booster.cpp
set(SRC mbooster.cpp pluginfactory.cpp ${LAUNCHER}/appdata.cpp ${LAUNCHER}/booster.cpp
${LAUNCHER}/connection.cpp ${LAUNCHER}/logger.cpp
${LAUNCHER}/singleinstance.cpp ${LAUNCHER}/socketmanager.cpp)
${LAUNCHER}/singleinstance.cpp ${LAUNCHER}/socketmanager.cpp
${COMMON}/eventhandler.cpp)
set(MOC_HDRS eventhandler.h)
set(MOC_HDRS ${COMMON}/eventhandler.h)
qt4_wrap_cpp(MOC_SRC ${MOC_HDRS})
# Set libraries to be linked.

@ -20,7 +20,6 @@
#include "mbooster.h"
#include "logger.h"
#include "connection.h"
#include <sys/socket.h>
#ifdef HAVE_MCOMPONENTCACHE
#include <mcomponentcache.h>

@ -4,13 +4,17 @@ include(FindX11)
include(${QT_USE_FILE})
set(LAUNCHER "${CMAKE_HOME_DIRECTORY}/src/launcherlib")
set(COMMON "${CMAKE_HOME_DIRECTORY}/src/common")
include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_HOME_DIRECTORY}/src/common ${LAUNCHER})
include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${COMMON} ${LAUNCHER})
# Set sources
set(PLUGINSRC qdeclarativebooster.cpp pluginfactory.cpp ${LAUNCHER}/appdata.cpp ${LAUNCHER}/booster.cpp
${LAUNCHER}/connection.cpp ${LAUNCHER}/logger.cpp
${LAUNCHER}/singleinstance.cpp ${LAUNCHER}/socketmanager.cpp)
${LAUNCHER}/singleinstance.cpp ${LAUNCHER}/socketmanager.cpp ${COMMON}/eventhandler.cpp)
set(MOC_HDRS ${COMMON}/eventhandler.h)
qt4_wrap_cpp(MOC_SRC ${MOC_HDRS})
set(LIBSRC mdeclarativecache.cpp mdeclarativecache.h mdeclarativecache_p.h)
# Set executables
@ -19,7 +23,7 @@ set_target_properties(mdeclarativecache PROPERTIES
VERSION 0.1 SOVERSION 0)
target_link_libraries(mdeclarativecache ${LIBDL} ${QT_QTCORE_LIBRARY} ${QT_QTDECLARATIVE_LIBRARY} ${QT_QTGUI_LIBRARY} ${X11_LIBRARIES})
add_library(qdeclarativebooster MODULE ${PLUGINSRC})
add_library(qdeclarativebooster MODULE ${PLUGINSRC} ${MOC_SRC})
set_target_properties(qdeclarativebooster PROPERTIES
COMPILE_FLAGS -fvisibility=hidden)
target_link_libraries(qdeclarativebooster ${LIBDL} "-L. -lmdeclarativecache")

@ -19,6 +19,7 @@
#include "qdeclarativebooster.h"
#include "mdeclarativecache.h"
#include "connection.h"
const string QDeclarativeBooster::m_socketId = "/tmp/boostd";
const string QDeclarativeBooster::m_temporaryProcessName = "booster-d";
@ -53,3 +54,43 @@ bool QDeclarativeBooster::preload()
MDeclarativeCache::populate();
return true;
}
bool QDeclarativeBooster::receiveDataFromInvoker(int socketFd)
{
// Use the default implementation if in boot mode
// (it won't require QApplication running).
if (bootMode())
{
return Booster::receiveDataFromInvoker(socketFd);
}
else
{
// Setup the conversation channel with the invoker.
setConnection(new Connection(socketFd));
EventHandler handler(this);
handler.runEventLoop();
if (!connection()->connected())
{
return false;
}
// Receive application data from the invoker
if(!connection()->receiveApplicationData(appData()))
{
connection()->close();
return false;
}
// Close the connection if exit status doesn't need
// to be sent back to invoker
if (!connection()->isReportAppExitStatusNeeded())
{
connection()->close();
}
return true;
}
}

@ -21,6 +21,7 @@
#define QDECLARATIVEBOOSTER_H
#include "booster.h"
#include "eventhandler.h"
/*!
* \class QDeclarativeBooster.
@ -66,6 +67,9 @@ protected:
//! \reimp
virtual const string & socketId() const;
//! \reimp
virtual bool receiveDataFromInvoker(int socketFd);
private:
//! Disable copy-constructor

@ -1,5 +1,7 @@
# Set sources
set(LAUNCHER ${CMAKE_HOME_DIRECTORY}/src/launcherlib)
set(COMMON "${CMAKE_HOME_DIRECTORY}/src/common")
set(SRC ut_daemon.cpp ${LAUNCHER}/appdata.cpp ${LAUNCHER}/booster.cpp ${LAUNCHER}/boosterfactory.cpp ${LAUNCHER}/boosterpluginregistry.cpp ${LAUNCHER}/daemon.cpp
${LAUNCHER}/connection.cpp ${LAUNCHER}/logger.cpp
${LAUNCHER}/singleinstance.cpp ${LAUNCHER}/socketmanager.cpp)

@ -1,14 +1,15 @@
set(LAUNCHER ${CMAKE_HOME_DIRECTORY}/src/launcherlib)
set(DBOOSTER ${CMAKE_HOME_DIRECTORY}/src/qdeclarativebooster)
set(COMMON "${CMAKE_HOME_DIRECTORY}/src/common")
# Set sources
set(SRC ut_dbooster.cpp ${LAUNCHER}/appdata.cpp ${LAUNCHER}/booster.cpp
${LAUNCHER}/connection.cpp
${LAUNCHER}/connection.cpp ${COMMON}/eventhandler.cpp
${LAUNCHER}/logger.cpp ${DBOOSTER}/qdeclarativebooster.cpp
${LAUNCHER}/singleinstance.cpp ${LAUNCHER}/socketmanager.cpp)
# Set moc headers
set(MOC_HDRS ut_dbooster.h)
set(MOC_HDRS ut_dbooster.h ${COMMON}/eventhandler.h)
# Run moc
qt4_wrap_cpp(MOC_SRC ${MOC_HDRS})

@ -1,15 +1,16 @@
set(LAUNCHER ${CMAKE_HOME_DIRECTORY}/src/launcherlib)
set(MBOOSTER ${CMAKE_HOME_DIRECTORY}/src/mbooster)
set(COMMON "${CMAKE_HOME_DIRECTORY}/src/common")
# Set sources
set(SRC ut_mbooster.cpp ${LAUNCHER}/appdata.cpp ${LAUNCHER}/booster.cpp
${LAUNCHER}/connection.cpp
${LAUNCHER}/logger.cpp
${MBOOSTER}/mbooster.cpp ${MBOOSTER}/eventhandler.cpp
${MBOOSTER}/mbooster.cpp ${COMMON}/eventhandler.cpp
${LAUNCHER}/singleinstance.cpp ${LAUNCHER}/socketmanager.cpp)
# Set moc headers
set(MOC_HDRS ut_mbooster.h ${MBOOSTER}/eventhandler.h)
set(MOC_HDRS ut_mbooster.h ${COMMON}/eventhandler.h)
# Run moc
qt4_wrap_cpp(MOC_SRC ${MOC_HDRS})

Loading…
Cancel
Save