Annotation of parser3/src/doc/ClassExample2.dox, revision 1.2
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: // all: for error reporting after fail(), etc
16: const char *type() const { return "example2"; }
17:
18: // VEnv: field
19: Value *get_element(const String& aname) {
1.2 ! paf 20: // показания датчика
! 21: double temperature=25;
1.1 paf 22: return NEW VDouble(temperature);
23: }
24:
25: public: // usage
26:
27: VExample2(Pool& apool) : Value(apool) {
28: }
29:
30: };
31: @endcode
32:
1.2 ! paf 33: Зарегистрируйте ваш класс в Request::classes(), добавив в конструктор Request [файл pa_request.C]:
1.1 paf 34:
1.2 ! paf 35: @code
! 36: /// methodless
! 37: // example2 class
! 38: classes().put(*NEW String(pool(), EXAMPLE2_CLASS_NAME), &example2);
! 39: @endcode
1.1 paf 40:
41: */
E-mail: