699 else |
699 else |
700 { |
700 { |
701 // Current operation points to a local buffer |
701 // Current operation points to a local buffer |
702 // The request originated from the file server (e.g. file cache) with a local message handle (KLocalMessageHandle) |
702 // The request originated from the file server (e.g. file cache) with a local message handle (KLocalMessageHandle) |
703 TPtr8 dataDesc((TUint8*) currentOperation.iReadWriteArgs.iData + currentOperation.iReadWriteArgs.iOffset, len, len); |
703 TPtr8 dataDesc((TUint8*) currentOperation.iReadWriteArgs.iData + currentOperation.iReadWriteArgs.iOffset, len, len); |
704 const RLocalMessage msg; |
704 |
705 TRAP(r,file->ReadL(pos, len, &dataDesc, msg, 0)); |
705 // save the client's RMessage2 |
|
706 const RMessage2 msgClient = aRequest->Message(); |
|
707 |
|
708 // overwrite RMessage2 in CFsMessageRequest with RLocalMessage |
|
709 const RLocalMessage msgLocal; |
|
710 const_cast<RMessage2&> (aRequest->Message()) = msgLocal; |
|
711 |
|
712 TRAP(r,file->ReadL(pos, len, &dataDesc, aRequest->Message(), 0)); |
|
713 |
|
714 // restore the client's RMessage2 |
|
715 const_cast<RMessage2&> (aRequest->Message()) = msgClient; |
706 } |
716 } |
707 } |
717 } |
708 |
718 |
709 |
719 |
710 #if defined(_DEBUG) || defined(_DEBUG_RELEASE) |
720 #if defined(_DEBUG) || defined(_DEBUG_RELEASE) |
1097 TRAP(r,file->WriteL(pos, len, (const TPtrC8*) aRequest->Message().Ptr0(), aRequest->Message(), currentOperation.iReadWriteArgs.iOffset)) |
1107 TRAP(r,file->WriteL(pos, len, (const TPtrC8*) aRequest->Message().Ptr0(), aRequest->Message(), currentOperation.iReadWriteArgs.iOffset)) |
1098 } |
1108 } |
1099 else |
1109 else |
1100 { |
1110 { |
1101 TPtr8 dataDesc((TUint8*) currentOperation.iReadWriteArgs.iData + currentOperation.iReadWriteArgs.iOffset, len, len); |
1111 TPtr8 dataDesc((TUint8*) currentOperation.iReadWriteArgs.iData + currentOperation.iReadWriteArgs.iOffset, len, len); |
1102 const RLocalMessage msg; |
1112 |
1103 TRAP(r,file->WriteL(pos, len, &dataDesc, msg, 0)); |
1113 // save the client's RMessage2 |
|
1114 const RMessage2 msgClient = aRequest->Message(); |
|
1115 |
|
1116 // overwrite RMessage2 in CFsMessageRequest with RLocalMessage |
|
1117 const RLocalMessage msgLocal; |
|
1118 const_cast<RMessage2&> (aRequest->Message()) = msgLocal; |
|
1119 |
|
1120 TRAP(r,file->WriteL(pos, len, &dataDesc, aRequest->Message(), 0)); |
|
1121 |
|
1122 // restore the client's RMessage2 |
|
1123 const_cast<RMessage2&> (aRequest->Message()) = msgClient; |
1104 } |
1124 } |
1105 } |
1125 } |
1106 |
1126 |
1107 //RDebug::Print(_L("WriteR: req %08X pos %ld\t len %d file %08X\n"), aRequest, pos, len, file); |
1127 //RDebug::Print(_L("WriteR: req %08X pos %ld\t len %d file %08X\n"), aRequest, pos, len, file); |
1108 |
1128 |