// --------------------------------------------------------------------------- // - Libnwg.cpp - // - afnix:nwg module - declaration & implementation - // --------------------------------------------------------------------------- // - This program is free software; you can redistribute it and/or modify - // - it provided that this copyright notice is kept intact. - // - - // - This program is distributed in the hope that it will be useful, but - // - without any warranty; without even the implied warranty of - // - merchantability or fitness for a particular purpose. In no event shall - // - the copyright holder be liable for any direct, indirect, incidental or - // - special damages arising in any way out of the use of this software. - // --------------------------------------------------------------------------- // - copyright (c) 1999-2007 amaury darsch - // --------------------------------------------------------------------------- #include "Uri.hpp" #include "Meta.hpp" #include "Cookie.hpp" #include "Libnwg.hpp" #include "Session.hpp" #include "Prednwg.hpp" #include "UriQuery.hpp" #include "NwgCalls.hpp" #include "Function.hpp" #include "HttpReply.hpp" #include "HttpRequest.hpp" #include "HttpResponse.hpp" namespace afnix { // initialize the afnix:nwg module Object* init_afnix_nwg (Interp* interp, Vector* argv) { // make sure we are not called from something crazy if (interp == nilp) return nilp; // create the afnix:nwg nameset Nameset* aset = interp->mknset ("afnix"); Nameset* gset = aset->mknset ("nwg"); // bind all symbols in the afnix:nwg nameset gset->symcst ("Uri", new Meta (Uri::mknew)); gset->symcst ("Cookie", new Meta (Cookie::mknew)); gset->symcst ("Session", new Meta (Session::mknew)); gset->symcst ("UriQuery", new Meta (UriQuery::mknew)); gset->symcst ("HttpReply", new Meta (HttpReply::mknew)); gset->symcst ("HttpRequest", new Meta (HttpRequest::mknew)); gset->symcst ("HttpResponse", new Meta (HttpResponse::mknew)); // bind the predicates gset->symcst ("uri-p", new Function (nwg_urip)); gset->symcst ("mime-p", new Function (nwg_mimep)); gset->symcst ("cookie-p", new Function (nwg_cookp)); gset->symcst ("session-p", new Function (nwg_sessp)); gset->symcst ("uri-query-p", new Function (nwg_uriqp)); gset->symcst ("http-reply-p", new Function (nwg_hrplyp)); gset->symcst ("http-request-p", new Function (nwg_hrqstp)); gset->symcst ("http-response-p", new Function (nwg_hrespp)); // bind other functions gset->symcst ("normalize-uri-name", new Function (nwg_nrmunm)); gset->symcst ("system-uri-name", new Function (nwg_sysunm)); // not used but needed return nilp; } } extern "C" { afnix::Object* dli_afnix_nwg (afnix::Interp* interp, afnix::Vector* argv) { return init_afnix_nwg (interp, argv); } }