remotemgmt_plat/common_agent_util_and_definitions_api/inc/nsmlconstants.h
branchRCL_3
changeset 26 19bba8228ff0
parent 25 b183ec05bd8c
equal deleted inserted replaced
25:b183ec05bd8c 26:19bba8228ff0
   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);
       
   220 private:
   219 private:
   221 	static void RPtrArrayDelete(TAny *aPtr);
   220 	static void RPtrArrayDelete(TAny *aPtr);
   222 	static void LocalRPtrArrayDelete(TAny *aPtr);
       
   223 	};
   221 	};
   224 
   222 
   225 template <class T>
   223 template <class T>
   226 inline void CleanupRPtrArrayDelete<T>::PushL(T* aPtr)
   224 inline void CleanupRPtrArrayDelete<T>::PushL(T* aPtr)
   227 	{
   225 	{
   228 	CleanupStack::PushL(TCleanupItem(&RPtrArrayDelete,aPtr));
   226 	CleanupStack::PushL(TCleanupItem(&RPtrArrayDelete,aPtr));
   229 	}
   227 	}
   230 
       
   231 template <class T>
       
   232 inline void CleanupRPtrArrayDelete<T>::PushL(T& aRef)
       
   233     {
       
   234     CleanupStack::PushL(TCleanupItem(&LocalRPtrArrayDelete,&aRef));
       
   235     }
       
   236 
   228 
   237 template <class T>
   229 template <class T>
   238 void CleanupRPtrArrayDelete<T>::RPtrArrayDelete(TAny *aPtr)
   230 void CleanupRPtrArrayDelete<T>::RPtrArrayDelete(TAny *aPtr)
   239 	{
   231 	{
   240 	T* ptr = STATIC_CAST(T*,aPtr);
   232 	T* ptr = STATIC_CAST(T*,aPtr);
   241 	ptr->ResetAndDestroy();
   233 	ptr->ResetAndDestroy();
   242 	delete ptr;
   234 	delete ptr;
   243 	}
   235 	}
   244 
   236 
   245 template <class T>
   237 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>
       
   253 inline void CleanupRPtrArrayPushL(T* aPtr)
   238 inline void CleanupRPtrArrayPushL(T* aPtr)
   254 	{
   239 	{
   255 	CleanupRPtrArrayDelete<T>::PushL(aPtr);
   240 	CleanupRPtrArrayDelete<T>::PushL(aPtr);
   256 	}
   241 	}
   257 
   242 
   258 template <class T>
   243 // RImplInfoPtrArray cleanup pusher
   259 inline void CleanupRPtrArrayPushL(T& aRef)
   244 template <class T>
   260     {
   245 class CleanupRImplInfoPtrArrayDelete
   261     CleanupRPtrArrayDelete<T>::PushL(aRef);
   246 	{
   262     }
   247 public:
       
   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 
   263 
   276 
   264 // Table names
   277 // Table names
   265 _LIT( KNSmlTableVersion, "Version" );
   278 _LIT( KNSmlTableVersion, "Version" );
   266 
   279 
   267 // Column names
   280 // Column names