upnpharvester/common/cmlibrary/inc/cmcommon.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 08:52:00 +0200
changeset 0 7f85d04be362
permissions -rw-r--r--
Revision: 200947 Kit: 200951

/*
* Copyright (c) 2005 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:      Common Client/Server header for Content Manager
*
*/






#ifndef CMCOMMON_H
#define CMCOMMON_H

_LIT(KCmServerExe,"cmserver.exe"); ///<EXE name

// CONSTANTS

// Server name
_LIT(KCmServerName,"CmServer");

// Panic name
_LIT(KCmServerPanic, "CmServerPanic");

/// A version must be specified when creating a session with the server
const TUint KCmServerMajor = 1;
const TUint KCmServerMinor = 0;
const TUint KCmServerBuild = 0;

const TUid KCmPropertyCat = {0x10012345};
const TInt KCmProperty = 1;

const TInt64 KCmMmcLowMemory = 10*KMega;

// Wlan scan intervals [s]
const TInt KWlanScanNetworkNever = 0;
const TInt KWlanScanNetworkInterval60 = 60;

// Cds namespace
_LIT(KCdsNamespace, "http://www.nokia.com/namespaces/metadata/cdssync/");

/**  State information for the Content Manager */
enum TCmServerState
    {
    ECmServerStateDisabled = 0,
    ECmServerStateIdle = 1,
    ECmServerStateStoring = 2,
    ECmServerStateFilling = 3,
    ECmServerStateHarvesting = 4,
    ECmServerStateGettingStoreFields = 6,
    ECmServerStateGettingFillFields = 7,
    ECmServerStatePreProcessingStore = 8,
    ECmServerStatePreProcessingFill = 9,
    ECmServerStateSearchingForServers = 12,
    ECmServerStateDeleting = 13,
    ECmServerStatePreProcessingFilllist = 14,
    ECmServerStateUpdatingFillLists = 15,
    ECmServerStateDeletingMetadata = 16
    };

/**  Content Manager services */
enum TCmService
    {
    // main service which must be enabled for anything to work
    // Note: executable service identifiers equal state identifiers
    ECmServiceNone = 0,
    ECmServiceContentManager = 1,
    ECmServiceStore = 2,
    ECmServiceFill = 3,
    ECmServiceHarvest = 4,
    ECmServiceMemoryManager = 5,
    ECmServiceGetStoreFields = 6,
    ECmServiceGetFillFields = 7,
    ECmServicePreProcessingStore = 8,
    ECmServicePreProcessingFill = 9,
    ECmServiceTransferInfoFill = 10,
    ECmServiceTransferInfoStore = 11,
    ECmServiceSearchForServers = 12,
    ECmServiceDeleteFilledFiles = 13,
    ECmServicePreProcessingFilllist = 14,
    ECmServiceUpdateFillLists = 15,
    ECmServiceDeleteMetadata = 16,
    ECmServiceAutomStoreListProcess = 17
    };

/**  Content Manager service states */
enum TCmServiceState
    {
    ECmServiceStateDisabled = 0,
    ECmServiceStateAutomatic
    };

/// opcodes used in message passing between client and server
enum TCmRequest
    {
    ECmGetServerState = 1,
    ECmSetServiceState,
    ECmGetServiceState,
    ECmExecuteService,
    ECmSetFillRules,
    ECmGetFillRules,
    ECmGetFillRulesSize,
    ECmGetMediaserversSize,
    ECmSetMediaServers,
    ECmSetStoreRules,
    ECmGetStoreRulesSize,
    ECmGetFillItemsSize,
    ECmGetStoreItemsSize,
    ECmPreProcessFillList,
    ECmGetItemCount,
    ECmGetDataBuffer,
    ECmGetDataFields,
    ECmGetDataFieldSize,
    ECmCancel,
    ECmGetAppWizardState,
    ECmSetAppWizardState,
    ECmGetSyncTime,
    ECmSetFillFileStatuses,
    ECmGetTransferInfo,
    ECmUpdateFillLists,
    ECmDeleteMetadata,
    ECmDeleteDeletedMediaServers,
    ECmSetDrives,
    ECmGetDrivesSize,
    ECmGetDriveSelectionStatus,
    ECmApplicationExit,
    ECmGetFilledFilesSize
    };

/// Panic enums
enum TCmClientPanics
    {
    ECmClientNoSessionActive,
    ECmClientBadRequest
    };

/// Panic enums
enum TCmServerPanics
    {
    EDCmServerIllegalParameter
    };

class TCmProgressInfo
    {
public: // public member variables
    TCmService iService; // Service identifier
    TInt iTotalItems;    // Total count of items
    TInt iProcessedItems;// Processed items
    TInt iItemsToTransferPerService; // Remaining items per service
    };

enum TCmListItemStatus
    {
    ECmToBeFilled = 1,
    ECmFilled = 2,
    ECmToBeRemoved = 4,
    ECmToBeShrinked = 8,
    ECmToBeSkipped = 16,
    ECmSkippedByUser = 32,
    ECmLocalCopy = 64,
    ECmStored = 128,
    ECmKeepOnDevice = 256
    };


enum TCmShrinkResolution
    {
    ECmShrinkResScreenSize = 0
    };

class TCmLowPriorityFilled
    {
public: // public member variables
    HBufC* iFullPath; // Path of the filled file
    TUint32 iSize;    // Size of the filled file
    TInt64 iListId;   // Items fill list id
    };

typedef TPckgC<TCmProgressInfo> TCmProgressInfoPckg;

#endif
// end of file