Show
Ignore:
Timestamp:
05/05/08 06:39:01 (3 months ago)
Author:
vossg
Message:

changed: base rebuild

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/Source/System/FieldContainer/Misc/OSGContainerCollectionBase.cpp

    r1184 r1193  
    212212} 
    213213 
     214MFUnrecFieldContainerPtr *ContainerCollectionBase::editMFContainers     (void) 
     215{ 
     216    editMField(ContainersFieldMask, _mfContainers); 
     217 
     218    return &_mfContainers; 
     219} 
     220 
    214221 
    215222 
    216223void ContainerCollectionBase::pushToContainers(const FieldContainerPtr value) 
    217224{ 
    218     if(value == NullFC) 
    219         return; 
    220  
    221225    editMField(ContainersFieldMask, _mfContainers); 
    222  
    223     //addRef(value); 
    224226 
    225227    _mfContainers.push_back(value); 
     
    243245} 
    244246 
    245 void ContainerCollectionBase::insertIntoContainers(      UInt32         uiIndex, 
    246                                                    const FieldContainerPtr value   ) 
    247 
    248     if(value == NullFC) 
    249         return; 
    250  
    251     editMField(ContainersFieldMask, _mfContainers); 
    252  
    253     MFUnrecFieldContainerPtr::iterator fieldIt = _mfContainers.begin_nc(); 
    254  
    255     //addRef(value); 
    256  
    257     fieldIt += uiIndex; 
    258  
    259     _mfContainers.insert(fieldIt, value); 
    260 
    261  
    262 void ContainerCollectionBase::replaceInContainers(      UInt32         uiIndex, 
    263                                                        const FieldContainerPtr value   ) 
    264 
    265     if(value == NullFC) 
    266         return; 
    267  
    268     if(uiIndex >= _mfContainers.size()) 
    269         return; 
    270  
    271     editMField(ContainersFieldMask, _mfContainers); 
    272  
    273  
    274 //    addRef(value); 
    275 //    subRef(_mfContainers[uiIndex]); 
    276  
    277 //    _mfContainers[uiIndex] = value; 
    278  
    279       _mfContainers.replace(uiIndex, value); 
    280 
    281  
    282 void ContainerCollectionBase::replaceInContainers(const FieldContainerPtr pOldElem, 
    283                                                         const FieldContainerPtr pNewElem) 
    284 
    285     if(pNewElem == NullFC) 
    286         return; 
    287  
    288     Int32  elemIdx = _mfContainers.findIndex(pOldElem); 
    289  
    290     if(elemIdx != -1) 
     247void ContainerCollectionBase::removeFromContainers(UInt32 uiIndex) 
     248
     249    if(uiIndex < _mfContainers.size()) 
    291250    { 
    292251        editMField(ContainersFieldMask, _mfContainers); 
    293252 
    294 //        MFFieldContainerPtr::iterator fieldIt = _mfContainers.begin(); 
    295  
    296 //        fieldIt += elemIdx; 
    297 //        addRef(pNewElem); 
    298 //        subRef(pOldElem); 
    299  
    300 //        (*fieldIt) = pNewElem; 
    301           _mfContainers.replace(elemIdx, pNewElem); 
    302     } 
    303 
    304  
    305 void ContainerCollectionBase::removeFromContainers(UInt32 uiIndex) 
    306 
    307     if(uiIndex < _mfContainers.size()) 
     253        MFUnrecFieldContainerPtr::iterator fieldIt = _mfContainers.begin_nc(); 
     254 
     255        fieldIt += uiIndex; 
     256 
     257        _mfContainers.erase(fieldIt); 
     258    } 
     259
     260 
     261void ContainerCollectionBase::removeFromContainers(const FieldContainerPtr value) 
     262
     263    Int32 iElemIdx = _mfContainers.findIndex(value); 
     264 
     265    if(iElemIdx != -1) 
    308266    { 
    309267        editMField(ContainersFieldMask, _mfContainers); 
     
    311269        MFUnrecFieldContainerPtr::iterator fieldIt = _mfContainers.begin_nc(); 
    312270 
    313         fieldIt += uiIndex; 
    314  
    315         //subRef(*fieldIt); 
    316  
    317         _mfContainers.erase(fieldIt); 
    318     } 
    319 } 
    320  
    321 void ContainerCollectionBase::removeFromContainers(const FieldContainerPtr value) 
    322 { 
    323     Int32 iElemIdx = _mfContainers.findIndex(value); 
    324  
    325     if(iElemIdx != -1) 
    326     { 
    327         editMField(ContainersFieldMask, _mfContainers); 
    328  
    329         MFUnrecFieldContainerPtr::iterator fieldIt = _mfContainers.begin_nc(); 
    330  
    331271        fieldIt += iElemIdx; 
    332  
    333         //subRef(*fieldIt); 
    334272 
    335273        _mfContainers.erase(fieldIt); 
     
    510448    if(source != NULL) 
    511449    { 
     450        ContainerCollection *pThis = static_cast<ContainerCollection *>(this); 
    512451 
    513452        MFUnrecFieldContainerPtr::const_iterator ContainersIt  = 
     
    518457        while(ContainersIt != ContainersEnd) 
    519458        { 
    520             this->pushToContainers(*ContainersIt); 
     459            pThis->pushToContainers(*ContainersIt); 
    521460 
    522461            ++ContainersIt;