Tools.h++ Manual
21-142 104011 Tandem Computers Incorporated
21
RWModel
Synopsis
#include <rw/model.h>
(abstract base class)
Description This abstract base class has been designed to implement the “Model” leg of a 
Model-View-Controller architecture. A companion class, 
RWModelClient
, 
supplies the “View” leg.
It maintains a list of dependent RWModelClient objects. When member 
function 
changed(void*) 
is called, the list of dependents will be traversed, 
calling 
updateFrom(RWModel*, void*) 
for each one, with itself as the first 
argument. Classes subclassing off 
RWModelClient 
should be prepared to 
accept such a call.
Example This is an incomplete and somewhat contrived example in that it does not 
completely define the classes involved. "Dial" is assumed to be a graphical 
representation of the internal settings of "Thermostat". The essential point is 
that there is a dependency relationship between the "Thermostat" and the 
"Dial": when the setting of the thermostat is changed, the dial must be notified 
so that it can update itself to reflect the new setting of the thermostat. 
Code Example 21-4
#include <rw/model.h>
class Dial : public RWModelClient {
public:
virtual void updateFrom(RWModel* m, void d);
};
class Thermostat : public RWModel {
double setting;
public:
Thermostat( Dial* d )
{ addDependent(d); }
double temperature() const
{ return setting; }










