1.1 --- a/epoc32/include/msvreg.h Tue Mar 16 16:12:26 2010 +0000
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,275 +0,0 @@
1.4 -// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
1.5 -// All rights reserved.
1.6 -// This component and the accompanying materials are made available
1.7 -// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
1.8 -// which accompanies this distribution, and is available
1.9 -// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
1.10 -//
1.11 -// Initial Contributors:
1.12 -// Nokia Corporation - initial contribution.
1.13 -//
1.14 -// Contributors:
1.15 -//
1.16 -// Description:
1.17 -//
1.18 -
1.19 -#if !defined(__MSVREG_H__)
1.20 -#define __MSVREG_H__
1.21 -#if !defined(__E32BASE_H__)
1.22 -#include <e32base.h>
1.23 -#endif
1.24 -#if !defined(__F32FILE_H__)
1.25 -#include <f32file.h>
1.26 -#endif
1.27 -
1.28 -
1.29 -
1.30 -/**
1.31 -@internalComponent
1.32 -@released
1.33 -*/
1.34 -enum TMtsrDllIndex // Used in CMtmGroupData
1.35 - {
1.36 - EMtsrServerComponentIndex,
1.37 - EMtsrClientComponentIndex,
1.38 - EMtsrUiComponentIndex,
1.39 - EMtsrUiDataComponentIndex
1.40 - };
1.41 -
1.42 -const TInt KHumanReadableNameLength=50;
1.43 -typedef TBuf<KHumanReadableNameLength> THumanReadableName; // could be used client side
1.44 -
1.45 -#define KMsvDefaultTimeoutMicroSeconds32 30000000
1.46 -
1.47 -// forward declarations
1.48 -class RWriteStream;
1.49 -class RReadStream;
1.50 -class RFs;
1.51 -
1.52 -
1.53 -class CMtmDllInfo : public CBase
1.54 -/** Encapsulates the registration data for a single concrete MTM component.
1.55 -
1.56 -It is used in the creation of registration data for an MTM group. Typically,
1.57 -an application gathers a number of CMtmDllInfo objects into an CMtmDllInfoArray.
1.58 -
1.59 -@publishedAll
1.60 -@released
1.61 -*/
1.62 - {
1.63 -public:
1.64 - IMPORT_C static CMtmDllInfo* NewL(const TDesC& aHumanReadableName,const TUidType& aUidType,const TDesC& aFilename,TInt aEntryPointOrdinalNumber,const TVersion aVersion);
1.65 - IMPORT_C static CMtmDllInfo* NewL(const CMtmDllInfo& aMtmDllInfo);
1.66 - IMPORT_C static CMtmDllInfo* NewL(RReadStream& aStream);
1.67 - IMPORT_C ~CMtmDllInfo();
1.68 - IMPORT_C void SetHumanReadableNameL(const TDesC& aHumanReadableName);
1.69 - inline TPtrC HumanReadableName() const;
1.70 - IMPORT_C void InternalizeL(RReadStream& aStream);
1.71 - IMPORT_C void ExternalizeL(RWriteStream& aStream) const; // not used but as it is exported it has been kept
1.72 - IMPORT_C TBool operator==(const CMtmDllInfo& aMtmDllInfo) const;
1.73 - void SetMessagingCapability(TBool aCapability);
1.74 - void SetSendBodyCapability(TBool aCapability);
1.75 - void SetCapabilitiesAvailable(TBool aBool);
1.76 - IMPORT_C TBool MessagingCapability() const;
1.77 - IMPORT_C TBool SendBodyCapability() const;
1.78 - IMPORT_C TBool CapabilitiesAvailable() const;
1.79 - TPtrC FileName() const;
1.80 -private:
1.81 - CMtmDllInfo();
1.82 - CMtmDllInfo(const TUidType& aUidType,TInt aEntryPointOrdinalNumber,const TVersion aVersion);
1.83 - CMtmDllInfo(const CMtmDllInfo& aMtmDllInfo);
1.84 - void ConstructL(const TDesC& aHumanReadableName, const TDesC& aFilename);
1.85 -private:
1.86 - HBufC* iHumanReadableName; // Should be less than KHumanReadableNameLength
1.87 -public:
1.88 - /** Group of UIDs for the MTM. See NewL() for details. */
1.89 - TUidType iUidType; // Three uids
1.90 - /** Ordinal of factory function for the MTM component */
1.91 - TInt iEntryPointOrdinalNumber;
1.92 - /** Version information for the MTM component */
1.93 - TVersion iVersion;
1.94 -
1.95 - /** Flag that indicates if the MTM can send messages */
1.96 - TBool iMessagingCapability;
1.97 - /** Flag that indicates if the MTM can handle body text */
1.98 - TBool iSendBodyCapability;
1.99 - /** Flag that indicates if settings have been made for the
1.100 - MessagingCapability() and SendBodyCapability() flags */
1.101 - TBool iCapabilitiesAvailable;
1.102 -private:
1.103 - HBufC* iFilename;
1.104 - };
1.105 -
1.106 -
1.107 -class CMtmDllInfoArray : public CArrayPtrFlat<CMtmDllInfo>
1.108 -/** Collects the registration data for concrete MTM components, as encapsulated
1.109 -in CMtmDllInfo objects, into an array.
1.110 -
1.111 -Basic array functionality is provided by the base class CArrayPtrFlat<CMtmDllInfo>.
1.112 -
1.113 -It is used in the creation of registration data for an MTM group: see CMtmGroupData.
1.114 -
1.115 -@publishedAll
1.116 -@released
1.117 -*/
1.118 - {
1.119 -public:
1.120 - IMPORT_C CMtmDllInfoArray();
1.121 - IMPORT_C ~CMtmDllInfoArray();
1.122 - IMPORT_C void AddMtmDllInfoL(CMtmDllInfo* aMtmDllInfo);
1.123 - };
1.124 -
1.125 -class TCapabilitySet;
1.126 -
1.127 -class CMtmGroupData : public CBase
1.128 -/** Encapsulates the registration data for an MTM group.
1.129 -
1.130 -It is used to access and write the registration data file for an MTM group.
1.131 -
1.132 -@publishedAll
1.133 -@released
1.134 -*/
1.135 - {
1.136 -public:
1.137 - IMPORT_C static CMtmGroupData* NewL(TUid aMtmTypeUid, TUid aTechnologyTypeUid,CMtmDllInfoArray* aMtmDllInfoArray, const TCapabilitySet& aMtmRequiredCaps);
1.138 - IMPORT_C static CMtmGroupData* NewL(const CMtmGroupData& aMtmGroupData);
1.139 - IMPORT_C static CMtmGroupData* NewL(RReadStream& aStream);
1.140 - IMPORT_C ~CMtmGroupData();
1.141 - IMPORT_C void InternalizeL(RReadStream& aStream);
1.142 - IMPORT_C void ExternalizeL(RWriteStream& aStream) const; // not used but as it is exported it has been kept
1.143 - inline TUid MtmTypeUid() const;
1.144 - inline TUid TechnologyTypeUid() const;
1.145 - IMPORT_C const CMtmDllInfoArray& MtmDllInfoArray() const;
1.146 - IMPORT_C const TCapabilitySet& GetMtmRequiredCapabilities() const;
1.147 - IMPORT_C TBool operator==(const CMtmGroupData& aMtmGroupData) const;
1.148 -private:
1.149 - CMtmGroupData(TUid aMtmTypeUid, TUid aTechnologyTypeUid, CMtmDllInfoArray* aMtmDllInfoArray, const TCapabilitySet& aMtmRequiredCaps);
1.150 - void ConstructL(const CMtmGroupData& aMtmGroupData);
1.151 - void ConstructL();
1.152 - void AppendMtmDllInfoArrayL(const CMtmDllInfoArray& aMtmDllInfoArray);
1.153 - CMtmDllInfoArray& MtmDllInfoArrayPrivate();
1.154 - CMtmGroupData(TUid aMtmTypeUid=KNullUid,TUid aTechnologyTypeUid=KNullUid);
1.155 - void AppendMtmDllInfoL(CMtmDllInfo* aMtmDllInfo); // Leaves if second uid wrong
1.156 -private:
1.157 - TUid iMtmTypeUid;
1.158 - TUid iTechnologyTypeUid;
1.159 - CMtmDllInfoArray* iMtmDllInfoArray;
1.160 - TCapabilitySet iMtmRequiredCaps;
1.161 - };
1.162 -
1.163 -
1.164 -class MRegisteredMtmDllObserver
1.165 -/**
1.166 -@internalComponent
1.167 -@released
1.168 -*/
1.169 - {
1.170 -public:
1.171 - virtual TInt UseMtmGroup(TUid aMtmTypeUid)=0;
1.172 - virtual TInt ReleaseMtmGroup(TUid aMtmTypeUid)=0;
1.173 - };
1.174 -
1.175 -
1.176 -// Real non-derivable class
1.177 -
1.178 -class CRegisteredMtmDll : public CTimer
1.179 -/** Allows an MTM object to access registry information about itself.
1.180 -
1.181 -@publishedAll
1.182 -@released
1.183 -*/
1.184 - {
1.185 -public:
1.186 - IMPORT_C static CRegisteredMtmDll* NewL(TUid aMtmTypeUid,TUid aTechnologyTypeUid,const CMtmDllInfo& aMtmDllInfo,const TTimeIntervalMicroSeconds32 aTimeoutMicroSeconds32,MRegisteredMtmDllObserver& aRegisteredMtmDllObserver);
1.187 - IMPORT_C ~CRegisteredMtmDll();
1.188 -
1.189 - inline TUid MtmTypeUid() const;
1.190 - inline TUid TechnologyTypeUid() const;
1.191 - inline const CMtmDllInfo& MtmDllInfo() const;
1.192 -
1.193 - inline TInt MtmDllRefCount() const;
1.194 -
1.195 - IMPORT_C TInt GetLibrary(RFs& aFs,RLibrary& aMtmDllLibrary); // Increments reference count if successful or returns error
1.196 - IMPORT_C void ReleaseLibrary(); // Decrements access count
1.197 - // Should be called from destructor of any objects created from the library
1.198 -private:
1.199 - CRegisteredMtmDll(TUid aMtmTypeUid,TUid aTechnologyTypeUid,const TTimeIntervalMicroSeconds32 aTimeoutMicroSeconds32,MRegisteredMtmDllObserver& aRegisteredMtmDllObserver);
1.200 - void ConstructL(const CMtmDllInfo& aMtmDllInfo);
1.201 - void LoadLibraryL(RFs& aFs);
1.202 -
1.203 - void RunL();
1.204 -
1.205 -private:
1.206 - TUid iMtmTypeUid;
1.207 - TUid iTechnologyTypeUid;
1.208 - CMtmDllInfo* iMtmDllInfo;
1.209 - RLibrary iMtmDllLibrary;
1.210 - TInt iMtmDllRefCount;
1.211 - TTimeIntervalMicroSeconds32 iTimeoutMicroSeconds32;
1.212 - MRegisteredMtmDllObserver& iRegisteredMtmDllObserver;
1.213 - };
1.214 -
1.215 -
1.216 -
1.217 -class CRegisteredMtmDllArray : public CArrayPtrFlat<CRegisteredMtmDll>
1.218 -/**
1.219 -@internalComponent
1.220 -@released
1.221 -*/
1.222 - {
1.223 -public:
1.224 - IMPORT_C CRegisteredMtmDllArray();
1.225 - IMPORT_C ~CRegisteredMtmDllArray();
1.226 - IMPORT_C void AddRegisteredMtmDllL(CRegisteredMtmDll* aRegisteredMtmDll);
1.227 - };
1.228 -
1.229 -// Base class
1.230 -
1.231 -class CMtmDllRegistry : public CBase
1.232 -/** Accesses the various MTM component registries.
1.233 -
1.234 -The derived classes used by
1.235 -clients are CClientMtmRegistry, CMtmUiDataRegistry, and CMtmUiRegistry. It
1.236 -provides functions to discover the MTMs registered in such a registry. The
1.237 -registered MTMs can be regarded as existing in a list: you can use NumRegisteredMtmDlls()
1.238 -to get the number in the list, and MtmTypeUid() to index into it.
1.239 -
1.240 -@internalComponent
1.241 -@released
1.242 -*/
1.243 - {
1.244 -public:
1.245 - IMPORT_C ~CMtmDllRegistry();
1.246 -
1.247 - inline TInt NumRegisteredMtmDlls() const;
1.248 - IMPORT_C TUid MtmTypeUid(TInt anIndex) const;
1.249 -
1.250 - inline TBool IsPresent(TUid aMtmTypeUid) const;
1.251 - IMPORT_C TUid TechnologyTypeUid(TUid aMtmTypeUid) const;
1.252 - IMPORT_C const CMtmDllInfo& RegisteredMtmDllInfo(TUid aMtmTypeUid) const;
1.253 - IMPORT_C TBool IsInUse(TUid aMtmTypeUid) const; // returns true if specified DLL in use
1.254 - IMPORT_C TBool IsInUse() const; // returns true if any DLL in use
1.255 -
1.256 -protected:
1.257 - IMPORT_C CMtmDllRegistry(RFs& aFs,TUid aMtmDllTypeUid,TTimeIntervalMicroSeconds32 aTimeoutMicroSeconds32=KMsvDefaultTimeoutMicroSeconds32);
1.258 -
1.259 - IMPORT_C TInt MtmTypeUidToIndex(TUid anMtmTypeUid) const;
1.260 -
1.261 - IMPORT_C TInt AddRegisteredMtmDll(TUid aMtmTypeUid,TUid aTechnologyTypeUid,const CMtmDllInfo& aMtmDllInfo,MRegisteredMtmDllObserver& aRegisteredMtmDllObserver); // returns error
1.262 - IMPORT_C void RemoveRegisteredMtmDll(TUid aMtmTypeUid);
1.263 - IMPORT_C void RemoveAllRegisteredMtmDlls();
1.264 -
1.265 -private:
1.266 - void DoAddRegisteredMtmDllL(TUid aMtmTypeUid,TUid aTechnologyTypeUid,const CMtmDllInfo& aMtmDllInfo,MRegisteredMtmDllObserver& aRegisteredMtmDllObserver); // returns error
1.267 -
1.268 -protected:
1.269 - RFs& iFs;
1.270 - TUid iMtmDllTypeUid; // Second Uid in all Dlls
1.271 - CRegisteredMtmDllArray iRegisteredMtmDllArray; // Inline CArray, OK because no NewL();
1.272 - TTimeIntervalMicroSeconds32 iTimeoutMicroSeconds32;
1.273 - };
1.274 -
1.275 -
1.276 -#include <msvreg.inl>
1.277 -
1.278 -#endif