本文整理汇总了C++中c4_Column::IsDirty方法的典型用法代码示例。如果您正苦于以下问题:C++ c4_Column::IsDirty方法的具体用法?C++ c4_Column::IsDirty怎么用?C++ c4_Column::IsDirty使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类c4_Column
的用法示例。
在下文中一共展示了c4_Column::IsDirty方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ItemLenOffCol
c4_Column *c4_FormatB::GetNthMemoCol(int index_, bool alloc_) {
t4_i32 start;
c4_Column *col;
int n = ItemLenOffCol(index_, start, col);
if (col == &_data && alloc_) {
col = d4_new c4_Column(_data.Persist());
_memos.SetAt(index_, col);
if (n > 0)
if (_data.IsDirty()) {
c4_Bytes temp;
_data.FetchBytes(start, n, temp, true);
col->SetBuffer(n);
col->StoreBytes(0, temp);
} else
col->SetLocation(_data.Position() + start, n);
}
return col;
}
示例2: StoreValue
bool c4_SaveContext::CommitColumn(c4_Column &col_) {
bool changed = col_.IsDirty() || _fullScan;
t4_i32 sz = col_.ColSize();
StoreValue(sz);
if (sz > 0) {
t4_i32 pos = col_.Position();
if (_differ) {
if (changed) {
int n = pos < 0 ? ~pos: _differ->NewDiffID();
_differ->CreateDiff(n, col_);
d4_assert(n >= 0);
pos = ~n;
}
} else if (_preflight) {
if (changed)
pos = _space->Allocate(sz);
_nextSpace->Occupy(pos, sz);
_newPositions.Add(pos);
} else {
pos = _newPositions.GetAt(_nextPosIndex++);
if (changed)
col_.SaveNow(_strategy, pos);
if (!_fullScan)
col_.SetLocation(pos, sz);
}
StoreValue(pos);
}
return changed;
}