File:  [parser3project] / parser3 / src / doc / ClassExample2.dox
Revision 1.4: download - view: text, annotated - select for diffs - revision graph
Wed Apr 17 14:26:12 2002 UTC (24 years, 2 months ago) by paf
Branches: MAIN
CVS tags: release_3_1_2, release_3_1_1, release_3_1_0, release_3_0_8, release_3_0_0007, release_3_0_0006, release_3_0_0005, release_3_0_0004, release_3_0_0003, release_3_0_0002, release_1_0_0001, HEAD
dox updated to current state, PTHROW freshen to throw & co

/**	@page ClassExample2  Пример создания простого класса (только поля)

Чтобы создать свой класс, не содержащий методов[таков, например, env; см. VEnv], 
следует создать потомка Value, в котором переопределить Value::type,
а также Value::get_element и/или Value::put_element.

Файл pa_vexample2.h в каталоге types/:
@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) {
		// показания датчика
		double temperature=25;
		return NEW VDouble(temperature);
	}

public: // usage

	VExample2(Pool& apool) : Value(apool) {
	}

};
@endcode

Зарегистрируйте ваш класс в Request::classes(), добавив в конструктор Request [файл pa_request.C]:

@code
	/// methodless
	// example2 class
	classes().put(*NEW String(pool(), EXAMPLE2_CLASS_NAME), &example2);
@endcode

Пользователь сможет считать температуру так:
@verbatim
$example2:test
@endverbatim

*/

E-mail: