Annotation of parser3/src/doc/ClassExample2.dox, revision 1.4
1.2 paf 1: /** @page ClassExample2 Пример создания простого класса (только поля)
1.1 paf 2:
1.2 paf 3: Чтобы создать свой класс, не содержащий методов[таков, например, env; см. VEnv],
4: следует создать потомка Value, в котором переопределить Value::type,
5: а также Value::get_element и/или Value::put_element.
1.1 paf 6:
1.2 paf 7: Файл pa_vexample2.h в каталоге types/:
1.1 paf 8: @code
9: #define EXAMPLE2_CLASS_NAME "example2"
10:
11: /// env class
12: class VExample2 : public Value {
13: public: // Value
14:
15: const char *type() const { return "example2"; }
16:
1.3 paf 17: /// VEnv: field
1.1 paf 18: Value *get_element(const String& aname) {
1.2 paf 19: // показания датчика
20: double temperature=25;
1.1 paf 21: return NEW VDouble(temperature);
22: }
23:
24: public: // usage
25:
26: VExample2(Pool& apool) : Value(apool) {
27: }
28:
29: };
30: @endcode
31:
1.2 paf 32: Зарегистрируйте ваш класс в Request::classes(), добавив в конструктор Request [файл pa_request.C]:
1.1 paf 33:
1.2 paf 34: @code
35: /// methodless
36: // example2 class
37: classes().put(*NEW String(pool(), EXAMPLE2_CLASS_NAME), &example2);
38: @endcode
1.1 paf 39:
1.4 ! paf 40: Пользователь сможет считать температуру так:
! 41: @verbatim
! 42: $example2:test
! 43: @endverbatim
! 44:
1.1 paf 45: */
E-mail: