|
|
| version 1.2, 2001/05/07 13:29:54 | version 1.5, 2004/03/30 08:32:17 |
|---|---|
| Line 1 | Line 1 |
| /** @page ClassExample2 Пример создания простого класса (только поля) | /** @page ClassExample2 Sample of creating simple class (with fields only) |
| Чтобы создать свой класс, не содержащий методов[таков, например, env; см. VEnv], | To create the class of your own, which does not contain methods [like 'env', see VEnv], |
| следует создать потомка Value, в котором переопределить Value::type, | one need to create a derivate from Value, where override Value::type, |
| а также Value::get_element и/или Value::put_element. | and also Value::get_element and/or Value::put_element. |
| Файл pa_vexample2.h в каталоге types/: | File pa_vexample2.h in types/ directory: |
| @code | @code |
| #define EXAMPLE2_CLASS_NAME "example2" | #define EXAMPLE2_CLASS_NAME "example2" |
| Line 12 | Line 12 |
| class VExample2 : public Value { | class VExample2 : public Value { |
| public: // Value | public: // Value |
| // all: for error reporting after fail(), etc | |
| const char *type() const { return "example2"; } | const char *type() const { return "example2"; } |
| // VEnv: field | /// VEnv: field |
| Value *get_element(const String& aname) { | Value *get_element(const String& aname) { |
| // показания датчика | // device information |
| double temperature=25; | double temperature=25; |
| return NEW VDouble(temperature); | return NEW VDouble(temperature); |
| } | } |
| Line 30 public: // usage | Line 29 public: // usage |
| }; | }; |
| @endcode | @endcode |
| Зарегистрируйте ваш класс в Request::classes(), добавив в конструктор Request [файл pa_request.C]: | Register your class in Request::classes(), by adding it to Request constructor [in pa_request.C file]: |
| @code | @code |
| /// methodless | /// methodless |
| Line 38 public: // usage | Line 37 public: // usage |
| classes().put(*NEW String(pool(), EXAMPLE2_CLASS_NAME), &example2); | classes().put(*NEW String(pool(), EXAMPLE2_CLASS_NAME), &example2); |
| @endcode | @endcode |
| User could then read temperature like: | |
| @verbatim | |
| $example2:test | |
| @endverbatim | |
| */ | */ |