// ----------------------------------------------------------------------------- // CNSmlDmDevDetailAdapter::FetchLeafObjectSizeL( const TDesC8& aURI, // const TDesC8& aLUID, const TDesC8& aType, const TInt aResultsRef, // const TInt aStatusRef ) // ----------------------------------------------------------------------------- void CNSmlDmDevDetailAdapter::FetchLeafObjectSizeL( const TDesC8& aURI, const TDesC8& /*aLUID*/, const TDesC8& aType, const TInt aResultsRef, const TInt aStatusRef ) { _DBG_FILE("CNSmlDmDevDetailAdapter::FetchLeafObjectSizeL(): begin"); CBufBase *object = CBufFlat::NewL( 1 ); CleanupStack::PushL( object ); CSmlDmAdapter::TError retValue = FetchLeafObjectL( aURI, *object ); TInt objSizeInBytes = object->Size(); TBuf8<KNSmlMaxSizeBufferLength> stringObjSizeInBytes; stringObjSizeInBytes.Num( objSizeInBytes ); object->Reset(); object->InsertL( 0, stringObjSizeInBytes ); iDmCallback->SetStatusL( aStatusRef, retValue ); iDmCallback->SetResultsL( aResultsRef, *object, aType); CleanupStack::PopAndDestroy(); //object _DBG_FILE("CNSmlDmDevDetailAdapter::FetchLeafObjectSizeL(): end"); }
// ------------------------------------------------------------------------------------------------ // CNSmlDataModBase::StripTxL // Strips data that is to be transmitted to the sync partner. // ------------------------------------------------------------------------------------------------ EXPORT_C void CNSmlDataModBase::StripTxL( CBufBase& aItem ) { _DBG_FILE("CNSmlDataModBase::StripTxL(): begin"); HBufC8* buf = HBufC8::NewLC(aItem.Size()); *buf = aItem.Ptr(0); TPtr8 ptrBuf = buf->Des(); StripL(ptrBuf); aItem.Reset(); aItem.InsertL(0, ptrBuf); CleanupStack::PopAndDestroy(); // buf _DBG_FILE("CNSmlDataModBase::StripTxL(): end"); }
DMAD_EXPORT_C void CDmAdEngine::FetchLeafObjectSizeL(const TDesC8& aUri, const TDesC8& aLuid, const TDesC8& aType, TInt aResultsRef, TInt aStatusRef) { TRACE("CDmAdEngine::FetchLeafObjectSizeL"); DEBUG_LOG1(_L8("aUri %S"), &aUri); DEBUG_LOG1(_L8("aLuid %S"), &aLuid); DEBUG_LOG1(_L8("aType %S"), &aType); DEBUG_LOG2(_L("aResultsRef = %d, aStatusRef = %d"), aResultsRef, aStatusRef); TPtrC8 uri(TDmAdUtil::RemoveDotSlash(aUri)); TInt status = KErrNone; CBufBase* object = 0; TRAPD(err, status = DoFetchLeafObjectL(uri, aLuid, aType, object)); if (err != KErrNone) { iCallBack->SetStatusL(aStatusRef, err); return; } if (status != KErrNone) { delete object; iCallBack->SetStatusL(aStatusRef, status); return; } CleanupStack::PushL(object); TInt objSizeInBytes = object->Size(); HBufC8* sizeBuf = TDmAdUtil::IntToDes8LC(objSizeInBytes); object->Reset(); object->InsertL(0, *sizeBuf); iCallBack->SetResultsL(aResultsRef, *object, aType); iCallBack->SetStatusL(aStatusRef, status); CleanupStack::PopAndDestroy(2); //sizeBuf, object }
// ------------------------------------------------------------------------------------------------ // CNSmlDataModBase::MergeRxL // Merges received item with item in exported from the local database. // ------------------------------------------------------------------------------------------------ EXPORT_C void CNSmlDataModBase::MergeRxL( CBufBase& aNewItem, CBufBase& aOldItem, TBool aFieldLevel ) { _DBG_FILE("CNSmlDataModBase::MergeRxL(): begin"); if( NeedsMerge() ) { HBufC8* b1 = HBufC8::NewLC(aNewItem.Size() + aOldItem.Size()); *b1 = aNewItem.Ptr(0); TPtr8 ptrB1 = b1->Des(); TPtr8 p2 = aOldItem.Ptr(0); MergeL( ptrB1, p2, aFieldLevel ); aNewItem.Reset(); aNewItem.InsertL(0, ptrB1); CleanupStack::PopAndDestroy(); // b1 } else if ( iUsedRemoteMimeType == -1 ) { User::Leave( KErrNotFound ); } _DBG_FILE("CNSmlDataModBase::MergeRxL(): end"); }