userlibandfileserver/domainmgr/inc/domainmember_private.h
author hgs
Mon, 04 Oct 2010 12:03:52 +0100
changeset 279 957c583b417b
permissions -rw-r--r--
201039_07
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
279
957c583b417b 201039_07
hgs
parents:
diff changeset
     1
// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
957c583b417b 201039_07
hgs
parents:
diff changeset
     2
// All rights reserved.
957c583b417b 201039_07
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
957c583b417b 201039_07
hgs
parents:
diff changeset
     4
// under the terms of the License "Eclipse Public License v1.0"
957c583b417b 201039_07
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
957c583b417b 201039_07
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
957c583b417b 201039_07
hgs
parents:
diff changeset
     7
//
957c583b417b 201039_07
hgs
parents:
diff changeset
     8
// Initial Contributors:
957c583b417b 201039_07
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
957c583b417b 201039_07
hgs
parents:
diff changeset
    10
//
957c583b417b 201039_07
hgs
parents:
diff changeset
    11
// Contributors:
957c583b417b 201039_07
hgs
parents:
diff changeset
    12
//
957c583b417b 201039_07
hgs
parents:
diff changeset
    13
// Description: Contains private Domain Member interface internal to the Kernel
957c583b417b 201039_07
hgs
parents:
diff changeset
    14
// & Hardware Services package.
957c583b417b 201039_07
hgs
parents:
diff changeset
    15
//
957c583b417b 201039_07
hgs
parents:
diff changeset
    16
// WARNING: This file contains some APIs which are internal and are subject
957c583b417b 201039_07
hgs
parents:
diff changeset
    17
//          to change without notice. Such APIs should therefore not be used
957c583b417b 201039_07
hgs
parents:
diff changeset
    18
//          outside the Kernel & Hardware Services package.
957c583b417b 201039_07
hgs
parents:
diff changeset
    19
//
957c583b417b 201039_07
hgs
parents:
diff changeset
    20
957c583b417b 201039_07
hgs
parents:
diff changeset
    21
#ifndef __DOMAIN_MEMBER_PRIVATE_H__
957c583b417b 201039_07
hgs
parents:
diff changeset
    22
#define __DOMAIN_MEMBER_PRIVATE_H__
957c583b417b 201039_07
hgs
parents:
diff changeset
    23
957c583b417b 201039_07
hgs
parents:
diff changeset
    24
#include <e32base.h>
957c583b417b 201039_07
hgs
parents:
diff changeset
    25
957c583b417b 201039_07
hgs
parents:
diff changeset
    26
class RDmDomain;
957c583b417b 201039_07
hgs
parents:
diff changeset
    27
class CDmDomainKeepAlive;
957c583b417b 201039_07
hgs
parents:
diff changeset
    28
957c583b417b 201039_07
hgs
parents:
diff changeset
    29
/**
957c583b417b 201039_07
hgs
parents:
diff changeset
    30
This active object will, once activated, repeatedly attempt to defer
957c583b417b 201039_07
hgs
parents:
diff changeset
    31
a transition deadline from the Domain Manager.
957c583b417b 201039_07
hgs
parents:
diff changeset
    32
957c583b417b 201039_07
hgs
parents:
diff changeset
    33
It will stop once an attempt to defer fails eg. because deferral
957c583b417b 201039_07
hgs
parents:
diff changeset
    34
was cancelled or the transition was acknowledged.
957c583b417b 201039_07
hgs
parents:
diff changeset
    35
*/
957c583b417b 201039_07
hgs
parents:
diff changeset
    36
class CDmKeepAlive : public CActive
957c583b417b 201039_07
hgs
parents:
diff changeset
    37
	{
957c583b417b 201039_07
hgs
parents:
diff changeset
    38
public:
957c583b417b 201039_07
hgs
parents:
diff changeset
    39
	CDmKeepAlive(RDmDomain& aDomain, CDmDomainKeepAlive& aOwnerActiveObject);
957c583b417b 201039_07
hgs
parents:
diff changeset
    40
	~CDmKeepAlive();
957c583b417b 201039_07
hgs
parents:
diff changeset
    41
957c583b417b 201039_07
hgs
parents:
diff changeset
    42
	/**
957c583b417b 201039_07
hgs
parents:
diff changeset
    43
	Request deadline deferral for the last transition
957c583b417b 201039_07
hgs
parents:
diff changeset
    44
	notification
957c583b417b 201039_07
hgs
parents:
diff changeset
    45
	*/
957c583b417b 201039_07
hgs
parents:
diff changeset
    46
	void DeferNotification();
957c583b417b 201039_07
hgs
parents:
diff changeset
    47
957c583b417b 201039_07
hgs
parents:
diff changeset
    48
	void NotifyOfAcknowledgment();
957c583b417b 201039_07
hgs
parents:
diff changeset
    49
957c583b417b 201039_07
hgs
parents:
diff changeset
    50
protected:
957c583b417b 201039_07
hgs
parents:
diff changeset
    51
	/**
957c583b417b 201039_07
hgs
parents:
diff changeset
    52
	Re-call DeferNotification(), unless the previous
957c583b417b 201039_07
hgs
parents:
diff changeset
    53
	call completed with an error.
957c583b417b 201039_07
hgs
parents:
diff changeset
    54
	*/
957c583b417b 201039_07
hgs
parents:
diff changeset
    55
	void RunL();
957c583b417b 201039_07
hgs
parents:
diff changeset
    56
957c583b417b 201039_07
hgs
parents:
diff changeset
    57
	/**
957c583b417b 201039_07
hgs
parents:
diff changeset
    58
	Handle errors thrown from RunL() - call HandleDeferralError()
957c583b417b 201039_07
hgs
parents:
diff changeset
    59
	hook to permit client to handle it.
957c583b417b 201039_07
hgs
parents:
diff changeset
    60
	*/
957c583b417b 201039_07
hgs
parents:
diff changeset
    61
	TInt RunError(TInt aError);
957c583b417b 201039_07
hgs
parents:
diff changeset
    62
	void DoCancel();
957c583b417b 201039_07
hgs
parents:
diff changeset
    63
957c583b417b 201039_07
hgs
parents:
diff changeset
    64
private:
957c583b417b 201039_07
hgs
parents:
diff changeset
    65
	RDmDomain& iDomain;
957c583b417b 201039_07
hgs
parents:
diff changeset
    66
	CDmDomainKeepAlive& iOwnerActiveObject;
957c583b417b 201039_07
hgs
parents:
diff changeset
    67
957c583b417b 201039_07
hgs
parents:
diff changeset
    68
	TBool iCeaseDeferral;
957c583b417b 201039_07
hgs
parents:
diff changeset
    69
	};
957c583b417b 201039_07
hgs
parents:
diff changeset
    70
957c583b417b 201039_07
hgs
parents:
diff changeset
    71
#endif