--- parser3/src/include/pa_request.h 2001/01/30 13:07:31 1.4 +++ parser3/src/include/pa_request.h 2001/02/21 16:11:49 1.6 @@ -1,5 +1,5 @@ /* - $Id: pa_request.h,v 1.4 2001/01/30 13:07:31 paf Exp $ + $Id: pa_request.h,v 1.6 2001/02/21 16:11:49 paf Exp $ */ #ifndef PA_REQUEST_H @@ -7,6 +7,9 @@ #include "pa_pool.h" #include "pa_exception.h" +#include "pa_hash.h" +#include "pa_context.h" +#include "pa_value.h" class Local_request_exception; @@ -14,12 +17,36 @@ class Request { friend Local_request_exception; public: - Request(Pool& apool) : fpool(apool) {} + Request(Pool& apool, + Value *aroot, Value *aself, Value *arcontext, WContext *awcontext) : + fpool(apool), + root(aroot), self(aself), rcontext(arcontext), wcontext(awcontext), + fclasses(apool) + { + } ~Request() {} + // IMPORTANT: don't use pool without Local_request_exception Pool& pool() { return fpool; } Exception& exception() { return *fexception; } + Hash& classes() { return fclasses; } + + // core request processing + void core(); + +protected: // core + + // classes + Hash fclasses; + + // contexts + Value *root, *self, *rcontext; + WContext *wcontext; + + Array& load_and_compile_RUN(); + VClass *construct_class(String& name, Array& compiled_methods); + char *execute_MAIN(Value *class_RUN); protected: