annotate libinterp/octave-value/ov-java.h @ 29358:0a5b15007766 stable

update Octave Project Developers copyright for the new year In files that have the "Octave Project Developers" copyright notice, update for 2021.
author John W. Eaton <jwe@octave.org>
date Wed, 10 Feb 2021 09:52:15 -0500
parents bd51beb6205e
children 939bef0b66e0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
1 ////////////////////////////////////////////////////////////////////////
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
2 //
29358
0a5b15007766 update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
3 // Copyright (C) 2007-2021 The Octave Project Developers
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
4 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
5 // See the file COPYRIGHT.md in the top-level directory of this
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
6 // distribution or <https://octave.org/copyright/>.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
7 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
8 // This file is part of Octave.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
9 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
10 // Octave is free software: you can redistribute it and/or modify it
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
11 // under the terms of the GNU General Public License as published by
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
12 // the Free Software Foundation, either version 3 of the License, or
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
13 // (at your option) any later version.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
14 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
15 // Octave is distributed in the hope that it will be useful, but
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
16 // WITHOUT ANY WARRANTY; without even the implied warranty of
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
18 // GNU General Public License for more details.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
19 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
20 // You should have received a copy of the GNU General Public License
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
21 // along with Octave; see the file COPYING. If not, see
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
22 // <https://www.gnu.org/licenses/>.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
23 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
24 ////////////////////////////////////////////////////////////////////////
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
25
20791
f7084eae3318 maint: Use Octave coding conventions for #if statements.
Rik <rik@octave.org>
parents: 20468
diff changeset
26 #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
27 #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
28
21244
1473547f50f5 include octave-config.h in public header files
John W. Eaton <jwe@octave.org>
parents: 21139
diff changeset
29 #include "octave-config.h"
1473547f50f5 include octave-config.h in public header files
John W. Eaton <jwe@octave.org>
parents: 21139
diff changeset
30
23462
314d980bee93 maint: Add '#include "XXX.h"' to XXX.cc files.
Rik <rik@octave.org>
parents: 23457
diff changeset
31 #include "ov.h"
314d980bee93 maint: Add '#include "XXX.h"' to XXX.cc files.
Rik <rik@octave.org>
parents: 23457
diff changeset
32 #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
33
24540
46440078d73b don't use singleton for octave_value_typeinfo
John W. Eaton <jwe@octave.org>
parents: 24534
diff changeset
34 namespace octave
46440078d73b don't use singleton for octave_value_typeinfo
John W. Eaton <jwe@octave.org>
parents: 24534
diff changeset
35 {
46440078d73b don't use singleton for octave_value_typeinfo
John W. Eaton <jwe@octave.org>
parents: 24534
diff changeset
36 class type_info;
46440078d73b don't use singleton for octave_value_typeinfo
John W. Eaton <jwe@octave.org>
parents: 24534
diff changeset
37 }
46440078d73b don't use singleton for octave_value_typeinfo
John W. Eaton <jwe@octave.org>
parents: 24534
diff changeset
38
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
39 typedef void *voidptr;
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
40
15837
fe2cefaa772b Replace JAVAPKG_API with OCTINTERP_API
Michael Goffioul <michael.goffioul@gmail.com>
parents: 15824
diff changeset
41 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
42 {
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
43 public:
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
44
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
45 octave_java (void);
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
46
23457
21baad6b35c4 maint: Use C++11 nullptr rather than 0 or NULL when possible.
Rik <rik@octave.org>
parents: 23449
diff changeset
47 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
48
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
49 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
50 : 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
51 {
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
52 init (jobj.java_object, jobj.java_class);
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
53 }
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
54
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
55 ~octave_java (void) { release (); }
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
56
23446
cd4e1ee28716 maint: Use convention 'void * fcn ()' for functions which return pointers.
Rik <rik@octave.org>
parents: 23220
diff changeset
57 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
58 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
59
15813
10d6ab9b1b4f Implement octave_value function class_name() for class "octave_java"
Rik <rik@octave.org>
parents: 15800
diff changeset
60 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
61
23449
c763214a8260 maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents: 23446
diff changeset
62 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
63 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
64
20028
107130a0490c isa: check parent class of java objects (bug #42702)
Carnë Draug <carandraug@octave.org>
parents: 19598
diff changeset
65 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
66
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
67 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
68
20046
d7b1999f0554 Second fix for exist() should return 1 for java objects (bug #44764).
Rik <rik@octave.org>
parents: 20043
diff changeset
69 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
70
23584
7ed6b258db91 maint: Deprecate is_map and replace with isstruct.
Rik <rik@octave.org>
parents: 23578
diff changeset
71 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
72
23578
7b47b7c2d6c7 maint: Deprecate is_java and replace with isjava.
Rik <rik@octave.org>
parents: 23462
diff changeset
73 bool isjava (void) const { return true; }
15770
e61405133a76 Add new isjava function.
Rik <rik@octave.org>
parents: 15752
diff changeset
74
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
75 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
76
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
77 dim_vector dims (void) const;
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
78
18416
bcd71a2531d3 Support disp/display overloading in classdef
Michael Goffioul <michael.goffioul@gmail.com>
parents: 17822
diff changeset
79 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
80
15858
fb756e8d6620 Silence compilation warning in ov-java.h.
Rik <rik@octave.org>
parents: 15837
diff changeset
81 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
82
20441
b22528fd3deb Add placeholder functions for save_ascii, save_binary for octave_java (bug #45694).
Rik <rik@octave.org>
parents: 20121
diff changeset
83 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
84
b22528fd3deb Add placeholder functions for save_ascii, save_binary for octave_java (bug #45694).
Rik <rik@octave.org>
parents: 20121
diff changeset
85 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
86
26399
586413770c7f pass save_as_floats by value in octave_value save_binary functions
John W. Eaton <jwe@octave.org>
parents: 26376
diff changeset
87 bool save_binary (std::ostream& os, bool save_as_floats);
20441
b22528fd3deb Add placeholder functions for save_ascii, save_binary for octave_java (bug #45694).
Rik <rik@octave.org>
parents: 20121
diff changeset
88
b22528fd3deb Add placeholder functions for save_ascii, save_binary for octave_java (bug #45694).
Rik <rik@octave.org>
parents: 20121
diff changeset
89 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
90 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
91
20468
2f94652de9ff Add placeholder functions for save_hdf5, load_hdf5 for octave_java functions.
Rik <rik@octave.org>
parents: 20441
diff changeset
92 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
93 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
94
2f94652de9ff Add placeholder functions for save_hdf5, load_hdf5 for octave_java functions.
Rik <rik@octave.org>
parents: 20441
diff changeset
95 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
96
26916
9cd4b045fe3d avoid some overloaded virtual warnings (bug #55741)
John W. Eaton <jwe@octave.org>
parents: 26399
diff changeset
97 // We don't need to override all three forms of subsref. The using
9cd4b045fe3d avoid some overloaded virtual warnings (bug #55741)
John W. Eaton <jwe@octave.org>
parents: 26399
diff changeset
98 // declaration will avoid warnings about partially-overloaded virtual
9cd4b045fe3d avoid some overloaded virtual warnings (bug #55741)
John W. Eaton <jwe@octave.org>
parents: 26399
diff changeset
99 // functions.
9cd4b045fe3d avoid some overloaded virtual warnings (bug #55741)
John W. Eaton <jwe@octave.org>
parents: 26399
diff changeset
100 using octave_base_value::subsref;
9cd4b045fe3d avoid some overloaded virtual warnings (bug #55741)
John W. Eaton <jwe@octave.org>
parents: 26399
diff changeset
101
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
102 octave_value_list
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
103 subsref (const std::string& type,
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
104 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
105
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
106 octave_value
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
107 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
108 {
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
109 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
110 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
111 }
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
112
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
113 octave_value subsasgn (const std::string& type,
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
114 const std::list<octave_value_list>& idx,
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
115 const octave_value& rhs);
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
116
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
117 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
118
15824
abc9e5f3c661 Return correct value for ischar() predicate test on octave_java objects.
Rik <rik@octave.org>
parents: 15813
diff changeset
119 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
120
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
121 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
122 const octave_value_list& args);
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
123
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
124 octave_value
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
125 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
126
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_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
129 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
130
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
131 static octave_value
15790
921912c92102 Deprecate java_invoke, replace with javaMethod.
Rik <rik@octave.org>
parents: 15770
diff changeset
132 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
133 const octave_value_list& args);
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
134
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
135 static octave_value
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
136 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
137 const octave_value_list& args);
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
138
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
139 static octave_value
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
140 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
141
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
142 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
143
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
144 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
145
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
146 static octave_value
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
147 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
148 const std::string& name);
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
149
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_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
152
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
153 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
154 const octave_value& val);
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
155
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
156 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
157
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
158 static octave_value
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
159 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
160 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
161
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
162 static octave_value
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
163 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
164 const octave_value& val);
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
165
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
166 private:
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 init (void *jobj, void *jcls);
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
169
21042
0967e2393386 * ov-java.h, ov-java.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 20940
diff changeset
170 void release (void);
15625
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
171
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
172 private:
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
173
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
174 void *java_object;
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
175
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
176 void *java_class;
15745
19850dfc2f88 * __java__.h, __java__.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 15744
diff changeset
177
15813
10d6ab9b1b4f Implement octave_value function class_name() for class "octave_java"
Rik <rik@octave.org>
parents: 15800
diff changeset
178 std::string java_classname;
10d6ab9b1b4f Implement octave_value function class_name() for class "octave_java"
Rik <rik@octave.org>
parents: 15800
diff changeset
179
21042
0967e2393386 * ov-java.h, ov-java.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 20940
diff changeset
180 public:
15813
10d6ab9b1b4f Implement octave_value function class_name() for class "octave_java"
Rik <rik@octave.org>
parents: 15800
diff changeset
181
10d6ab9b1b4f Implement octave_value function class_name() for class "octave_java"
Rik <rik@octave.org>
parents: 15800
diff changeset
182 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
183 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
184 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
185
10d6ab9b1b4f Implement octave_value function class_name() for class "octave_java"
Rik <rik@octave.org>
parents: 15800
diff changeset
186 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
187 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
188 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
189 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
190
10d6ab9b1b4f Implement octave_value function class_name() for class "octave_java"
Rik <rik@octave.org>
parents: 15800
diff changeset
191 private:
21042
0967e2393386 * ov-java.h, ov-java.cc: Style fixes.
John W. Eaton <jwe@octave.org>
parents: 20940
diff changeset
192
15813
10d6ab9b1b4f Implement octave_value function class_name() for class "octave_java"
Rik <rik@octave.org>
parents: 15800
diff changeset
193 static int t_id;
10d6ab9b1b4f Implement octave_value function class_name() for class "octave_java"
Rik <rik@octave.org>
parents: 15800
diff changeset
194 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
195 };
acf0addfc610 include Octave Forge java package in core Octave
John W. Eaton <jwe@octave.org>
parents:
diff changeset
196
21379
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
197 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
198
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
199 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
200
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
201 extern OCTINTERP_API bool Vdebug_java;
93c489ca8a6b elimnate HAVE_JAVA from ov-java.h
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
202
15752
f96faf028d90 make java functions part of core octave_value classes
John W. Eaton <jwe@octave.org>
parents: 15747
diff changeset
203 #endif