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()
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)
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.