SyncMLClient.h
/*
* This file is part of buteo-sync-plugins package
*
* Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
*
* Contact: Sateesh Kavuri <sateesh.kavuri@nokia.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* version 2.1 as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA
*
*/
#ifndef SYNCMLCLIENT_H
#define SYNCMLCLIENT_H
#include "BTConnection.h"
#include "SyncMLStorageProvider.h"
#include <ClientPlugin.h>
#include <SyncPluginLoader.h>
#include <SyncResults.h>
#include <buteosyncml5/SyncAgent.h>
#include <Accounts/Account>
#include <Accounts/Service>
#include <Accounts/Manager>
#include <SessionData>
#include <IdentityInfo>
#include <Identity>
#include <AuthSession>
#include <AuthService>
namespace DataSync {
class Transport;
class SyncAgentConfig;
}
class SyncMLClient : public Buteo::ClientPlugin
{
Q_OBJECT;
public:
SyncMLClient( const QString& aPluginName,
const Buteo::SyncProfile& aProfile,
Buteo::PluginCbInterface *aCbInterface );
virtual ~SyncMLClient();
virtual bool init();
virtual bool uninit();
virtual bool startSync();
virtual void abortSync(Sync::SyncStatus aStatus = Sync::SYNC_ABORTED);
virtual Buteo::SyncResults getSyncResults() const;
virtual bool cleanUp();
public slots:
virtual void connectivityStateChanged( Sync::ConnectivityType aType,
bool aState );
protected slots:
void syncStateChanged( DataSync::SyncState aState );
void syncFinished( DataSync::SyncState aState );
void storageAccquired(QString aMimeType);
void receiveItemProcessed( DataSync::ModificationType aModificationType,
DataSync::ModifiedDatabase aModifiedDatabase,
QString aLocalDatabase,
QString aMimeType,
int aCommittedItems );
void credentialsResponse( const SignOn::SessionData& data );
void credentialsError( const SignOn::Error& error );
private:
bool initAgent();
void closeAgent();
bool initTransport();
void closeTransport();
bool initConfig();
void closeConfig();
bool initObexTransport();
bool initHttpTransport();
DataSync::SyncDirection resolveSyncDirection(
const DataSync::SyncInitiator& aInitiator );
DataSync::ConflictResolutionPolicy resolveConflictResolutionPolicy(
const DataSync::SyncInitiator& aInitiator );
void generateResults( bool aSuccessful );
Accounts::AccountId accountId();
bool initAccount();
void getCredentials();
bool useAccounts() const;
QMap<QString,QString> accountSettings() const;
#ifndef QT_NO_DEBUG
// helper function for debugging
// does nothing in release mode
QString toText( const DataSync::SyncState& aState );
#endif //#ifndef QT_NO_DEBUG
QMap<QString, QString> iProperties;
DataSync::SyncAgent* iAgent;
BTConnection iBTConnection;
DataSync::Transport* iTransport;
DataSync::SyncAgentConfig* iConfig;
Buteo::SyncResults iResults;
SyncMLStorageProvider iStorageProvider;
quint32 iCommittedItems;
Accounts::Account* iAccount;
SignOn::AuthSession* iAuthSession;
};
class SyncMLClientLoader : public Buteo::SyncPluginLoader
{
Q_OBJECT
Q_PLUGIN_METADATA(IID "com.buteo.plugins.sync.SyncMLClientLoader")
Q_INTERFACES(Buteo::SyncPluginLoader)
public:
Buteo::ClientPlugin* createClientPlugin(const QString& pluginName,
const Buteo::SyncProfile& profile,
Buteo::PluginCbInterface* cbInterface) override;
};
#endif // SYNCMLCLIENT_H
BTConnection
Class for creating a connection to another device over Bluetooth for libmeegosyncml.
Definition clientplugins/syncmlclient/BTConnection.h:45
SyncMLClientLoader
Definition SyncMLClient.h:223
SyncMLClientLoader::createClientPlugin
Buteo::ClientPlugin * createClientPlugin(const QString &pluginName, const Buteo::SyncProfile &profile, Buteo::PluginCbInterface *cbInterface) override
Creates SyncML client plugin.
SyncMLClient::SyncMLClient
SyncMLClient(const QString &aPluginName, const Buteo::SyncProfile &aProfile, Buteo::PluginCbInterface *aCbInterface)
Constructor.
SyncMLClient::cleanUp
virtual bool cleanUp()
SyncMLClient::abortSync
virtual void abortSync(Sync::SyncStatus aStatus=Sync::SYNC_ABORTED)
SyncMLClient::init
virtual bool init()
SyncMLClient::getSyncResults
virtual Buteo::SyncResults getSyncResults() const
SyncMLClient::startSync
virtual bool startSync()
SyncMLClient::receiveItemProcessed
void receiveItemProcessed(DataSync::ModificationType aModificationType, DataSync::ModifiedDatabase aModifiedDatabase, QString aLocalDatabase, QString aMimeType, int aCommittedItems)
slot for DataSync::SyncAgent::itemProcessed signal
SyncMLClient::storageAccquired
void storageAccquired(QString aMimeType)
slot for DataSync::SyncAgent::storageAcquired signal
SyncMLClient::credentialsError
void credentialsError(const SignOn::Error &error)
Error slot for response on call for retrieving credentials.
SyncMLClient::credentialsResponse
void credentialsResponse(const SignOn::SessionData &data)
Slot for response on call for retrieving credentials.
SyncMLClient::syncFinished
void syncFinished(DataSync::SyncState aState)
sync Finished slot for DataSync::SyncAgent::syncFinished signal
SyncMLClient::connectivityStateChanged
virtual void connectivityStateChanged(Sync::ConnectivityType aType, bool aState)
SyncMLClient::uninit
virtual bool uninit()
SyncMLClient::~SyncMLClient
virtual ~SyncMLClient()
Destructor.
SyncMLClient::syncStateChanged
void syncStateChanged(DataSync::SyncState aState)
state change slot for DataSync::SyncAgent::stateChanged signal
SyncMLStorageProvider
Module that provides storages to libmeegosyncml in syncml client/server plugins.
Definition debian/tmp/usr/include/syncmlcommon/SyncMLStorageProvider.h:44