• Initially, there was a unlogic relation between GModels and GOptimizerPars, where GModels derives from GOptimizerPars, but both classes contained different types of objects. GModels is a model container, while GOptimizerPars is a parameter container.
    
    Now, GModels derives directly from GContainer and no longer from GOptimizerPars. The GModels::pars() method has been added to extract a flat array of model parameter pointers into a GOptimizerPars object.
    
    GOptimizerPars, which was abstract before, is now a real container class that also derives from GContainer.
    Jürgen Knödlseder authored
     
    Browse File »

  • Add GChatter argument to print() method.
    
    The print() method now takes an argument of type GChatter to control the chattiness of the output in a homogenous manner.
    Pass NORMAL chatter level in __str__ method.
    Add chatter argument to print() methods.
    Use GLog::chatter() method to control the chattiness of the log stream operator.
    Add chatter() methods and provide member access through const references.
    Add chatter() methods, provide member access through const references, and declare one liners as inline methods.
    
    The chatter() methods control the new m_chatter attribute that is used to control the chattiness of the object's print() methods.
    name() and version() methods return const references.
    logFileOpen() method now sets the chattiness from the applications's chatter parameter, and name() and version() methods now return a const reference.
    Jürgen Knödlseder authored
     
    Browse File »

  • …d Doxygen documentation for class with examples.
    
    The index access operators [] have now be placed inline so that faster code can be generated (as the index operator does not index checking it is now pretty short code).
    
    The hasmodel() methods should semantically be named contains() (in general, a container should always have the contains() method to check for names).
    
    The Doxygen documentation of the class has been enhanced, adding usage example to the general description.
    Jürgen Knödlseder authored
     
    Browse File »


  • The methods that are implemented in the header file are now explicitely declared inline and put in a dedicated section after the class declaration. This enables proper documentation of the methods.
    
    A small semantic bug was also fixed in the reserve() method where the reserve class was put after return. This apparently worked, but is not correct as the method returns void.
    Jürgen Knödlseder authored
     
    Browse File »





  • Following the coding & design standard, the GModel argument in the set() method is now passed by reference. This removes the possibility of setting a model pointer to NULL. Thus, by construction, the container should never hold any NULL pointer.
    Jürgen Knödlseder authored
     
    Browse File »

  • The set method now takes a pointer instead of a reference. This allows assignment of a NULL pointer to the list of pointers in the container.
    Jürgen Knödlseder authored
     
    Browse File »
  • The GModel access operator now returns a simple GModel pointer, hence it cannot be used as an lvalue anymore. This is required to proteced the class from code slicing or memory leaks.
    
    Setting of GModel elements is now achieved by the set methods. Two variants have been implemented, one taking an index, the other taking a model name.
    Jürgen Knödlseder authored
     
    Browse File »
  • The GModel access operator returns now a reference to a pointer instead of a reference. This allows proper assignment in C++ using constructs such as m[0] = &model;. Also in Python assignment is now possible. For the Python interface we selected to make a deep copy to get a behavior that is compliant with Python list access.
    Jürgen Knödlseder authored
     
    Browse File »