diff -r 965bb42340b2 -r 64200268cac2 mtpdataproviders/mtpimagedp/mediasyncserver/inc/rmediasyncserver.h --- a/mtpdataproviders/mtpimagedp/mediasyncserver/inc/rmediasyncserver.h Thu Sep 09 18:17:36 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,156 +0,0 @@ -// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// - -/** - @file - @internalTechnology -*/ - -#ifndef RMEDIASYNCSERVER_H_ -#define RMEDIASYNCSERVER_H_ - -#include -#include "cmediasyncserverdef.h" - -struct TMDSNotification - { - TUint objectId; - TUint8 changeType; - TUint8 activeSchedulerWait; - TUint8 reserved[2]; - }; - -class CMediaSyncDataReader : public CBase - { -public: - static CMediaSyncDataReader* NewL(const RChunk& aChunk); - /** virtual C++ destructor */ - IMPORT_C ~CMediaSyncDataReader(); - - IMPORT_C TInt Count(); - IMPORT_C TBool HasNext(); - IMPORT_C void GetNextL(TUint32& aObjectId, TUint8& aType, TPtr16& aUri); - -private: - /** C++ constructor initialises */ - CMediaSyncDataReader(); - void ConstructL(const RChunk& aChunk); - -private: - TDataHeaderInfo* iHeaderInfo; - TUint8* iReadBase; - TInt iOffset; - TInt iCurrentIdx; - }; - -class RMediaSyncServer : public RSessionBase - { -public: - IMPORT_C RMediaSyncServer(); - - /** - * Starts up MediaSyncServer - */ - IMPORT_C TInt Startup(); - - /** - * Shut down MediaSyncServer - */ - IMPORT_C void Shutdown(); - - /** - * Connects to MediaSyncServer, does not start up MediaSyncServer if it is - * not running - * @return KErrNone on successfull connection, - * KMediaSyncServerCleanupYourDatabase on successful connection, - * but the database needs to be resynched. The client must empty - * MTP database on the objects under its control before reading - * the change information since it will get everything that is in - * MDS. - * Systen wide error code if the connection fails. - */ - IMPORT_C TInt Connect(); - - /** - * Client should call this when it has detected that the databases are - * out of sync or that its database is corrupted. This will lead MSS to - * reread everything from the MDS after all the session were closed and - * at next connection Connect to return KMediaSyncServerCleanupYourDatabase - * to all dataproviders. - * @param aNeedFullSync ETrue if the MSS DB file is corrupt and the client need to fully sync with MDE - * @return KErrNone if successful, otherwise one of the system-wide error codes - * - */ - IMPORT_C TInt NeedFullSync(TBool& aNeedFullSync); - - /** - * Clear full synchronization flag from MSS - * @return KErrNone if successful, otherwise one of the system-wide error codes - * - */ - IMPORT_C TInt ClearFullSync(); - - /** - * This methods returns changes and their type. It only returns one type of - * changes at one call. Removals will be returned first then Additions, - * then Changes. The change information will be deleted from the DB when returned. - * If an object is both added, changed and then deleted between the - * connections, no information on it is returned, on the other hand if - * object is first deleted the object with a same name is added, both - * deletion and addition entry are available. - * - * Moving objects are treated as deletion and addition (keeping the metadata if possible) - * - * @param aNotifications on return the array of MDE notifications - * @param aIsFinished ETrue if this array is the last one for MDE notifications - * @param aStatus async call, KErrNone if changes received, - * KErrNotFound if there are no changes, - * otherwise another system wide error code. - * - */ - IMPORT_C void GetChangesL(CMediaSyncDataReader*& aDataReader, TBool& aIsFinished, TRequestStatus& aStatus, TInt aMaxFetchCount = 512); - - /** - * Remove all recodes from MSS - */ - IMPORT_C void RemoveAllRecords(); - - /** - * Enable MSS subscribes MDS notifications - * @return KErrNone if successful, otherwise one of the system-wide error codes - */ - IMPORT_C TInt EnableMonitor(); - - /** - * Disable MSS subscribes MDS notifications - * @return KErrNone if successful, otherwise one of the system-wide error codes - */ - IMPORT_C TInt DisableMonitor(); - - IMPORT_C void Close(); - -private: - TInt GetGlobalSharedHeapHandle(); - void RelaseGlobalSharedHeap(); - -private: - TBool iHasSharedHeap; - - /** Handle to the Global Shared Heap */ - RChunk iGlobalSharedHeap; - }; - - -#endif /*RMEDIASYNCSERVER_H_*/