Show
Ignore:
Timestamp:
12/19/07 17:56:03 (10 months ago)
Author:
cneumann
Message:

changed: generic interface activated
fixed: single parent unlinking

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/Carsten_PtrWork2/Source/System/FieldContainer/Fields/OSGEditSFCPointerFieldHandle.h

    r1032 r1033  
    238238  protected: 
    239239    /*---------------------------------------------------------------------*/ 
    240     /*! \name Helper                                                       */ 
     240    /*! \name Member                                                       */ 
    241241    /*! \{                                                                 */ 
    242242     
     
    256256}; 
    257257 
     258 
     259template <class FieldT> 
     260class DynamicEditSFCPointerFieldHandle : public EditSFCPointerFieldBaseHandle 
     261{ 
     262   /*==========================  PUBLIC  =================================*/ 
     263  public: 
     264    /*---------------------------------------------------------------------*/ 
     265    /*! \name Public Type Information                                      */ 
     266    /*! \{                                                                 */ 
     267     
     268    typedef EditSFCPointerFieldBaseHandle            Inherited; 
     269    typedef DynamicEditSFCPointerFieldHandle<FieldT> Self; 
     270    typedef boost::shared_ptr<Self>                  Ptr; 
     271 
     272    typedef          FieldT                          HandledFieldType; 
     273    typedef typename HandledFieldType::Description   HandledFieldDesc; 
     274    typedef typename HandledFieldType::ValueType     HandledFieldValueType; 
     275    typedef typename HandledFieldType::ArgumentType  ArgumentType; 
     276             
     277    typedef boost::function<void (ArgumentType)>     SFSetFunction; 
     278     
     279    /*! \}                                                                 */ 
     280    /*---------------------------------------------------------------------*/ 
     281    /*! \name Constructors                                                 */ 
     282    /*! \{                                                                 */ 
     283     
     284    DynamicEditSFCPointerFieldHandle(Self                 const &source      ); 
     285    DynamicEditSFCPointerFieldHandle(Field                      *pField, 
     286                                     FieldDescriptionBase const *pDescription); 
     287                                 
     288    /*! \}                                                                 */ 
     289    /*---------------------------------------------------------------------*/ 
     290    /*! \name Destructor                                                   */ 
     291    /*! \{                                                                 */ 
     292     
     293    virtual ~DynamicEditSFCPointerFieldHandle(void); 
     294     
     295    /*! \}                                                                 */ 
     296    /*---------------------------------------------------------------------*/ 
     297    /*! \name Type Query                                                   */ 
     298    /*! \{                                                                 */ 
     299     
     300    virtual FieldType const &getType(void) const; 
     301     
     302    /*! \}                                                                 */ 
     303    /*---------------------------------------------------------------------*/ 
     304    /*! \name Stream IO                                                    */ 
     305    /*! \{                                                                 */ 
     306 
     307    virtual void pushValueToStream   (OutStream   &str) const; 
     308    virtual void pushSizeToStream    (OutStream   &str) const; 
     309 
     310    virtual void pushValueFromCString(Char8 const *str); 
     311     
     312    /*! \}                                                                 */ 
     313    /*---------------------------------------------------------------------*/ 
     314    /*! \name Generic Operations                                           */ 
     315    /*! \{                                                                 */ 
     316 
     317    virtual bool equal      (EditFieldHandlePtr rhs   ); 
     318     
     319    virtual void copyValues (GetFieldHandlePtr source); 
     320    virtual void shareValues(GetFieldHandlePtr source); 
     321 
     322    virtual void cloneValues( 
     323        GetFieldHandlePtr        pSrc, 
     324        TypePtrVector     const &shareTypes     = TypePtrVector(), 
     325        TypePtrVector     const &ignoreTypes    = TypePtrVector(), 
     326        TypeIdVector      const &shareGroupIds  = TypeIdVector (), 
     327        TypeIdVector      const &ignoreGroupIds = TypeIdVector ()) const; 
     328         
     329    /*! \}                                                                 */ 
     330    /*---------------------------------------------------------------------*/ 
     331    /*! \name Operations                                                   */ 
     332    /*! \{                                                                 */ 
     333            
     334    virtual FieldContainer *get(void                            ) const; 
     335    virtual void            set(FieldContainer * const pNewValue); 
     336         
     337    /*! \}                                                                 */ 
     338    /*---------------------------------------------------------------------*/ 
     339    /*! \name Typed Operations                                             */ 
     340    /*! \{                                                                 */ 
     341     
     342    HandledFieldType       *operator->(void) const; 
     343    HandledFieldType       &operator* (void) const; 
     344     
     345    HandledFieldType const *getField  (void) const; 
     346    HandledFieldType       *editField (void); 
     347     
     348    /*! \}                                                                 */ 
     349    /*=========================  PROTECTED  ===============================*/ 
     350  protected: 
     351    /*---------------------------------------------------------------------*/ 
     352    /*! \name Helper                                                       */ 
     353    /*! \{                                                                 */ 
     354 
     355    HandledFieldType *castFieldDown(void                     ) const; 
     356    FieldContainer   *castPtrUp    (HandledFieldValueType ptr) const; 
     357     
     358    /*! \}                                                                 */ 
     359    /*==========================  PRIVATE  ================================*/ 
     360  private: 
     361}; 
     362 
    258363OSG_END_NAMESPACE 
    259364