Changeset 949

Show
Ignore:
Timestamp:
05/18/10 20:51:13 (14 years ago)
Author:
mido
Message:

another patch of log_levels in user_info.h where a small piece of code was forgotten in the previous facelift of UI
also, DS adjusted to a new UI::GET policy concerning RVs


Location:
library/bdm/base
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • library/bdm/base/bdmbase.cpp

    r927 r949  
    538538 
    539539void DS::from_setting ( const Setting &set ) { 
    540         shared_ptr<RV> r = UI::build<RV> ( set, "drv", UI::optional ); 
    541         if ( r )         
    542                 set_drv ( *r, RV() ); 
     540        RV rv; 
     541        if( UI::get( rv, set, "drv", UI::optional ) ) 
     542                set_drv ( rv, RV() ); 
    543543} 
    544544 
  • library/bdm/base/user_info.h

    r945 r949  
    312312        //! This method converts a Setting into a real scalar    
    313313        static void from_setting ( double &real, const Setting &element ); 
    314         //! This method converts a Setting into a class T descendant 
     314        //! This method converts a Setting into a staticallly allocated root descendant  
    315315        static void from_setting ( root &instance, const Setting &element ); 
    316         //! This method converts a Setting into a class T descendant 
     316        //! This method converts a Setting into a log_level 
     317        //! 
     318        //! Data is stored in string which has different meaning than usally. For that reason, a specialized 
     319        //! method is necessary here to avoid the default call of "const SettingResolver link ( element );",  
     320        //! which would lead to erroneous behaviour in this case 
     321        template<class T> static void from_setting ( log_level_base<T> &log_level, const Setting &element ) { 
     322                assert_type( element, Setting::TypeString ); 
     323                call_from_setting( log_level, element ); 
     324        } 
     325 
     326        //! This method converts a Setting into a dynamically allocated root descendant 
    317327        template<class T> static void from_setting ( T* &instance, const Setting &element ) { 
    318328                const SettingResolver link ( element );