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: