NEURON
objcmd.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <memory>
4 
5 #include <InterViews/observe.h>
6 #if HAVE_IV
7 #include <InterViews/action.h>
8 #include "rubband.h"
9 #endif
10 
11 struct Object;
12 
13 // command to be executed within scope of object.
14 
15 class HocCommand: public Observer {
16  public:
17  HocCommand(const char*);
18  HocCommand(const char*, Object*);
19  HocCommand(Object* paction); // Python method call or tuple with args
20  virtual ~HocCommand();
21  int execute(bool notify = true);
22  int execute(const char*, bool notify = true);
23  int exec_strret(char* buf, int size, bool notify = true); // for python callback returning a
24  // string
25  const char* name();
26  virtual void update(Observable*);
27  virtual void audit();
28  virtual void help();
29  double func_call(int narg, int* perr = NULL); // perr used only by pyobject
31  return obj_;
32  }
34  return po_;
35  }
36 
37  private:
38  void init(const char*, Object*);
39 
40  private:
42  std::unique_ptr<std::string> s_{};
44 };
45 
46 #if HAVE_IV
47 class HocCommandAction: public Action {
48  public:
49  HocCommandAction(HocCommand*);
50  virtual ~HocCommandAction();
51  virtual void execute();
52 
53  private:
54  HocCommand* hc_;
55 };
56 
57 class HocCommandTool: public Rubberband {
58  public:
59  HocCommandTool(HocCommand*);
60  virtual ~HocCommandTool();
61  virtual bool event(Event&);
62  HocCommand* hc_;
63 };
64 #endif
#define Event
Definition: _defines.h:105
#define Action
Definition: _defines.h:25
virtual void audit()
Definition: objcmd.cpp:81
Object * object()
Definition: objcmd.h:30
std::unique_ptr< std::string > s_
Definition: objcmd.h:42
double func_call(int narg, int *perr=NULL)
Definition: objcmd.cpp:140
int exec_strret(char *buf, int size, bool notify=true)
Definition: objcmd.cpp:115
HocCommand(const char *)
Definition: objcmd.cpp:19
virtual ~HocCommand()
Definition: objcmd.cpp:51
Object * pyobject()
Definition: objcmd.h:33
virtual void update(Observable *)
Definition: objcmd.cpp:46
int execute(bool notify=true)
Definition: objcmd.cpp:94
Object * po_
Definition: objcmd.h:43
Object * obj_
Definition: objcmd.h:41
const char * name()
Definition: objcmd.cpp:73
void init(const char *, Object *)
Definition: objcmd.cpp:37
virtual void help()
Definition: objcmd.cpp:60
const Event & event() const
Definition: rubband.h:51
char buf[512]
Definition: init.cpp:13
static int narg()
Definition: ivocvect.cpp:121
#define NULL
Definition: spdefs.h:105
Definition: hocdec.h:173