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: