CEComServer Class Reference
class CEComServer : private CServer2
|
-
Since
-
7.0 A concrete implementation which supplies instantiation & destruction of a class via the ECom framework.
Public Member Functions
|
|
~CEComServer
()
|
void
|
AddSession
()
|
void
|
DropSession
()
|
void
|
GetImplementationInformationL
(const
TUid
&,
CImplementationInformation
*&, const
TClientRequest
&)
|
void
|
GetResolvedDllInfoL
(const
TUid
,
TEntry
&,
TUid
&, const
TClientRequest
&)
|
void
|
GetResolvedDllInfoL
(const
TUid
, const
TEComResolverParams
&, const
RExtendedInterfacesArray
&,
TEntry
&,
TUid
&, const
TClientRequest
&)
|
void
|
GetResolvedDllInfoL
(const
TUid
, const
TEComResolverParams
&, const
TUid
, const
RExtendedInterfacesArray
&,
TEntry
&,
TUid
&, const
TClientRequest
&)
|
TBool
|
IsSSA
(
RFs
&)
|
RImplInfoArray
*
|
ListImplementationsL
(
TUid
, const
TEComResolverParams
&, const
RExtendedInterfacesArray
&, const
TClientRequest
&)
|
RImplInfoArray
*
|
ListImplementationsL
(
TUid
, const
RExtendedInterfacesArray
&, const
TClientRequest
&)
|
RImplInfoArray
*
|
ListImplementationsL
(
TUid
, const
TEComResolverParams
&,
TUid
, const
RExtendedInterfacesArray
&, const
TClientRequest
&)
|
RImplInfoArray
*
|
ListImplementationsL
(
TUid
,
TUid
, const
RExtendedInterfacesArray
&, const
TClientRequest
&)
|
CEComServer
*
|
NewLC
()
|
void
|
Notification
(
TInt
)
|
TInt
|
NotifyEvents
(
TAny
*,
TInt
,
TAny
*)
|
TBool
|
RegistryIndexValid
()
|
Constructor & Destructor Documentation
CEComServer()
CEComServer
|
(
|
)
|
[private]
|
Intended Usage : Default c'tor Error Condition : None
-
Since
-
7.0
-
Pre-condition
-
None
-
Post-condition
-
CEComServer
is fully constructed
~CEComServer()
Intended Usage : d'tor Error Condition : None
-
Since
-
7.0
-
Pre-condition
-
CEComServer
must have been fully constructed.
-
Post-condition
-
CEComServer
is destroyed.
Member Functions Documentation
AddSession()
Intended Usage : (Server Session management) Add a new session connection for a client. Error Condition : None.
-
Since
-
7.0
-
Pre-condition
-
CEComServer
must have been fully constructed.
-
Post-condition
-
The new
CEComServerSession
to handle service provision for a new ECom client has been recorded. If the server was preparing to shutdown, that shutdown is cancelled
ConstructL()
void
|
ConstructL
|
(
|
)
|
[private]
|
Intended Usage : Standardised 2nd, (Initialisation) phase of two phase construction. Error Condition : None
-
leave
-
KErrNoMemory
-
Since
-
7.0
-
Pre-condition
-
CEComServer
is fully constructed.
-
Post-condition
-
CEComServer
is fully initialised.
CreateCustomResolverLC(TUid, CRegistryResolveTransaction *)
Intended Usage: Creates custom resolver object with aResolverUid UID. The method leaves custom resolver onto the cleanup stack.
-
leave
-
System-wide error codes, including KErrNoMemory.
Creates custom resolver object with aResolverUid UID. The method leaves custom resolver onto the cleanup stack.
-
leave
-
System-wide error codes, including KErrNoMemory.
CreateResolverLC(const TUid &, CRegistryResolveTransaction *)
Intended Usage: Creates resolver object with aResolverUid UID. The method leaves resolver onto the cleanup stack.
-
leave
-
System-wide error codes, including KErrNoMemory.
Creates resolver object with aResolverUid UID. The method leaves resolver onto the cleanup stack.
-
leave
-
System-wide error codes, including KErrNoMemory.
DropSession()
Intended Usage : (Server Session management) Destroy a session connection with a client. Error Condition : None.
-
Since
-
7.0
-
Pre-condition
-
CEComServer
must have been fully constructed.
-
Post-condition
-
The appropriate
CEComServerSession
has been destroyed and the ECom client has been disconnected from this server.
GetImplementationInformationL(const TUid &, CImplementationInformation *&, const TClientRequest &)
Get implementation info for one implementation, and return to client
Parameters
const
TUid
& aImplementationUid
|
A UID specifying the required implementation.
|
CImplementationInformation
*& aImplInfo
|
Return value, implementation info for client. If the call succeeds, it will point to the found implementation information in registrydata. The function does not return ownership of the pointer, so the caller must not destroy it.
|
const
TClientRequest
& aClientRequest
|
client's request
|
GetResolvedDllInfoL(const TUid, TEntry &, TUid &, const TClientRequest &)
Intended Usage :Instantiate an interface implementation to satisfy the specified interface. Error Condition : Lack of memory, or not connected.
-
leave
-
KErrNoMemory
-
leave
-
KErrNotConnected
-
Since
-
7.0
-
Pre-condition
-
CEComServer
must have been fully constructed.
-
Post-condition
-
The requested interface implementation is identified, and the instantiation method pointer is returned.
Parameters
const
TUid
aImplementationUid
|
A UID specifying the required interface implementation.
|
TEntry
& aDllInfo
|
containing the Dll info to be loaded on the client side
|
TUid
& aInstanceKey
|
A 32 bit identifer returned by ECom to identify this instance to the framework.
|
const
TClientRequest
& aClientRequest
|
client's request
|
GetResolvedDllInfoL(const TUid, const TEComResolverParams &, const RExtendedInterfacesArray &, TEntry &, TUid &, const TClientRequest &)
Intended Usage :Instantiate an interface implementation to satisfy the specified interface. Error Condition : Lack of memory
-
leave
-
KErrNoMemory
-
Since
-
7.0
-
Pre-condition
-
CEComServer
must have been fully constructed.
-
Post-condition
-
The requested interface implementation is identified, and the instantiation method pointer is returned.
Parameters
const
TUid
aInterfaceUid
|
A UID specifying the required interface.
|
const
TEComResolverParams
& aAdditionalParameters
|
A descriptor specifying any additional implementation characteristics to be fulfilled.
|
const
RExtendedInterfacesArray
& aExtendedInterfaces
|
Identifies a set of zero or more extended interfaces to match. Must match all extended interfaces for a match to occur.
|
TEntry
& aDllInfo
|
containing the Dll info to be loaded on the client side
|
TUid
& aInstanceKey
|
A 32 bit identifer returned by ECom to identify this instance to the framework.
|
const
TClientRequest
& aClientRequest
|
client's request
|
GetResolvedDllInfoL(const TUid, const TEComResolverParams &, const TUid, const RExtendedInterfacesArray &, TEntry &, TUid &, const TClientRequest &)
Intended Usage :Instantiate an interface implementation to satisfy the specified interface. Overload with a client provided
CResolver
. Error Condition : Lack of memory
-
leave
-
KErrNoMemory
-
Since
-
7.0
-
Pre-condition
-
CEComServer
must have been fully constructed.
-
Post-condition
-
The requested interface implementation is identified, and the instantiation method pointer is returned.
Parameters
const
TUid
aInterfaceUid
|
A UID specifying the required interface.
|
const
TEComResolverParams
& aAdditionalParameters
|
A descriptor specifying any additional implementation characteristics to be fulfilled.
|
const
TUid
aResolverUid
|
|
const
RExtendedInterfacesArray
& aExtendedInterfaces
|
Identifies a set of zero or more extended interfaces to match. Must match all extended interfaces for a match to occur.
|
TEntry
& aDllInfo
|
containing the Dll info to be loaded on the client side
|
TUid
& aInstanceKey
|
A 32 bit identifer returned by ECom to identify this instance to the framework.
|
const
TClientRequest
& aClientRequest
|
client's request
|
IsCachable(TBool)
TBool
|
IsCachable
|
(
|
TBool
|
aEntryIsOnRWDrive
|
)
|
[private]
|
Determine if a resolver entry is cachable.
IsSSA(RFs &)
Intended Usage : Reads the EComSrvr.ini file to determine if ECOM should be SSA or not.
-
Pre-condition
-
CEComServer
must have been fully constructed.
Parameters
RFs
& aFs
|
A reference to a connected file server session.
|
ListImplementationsL(TUid, const TEComResolverParams &, const RExtendedInterfacesArray &, const TClientRequest &)
Intended Usage : Retrieve a list of all the implementations which satisfy the specified interface. Error Condition : Lack of memory.
-
leave
-
KErrNoMemory
-
Since
-
7.0
-
Pre-condition
-
CEComServer
must have been fully constructed.
-
Post-condition
-
CEComServer
has not changed, and RImplInfoArray* contains the list of CImplementationInformations regigistered for the interface.
Parameters
TUid
aInterfaceUid
|
A UID specifying the required interface.
|
const
TEComResolverParams
& aAdditionalParameters
|
A descriptor specifying any additional implementation characteristics to be fulfilled.
|
const
RExtendedInterfacesArray
& aExtendedInterfaces
|
Identifies a set of zero or more extended interfaces to match. Must match all extended interfaces for a match to occur.
|
const
TClientRequest
& aMessage
|
Client's request
|
ListImplementationsL(TUid, const RExtendedInterfacesArray &, const TClientRequest &)
Intended Usage : Retrieve a list of all the implementations which satisfy the specified interface. Error Condition : Lack of memory.
-
leave
-
KErrNoMemory
-
Since
-
7.0
-
Pre-condition
-
CEComServer
must have been fully constructed.
-
Post-condition
-
CEComServer
has not changed, and RImplInfoArray* contains the list of CImplementationInformations regigistered for the interface.
Parameters
TUid
aInterfaceUid
|
A UID specifying the required interface.
|
const
RExtendedInterfacesArray
& aExtendedInterfaces
|
Identifies a set of zero or more extended interfaces to match. Must match all extended interfaces for a match to occur.
|
const
TClientRequest
& aMessage
|
Client's request
|
ListImplementationsL(TUid, const TEComResolverParams &, TUid, const RExtendedInterfacesArray &, const TClientRequest &)
Intended Usage : Retrieve a list of all the implementations which satisfy the specified interface. Error Condition : Lack of memory.
-
leave
-
KErrNoMemory
-
Since
-
7.0
-
Pre-condition
-
CEComServer
must have been fully constructed.
-
Post-condition
-
CEComServer
has not changed, and RImplInfoArray* contains the list of CImplementationInformations regigistered for the interface.
Parameters
TUid
aInterfaceUid
|
A UID specifying the required interface.
|
const
TEComResolverParams
& aAdditionalParameters
|
A descriptor specifying any additional implementation characteristics to be fulfilled.
|
TUid
aResolverUid
|
The CResolver implementation to use.
|
const
RExtendedInterfacesArray
& aExtendedInterfaces
|
Identifies a set of zero or more extended interfaces to match. Must match all extended interfaces for a match to occur.
|
const
TClientRequest
& aMessage
|
Client's request
|
ListImplementationsL(TUid, TUid, const RExtendedInterfacesArray &, const TClientRequest &)
Intended Usage : Retrieve a list of all the implementations which satisfy the specified interface. Error Condition : Lack of memory.
-
leave
-
KErrNoMemory
-
Since
-
7.0
-
Pre-condition
-
CEComServer
must have been fully constructed.
-
Post-condition
-
CEComServer
has not changed, and RPointerArray<TUid>* contains the list of Implementations for the interface.
Parameters
TUid
aInterfaceUid
|
A UID specifying the required interface.
|
TUid
aResolverUid
|
The CResolver implementation to use.
|
const
RExtendedInterfacesArray
& aExtendedInterfaces
|
Identifies a set of zero or more extended interfaces to match. Must match all extended interfaces for a match to occur.
|
const
TClientRequest
& aMessage
|
Client's request
|
ListImplementationsL(TUid, const TEComResolverParams &, CResolver *)
Intended Usage : Helper method to retrieve a list of all the implementations which satisfy the specified interface. Overload with a provided CResolver*.
-
leave
-
KErrNoMemory
-
Since
-
7.0
-
Pre-condition
-
CEComServer
must have been fully constructed.
-
Post-condition
-
CEComServer
has not changed, and RPointerArray<TUid>* contains the list of Implementations for the interface.
Parameters
TUid
aInterfaceUid
|
A UID specifying the required interface.
|
const
TEComResolverParams
& aAdditionalParameters
|
A descriptor specifying any additional implementation characteristics to be fulfilled.
|
CResolver
* aResolver
|
A CResolver with client defined behaviour.
|
ListImplementationsL(TUid, CResolver *)
Intended Usage : Helper method to retrieve a list of all the implementations which satisfy the specified interface. Overload with a provided CResolver*.
-
leave
-
KErrNoMemory
-
Since
-
7.0
-
Pre-condition
-
CEComServer
must have been fully constructed.
-
Post-condition
-
CEComServer
has not changed, and RPointerArray<TUid>* contains the list of Implementations for the interface.
Parameters
TUid
aInterfaceUid
|
A UID specifying the required interface.
|
CResolver
* aResolver
|
A CResolver with client defined behaviour.
|
NewLC()
Intended Usage : Standardised safe construction which leaves the returned object on the cleanup stack. Error Condition : Cannot fully construct because of memory limitations.
-
leave
-
KErrNoMemory
-
leave
-
RFs
,
CRegistryData
,
CRegistrar
,
CDefaultResolver
-
leave
-
CShutdownTimer & CServer::StartL
-
Since
-
7.0
-
Pre-condition
-
None
-
Post-condition
-
CEComServer
is fully constructed, initialised, and remains upon the cleanup stack.
NewSessionL(const TVersion &, const RMessage2 &)
Notification(TInt)
void
|
Notification
|
(
|
TInt
|
aNotificationCode
|
)
|
|
Intended Usage : The overloaded method from the
MRegistrarObserver
class Used for firing notifications to the client sessions that the underlying registry data has changed. Error Condition : None
-
Since
-
7.0
-
Pre-condition
-
CEComServer
must have been fully constructed.
-
Post-condition
-
The
CEComServer
has notified all its client sessions registered for notifications that the data changed.
NotifyBUREvent(TAny *)
void
|
NotifyBUREvent
|
(
|
TAny
*
|
aData
|
)
|
[private]
|
Called when there is BUR status change.
Parameters
TAny
* aData
|
is TCallBackState* indicating start or end of BUR.
|
NotifyEvents(TAny *, TInt, TAny *)
Callback function.
CRegistryData
uses this to notify of implementation upgrade.
CDiscoverer
uses this to notify state changes in SWI/BUR.
Parameters
TAny
* aObj
|
Pointer to CEComServer object.
|
TInt
aEvent
|
Identify the event.
|
TAny
* aData
|
Data associated with the callback.
|
NotifySWIEvent(TAny *)
void
|
NotifySWIEvent
|
(
|
TAny
*
|
aData
|
)
|
[private]
|
Called when there is SWI status change.
Parameters
TAny
* aData
|
is TCallBackState* indicating start or end of SWI.
|
NotifyUpgrade(const TUid)
void
|
NotifyUpgrade
|
(
|
const
TUid
|
aImplementationUid
|
)
|
[private]
|
This method is called when an implementation is upgraded.
Parameters
const
TUid
aImplementationUid
|
identify the implementation being upgraded.
|
RegistryIndexValid()
TBool
|
RegistryIndexValid
|
(
|
)
|
const
|
Intended Usage : Indicates whether the registry index is currently valid. The index will not be valid if discoveries are currently taking place. If the index is not currently valid then calls to
ListImplementationsL()
cannot be serviced. Error Condition : None.
-
Since
-
7.0
-
Pre-condition
-
CEComServer
is fully constructed
RunError(TInt)
TInt
|
RunError
|
(
|
TInt
|
aError
|
)
|
[private, virtual]
|
Intended Usage : Intercept the panic caused by a RunL leave, to restore the
CEComServer
object to a sensible state. (called by the Active Scheduler immediately before the Panic). Error Condition : None.
-
Since
-
7.0
-
Pre-condition
-
CEComServer
is fully constructed.
-
Post-condition
-
CEComServer
has been restored to a sensible state.
UpdateSpecialEvents(TUint32, TCallBackState)
Updates the BUR/SWI status.
Member Data Documentation
RFs
iFs
Singleton connection to the file server
CRegistrar * iRegistrar
Singleton Registrar to handle the interface registration
CRegistryData * iRegistryData
Singleton registry information handler
CRegistryResolveTransaction * iRegistryResolveTransaction
Registry resolve transaction object
CCustomResolverCache * iResolverCache
cache of recently used custom resolvers.
RLibrary
iResolverLibrary
Library which is used to load a non-default resolver when required
CServerStartupMgr * iServerStartupMgr
TInt
iSessionCount
TInt
|
iSessionCount
|
[private]
|
The count of the number of sessions open upon this server
CShutdown
iShutdown
The timer controlling the server shutdown process
TBitFlags32
iSpecialEvents
Keep track of special system events such as BUR / SWI in progress
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.