NEURON
ocobserv.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "oc_ansi.h"
4 
5 #include <InterViews/observe.h>
6 
7 struct Object;
8 struct cTemplate;
9 
10 // For an Observer watching a hoc Object
11 // when the last ref disappears, disconnect is called on the Observer
12 // Some objects may be written so that update gets called on the Observer
13 
14 class ObjObservable: public Observable {
15  public:
16  static void Attach(Object*, Observer*);
17  static void Detach(Object*, Observer*);
18  virtual ~ObjObservable();
19 
21  return ob_;
22  }
23 
24  private:
26 
27  private:
29 };
30 
31 // For an Observer watching a cTemplate
32 class ClassObservable: public Observable {
33  public:
34  // only the first two guarantee an update on the Observer
35  enum { Delete, Create, Changed };
36 
37  static void Attach(cTemplate*, Observer*);
38  static void Detach(cTemplate*, Observer*);
39  virtual ~ClassObservable();
40 
42  return ct_;
43  }
45  return ob_;
46  }
47  int message() {
48  return message_;
49  }
50 
51  private:
52  friend void hoc_template_notify(Object*, int);
54  void attach(Observer*);
55  void detach(Observer*);
56 
57  private:
60  int message_;
61  int cnt_;
62 };
friend void hoc_template_notify(Object *, int)
Definition: ocobserv.cpp:37
static void Detach(cTemplate *, Observer *)
Definition: ocobserv.cpp:54
static void Attach(cTemplate *, Observer *)
Definition: ocobserv.cpp:46
cTemplate * ctemplate()
Definition: ocobserv.h:41
int message()
Definition: ocobserv.h:47
ClassObservable(cTemplate *)
Definition: ocobserv.cpp:65
Object * ob_
Definition: ocobserv.h:59
Object * object()
Definition: ocobserv.h:44
virtual ~ClassObservable()
Definition: ocobserv.cpp:72
cTemplate * ct_
Definition: ocobserv.h:58
void detach(Observer *)
Definition: ocobserv.cpp:81
void attach(Observer *)
Definition: ocobserv.cpp:76
static void Detach(Object *, Observer *)
Definition: ocobserv.cpp:23
Object * object()
Definition: ocobserv.h:20
virtual ~ObjObservable()
Definition: ocobserv.cpp:34
Object * ob_
Definition: ocobserv.h:28
static void Attach(Object *, Observer *)
Definition: ocobserv.cpp:16
ObjObservable(Object *)
Definition: ocobserv.cpp:30
HOC interpreter function declarations (included by hocdec.h)
Definition: hocdec.h:173