mmresourcemgmt/mmresctrl/inc/mmrcserverstart.h
author hgs
Wed, 13 Oct 2010 12:08:48 +0100
changeset 3 28bdc4aca325
parent 0 79dd3e2336a0
permissions -rw-r--r--
2010wk42_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
     1
// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
     2
// All rights reserved.
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
     7
//
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
     8
// Initial Contributors:
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    10
//
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    11
// Contributors:
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    12
//
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    13
// Description:
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    14
//
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    15
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    16
#ifndef MMRCSERVERSTART_H
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    17
#define MMRCSERVERSTART_H
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    18
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    19
_LIT(KMMRCServerName,"MMRCServer");
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    20
_LIT(KMMRCServerFileName,"mmrcserver");
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    21
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    22
const TUid KMMRCServerUID3 = {0x102021d5};
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    23
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    24
const TInt KMMRCServerStackSize=0x2000;			//  8KB
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    25
const TInt KMMRCServerInitHeapSize=0x1000;		//  4KB
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    26
const TInt KMMRCServerMaxHeapSize=0x1000000;		// 16MB
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    27
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    28
const TUint KMMRCServerVersion=1;
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    29
const TUint KMMRCServerMinorVersionNumber=0;
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    30
const TUint KMMRCServerBuildVersionNumber=0;
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    31
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    32
class TServerStart
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    33
	{
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    34
	public:
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    35
	TServerStart() {};
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    36
	TServerStart(TRequestStatus& aStatus);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    37
	TPtrC AsCommand() const;
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    38
	TInt GetCommand();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    39
	void SignalL();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    40
	private:
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    41
	TThreadId iId;
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    42
	TRequestStatus* iStatus;
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    43
	};
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    44
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    45
inline TServerStart::TServerStart(TRequestStatus& aStatus)
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    46
:iId(RThread().Id()),iStatus(&aStatus)
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    47
	{
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    48
	aStatus = KRequestPending;
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    49
	}
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    50
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    51
// Descriptorizes ’this’ to pass it from client to server
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    52
inline TPtrC TServerStart::AsCommand() const
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    53
	{
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    54
	return TPtrC(reinterpret_cast<const TText*>(this),sizeof(TServerStart)/sizeof(TText));
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    55
	}
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    56
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    57
void TServerStart::SignalL()
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    58
	{
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    59
	RThread client;
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    60
	User::LeaveIfError(client.Open(iId));
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    61
	client.RequestComplete(iStatus, KErrNone);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    62
	client.Close();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    63
	}
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    64
#endif //__MMRCSERVERSTART_H
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    65