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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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;