![]() |
NEURON
|
#include <../../nrnconf.h>#include <stdlib.h>#include <classreg.h>#include "hocstr.h"#include "parse.hpp"#include "hocparse.h"#include "code.h"#include "hocassrt.h"#include "hoclist.h"#include "nrnmpi.h"#include "nrnfilewrap.h"#include <nrnpython_config.h>#include "nrnjava.h"Go to the source code of this file.
Classes | |
| union | Templatedatum |
| struct | newobj1_err_t |
Macros | |
| #define | PDEBUG 0 |
| #define | JAVA2NRN 1 |
| #define | PUBLIC_TYPE 1 |
| #define | EXTERNAL_TYPE 2 |
| #define | NTEMPLATESTACK 20 |
| #define | pushtemplatesym(arg) chktemplate(); (templatestackp++)->sym = arg |
| #define | pushtemplatesymlist(arg) chktemplate(); (templatestackp++)->symlist = arg |
| #define | pushtemplatei(arg) chktemplate(); (templatestackp++)->i = arg |
| #define | pushtemplateodata(arg) chktemplate(); (templatestackp++)->odata = arg |
| #define | pushtemplateo(arg) chktemplate(); (templatestackp++)->o = arg |
| #define | OBJ_STACK_SIZE 10 |
| #define | NEWOBJ1_ERR_SIZE 32 /* starts with this size, and doubles on overflow */ |
| If hoc_newob1 fails after creating a new object, that object needs to be unreffed. More... | |
| #define | objectpath hoc_objectpath_impl |
| #define | pathprepend hoc_path_prepend |
Variables | |
| void *(* | p_java2nrn_cons )(Object *) |
| void(* | p_java2nrn_destruct )(void *opaque_java_object) |
| double(* | p_java2nrn_dmeth )(Object *ho, Symbol *method) |
| char **(* | p_java2nrn_smeth )(Object *ho, Symbol *method) |
| Object **(* | p_java2nrn_ometh )(Object *ho, Symbol *method) |
| int | hoc_print_first_instance = 1 |
| int | hoc_max_builtin_class_id = -1 |
| static Symbol * | hoc_obj_ |
| static int | icntobjectdata =0 |
| Object * | hoc_thisobject |
| Objectdata * | hoc_objectdata = (Objectdata *)0 |
| Objectdata * | hoc_top_level_data |
| static int | icnttoplevel |
| int | hoc_in_template =0 |
| static Templatedatum | templatestack [NTEMPLATESTACK] |
| static Templatedatum * | templatestackp = templatestack |
| static Object * | obj_stack_ [OBJ_STACK_SIZE+1] |
| static int | obj_stack_loc |
| void(* | oc_jump_target_ )() |
| static int | newobj1_err_index_ |
| static int | newobj1_err_size_ |
| static newobj1_err_t * | newobj1_err_ |
| static Object * | gui_redirect_obj_ |
| static int | template_id |
| #define EXTERNAL_TYPE 2 |
Definition at line 46 of file hoc_oop.cpp.
| #define JAVA2NRN 1 |
Definition at line 18 of file hoc_oop.cpp.
| #define NEWOBJ1_ERR_SIZE 32 /* starts with this size, and doubles on overflow */ |
If hoc_newob1 fails after creating a new object, that object needs to be unreffed.
To handle the case of constructors themselves creating new objects before the error or intervening recovery of error by a callee recovering from execerror, the incomplete new object is put on a stack along with the current longjump target, and removed from the stack when the object is complete. There could be a problem if the destructor doesn't work with a partially constructed object. In case of a execerror before newobj1 completion, all partially constructed objects with a longjump handle equal to the current longjump handle are unreffed.
Definition at line 518 of file hoc_oop.cpp.
| #define NTEMPLATESTACK 20 |
Definition at line 212 of file hoc_oop.cpp.
| #define OBJ_STACK_SIZE 10 |
Definition at line 239 of file hoc_oop.cpp.
| #define objectpath hoc_objectpath_impl |
Definition at line 1910 of file hoc_oop.cpp.
| #define pathprepend hoc_path_prepend |
Definition at line 1911 of file hoc_oop.cpp.
| #define PDEBUG 0 |
Definition at line 16 of file hoc_oop.cpp.
| #define PUBLIC_TYPE 1 |
Definition at line 45 of file hoc_oop.cpp.
| #define pushtemplatei | ( | arg | ) | chktemplate(); (templatestackp++)->i = arg |
Definition at line 225 of file hoc_oop.cpp.
| #define pushtemplateo | ( | arg | ) | chktemplate(); (templatestackp++)->o = arg |
Definition at line 227 of file hoc_oop.cpp.
| #define pushtemplateodata | ( | arg | ) | chktemplate(); (templatestackp++)->odata = arg |
Definition at line 226 of file hoc_oop.cpp.
| #define pushtemplatesym | ( | arg | ) | chktemplate(); (templatestackp++)->sym = arg |
Definition at line 223 of file hoc_oop.cpp.
| #define pushtemplatesymlist | ( | arg | ) | chktemplate(); (templatestackp++)->symlist = arg |
Definition at line 224 of file hoc_oop.cpp.
Definition at line 693 of file hoc_oop.cpp.
Definition at line 816 of file hoc_oop.cpp.
Definition at line 729 of file hoc_oop.cpp.
Definition at line 229 of file hoc_oop.cpp.
| void class2oc | ( | const char * | name, |
| void *(*)(Object *) | cons, | ||
| void(*)(void *) | destruct, | ||
| Member_func * | m, | ||
| int(*)(void **) | checkpoint, | ||
| Member_ret_obj_func * | mobjret, | ||
| Member_ret_str_func * | strret | ||
| ) |
Definition at line 1581 of file hoc_oop.cpp.
|
static |
Definition at line 2047 of file hoc_oop.cpp.
Definition at line 1802 of file hoc_oop.cpp.
Definition at line 2110 of file hoc_oop.cpp.
Definition at line 2129 of file hoc_oop.cpp.
Definition at line 2150 of file hoc_oop.cpp.
Definition at line 2169 of file hoc_oop.cpp.
Definition at line 1384 of file hoc_oop.cpp.
Definition at line 1509 of file hoc_oop.cpp.
Definition at line 878 of file hoc_oop.cpp.
Definition at line 936 of file hoc_oop.cpp.
Definition at line 1787 of file hoc_oop.cpp.
Definition at line 1548 of file hoc_oop.cpp.
Definition at line 357 of file hoc_oop.cpp.
Definition at line 1814 of file hoc_oop.cpp.
Definition at line 56 of file hoc_oop.cpp.
Definition at line 883 of file hoc_oop.cpp.
|
static |
Definition at line 2175 of file hoc_oop.cpp.
Definition at line 465 of file hoc_oop.cpp.
Definition at line 665 of file hoc_oop.cpp.
Definition at line 576 of file hoc_oop.cpp.
| void hoc_newobj1_err | ( | ) |
unref partially constructed objects controlled by current longjump handle
Definition at line 557 of file hoc_oop.cpp.
Definition at line 650 of file hoc_oop.cpp.
Definition at line 661 of file hoc_oop.cpp.
Definition at line 1852 of file hoc_oop.cpp.
Definition at line 1348 of file hoc_oop.cpp.
Definition at line 1391 of file hoc_oop.cpp.
Definition at line 1032 of file hoc_oop.cpp.
Definition at line 1318 of file hoc_oop.cpp.
Definition at line 980 of file hoc_oop.cpp.
Definition at line 273 of file hoc_oop.cpp.
Definition at line 243 of file hoc_oop.cpp.
Definition at line 265 of file hoc_oop.cpp.
Definition at line 921 of file hoc_oop.cpp.
| Objectdata* hoc_objectdata_restore | ( | Objectdata * | obdsav | ) |
Definition at line 153 of file hoc_oop.cpp.
| Objectdata* hoc_objectdata_save | ( | void | ) |
Definition at line 143 of file hoc_oop.cpp.
Definition at line 888 of file hoc_oop.cpp.
Definition at line 846 of file hoc_oop.cpp.
Definition at line 161 of file hoc_oop.cpp.
Definition at line 139 of file hoc_oop.cpp.
Definition at line 292 of file hoc_oop.cpp.
Definition at line 1491 of file hoc_oop.cpp.
Create a hoc class from a java one.
| classindex | : +ve id for class (0,1, ...) |
Definition at line 1628 of file hoc_oop.cpp.
| Object* nrn_get_gui_redirect_obj | ( | ) |
Definition at line 725 of file hoc_oop.cpp.
| void* nrn_get_hoc_jmp | ( | ) |
| void* nrn_get_oji | ( | ) |
Return handle for the current longjump buffer info.
Valid until finish is called on the oji_ instance.
Definition at line 127 of file ocjump.cpp.
Definition at line 1923 of file hoc_oop.cpp.
| void oc_restore_hoc_oop | ( | Object ** | a1, |
| Objectdata ** | a2, | ||
| int * | a4, | ||
| Symlist ** | a5 | ||
| ) |
Definition at line 449 of file hoc_oop.cpp.
| void oc_save_hoc_oop | ( | Object ** | a1, |
| Objectdata ** | a2, | ||
| int * | a4, | ||
| Symlist ** | a5 | ||
| ) |
Definition at line 431 of file hoc_oop.cpp.
| void pathprepend | ( | char * | path, |
| const char * | name, | ||
| const char * | indx | ||
| ) |
Definition at line 1913 of file hoc_oop.cpp.
| void pop_newobj1_err | ( | ) |
pop the now fully constructed object
Definition at line 551 of file hoc_oop.cpp.
|
static |
Definition at line 216 of file hoc_oop.cpp.
save partially constructed object and controlling longjump handle
Definition at line 532 of file hoc_oop.cpp.
|
static |
Definition at line 724 of file hoc_oop.cpp.
| int hoc_in_template =0 |
Definition at line 136 of file hoc_oop.cpp.
| int hoc_max_builtin_class_id = -1 |
Definition at line 52 of file hoc_oop.cpp.
|
static |
Definition at line 54 of file hoc_oop.cpp.
| int hoc_print_first_instance = 1 |
Definition at line 50 of file hoc_oop.cpp.
| Object* hoc_thisobject |
Definition at line 132 of file hoc_oop.cpp.
| Objectdata* hoc_top_level_data |
Definition at line 134 of file hoc_oop.cpp.
|
static |
Definition at line 131 of file hoc_oop.cpp.
|
static |
Definition at line 135 of file hoc_oop.cpp.
|
static |
Definition at line 529 of file hoc_oop.cpp.
|
static |
Definition at line 527 of file hoc_oop.cpp.
|
static |
Definition at line 528 of file hoc_oop.cpp.
|
static |
Definition at line 240 of file hoc_oop.cpp.
|
static |
Definition at line 241 of file hoc_oop.cpp.
Definition at line 22 of file hoc_oop.cpp.
Definition at line 23 of file hoc_oop.cpp.
Definition at line 24 of file hoc_oop.cpp.
Definition at line 26 of file hoc_oop.cpp.
Definition at line 25 of file hoc_oop.cpp.
|
static |
Definition at line 1507 of file hoc_oop.cpp.
|
static |
Definition at line 213 of file hoc_oop.cpp.
|
static |
Definition at line 214 of file hoc_oop.cpp.