--- parser3/src/classes/file.C 2001/04/27 16:48:19 1.31.2.2 +++ parser3/src/classes/file.C 2001/06/28 07:44:17 1.38 @@ -5,8 +5,9 @@ Author: Alexander Petrosyan (http://design.ru/paf) - $Id: file.C,v 1.31.2.2 2001/04/27 16:48:19 paf Exp $ + $Id: file.C,v 1.38 2001/06/28 07:44:17 parser Exp $ */ +static const char *RCSId="$Id: file.C,v 1.38 2001/06/28 07:44:17 parser Exp $"; #include "classes.h" #include "pa_request.h" @@ -15,6 +16,8 @@ #include "pa_vint.h" #include "pa_exec.h" +// consts + // defines #define FILE_CLASS_NAME "file" @@ -22,9 +25,16 @@ // class class MFile : public Methoded { +public: // VStateless_class + + Value *create_new_value(Pool& pool) { return new(pool) VFile(pool); } + +public: // Methoded + bool used_directly() { return true; } + public: MFile(Pool& pool); - bool used_directly() { return true; } + }; // consts @@ -119,12 +129,7 @@ static void pass_cgi_header_attribute(Ar hash.put(string.mid(0, colon_pos), new(string.pool()) VString(string.mid(colon_pos+1, string.size()))); } -/** - ^exec[file-name] - ^exec[file-name;env hash] - ^exec[file-name;env hash;cmd;line;arg;s] - @todo fix `` in perl - they produced flipping consoles and no output to perl -*/ +/// @todo fix `` in perl - they produced flipping consoles and no output to perl static void _cgi(Request& r, const String& method_name, MethodParams *params) { Pool& pool=r.pool(); @@ -247,8 +252,8 @@ static void _cgi(Request& r, const Strin // constructor -MFile::MFile(Pool& pool) : Methoded(pool) { - set_name(NEW String(pool, FILE_CLASS_NAME)); +MFile::MFile(Pool& apool) : Methoded(apool) { + set_name(*NEW String(pool(), FILE_CLASS_NAME)); // ^save[file-name] @@ -268,9 +273,9 @@ MFile::MFile(Pool& pool) : Methoded(pool // ^stat[disk-name] add_native_method("stat", Method::CT_DYNAMIC, _stat, 1, 1); - // ^exec[file-name] - // ^exec[file-name;env hash] - // ^exec[file-name;env hash;1cmd;2line;3ar;4g;5s] + // ^cgi[file-name] + // ^cgi[file-name;env hash] + // ^cgi[file-name;env hash;1cmd;2line;3ar;4g;5s] add_native_method("cgi", Method::CT_DYNAMIC, _cgi, 1, 2+5); } @@ -281,5 +286,5 @@ Methoded *file_class; // creator Methoded *MFile_create(Pool& pool) { - return new(pool) MFile(pool); + return file_class=new(pool) MFile(pool); }