3455276aa2
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1487 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
43 lines
798 B
Plaintext
43 lines
798 B
Plaintext
|
|
:- object(root, % avoid infinite metaclass regression by
|
|
instantiates(root)). % making the class its own metaclass
|
|
|
|
:- private(cv_/1).
|
|
:- dynamic(cv_/1).
|
|
:- mode(cv_(?integer), zero_or_one).
|
|
|
|
:- public(cv/1).
|
|
:- mode(cv(?integer), zero_or_one).
|
|
|
|
:- public(set_cv/1).
|
|
:- mode(set_cv(+integer), one).
|
|
|
|
cv_(0). % cv_/1 value is stored locally, in this class
|
|
|
|
cv(Value) :-
|
|
cv_(Value). % retrive cv_/1 value, shared for all instances
|
|
|
|
set_cv(Value) :-
|
|
retractall(cv_(_)), % retract old cv_/1 value from this class
|
|
asserta(cv_(Value)). % assert the new value into this class
|
|
|
|
:- end_object.
|
|
|
|
|
|
:- object(instance1,
|
|
instantiates(root)).
|
|
|
|
:- end_object.
|
|
|
|
|
|
:- object(instance2,
|
|
instantiates(root)).
|
|
|
|
:- end_object.
|
|
|
|
|
|
:- object(instance3,
|
|
instantiates(root)).
|
|
|
|
:- end_object.
|