Show
Ignore:
Timestamp:
04/04/08 00:28:08 (5 months ago)
Author:
vossg
Message:

added: cluster and mt local fieldcontainer infrastructure

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/Source/System/Cluster/Window/SortLast/OSGPipelineComposerBase.cpp

    r1096 r1098  
    159159    "NULL", 
    160160    0, 
    161     (PrototypeCreateF) &PipelineComposerBase::createEmpty
     161    (PrototypeCreateF) &PipelineComposerBase::createEmptyLocal
    162162    PipelineComposer::initMethod, 
    163163    PipelineComposer::exitMethod, 
     
    406406} 
    407407 
     408//! create a new instance of the class 
     409PipelineComposerTransitPtr PipelineComposerBase::createLocal(BitVector bFlags) 
     410{ 
     411    PipelineComposerTransitPtr fc; 
     412 
     413    if(getClassType().getPrototype() != NullFC) 
     414    { 
     415        FieldContainerTransitPtr tmpPtr = 
     416            getClassType().getPrototype()-> shallowCopyLocal(bFlags); 
     417 
     418        fc = dynamic_pointer_cast<PipelineComposer>(tmpPtr); 
     419    } 
     420 
     421    return fc; 
     422} 
     423 
    408424//! create an empty new instance of the class, do not copy the prototype 
    409425PipelineComposerPtr PipelineComposerBase::createEmpty(void) 
     
    411427    PipelineComposerPtr returnValue; 
    412428 
    413     newPtr<PipelineComposer>(returnValue); 
     429    newPtr<PipelineComposer>(returnValue, Thread::getCurrentLocalFlags()); 
     430 
     431    returnValue->_pFieldFlags->_bNamespaceMask &=  
     432        ~Thread::getCurrentLocalFlags();  
     433 
     434    return returnValue; 
     435
     436 
     437PipelineComposerPtr PipelineComposerBase::createEmptyLocal(BitVector bFlags) 
     438
     439    PipelineComposerPtr returnValue; 
     440 
     441    newPtr<PipelineComposer>(returnValue, bFlags); 
     442 
     443    returnValue->_pFieldFlags->_bNamespaceMask &= ~bFlags; 
    414444 
    415445    return returnValue; 
     
    420450    PipelineComposerPtr tmpPtr; 
    421451 
    422     newPtr(tmpPtr, dynamic_cast<const PipelineComposer *>(this)); 
     452    newPtr(tmpPtr,  
     453           dynamic_cast<const PipelineComposer *>(this),  
     454           Thread::getCurrentLocalFlags()); 
     455 
     456    tmpPtr->_pFieldFlags->_bNamespaceMask &= ~Thread::getCurrentLocalFlags(); 
    423457 
    424458    FieldContainerTransitPtr returnValue(tmpPtr); 
     459 
     460    return returnValue; 
     461} 
     462 
     463FieldContainerTransitPtr PipelineComposerBase::shallowCopyLocal( 
     464    BitVector bFlags) const 
     465{ 
     466    PipelineComposerPtr tmpPtr; 
     467 
     468    newPtr(tmpPtr, dynamic_cast<const PipelineComposer *>(this), bFlags); 
     469 
     470    FieldContainerTransitPtr returnValue(tmpPtr); 
     471 
     472    tmpPtr->_pFieldFlags->_bNamespaceMask &= ~bFlags; 
    425473 
    426474    return returnValue;