stub things to build without dbus or gio

Change-Id: Ibdcf33a6f0a688b322aedd531e8dfbf107e9e755
This commit is contained in:
Caolán McNamara
2017-09-12 11:53:34 +01:00
parent 8a70142223
commit a1ece2d00d
2 changed files with 55 additions and 9 deletions

View File

@@ -34,6 +34,9 @@
#define FRONTEND_INTERFACE "/usr/share/dbus-1/interfaces/org.openprinting.Frontend.xml" #define FRONTEND_INTERFACE "/usr/share/dbus-1/interfaces/org.openprinting.Frontend.xml"
#define BACKEND_INTERFACE "/usr/share/dbus-1/interfaces/org.openprinting.Backend.xml" #define BACKEND_INTERFACE "/usr/share/dbus-1/interfaces/org.openprinting.Backend.xml"
typedef struct _GDBusProxy GDBusProxy;
typedef struct _GDBusConnection GDBusConnection;
namespace psp namespace psp
{ {
@@ -75,6 +78,9 @@ class CPDManager : public PrinterInfoManager
// Function called when CPDManager is destroyed // Function called when CPDManager is destroyed
virtual ~CPDManager() override; virtual ~CPDManager() override;
virtual void initialize() override;
#if ENABLE_DBUS && ENABLE_GIO
static void onNameAcquired(GDBusConnection *connection, const char* name, void* user_data); static void onNameAcquired(GDBusConnection *connection, const char* name, void* user_data);
static void onNameLost (GDBusConnection *, const char *name, void*); static void onNameLost (GDBusConnection *, const char *name, void*);
static void printerAdded (GDBusConnection *connection, static void printerAdded (GDBusConnection *connection,
@@ -92,18 +98,18 @@ class CPDManager : public PrinterInfoManager
GVariant *parameters, GVariant *parameters,
gpointer user_data); gpointer user_data);
virtual void initialize() override;
static void getOptionsFromDocumentSetup( const JobData& rJob, bool bBanner, const OString& rJobName, int& rNumOptions, GVariant **arr ); static void getOptionsFromDocumentSetup( const JobData& rJob, bool bBanner, const OString& rJobName, int& rNumOptions, GVariant **arr );
#endif
public: public:
#if ENABLE_DBUS && ENABLE_GIO
// Functions involved in initialization // Functions involved in initialization
GDBusProxy * getProxy( std::string target ); GDBusProxy * getProxy( std::string target );
void addBackend( std::pair< std::string, GDBusProxy * > pair ); void addBackend( std::pair< std::string, GDBusProxy * > pair );
void addTempBackend( std::pair< std::string, gchar* > pair ); void addTempBackend( std::pair< std::string, gchar* > pair );
std::vector<std::pair<std::string, gchar*>> getTempBackends(); std::vector<std::pair<std::string, gchar*>> getTempBackends();
void addNewPrinter( const OUString&, const OUString&, CPDPrinter * ); void addNewPrinter( const OUString&, const OUString&, CPDPrinter * );
#endif
// Create CPDManager // Create CPDManager
static CPDManager* tryLoadCPD(); static CPDManager* tryLoadCPD();

View File

@@ -34,6 +34,7 @@
using namespace psp; using namespace psp;
using namespace osl; using namespace osl;
#if ENABLE_DBUS && ENABLE_GIO
// Function to execute when name is acquired on the bus // Function to execute when name is acquired on the bus
void CPDManager::onNameAcquired (GDBusConnection *connection, void CPDManager::onNameAcquired (GDBusConnection *connection,
const gchar *, const gchar *,
@@ -233,6 +234,7 @@ void CPDManager::addNewPrinter(const OUString& aPrinterName, const OUString& aUn
aPrinter.m_bModified = false; aPrinter.m_bModified = false;
m_aPrinters[ aUniqueName ] = aPrinter; m_aPrinters[ aUniqueName ] = aPrinter;
} }
#endif
/* /*
* CPDManager class * CPDManager class
@@ -271,14 +273,17 @@ CPDManager* CPDManager::tryLoadCPD()
CPDManager::CPDManager() : CPDManager::CPDManager() :
PrinterInfoManager( PrinterInfoManager::Type::CPD ) PrinterInfoManager( PrinterInfoManager::Type::CPD )
{ {
#if ENABLE_DBUS && ENABLE_GIO
// Get Destinations number and pointers // Get Destinations number and pointers
GError *error = nullptr; GError *error = nullptr;
m_pConnection = g_bus_get_sync (G_BUS_TYPE_SESSION, nullptr, &error); m_pConnection = g_bus_get_sync (G_BUS_TYPE_SESSION, nullptr, &error);
g_assert_no_error (error); g_assert_no_error (error);
#endif
} }
CPDManager::~CPDManager() CPDManager::~CPDManager()
{ {
#if ENABLE_DBUS && ENABLE_GIO
g_dbus_connection_emit_signal (m_pConnection, g_dbus_connection_emit_signal (m_pConnection,
nullptr, nullptr,
"/org/libreoffice/PrintDialog", "/org/libreoffice/PrintDialog",
@@ -303,12 +308,14 @@ CPDManager::~CPDManager()
{ {
free(dest_it->second); free(dest_it->second);
} }
#endif
} }
const PPDParser* CPDManager::createCPDParser( const OUString& rPrinter ) const PPDParser* CPDManager::createCPDParser( const OUString& rPrinter )
{ {
const PPDParser* pNewParser = nullptr; const PPDParser* pNewParser = nullptr;
#if ENABLE_DBUS && ENABLE_GIO
OUString aPrinter; OUString aPrinter;
if( rPrinter.startsWith("CPD:") ) if( rPrinter.startsWith("CPD:") )
@@ -464,7 +471,9 @@ const PPDParser* CPDManager::createCPDParser( const OUString& rPrinter )
rInfo.m_pParser = pNewParser; rInfo.m_pParser = pNewParser;
rInfo.m_aContext.setParser( pNewParser ); rInfo.m_aContext.setParser( pNewParser );
} }
#else
(void)rPrinter;
#endif
return pNewParser; return pNewParser;
} }
@@ -473,6 +482,7 @@ void CPDManager::initialize()
{ {
// get normal printers, clear printer list // get normal printers, clear printer list
PrinterInfoManager::initialize(); PrinterInfoManager::initialize();
#if ENABLE_DBUS && ENABLE_GIO
g_bus_own_name_on_connection (m_pConnection, g_bus_own_name_on_connection (m_pConnection,
"org.libreoffice.print-dialog", "org.libreoffice.print-dialog",
G_BUS_NAME_OWNER_FLAGS_NONE, G_BUS_NAME_OWNER_FLAGS_NONE,
@@ -520,10 +530,12 @@ void CPDManager::initialize()
m_aPrinters.erase( aRemovePrinters.front() ); m_aPrinters.erase( aRemovePrinters.front() );
aRemovePrinters.pop_front(); aRemovePrinters.pop_front();
} }
#endif
} }
void CPDManager::setupJobContextData( JobData& rData ) void CPDManager::setupJobContextData( JobData& rData )
{ {
#if ENABLE_DBUS && ENABLE_GIO
std::unordered_map<OUString, CPDPrinter *, OUStringHash>::iterator dest_it = std::unordered_map<OUString, CPDPrinter *, OUStringHash>::iterator dest_it =
m_aCPDDestMap.find( rData.m_aPrinterName ); m_aCPDDestMap.find( rData.m_aPrinterName );
@@ -558,10 +570,14 @@ void CPDManager::setupJobContextData( JobData& rData )
rData.m_pParser = p_it->second.m_aInfo.m_pParser; rData.m_pParser = p_it->second.m_aInfo.m_pParser;
rData.m_aContext = p_it->second.m_aInfo.m_aContext; rData.m_aContext = p_it->second.m_aInfo.m_aContext;
#else
(void)rData;
#endif
} }
FILE* CPDManager::startSpool( const OUString& rPrintername, bool bQuickCommand ) FILE* CPDManager::startSpool( const OUString& rPrintername, bool bQuickCommand )
{ {
#if ENABLE_DBUS && ENABLE_GIO
SAL_INFO( "vcl.unx.print", "startSpool: " << rPrintername << " " << (bQuickCommand ? "true" : "false") ); SAL_INFO( "vcl.unx.print", "startSpool: " << rPrintername << " " << (bQuickCommand ? "true" : "false") );
if( m_aCPDDestMap.find( rPrintername ) == m_aCPDDestMap.end() ) if( m_aCPDDestMap.find( rPrintername ) == m_aCPDDestMap.end() )
{ {
@@ -577,8 +593,14 @@ FILE* CPDManager::startSpool( const OUString& rPrintername, bool bQuickCommand )
m_aSpoolFiles[fp] = aSysFile; m_aSpoolFiles[fp] = aSysFile;
return fp; return fp;
#else
(void)rPrintername;
(void)bQuickCommand;
return nullptr;
#endif
} }
#if ENABLE_DBUS && ENABLE_GIO
void CPDManager::getOptionsFromDocumentSetup( const JobData& rJob, bool bBanner, const OString& rJobName, int& rNumOptions, GVariant **arr ) void CPDManager::getOptionsFromDocumentSetup( const JobData& rJob, bool bBanner, const OString& rJobName, int& rNumOptions, GVariant **arr )
{ {
GVariantBuilder *builder; GVariantBuilder *builder;
@@ -649,10 +671,12 @@ void CPDManager::getOptionsFromDocumentSetup( const JobData& rJob, bool bBanner,
(*arr) = g_variant_new("a(ss)", builder); (*arr) = g_variant_new("a(ss)", builder);
g_variant_builder_unref(builder); g_variant_builder_unref(builder);
} }
#endif
bool CPDManager::endSpool( const OUString& rPrintername, const OUString& rJobTitle, FILE* pFile, const JobData& rDocumentJobData, bool bBanner, const OUString& rFaxNumber ) bool CPDManager::endSpool( const OUString& rPrintername, const OUString& rJobTitle, FILE* pFile, const JobData& rDocumentJobData, bool bBanner, const OUString& rFaxNumber )
{ {
bool success = false; bool success = false;
#if ENABLE_DBUS && ENABLE_GIO
SAL_INFO( "vcl.unx.print", "endSpool: " << rPrintername << "," << rJobTitle << " copy count = " << rDocumentJobData.m_nCopies ); SAL_INFO( "vcl.unx.print", "endSpool: " << rPrintername << "," << rJobTitle << " copy count = " << rDocumentJobData.m_nCopies );
std::unordered_map< OUString, CPDPrinter *, OUStringHash >::iterator dest_it = std::unordered_map< OUString, CPDPrinter *, OUStringHash >::iterator dest_it =
m_aCPDDestMap.find( rPrintername ); m_aCPDDestMap.find( rPrintername );
@@ -697,12 +721,20 @@ bool CPDManager::endSpool( const OUString& rPrintername, const OUString& rJobTit
unlink( it->second.getStr() ); unlink( it->second.getStr() );
m_aSpoolFiles.erase( pFile ); m_aSpoolFiles.erase( pFile );
} }
#else
(void)rPrintername;
(void)rJobTitle;
(void)pFile;
(void)rDocumentJobData;
(void)bBanner;
(void)rFaxNumber;
#endif
return success; return success;
} }
bool CPDManager::checkPrintersChanged( bool ) bool CPDManager::checkPrintersChanged( bool )
{ {
#if ENABLE_DBUS && ENABLE_GIO
bool bChanged = m_aPrintersChanged; bool bChanged = m_aPrintersChanged;
m_aPrintersChanged = false; m_aPrintersChanged = false;
g_dbus_connection_emit_signal (m_pConnection, g_dbus_connection_emit_signal (m_pConnection,
@@ -713,29 +745,35 @@ bool CPDManager::checkPrintersChanged( bool )
nullptr, nullptr,
nullptr); nullptr);
return bChanged; return bChanged;
#else
return false;
#endif
} }
bool CPDManager::addPrinter( const OUString& rName, const OUString& rDriver ) bool CPDManager::addPrinter( const OUString& rName, const OUString& rDriver )
{ {
#if ENABLE_DBUS && ENABLE_GIO
// don't touch the CPD printers // don't touch the CPD printers
if( m_aCPDDestMap.find( rName ) != m_aCPDDestMap.end() || if (m_aCPDDestMap.find( rName ) != m_aCPDDestMap.end() || rDriver.startsWith("CPD:"))
rDriver.startsWith("CPD:")
)
return false; return false;
#endif
return PrinterInfoManager::addPrinter( rName, rDriver ); return PrinterInfoManager::addPrinter( rName, rDriver );
} }
bool CPDManager::removePrinter( const OUString& rName, bool bCheck ) bool CPDManager::removePrinter( const OUString& rName, bool bCheck )
{ {
#if ENABLE_DBUS && ENABLE_GIO
// don't touch the CPD printers // don't touch the CPD printers
if( m_aCPDDestMap.find( rName ) != m_aCPDDestMap.end() ) if( m_aCPDDestMap.find( rName ) != m_aCPDDestMap.end() )
return false; return false;
#endif
return PrinterInfoManager::removePrinter( rName, bCheck ); return PrinterInfoManager::removePrinter( rName, bCheck );
} }
bool CPDManager::setDefaultPrinter( const OUString& rName ) bool CPDManager::setDefaultPrinter( const OUString& rName )
{ {
bool bSuccess = false; bool bSuccess = false;
#if ENABLE_DBUS && ENABLE_GIO
std::unordered_map< OUString, CPDPrinter *, OUStringHash >::iterator nit = std::unordered_map< OUString, CPDPrinter *, OUStringHash >::iterator nit =
m_aCPDDestMap.find( rName ); m_aCPDDestMap.find( rName );
if( nit != m_aCPDDestMap.end()) if( nit != m_aCPDDestMap.end())
@@ -745,7 +783,9 @@ bool CPDManager::setDefaultPrinter( const OUString& rName )
} }
else else
bSuccess = PrinterInfoManager::setDefaultPrinter( rName ); bSuccess = PrinterInfoManager::setDefaultPrinter( rName );
#else
(void)rName;
#endif
return bSuccess; return bSuccess;
} }