Annotation of parser3/src/classes/nothing.C, revision 1.1
1.1 ! parser 1: /** @file
! 2: Parser: @b nothing parser class.
! 3:
! 4: Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com)
! 5:
! 6: Author: Alexander Petrosyan <paf@design.ru> (http://design.ru/paf)
! 7:
! 8: $Id: nothing.C,v 1.7 2001/05/11 17:45:10 parser Exp $
! 9: */
! 10:
! 11: #include "classes.h"
! 12: #include "pa_request.h"
! 13: #include "pa_vint.h"
! 14: #include "pa_vdouble.h"
! 15: #include "pa_vunknown.h"
! 16:
! 17: // defines
! 18:
! 19: #define NOTHING_CLASS_NAME "nothing"
! 20:
! 21: // class
! 22:
! 23: class MNothing : public Methoded {
! 24: public:
! 25: MNothing(Pool& pool);
! 26: public: // Methoded
! 27: bool used_directly() { return false; }
! 28: };
! 29:
! 30: // methods
! 31:
! 32: static void _int(Request& r, const String&, MethodParams *) {
! 33: Pool& pool=r.pool();
! 34: VInt *vunknown=static_cast<VInt *>(r.self);
! 35: Value& value=*new(pool) VInt(pool, vunknown->as_int());
! 36: r.write_no_lang(value);
! 37: }
! 38:
! 39: static void _double(Request& r, const String&, MethodParams *) {
! 40: Pool& pool=r.pool();
! 41: VInt *vunknown=static_cast<VInt *>(r.self);
! 42: Value& value=*new(pool) VDouble(pool, vunknown->as_double());
! 43: r.write_no_lang(value);
! 44: }
! 45:
! 46: // constructor
! 47:
! 48: MNothing::MNothing(Pool& apool) : Methoded(apool) {
! 49: set_name(*NEW String(pool(), NOTHING_CLASS_NAME));
! 50:
! 51:
! 52: // ^nothing.int[]
! 53: add_native_method("int", Method::CT_DYNAMIC, _int, 0, 0);
! 54:
! 55: // ^nothing.double[]
! 56: add_native_method("double", Method::CT_DYNAMIC, _double, 0, 0);
! 57: }
! 58:
! 59: // global variable
! 60:
! 61: Methoded *unknown_class;
! 62:
! 63: // creator
! 64:
! 65: Methoded *MNothing_create(Pool& pool) {
! 66: return unknown_class=new(pool) MNothing(pool);
! 67: }
E-mail: