Mercurial > hg > what-is-octave
annotate PoliMI2012/examples/myobject.h @ 8:50abddcc3409 default tip
Presentation delivered by cdf at OctConf 2013.
author | Carlo de Falco <cdf@users.sourceforge.net> |
---|---|
date | Mon, 22 Jul 2013 21:54:27 +0200 |
parents | 0a1567794b40 |
children |
rev | line source |
---|---|
4
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
1 // Copyright (C) 2012 Carlo de Falco <carlo.defalco@gmail.com> |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
2 // |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
3 // This program is free software; you can redistribute it and/or modify it under |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
4 // the terms of the GNU General Public License as published by the Free Software |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
5 // Foundation; either version 3 of the License, or (at your option) any later |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
6 // version. |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
7 // |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
8 // This program is distributed in the hope that it will be useful, but WITHOUT |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
9 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
10 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
11 // details. |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
12 // |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
13 // You should have received a copy of the GNU General Public License along with |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
14 // this program; if not, see <http://www.gnu.org/licenses/>. |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
15 |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
16 #include <octave/oct.h> |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
17 |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
18 class myobject : public octave_base_value |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
19 { |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
20 |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
21 public: |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
22 |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
23 // Constructor |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
24 myobject (const std::string _str = "", const int _intgr = 0, const double _dbl = 0.0) |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
25 : octave_base_value (), str (_str), intgr (_intgr), dbl (_dbl) { p_str = &str; } |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
26 |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
27 void print (std::ostream& os, bool pr_as_read_syntax = false) const |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
28 { os << "str : " << str << std::endl |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
29 << "intgr : " << intgr << std::endl |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
30 << "dbl : " << dbl << std::endl; } |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
31 |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
32 ~myobject(void) { }; |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
33 |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
34 bool is_defined (void) const { return true; } |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
35 |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
36 const std::string & get_str (void) const; |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
37 const int & get_intgr (void) const; |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
38 const double & get_dbl (void) const; |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
39 |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
40 std::string * p_str; |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
41 |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
42 void set_str (std::string & str); |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
43 void set_intgr (int & intgr); |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
44 void set_dbl (double & dbl); |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
45 |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
46 private: |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
47 |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
48 std::string str; |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
49 int intgr; |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
50 double dbl; |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
51 DECLARE_OCTAVE_ALLOCATOR; |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
52 DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA; |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
53 |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
54 }; |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
55 |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
56 DEFINE_OCTAVE_ALLOCATOR (myobject); |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
57 DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA (myobject, "myobject", "myobject"); |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
58 |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
59 static bool myobject_type_loaded = false; |