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: