remotemgmt_plat/common_agent_util_and_definitions_api/inc/nsmlconstants.h
branchRCL_3
changeset 25 b183ec05bd8c
parent 14 504e41245867
child 26 19bba8228ff0
equal deleted inserted replaced
24:13d7c31c74e0 25:b183ec05bd8c
   214 template <class T>
   214 template <class T>
   215 class CleanupRPtrArrayDelete
   215 class CleanupRPtrArrayDelete
   216 	{
   216 	{
   217 public:
   217 public:
   218 	inline static void PushL(T* aPtr);
   218 	inline static void PushL(T* aPtr);
       
   219 	inline static void PushL(T& aRef);
   219 private:
   220 private:
   220 	static void RPtrArrayDelete(TAny *aPtr);
   221 	static void RPtrArrayDelete(TAny *aPtr);
       
   222 	static void LocalRPtrArrayDelete(TAny *aPtr);
   221 	};
   223 	};
   222 
   224 
   223 template <class T>
   225 template <class T>
   224 inline void CleanupRPtrArrayDelete<T>::PushL(T* aPtr)
   226 inline void CleanupRPtrArrayDelete<T>::PushL(T* aPtr)
   225 	{
   227 	{
   226 	CleanupStack::PushL(TCleanupItem(&RPtrArrayDelete,aPtr));
   228 	CleanupStack::PushL(TCleanupItem(&RPtrArrayDelete,aPtr));
   227 	}
   229 	}
       
   230 
       
   231 template <class T>
       
   232 inline void CleanupRPtrArrayDelete<T>::PushL(T& aRef)
       
   233     {
       
   234     CleanupStack::PushL(TCleanupItem(&LocalRPtrArrayDelete,&aRef));
       
   235     }
   228 
   236 
   229 template <class T>
   237 template <class T>
   230 void CleanupRPtrArrayDelete<T>::RPtrArrayDelete(TAny *aPtr)
   238 void CleanupRPtrArrayDelete<T>::RPtrArrayDelete(TAny *aPtr)
   231 	{
   239 	{
   232 	T* ptr = STATIC_CAST(T*,aPtr);
   240 	T* ptr = STATIC_CAST(T*,aPtr);
   233 	ptr->ResetAndDestroy();
   241 	ptr->ResetAndDestroy();
   234 	delete ptr;
   242 	delete ptr;
   235 	}
   243 	}
   236 
   244 
   237 template <class T>
   245 template <class T>
       
   246 void CleanupRPtrArrayDelete<T>::LocalRPtrArrayDelete(TAny *aPtr)
       
   247     {
       
   248     T* ptr = STATIC_CAST(T*,aPtr);
       
   249     ptr->ResetAndDestroy();
       
   250     }
       
   251 
       
   252 template <class T>
   238 inline void CleanupRPtrArrayPushL(T* aPtr)
   253 inline void CleanupRPtrArrayPushL(T* aPtr)
   239 	{
   254 	{
   240 	CleanupRPtrArrayDelete<T>::PushL(aPtr);
   255 	CleanupRPtrArrayDelete<T>::PushL(aPtr);
   241 	}
   256 	}
   242 
   257 
   243 // RImplInfoPtrArray cleanup pusher
   258 template <class T>
   244 template <class T>
   259 inline void CleanupRPtrArrayPushL(T& aRef)
   245 class CleanupRImplInfoPtrArrayDelete
   260     {
   246 	{
   261     CleanupRPtrArrayDelete<T>::PushL(aRef);
   247 public:
   262     }
   248 	inline static void PushL(T* aPtr);
       
   249 private:
       
   250 	static void RImplInfoPtrArrayDelete(TAny *aPtr);
       
   251 	};
       
   252 
       
   253 template <class T>
       
   254 inline void CleanupRImplInfoPtrArrayDelete<T>::PushL(T* aPtr)
       
   255 	{
       
   256 	CleanupStack::PushL(TCleanupItem(&RImplInfoPtrArrayDelete,aPtr));
       
   257 	}
       
   258 
       
   259 template <class T>
       
   260 void CleanupRImplInfoPtrArrayDelete<T>::RImplInfoPtrArrayDelete(TAny *aPtr)
       
   261 	{
       
   262 	if( aPtr )
       
   263 		{
       
   264 		T* ptr = STATIC_CAST(T*,aPtr);
       
   265 		ptr->ResetAndDestroy();
       
   266         ptr->Close();
       
   267 		}
       
   268 	}
       
   269 
       
   270 template <class T>
       
   271 inline void CleanupRImplInfoPtrArrayPushL(T* aPtr)
       
   272 	{
       
   273 	CleanupRImplInfoPtrArrayDelete<T>::PushL(aPtr);
       
   274 	}
       
   275 
       
   276 
   263 
   277 // Table names
   264 // Table names
   278 _LIT( KNSmlTableVersion, "Version" );
   265 _LIT( KNSmlTableVersion, "Version" );
   279 
   266 
   280 // Column names
   267 // Column names