annotate libinterp/octave-value/ov-java.h @ 24540:46440078d73b

don't use singleton for octave_value_typeinfo * ov-typeinfo.h, ov-typeinfo.cc (type_info): New class containing the functionaity provided by the non-static functions in the octave_value_typeinfo class. Define in octave namespace. (octave_value_typeinfo): Now a namespace containing global functions instead of a class containing all static functions. Provided for backward compatibility, so all functions are tagged as deprecated. * ops.h (INSTALL_UNOP_TI, INSTALL_NCUNOP_TI, INSTALL_BINOP_TI, INSTALL_CATOP_TI, INSTALL_ASSIGNOP_TI, INSTALL_ASSIGNANYOP_TI, INSTALL_ASSIGNCONV_TI, INSTALL_WIDENOP_TI): New macros. (install_ops): Accept reference to type_info object as an argument. * mk-ops.sh: Generate function decls and calls that pass reference to type_info object as an argument. * op-b-b.cc, op-b-bm.cc, op-b-sbm.cc, op-bm-b.cc, op-bm-bm.cc, op-bm-sbm.cc, op-cdm-cdm.cc, op-cell.cc, op-chm.cc, op-class.cc, op-cm-cm.cc, op-cm-cs.cc, op-cm-m.cc, op-cm-s.cc, op-cm-scm.cc, op-cm-sm.cc, op-cs-cm.cc, op-cs-cs.cc, op-cs-m.cc, op-cs-s.cc, op-cs-scm.cc, op-cs-sm.cc, op-dm-dm.cc, op-dm-scm.cc, op-dm-sm.cc, op-dm-template.cc, op-dms-template.cc, op-fcdm-fcdm.cc, op-fcm-fcm.cc, op-fcm-fcs.cc, op-fcm-fm.cc, op-fcm-fs.cc, op-fcn.cc, op-fcs-fcm.cc, op-fcs-fcs.cc, op-fcs-fm.cc, op-fcs-fs.cc, op-fdm-fdm.cc, op-fm-fcm.cc, op-fm-fcs.cc, op-fm-fm.cc, op-fm-fs.cc, op-fs-fcm.cc, op-fs-fcs.cc, op-fs-fm.cc, op-fs-fs.cc, op-i16-i16.cc, op-i32-i32.cc, op-i64-i64.cc, op-i8-i8.cc, op-int-concat.cc, op-int.h, op-m-cm.cc, op-m-cs.cc, op-m-m.cc, op-m-s.cc, op-m-scm.cc, op-m-sm.cc, op-pm-pm.cc, op-pm-scm.cc, op-pm-sm.cc, op-pm-template.cc, op-range.cc, op-s-cm.cc, op-s-cs.cc, op-s-m.cc, op-s-s.cc, op-s-scm.cc, op-s-sm.cc, op-sbm-b.cc, op-sbm-bm.cc, op-sbm-sbm.cc, op-scm-cm.cc, op-scm-cs.cc, op-scm-m.cc, op-scm-s.cc, op-scm-scm.cc, op-scm-sm.cc, op-sm-cm.cc, op-sm-cs.cc, op-sm-m.cc, op-sm-s.cc, op-sm-scm.cc, op-sm-sm.cc, op-str-m.cc, op-str-s.cc, op-str-str.cc, op-struct.cc, op-ui16-ui16.cc, op-ui32-ui32.cc, op-ui64-ui64.cc, op-ui8-ui8.cc): Use new _T1 macros. Update install_TYPE_ops function for each type to accept reference to type_info object as argument. * interpreter.h, interpreter.cc (interpreter::m_type_info): New member variable. (interpreter::get_type_info): New function. (interpreter::interpreter): Initialize m_type_info before m_symbol_table. Don't call install_types or install ops. That is now handled by the in type_info constructor. Don't call m_cdef_manager. That is now handled by the cdef_manager constructor. * interpreter-private.h, interpreter-private.cc (__get_type_info__): New function. Use where necessary to get reference to interpreter::m_type_info object. * ov-classdef.cc, ov-classdef.h (octave_classdef::octave_classdef): Handle all initialization here. (octave_classdef::initialize): Delete unused function. * ov.h, ov.cc (install_types): Accept reference to type_info object as argument. Pass on to individual register_type functions. * ov-base.h, ov-base.cc (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Update to define additional register_type functions that accepts reference to type_info object. (install_base_type_conversions): Update to use new *_TI macros.
author John W. Eaton <jwe@octave.org>
date Fri, 05 Jan 2018 18:44:53 -0500
parents 194eb4bd202b
children 6652d3823428
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15746
da26f72408a7 update copyright statements in newly added java files
John W. Eaton <jwe@octave.org>
parents: 15745
diff changeset
1 /*
da26f72408a7 update copyright statements in newly added java files
John W. Eaton <jwe@octave.org>
parents: 15745
diff changeset
2
23219
3ac9f9ecfae5 maint: Update copyright dates.
John W. Eaton <jwe@octave.org>
parents: 23083
diff changeset
3 Copyright (C) 2007-2017 Michael Goffioul
15746
da26f72408a7 update copyright statements in newly added java files
John W. Eaton <jwe@octave.org>
parents: 15745
diff changeset
4
da26f72408a7 update copyright statements in newly added java files
John W. Eaton <jwe@octave.org>
parents: 15745
diff changeset
5 This file is part of Octave.
da26f72408a7 update copyright statements in newly added java files
John W. Eaton <jwe@octave.org>
parents: 15745
diff changeset
6
24534
194eb4bd202b maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents: 23795
diff changeset
7 Octave is free software: you can redistribute it and/or modify it
22755
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22407
diff changeset
8 under the terms of the GNU General Public License as published by
24534
194eb4bd202b maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents: 23795
diff changeset
9 the Free Software Foundation, either version 3 of the License, or
22755
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22407
diff changeset
10 (at your option) any later version.
15746
da26f72408a7 update copyright statements in newly added java files
John W. Eaton <jwe@octave.org>
parents: 15745
diff changeset
11
22755
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22407
diff changeset
12 Octave is distributed in the hope that it will be useful, but
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22407
diff changeset
13 WITHOUT ANY WARRANTY; without even the implied warranty of
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22407
diff changeset
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22407
diff changeset
15 GNU General Public License for more details.
15746
da26f72408a7 update copyright statements in newly added java files
John W. Eaton <jwe@octave.org>
parents: 15745
diff changeset
16
da26f72408a7 update copyright statements in newly added java files
John W. Eaton <jwe@octave.org>
parents: 15745
diff changeset
17 You should have received a copy of the GNU General Public License
da26f72408a7 update copyright statements in newly added java files
John W. Eaton <jwe@octave.org>
parents: 15745
diff changeset
18 along with Octave; see the file COPYING. If not, see
24534
194eb4bd202b maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents: 23795
diff changeset
19 <https://www.gnu.org/licenses/>.
15746
da26f72408a7 update copyright statements in newly added java files
John W. Eaton <jwe@octave.org>
parents: 15745
diff changeset
20
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
21 */
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
22
20791
f7084eae3318 maint: Use Octave coding conventions for #if statements.
Rik <rik@octave.org>
parents: 20468
diff changeset
23 #if ! defined (octave_ov_java_h)
17822
ebb3ef964372 maint: Use common #define syntax "octave_filename_h" in h_files.
Rik <rik@octave.org>
parents: 17744
diff changeset
24 #define octave_ov_java_h 1
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
25
21244
1473547f50f5 include octave-config.h in public header files
John W. Eaton <jwe@octave.org>
parents: 21139
diff changeset
26 #include "octave-config.h"
1473547f50f5 include octave-config.h in public header files
John W. Eaton <jwe@octave.org>
parents: 21139
diff changeset
27
23462
314d980bee93 maint: Add '#include "XXX.h"' to XXX.cc files.
Rik <rik@octave.org>
parents: 23457
diff changeset
28 #include "ov.h"
314d980bee93 maint: Add '#include "XXX.h"' to XXX.cc files.
Rik <rik@octave.org>
parents: 23457
diff changeset
29 #include "ovl.h"
15747
4be890c5527c * __java__.cc, __java__.h: Clean up lists of include files.
John W. Eaton <jwe@octave.org>
parents: 15746
diff changeset
30
24540
46440078d73b don't use singleton for octave_value_typeinfo
John W. Eaton <jwe@octave.org>
parents: 24534
diff changeset
31 namespace octave
46440078d73b don't use singleton for octave_value_typeinfo
John W. Eaton <jwe@octave.org>
parents: 24534
diff changeset
32 {
46440078d73b don't use singleton for octave_value_typeinfo
John W. Eaton <jwe@octave.org>
parents: 24534
diff changeset
33 class type_info;
46440078d73b don't use singleton for octave_value_typeinfo
John W. Eaton <jwe@octave.org>
parents: 24534
diff changeset
34 }
46440078d73b don't use singleton for octave_value_typeinfo
John W. Eaton <jwe@octave.org>
parents: 24534
diff changeset
35
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
36 typedef void *voidptr;
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
37
15837
fe2cefaa772b Replace JAVAPKG_API with OCTINTERP_API
Michael Goffioul <michael.goffioul@gmail.com>
parents: 15824
diff changeset
38 class OCTINTERP_API octave_java : public octave_base_value
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
39 {
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
40 public:
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
41
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
42 octave_java (void);
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
43
23457
21baad6b35c4 maint: Use C++11 nullptr rather than 0 or NULL when possible.
Rik <rik@octave.org>
parents: 23449
diff changeset
44 octave_java (const voidptr& obj, void *cls = nullptr);
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
45
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
46 octave_java (const octave_java& jobj)
23795
980f39c3ab90 Use C++11 nullptr rather than 0 in code (bug #51565).
Rik <rik@octave.org>
parents: 23584
diff changeset
47 : octave_base_value (jobj), java_object (nullptr), java_class (nullptr)
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
48 {
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
49 init (jobj.java_object, jobj.java_class);
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
50 }
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
51
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
52 ~octave_java (void) { release (); }
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
53
23446
cd4e1ee28716 maint: Use convention 'void * fcn ()' for functions which return pointers.
Rik <rik@octave.org>
parents: 23220
diff changeset
54 void * to_java (void) const { return java_object; }
cd4e1ee28716 maint: Use convention 'void * fcn ()' for functions which return pointers.
Rik <rik@octave.org>
parents: 23220
diff changeset
55 void * to_class (void) const { return java_class; }
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
56
15813
10d6ab9b1b4f Implement octave_value function class_name() for class "octave_java"
Rik <rik@octave.org>
parents: 15800
diff changeset
57 std::string java_class_name (void) const { return java_classname; }
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
58
23449
c763214a8260 maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents: 23446
diff changeset
59 octave_base_value * clone (void) const { return new octave_java (*this); }
c763214a8260 maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents: 23446
diff changeset
60 octave_base_value * empty_clone (void) const { return new octave_java (); }
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
61
20028
107130a0490c isa: check parent class of java objects (bug #42702)
Carnë Draug <carandraug@octave.org>
parents: 19598
diff changeset
62 bool is_instance_of (const std::string&) const;
107130a0490c isa: check parent class of java objects (bug #42702)
Carnë Draug <carandraug@octave.org>
parents: 19598
diff changeset
63
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
64 bool is_defined (void) const { return true; }
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
65
20046
d7b1999f0554 Second fix for exist() should return 1 for java objects (bug #44764).
Rik <rik@octave.org>
parents: 20043
diff changeset
66 bool is_constant (void) const { return true; }
20043
302e48c2de5d exist() should return 1 for java objects (bug #44764).
Rik <rik@octave.org>
parents: 20028
diff changeset
67
23584
7ed6b258db91 maint: Deprecate is_map and replace with isstruct.
Rik <rik@octave.org>
parents: 23578
diff changeset
68 bool isstruct (void) const { return false; }
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
69
23578
7b47b7c2d6c7 maint: Deprecate is_java and replace with isjava.
Rik <rik@octave.org>
parents: 23462
diff changeset
70 bool isjava (void) const { return true; }
15770
e61405133a76 Add new isjava function.
Rik <rik@octave.org>
parents: 15752
diff changeset
71
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
72 string_vector map_keys (void) const;
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
73
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
74 dim_vector dims (void) const;
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
75
18416
bcd71a2531d3 Support disp/display overloading in classdef
Michael Goffioul <michael.goffioul@gmail.com>
parents: 17822
diff changeset
76 void print (std::ostream& os, bool pr_as_read_syntax = false);
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
77
15858
fb756e8d6620 Silence compilation warning in ov-java.h.
Rik <rik@octave.org>
parents: 15837
diff changeset
78 void print_raw (std::ostream& os, bool pr_as_read_syntax = false) const;
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
79
20441
b22528fd3deb Add placeholder functions for save_ascii, save_binary for octave_java (bug #45694).
Rik <rik@octave.org>
parents: 20121
diff changeset
80 bool save_ascii (std::ostream& os);
b22528fd3deb Add placeholder functions for save_ascii, save_binary for octave_java (bug #45694).
Rik <rik@octave.org>
parents: 20121
diff changeset
81
b22528fd3deb Add placeholder functions for save_ascii, save_binary for octave_java (bug #45694).
Rik <rik@octave.org>
parents: 20121
diff changeset
82 bool load_ascii (std::istream& is);
b22528fd3deb Add placeholder functions for save_ascii, save_binary for octave_java (bug #45694).
Rik <rik@octave.org>
parents: 20121
diff changeset
83
b22528fd3deb Add placeholder functions for save_ascii, save_binary for octave_java (bug #45694).
Rik <rik@octave.org>
parents: 20121
diff changeset
84 bool save_binary (std::ostream& os, bool& save_as_floats);
b22528fd3deb Add placeholder functions for save_ascii, save_binary for octave_java (bug #45694).
Rik <rik@octave.org>
parents: 20121
diff changeset
85
b22528fd3deb Add placeholder functions for save_ascii, save_binary for octave_java (bug #45694).
Rik <rik@octave.org>
parents: 20121
diff changeset
86 bool load_binary (std::istream& is, bool swap,
21739
c4ab2e54f100 use namespace for oct_mach_info class
John W. Eaton <jwe@octave.org>
parents: 21379
diff changeset
87 octave::mach_info::float_format fmt);
20441
b22528fd3deb Add placeholder functions for save_ascii, save_binary for octave_java (bug #45694).
Rik <rik@octave.org>
parents: 20121
diff changeset
88
20468
2f94652de9ff Add placeholder functions for save_hdf5, load_hdf5 for octave_java functions.
Rik <rik@octave.org>
parents: 20441
diff changeset
89 bool save_hdf5 (octave_hdf5_id loc_id, const char *name,
2f94652de9ff Add placeholder functions for save_hdf5, load_hdf5 for octave_java functions.
Rik <rik@octave.org>
parents: 20441
diff changeset
90 bool save_as_floats);
2f94652de9ff Add placeholder functions for save_hdf5, load_hdf5 for octave_java functions.
Rik <rik@octave.org>
parents: 20441
diff changeset
91
2f94652de9ff Add placeholder functions for save_hdf5, load_hdf5 for octave_java functions.
Rik <rik@octave.org>
parents: 20441
diff changeset
92 bool load_hdf5 (octave_hdf5_id loc_id, const char *name);
2f94652de9ff Add placeholder functions for save_hdf5, load_hdf5 for octave_java functions.
Rik <rik@octave.org>
parents: 20441
diff changeset
93
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
94 octave_value_list
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
95 subsref (const std::string& type,
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
96 const std::list<octave_value_list>& idx, int nargout);
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
97
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
98 octave_value
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
99 subsref (const std::string& type, const std::list<octave_value_list>& idx)
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
100 {
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
101 octave_value_list retval = subsref (type, idx, 1);
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
102 return (retval.length () > 0 ? retval(0) : octave_value ());
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
103 }
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
104
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
105 octave_value subsasgn (const std::string& type,
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
106 const std::list<octave_value_list>& idx,
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
107 const octave_value& rhs);
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
108
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
109 octave_value convert_to_str_internal (bool pad, bool force, char type) const;
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
110
15824
abc9e5f3c661 Return correct value for ischar() predicate test on octave_java objects.
Rik <rik@octave.org>
parents: 15813
diff changeset
111 bool is_java_string (void) const;
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
112
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
113 octave_value do_javaMethod (void *jni_env, const std::string& name,
15790
921912c92102 Deprecate java_invoke, replace with javaMethod.
Rik <rik@octave.org>
parents: 15770
diff changeset
114 const octave_value_list& args);
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
115
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
116 octave_value
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
117 do_javaMethod (const std::string& name, const octave_value_list& args);
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
118
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
119 static octave_value
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
120 do_javaMethod (void *jni_env, const std::string& class_name,
15790
921912c92102 Deprecate java_invoke, replace with javaMethod.
Rik <rik@octave.org>
parents: 15770
diff changeset
121 const std::string& name, const octave_value_list& args);
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
122
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
123 static octave_value
15790
921912c92102 Deprecate java_invoke, replace with javaMethod.
Rik <rik@octave.org>
parents: 15770
diff changeset
124 do_javaMethod (const std::string& class_name, const std::string& name,
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
125 const octave_value_list& args);
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
126
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
127 static octave_value
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
128 do_javaObject (void *jni_env, const std::string& name,
15790
921912c92102 Deprecate java_invoke, replace with javaMethod.
Rik <rik@octave.org>
parents: 15770
diff changeset
129 const octave_value_list& args);
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
130
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
131 static octave_value
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
132 do_javaObject (const std::string& name, const octave_value_list& args);
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
133
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
134 octave_value do_java_get (void *jni_env, const std::string& name);
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
135
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
136 octave_value do_java_get (const std::string& name);
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
137
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
138 static octave_value
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
139 do_java_get (void *jni_env, const std::string& class_name,
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
140 const std::string& name);
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
141
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
142 static octave_value
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
143 do_java_get (const std::string& class_name, const std::string& name);
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
144
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
145 octave_value do_java_set (void *jni_env, const std::string& name,
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
146 const octave_value& val);
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
147
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
148 octave_value do_java_set (const std::string& name, const octave_value& val);
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
149
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
150 static octave_value
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
151 do_java_set (void *jni_env, const std::string& class_name,
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
152 const std::string& name, const octave_value& val);
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
153
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
154 static octave_value
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
155 do_java_set (const std::string& class_name, const std::string& name,
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
156 const octave_value& val);
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
157
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
158 private:
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
159
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
160 void init (void *jobj, void *jcls);
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
161
21042
0967e2393386 * ov-java.h, ov-java.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 20940
diff changeset
162 void release (void);
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
163
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
164 private:
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
165
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
166 void *java_object;
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
167
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
168 void *java_class;
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
169
15813
10d6ab9b1b4f Implement octave_value function class_name() for class "octave_java"
Rik <rik@octave.org>
parents: 15800
diff changeset
170 std::string java_classname;
10d6ab9b1b4f Implement octave_value function class_name() for class "octave_java"
Rik <rik@octave.org>
parents: 15800
diff changeset
171
21042
0967e2393386 * ov-java.h, ov-java.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 20940
diff changeset
172 public:
15813
10d6ab9b1b4f Implement octave_value function class_name() for class "octave_java"
Rik <rik@octave.org>
parents: 15800
diff changeset
173
10d6ab9b1b4f Implement octave_value function class_name() for class "octave_java"
Rik <rik@octave.org>
parents: 15800
diff changeset
174 int type_id (void) const { return t_id; }
10d6ab9b1b4f Implement octave_value function class_name() for class "octave_java"
Rik <rik@octave.org>
parents: 15800
diff changeset
175 std::string type_name (void) const { return t_name; }
10d6ab9b1b4f Implement octave_value function class_name() for class "octave_java"
Rik <rik@octave.org>
parents: 15800
diff changeset
176 std::string class_name (void) const { return java_classname; }
10d6ab9b1b4f Implement octave_value function class_name() for class "octave_java"
Rik <rik@octave.org>
parents: 15800
diff changeset
177
10d6ab9b1b4f Implement octave_value function class_name() for class "octave_java"
Rik <rik@octave.org>
parents: 15800
diff changeset
178 static int static_type_id (void) { return t_id; }
10d6ab9b1b4f Implement octave_value function class_name() for class "octave_java"
Rik <rik@octave.org>
parents: 15800
diff changeset
179 static std::string static_type_name (void) { return t_name; }
10d6ab9b1b4f Implement octave_value function class_name() for class "octave_java"
Rik <rik@octave.org>
parents: 15800
diff changeset
180 static std::string static_class_name (void) { return "<unknown>"; }
24540
46440078d73b don't use singleton for octave_value_typeinfo
John W. Eaton <jwe@octave.org>
parents: 24534
diff changeset
181 static void register_type (octave::type_info&);
15813
10d6ab9b1b4f Implement octave_value function class_name() for class "octave_java"
Rik <rik@octave.org>
parents: 15800
diff changeset
182
10d6ab9b1b4f Implement octave_value function class_name() for class "octave_java"
Rik <rik@octave.org>
parents: 15800
diff changeset
183 private:
21042
0967e2393386 * ov-java.h, ov-java.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 20940
diff changeset
184
15813
10d6ab9b1b4f Implement octave_value function class_name() for class "octave_java"
Rik <rik@octave.org>
parents: 15800
diff changeset
185 static int t_id;
10d6ab9b1b4f Implement octave_value function class_name() for class "octave_java"
Rik <rik@octave.org>
parents: 15800
diff changeset
186 static const std::string t_name;
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
187 };
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
188
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
189 extern OCTINTERP_API bool Vjava_matrix_autoconversion;
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
190
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
191 extern OCTINTERP_API bool Vjava_unsigned_autoconversion;
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
192
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
193 extern OCTINTERP_API bool Vdebug_java;
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
194
15752
f96faf028d90 make java functions part of core octave_value classes
John W. Eaton <jwe@octave.org>
parents: 15747
diff changeset
195 #endif