// MSERVER.H
//
// Copyright (c) 1998 Symbian Ltd.  All rights reserved.
//

#if !defined(__MSERVER_H__)
#define __MSERVER_H__

#if !defined(__E32BASE_H__)
#include <e32base.h>
#endif

#if !defined(__MSVSTD_H__)
#include <msvstd.h>
#endif

// Server name, semaphore, and startup exe
_LIT(KMsvServerName, "MsvServer");
_LIT(KMsvServerSemaphore, "MsvStartupSemaphore");
_LIT(KMsvMovingSemaphore, "MsvMovingSemaphore");

// A version must be specifyed when creating a session with the server
const TUint KMsvServerMajorVersionNumber=1;
const TUint KMsvServerMinorVersionNumber=1;
const TUint KMsvServerBuildVersionNumber=10;

// Single export used to start the message server
IMPORT_C TInt StartMessageServer(TAny*);

#if defined(__WINS__)
const TUint KDefaultHeapSize=0x10000;
const TUint KDefaultMaxHeapSize=0x100000;
#endif

// server request slots
const TInt KMsvNumberOfSlots=14;
const TInt KMsvMaxSlotsAvailable=KMsvNumberOfSlots-2; // two reserved for change notification and sync requests

// Opcodes used in message passing between client and server
enum TMsvServerRqst 
	{
	// Entry related (Sync)
	EMsvGetEntry=0,
	EMsvGetChildren=1,
	EMsvGetRemainingChildren=2,
	EMsvLockEntry=3, 
	EMsvReleaseEntry=4, 
	EMsvMakeFileDirectory=5,
	// Entry related (Async)
	EMsvChangeEntry=6,
	EMsvCreateEntry=7,
	// Entry/Entries related (Async)
	EMsvDeleteEntries=8,
	EMsvMoveEntries=9,
	EMsvCopyEntries=10,
	// Observer related (Async)
	EMsvNotifySessionEvent=11,
	// Observer related (Sync)
	EMsvCancelSessionEventNotification=12,
	// Store related (Sync)
	EMsvReadStore=13,
	EMsvLockStore=14,
	EMsvReleaseStore=15,
	EMsvCommittedStore=16,
	EMsvDeletedStore=17,
	// Operation related (Sync)
	EMsvOperationData=18,
	EMsvCommandData=19,
	EMsvCancelOperation=20,
	EMsvOperationProgress=21,
	EMsvOperationCompletion=22,
	EMsvOperationMtm=23,
	EMsvMtmCommand=24,
	// MTM related
	EMsvFillRegisteredMtmDllArray=25,
	EMsvInstallMtmGroup=26,
	EMsvDeInstallMtmGroup=27,
	EMsvUseMtmGroup=28,
	EMsvReleaseMtmGroup=29,
	EMsvGetMtmGroupData=30,
	// closes the server
	EMsvCloseServer=31,
	// service related
	EMsvStopService=32,
	EMsvServiceActive=33,
	EMsvServiceProgress=34,
	// misc
	EMsvRemoveEntry=35,
	// added after functional freeze
	EMsvCreatedStore=36,
	EMsvGetMessageDirectory=37,
	EMsvSlotAvailable=38
	};


#endif

