- Timestamp:
- 05/05/08 06:39:01 (4 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/Source/System/Cluster/Window/SortLast/OSGSortLastWindowBase.cpp
r1178 r1193 218 218 } 219 219 220 MFUnrecNodePtr *SortLastWindowBase::editMFGroupNodes (void) 221 { 222 editMField(GroupNodesFieldMask, _mfGroupNodes); 223 224 return &_mfGroupNodes; 225 } 226 220 227 MFUInt32 *SortLastWindowBase::editMFGroupLengths(void) 221 228 { … … 260 267 void SortLastWindowBase::pushToGroupNodes(const NodePtr value) 261 268 { 262 if(value == NullFC)263 return;264 265 269 editMField(GroupNodesFieldMask, _mfGroupNodes); 266 267 //addRef(value);268 270 269 271 _mfGroupNodes.push_back(value); … … 287 289 } 288 290 289 void SortLastWindowBase::insertIntoGroupNodes( UInt32 uiIndex, 290 const NodePtr value ) 291 { 292 if(value == NullFC) 293 return; 294 295 editMField(GroupNodesFieldMask, _mfGroupNodes); 296 297 MFUnrecNodePtr::iterator fieldIt = _mfGroupNodes.begin_nc(); 298 299 //addRef(value); 300 301 fieldIt += uiIndex; 302 303 _mfGroupNodes.insert(fieldIt, value); 304 } 305 306 void SortLastWindowBase::replaceInGroupNodes( UInt32 uiIndex, 307 const NodePtr value ) 308 { 309 if(value == NullFC) 310 return; 311 312 if(uiIndex >= _mfGroupNodes.size()) 313 return; 314 315 editMField(GroupNodesFieldMask, _mfGroupNodes); 316 317 318 // addRef(value); 319 // subRef(_mfGroupNodes[uiIndex]); 320 321 // _mfGroupNodes[uiIndex] = value; 322 323 _mfGroupNodes.replace(uiIndex, value); 324 } 325 326 void SortLastWindowBase::replaceInGroupNodes(const NodePtr pOldElem, 327 const NodePtr pNewElem) 328 { 329 if(pNewElem == NullFC) 330 return; 331 332 Int32 elemIdx = _mfGroupNodes.findIndex(pOldElem); 333 334 if(elemIdx != -1) 291 void SortLastWindowBase::removeFromGroupNodes(UInt32 uiIndex) 292 { 293 if(uiIndex < _mfGroupNodes.size()) 335 294 { 336 295 editMField(GroupNodesFieldMask, _mfGroupNodes); 337 296 338 // MFNodePtr::iterator fieldIt = _mfGroupNodes.begin(); 339 340 // fieldIt += elemIdx; 341 // addRef(pNewElem); 342 // subRef(pOldElem); 343 344 // (*fieldIt) = pNewElem; 345 _mfGroupNodes.replace(elemIdx, pNewElem); 346 } 347 } 348 349 void SortLastWindowBase::removeFromGroupNodes(UInt32 uiIndex) 350 { 351 if(uiIndex < _mfGroupNodes.size()) 297 MFUnrecNodePtr::iterator fieldIt = _mfGroupNodes.begin_nc(); 298 299 fieldIt += uiIndex; 300 301 _mfGroupNodes.erase(fieldIt); 302 } 303 } 304 305 void SortLastWindowBase::removeFromGroupNodes(const NodePtr value) 306 { 307 Int32 iElemIdx = _mfGroupNodes.findIndex(value); 308 309 if(iElemIdx != -1) 352 310 { 353 311 editMField(GroupNodesFieldMask, _mfGroupNodes); … … 355 313 MFUnrecNodePtr::iterator fieldIt = _mfGroupNodes.begin_nc(); 356 314 357 fieldIt += uiIndex;358 359 //subRef(*fieldIt);360 361 _mfGroupNodes.erase(fieldIt);362 }363 }364 365 void SortLastWindowBase::removeFromGroupNodes(const NodePtr value)366 {367 Int32 iElemIdx = _mfGroupNodes.findIndex(value);368 369 if(iElemIdx != -1)370 {371 editMField(GroupNodesFieldMask, _mfGroupNodes);372 373 MFUnrecNodePtr::iterator fieldIt = _mfGroupNodes.begin_nc();374 375 315 fieldIt += iElemIdx; 376 377 //subRef(*fieldIt);378 316 379 317 _mfGroupNodes.erase(fieldIt); … … 568 506 if(source != NULL) 569 507 { 508 SortLastWindow *pThis = static_cast<SortLastWindow *>(this); 570 509 571 510 MFUnrecNodePtr::const_iterator GroupNodesIt = … … 576 515 while(GroupNodesIt != GroupNodesEnd) 577 516 { 578 this->pushToGroupNodes(*GroupNodesIt);517 pThis->pushToGroupNodes(*GroupNodesIt); 579 518 580 519 ++GroupNodesIt;
