本文整理汇总了C++中SharedReadPtr::GetRWPrpBuffer方法的典型用法代码示例。如果您正苦于以下问题:C++ SharedReadPtr::GetRWPrpBuffer方法的具体用法?C++ SharedReadPtr::GetRWPrpBuffer怎么用?C++ SharedReadPtr::GetRWPrpBuffer使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SharedReadPtr
的用法示例。
在下文中一共展示了SharedReadPtr::GetRWPrpBuffer方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FrmwkEx
void
UnsupportRsvdFields_r10b::VerifyDataPat(SharedReadPtr readCmd,
SharedWritePtr writeCmd)
{
LOG_NRM("Compare read vs written data to verify");
SharedMemBufferPtr rdPayload = readCmd->GetRWPrpBuffer();
SharedMemBufferPtr wrPayload = writeCmd->GetRWPrpBuffer();
if (rdPayload->Compare(wrPayload) == false) {
readCmd->Dump(
FileSystem::PrepDumpFile(mGrpName, mTestName, "ReadCmd"),
"Read command");
writeCmd->Dump(
FileSystem::PrepDumpFile(mGrpName, mTestName, "WriteCmd"),
"Write command");
throw FrmwkEx(HERE, "Data miscompare");
}
// If meta data is allocated then compare meta data.
if (writeCmd->GetMetaBuffer() != NULL) {
const uint8_t *metaRdBuff = readCmd->GetMetaBuffer();
const uint8_t *metaWrBuff = writeCmd->GetMetaBuffer();
if (memcmp(metaRdBuff, metaWrBuff, writeCmd->GetMetaBufferSize())) {
readCmd->Dump(
FileSystem::PrepDumpFile(mGrpName, mTestName, "ReadCmdMeta"),
"Read command with meta data");
writeCmd->Dump(
FileSystem::PrepDumpFile(mGrpName, mTestName, "WriteCmdMeta"),
"Write command with meta data");
throw FrmwkEx(HERE, "Meta data miscompare");
}
}
}
示例2: FrmwkEx
void
FunctionalityBare_r10b::ResizeDataBuf(SharedReadPtr &readCmd,
SharedWritePtr &writeCmd, ConstSharedIdentifyPtr namSpcPtr,
uint64_t maxWrBlks, send_64b_bitmask prpBitmask)
{
LBAFormat lbaFormat = namSpcPtr->GetLBAFormat();
uint64_t lbaDataSize = (1 << lbaFormat.LBADS);
SharedMemBufferPtr readMem = readCmd->GetRWPrpBuffer();
SharedMemBufferPtr writeMem = writeCmd->GetRWPrpBuffer();
switch (gInformative->IdentifyNamespace(namSpcPtr)) {
case Informative::NS_BARE:
case Informative::NS_METAS:
LOG_NRM("Resized max rd/wr blks to %ld for separate meta or bare", maxWrBlks);
writeMem->Init(maxWrBlks * lbaDataSize);
readMem->Init(maxWrBlks * lbaDataSize);
break;
case Informative::NS_METAI:
LOG_NRM("Resized max rd/wr blks to %ld for integrated meta", maxWrBlks);
writeMem->Init(maxWrBlks * (lbaDataSize + lbaFormat.MS));
readMem->Init(maxWrBlks * (lbaDataSize + lbaFormat.MS));
break;
case Informative::NS_E2ES:
case Informative::NS_E2EI:
throw FrmwkEx(HERE, "Deferring work to handle this case in future");
break;
}
writeCmd->SetPrpBuffer(prpBitmask, writeMem);
writeCmd->SetNLB(maxWrBlks - 1); // 0 based value.
readCmd->SetPrpBuffer(prpBitmask, readMem);
readCmd->SetNLB(maxWrBlks - 1); // 0 based value.
}
示例3: FrmwkEx
void
FunctionalityMeta_r10b::VerifyDataPat(SharedReadPtr readCmd,
SharedWritePtr writeCmd, uint64_t metaBuffSz)
{
LOG_NRM("Compare read vs written data to verify");
SharedMemBufferPtr rdPayload = readCmd->GetRWPrpBuffer();
SharedMemBufferPtr wrPayload = writeCmd->GetRWPrpBuffer();
if (rdPayload->Compare(wrPayload) == false) {
readCmd->Dump(
FileSystem::PrepDumpFile(mGrpName, mTestName, "ReadCmd"),
"Read command");
rdPayload->Dump(
FileSystem::PrepDumpFile(mGrpName, mTestName, "ReadPayload"),
"Data read from media miscompared from written");
wrPayload->Dump(
FileSystem::PrepDumpFile(mGrpName, mTestName, "WrittenPayload"),
"Data read from media miscompared from written");
throw FrmwkEx(HERE, "Data miscompare");
}
// If meta data is allocated then compare meta data.
if (writeCmd->GetMetaBuffer() != NULL) {
const uint8_t *metaRdBuff = readCmd->GetMetaBuffer();
const uint8_t *metaWrBuff = writeCmd->GetMetaBuffer();
if (memcmp(metaRdBuff, metaWrBuff, metaBuffSz)) {
readCmd->Dump(
FileSystem::PrepDumpFile(mGrpName, mTestName, "ReadCmdMeta"),
"Read command with meta data");
writeCmd->Dump(
FileSystem::PrepDumpFile(mGrpName, mTestName, "WriteCmdMeta"),
"Write command with meta data");
throw FrmwkEx(HERE, "Meta data miscompare, Meta Sz %d", metaBuffSz);
}
}
}
示例4: FrmwkEx
void
StartingLBABare_r10b::VerifyDataPat(SharedReadPtr readCmd,
SharedMemBufferPtr wrPayload)
{
LOG_NRM("Compare read vs written data to verify");
SharedMemBufferPtr rdPayload = readCmd->GetRWPrpBuffer();
if (rdPayload->Compare(wrPayload) == false) {
readCmd->Dump(
FileSystem::PrepDumpFile(mGrpName, mTestName, "ReadCmd"),
"Read command");
rdPayload->Dump(
FileSystem::PrepDumpFile(mGrpName, mTestName, "ReadPayload"),
"Data read from media miscompared from written");
wrPayload->Dump(
FileSystem::PrepDumpFile(mGrpName, mTestName, "WrittenPayload"),
"Data read from media miscompared from written");
throw FrmwkEx(HERE, "Data miscompare");
}
}
示例5: FrmwkEx
void
PRPOffsetDualPgMultiBlk_r10b::VerifyDataPat(SharedReadPtr readCmd,
DataPattern dataPat, uint64_t wrVal, uint64_t metabufSz)
{
LOG_NRM("Compare read vs written data to verify");
SharedMemBufferPtr wrPayload = SharedMemBufferPtr(new MemBuffer());
wrPayload->Init(readCmd->GetPrpBufferSize());
wrPayload->SetDataPattern(dataPat, wrVal);
SharedMemBufferPtr rdPayload = readCmd->GetRWPrpBuffer();
if (rdPayload->Compare(wrPayload) == false) {
rdPayload->Dump(
FileSystem::PrepDumpFile(mGrpName, mTestName, "ReadPayload"),
"Data read from media miscompared from written");
wrPayload->Dump(
FileSystem::PrepDumpFile(mGrpName, mTestName, "WrittenPayload"),
"Data read from media miscompared from written");
throw FrmwkEx(HERE, "Data miscompare");
}
if (readCmd->GetMetaBuffer() != NULL) {
SharedMemBufferPtr metaWrPayload = SharedMemBufferPtr(new MemBuffer());
metaWrPayload->Init(metabufSz);
metaWrPayload->SetDataPattern(dataPat, wrVal);
if (readCmd->CompareMetaBuffer(metaWrPayload) == false) {
readCmd->Dump(
FileSystem::PrepDumpFile(mGrpName, mTestName, "MetaRdPayload"),
"Meta Data read from media miscompared from written");
metaWrPayload->Dump(
FileSystem::PrepDumpFile(mGrpName, mTestName, "MetaWrPayload"),
"Meta Data read from media miscompared from written");
throw FrmwkEx(HERE, "Meta Data miscompare");
}
}
}