File:
[parser3project] /
parser3 /
src /
doc /
ClassExample2.dox
Revision
1.5:
download - view:
text,
annotated -
select for diffs -
revision graph
Tue Mar 30 08:32:17 2004 UTC (22 years, 2 months ago) by
paf
Branches:
MAIN
CVS tags:
release_3_5_1,
release_3_5_0,
release_3_4_6,
release_3_4_5,
release_3_4_4,
release_3_4_3,
release_3_4_2,
release_3_4_1,
release_3_4_0,
release_3_3_0,
release_3_2_3,
release_3_2_2,
release_3_2_1,
release_3_2_0,
release_3_1_6,
release_3_1_5,
release_3_1_4,
release_3_1_3,
paf_left,
HEAD
merged bugfixes from 3.1.2, changed version to 3.1.3beta
/** @page ClassExample2 Sample of creating simple class (with fields only)
To create the class of your own, which does not contain methods [like 'env', see VEnv],
one need to create a derivate from Value, where override Value::type,
and also Value::get_element and/or Value::put_element.
File pa_vexample2.h in types/ directory:
@code
#define EXAMPLE2_CLASS_NAME "example2"
/// env class
class VExample2 : public Value {
public: // Value
const char *type() const { return "example2"; }
/// VEnv: field
Value *get_element(const String& aname) {
// device information
double temperature=25;
return NEW VDouble(temperature);
}
public: // usage
VExample2(Pool& apool) : Value(apool) {
}
};
@endcode
Register your class in Request::classes(), by adding it to Request constructor [in pa_request.C file]:
@code
/// methodless
// example2 class
classes().put(*NEW String(pool(), EXAMPLE2_CLASS_NAME), &example2);
@endcode
User could then read temperature like:
@verbatim
$example2:test
@endverbatim
*/
E-mail: