NEURON
ocobserv.cpp
Go to the documentation of this file.
1 #include <../../nrnconf.h>
2 #include "ocobserv.h"
3 #include "oc2iv.h"
4 
6  delete ((ObjObservable*) ob->observers);
7  ob->observers = NULL;
8 }
9 
11  if (ob->observers) {
12  ((ObjObservable*) ob->observers)->notify();
13  }
14 }
15 
17  if (!ob->observers) {
18  ob->observers = (void*) (new ObjObservable(ob));
19  }
20  ((ObjObservable*) ob->observers)->attach(view);
21 }
22 
24  if (!ob->observers) {
25  return;
26  }
27  ((ObjObservable*) ob->observers)->detach(view);
28 }
29 
31  ob_ = ob;
32 }
33 
35 
36 
37 void hoc_template_notify(Object* ob, int message) {
39  if (co) {
40  co->ob_ = ob;
41  co->message_ = message;
42  co->notify();
43  }
44 }
45 
47  if (!ct->observers) {
48  ct->observers = (void*) (new ClassObservable(ct));
49  }
51  co->attach(view);
52 }
53 
55  if (!ct->observers) {
56  return;
57  }
59  co->detach(view);
60  if (co->cnt_ <= 0) {
61  delete co;
62  }
63 }
64 
66  ct_ = ct;
67  ob_ = NULL;
68  message_ = 0;
69  cnt_ = 0;
70 }
71 
73  ct_->observers = NULL;
74 }
75 
78  ++cnt_;
79 }
80 
83  --cnt_;
84 }
static void Detach(cTemplate *, Observer *)
Definition: ocobserv.cpp:54
static void Attach(cTemplate *, Observer *)
Definition: ocobserv.cpp:46
ClassObservable(cTemplate *)
Definition: ocobserv.cpp:65
Object * ob_
Definition: ocobserv.h:59
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
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
virtual void notify()
Definition: observe.cpp:53
virtual void attach(Observer *)
Definition: observe.cpp:45
virtual void detach(Observer *)
Definition: observe.cpp:49
void hoc_template_notify(Object *ob, int message)
Definition: ocobserv.cpp:37
void hoc_obj_disconnect(Object *ob)
Definition: ocobserv.cpp:5
void hoc_obj_notify(Object *ob)
Definition: ocobserv.cpp:10
if(ncell==0)
Definition: cellorder.cpp:785
#define NULL
Definition: spdefs.h:105
Definition: hocdec.h:173
void * observers
Definition: hocdec.h:185
cTemplate * ctemplate
Definition: hocdec.h:180
void * observers
Definition: hocdec.h:157