userlibandfileserver/domainmgr/inc/domainmanager.h
author hgs
Mon, 04 Oct 2010 12:03:52 +0100
changeset 279 957c583b417b
parent 0 a41df078684a
permissions -rw-r--r--
201039_07
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
279
957c583b417b 201039_07
hgs
parents: 0
diff changeset
     1
// Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies).
0
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
     2
// All rights reserved.
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
     3
// This component and the accompanying materials are made available
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
     4
// under the terms of the License "Eclipse Public License v1.0"
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
     5
// which accompanies this distribution, and is available
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
     7
//
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
     8
// Initial Contributors:
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    10
//
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    11
// Contributors:
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    12
//
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    13
// Description:
279
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    14
// Contains the Domain Manager interface for clients acting in the role of
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    15
// "Domain Controller".
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    16
// 
0
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    17
// WARNING: This file contains some APIs which are internal and are subject
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    18
//          to change without notice. Such APIs should therefore not be used
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    19
//          outside the Kernel and Hardware Services package.
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    20
//
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    21
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    22
#ifndef __DOMAIN_MANAGER_H__
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    23
#define __DOMAIN_MANAGER_H__
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    24
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    25
#include <e32std.h>
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    26
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    27
#include <domaindefs.h>
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    28
279
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    29
0
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    30
/**
279
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    31
Internal macro used by EStart source. It provides the filename of the Domain 
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    32
Manager server.
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    33
Not to be used outside the KernelHwSrv package.
0
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    34
*/
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    35
#define KDmManagerFileNameLit	_L("domainSrv.exe")
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    36
279
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    37
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    38
0
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    39
/**
279
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    40
Internal session class used inside the Domain Manager client library. 
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    41
Not to be used outside the KernelHwSrv package.
0
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    42
*/
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    43
class RDmManagerSession : public RSessionBase
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    44
	{
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    45
public:
279
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    46
	// Power hierarchy connect	
0
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    47
	TInt Connect();
279
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    48
	 	
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    49
	// Specified hierarchy connect
0
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    50
	TInt Connect(TDmHierarchyId aHierarchyId);
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    51
	TInt ConnectObserver(TDmHierarchyId aHierarchyId);
279
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    52
	
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    53
	// Controller related functions
0
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    54
	void RequestSystemTransition(TDmDomainState aState, TDmTraverseDirection aDirection, TRequestStatus& aStatus);
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    55
	void RequestDomainTransition(TDmDomainId, TDmDomainState, TDmTraverseDirection aDirection, TRequestStatus& aStatus);
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    56
	void CancelTransition();
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    57
	TInt AddDomainHierarchy(TDmHierarchyId aHierarchyId);
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    58
	TInt GetTransitionFailureCount();
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    59
	TInt GetTransitionFailures(RArray<const TTransitionFailure>& aTransitionFailures);
279
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    60
	
0
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    61
	// Observer related functions
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    62
	TInt StartObserver(TDmDomainId aDomainId,TDmNotifyType aNotifyType);
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    63
	void GetNotification(TRequestStatus& aStatus);
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    64
	TInt GetEventCount();
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    65
	TInt GetEvents(RArray<const TTransInfo>& aTransitions);
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    66
	void CancelObserver();
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    67
	TInt ObserverDomainCount();
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    68
	};
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    69
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    70
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    71
/**
279
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    72
Published platform interface of the Domain Manager for clients performing
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    73
the "Domain Controller" role implementing domain policy on the platform.
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    74
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    75
Controllers can use this class to request domain state transitions either
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    76
system-wide across the whole domain hierarchy or only within a specific domain 
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    77
subtree. 
0
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    78
279
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    79
The Domain Manager may utilize the Transition Monitoring feature for some state
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    80
transitions (as defined in the policy) which allows trusted clients to request
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    81
more time to complete their work for the transition e.g. power down transitions.
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    82
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    83
It also provides utility methods allowing policy controllers to load additional
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    84
hierarchies (from a domain policy library) and to monitor the Domain Manager's
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    85
start-up.
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    86
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    87
See the RDmDomain class for the interface used by Domain Member clients. 
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    88
 
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    89
Also see domaindefs.h for Domain Manager specific error codes used with this
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    90
API.
0
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    91
*/
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    92
class RDmDomainManager
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    93
	{
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    94
public:
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    95
	IMPORT_C static TInt WaitForInitialization();
279
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    96
		
0
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    97
public:
279
957c583b417b 201039_07
hgs
parents: 0
diff changeset
    98
	// Power Hierarchy
0
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
    99
	IMPORT_C TInt Connect();
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
   100
	IMPORT_C void RequestSystemTransition(TPowerState aState, TRequestStatus& aStatus);
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
   101
	IMPORT_C void RequestDomainTransition(TDmDomainId aDomain, TPowerState aState, TRequestStatus& aStatus);
279
957c583b417b 201039_07
hgs
parents: 0
diff changeset
   102
	IMPORT_C void SystemShutdown();
0
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
   103
279
957c583b417b 201039_07
hgs
parents: 0
diff changeset
   104
	// Controller Specified Hierarchy
957c583b417b 201039_07
hgs
parents: 0
diff changeset
   105
	IMPORT_C static TInt AddDomainHierarchy(TDmHierarchyId aHierarchyId);
0
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
   106
	IMPORT_C TInt Connect(TDmHierarchyId aHierarchyId);
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
   107
	IMPORT_C void RequestSystemTransition(TDmDomainState aState, TDmTraverseDirection aDirection, TRequestStatus& aStatus);
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
   108
	IMPORT_C void RequestDomainTransition(TDmDomainId aDomain, TDmDomainState aState, TDmTraverseDirection aDirection, TRequestStatus& aStatus);
279
957c583b417b 201039_07
hgs
parents: 0
diff changeset
   109
	
957c583b417b 201039_07
hgs
parents: 0
diff changeset
   110
	// Common session/hierarchy 
0
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
   111
	IMPORT_C TInt GetTransitionFailures(RArray<const TTransitionFailure>& aTransitionFailures);
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
   112
	IMPORT_C TInt GetTransitionFailureCount();
279
957c583b417b 201039_07
hgs
parents: 0
diff changeset
   113
	IMPORT_C void CancelTransition();
957c583b417b 201039_07
hgs
parents: 0
diff changeset
   114
	IMPORT_C void Close();
957c583b417b 201039_07
hgs
parents: 0
diff changeset
   115
	
0
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
   116
private:
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
   117
	RDmManagerSession	iSession;
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
   118
	};
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
   119
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
   120
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
   121
a41df078684a Convert Kernelhwsrv package from SFL to EPL
John Imhofe
parents:
diff changeset
   122
#endif