/* * Get a HTTP request header */ cchar *ejsGetHeader(Ejs *ejs, cchar *key) { EjsWeb *web; mprAssert(ejs); web = ejsGetHandle(ejs); mprAssert(web->control->getHeader); return web->control->getHeader(web->handle, key); }
/* * Get a variable from the web server. This is used to implement virtual properties */ EjsVar *ejsGetWebVar(Ejs *ejs, int collection, int field) { EjsWeb *web; mprAssert(ejs); web = ejsGetHandle(ejs); mprAssert(web->control->getVar); return web->control->getVar(web->handle, collection, field); }
void ejsSetCookie(Ejs *ejs, cchar *name, cchar *value, int lifetime, cchar *path, bool secure) { EjsWeb *web; mprAssert(ejs); web = ejsGetHandle(ejs); mprAssert(web->control->setCookie); web->control->setCookie(web->handle, name, value, lifetime, path, secure); }
void ejsSetHttpCode(Ejs *ejs, int code) { EjsWeb *web; mprAssert(ejs); web = ejsGetHandle(ejs); mprAssert(web->control->setHttpCode); web->control->setHttpCode(web->handle, code); }
int ejsMapToStorage(Ejs *ejs, char *path, int pathsize, cchar *url) { EjsWeb *web; // TODO - include files are not required anymore mprAssert(0); mprAssert(ejs); web = ejsGetHandle(ejs); mprAssert(web->control->mapToStorage); return web->control->mapToStorage(web->handle, path, pathsize, url); }
/* * Discard all generated output */ void ejsDiscardOutput(Ejs *ejs) { EjsWeb *web; mprAssert(ejs); web = ejsGetHandle(ejs); if (web->control->discardOutput) { web->control->discardOutput(web->handle); } }
int ejsWriteString(Ejs *ejs, cchar *buf) { EjsWeb *web; mprAssert(ejs); mprAssert(buf); web = ejsGetHandle(ejs); mprAssert(web->control->write); return web->control->write(web->handle, buf, (int) strlen(buf)); }
void ejsDefineParams(Ejs *ejs) { EjsWeb *web; mprAssert(ejs); web = ejsGetHandle(ejs); if (web->control->defineParams) { web->control->defineParams(web->handle); } }
void ejsRedirect(Ejs *ejs, int code, cchar *url) { EjsWeb *web; mprAssert(ejs); mprAssert(url); web = ejsGetHandle(ejs); mprAssert(web->control->redirect); web->control->redirect(web->handle, code, url); }
int ejsWriteBlock(Ejs *ejs, cchar *buf, int size) { EjsWeb *web; mprAssert(ejs); mprAssert(buf); mprAssert(size >= 0); web = ejsGetHandle(ejs); mprAssert(web->control->write); return web->control->write(web->handle, buf, size); }
int ejsReadFile(Ejs *ejs, char **buf, int *len, cchar *path) { EjsWeb *web; // TODO - what is this for? mprAssert(0); mprAssert(ejs); web = ejsGetHandle(ejs); mprAssert(web->control->readFile); return web->control->readFile(web->handle, buf, len, path); }
/* * Set a variable in the web server. This is used to implement virtual properties */ int ejsSetWebVar(Ejs *ejs, int collection, int field, EjsVar *value) { EjsWeb *web; mprAssert(ejs); web = ejsGetHandle(ejs); if (web->control->setVar == 0) { ejsThrowReferenceError(ejs, "Object is read-only"); return EJS_ERR; } mprAssert(web->control->setVar); return web->control->setVar(web->handle, collection, field, value); }
void ejsSetWebHeader(Ejs *ejs, bool allowMultiple, cchar *key, cchar *fmt, ...) { EjsWeb *web; char *value; va_list vargs; mprAssert(ejs); web = ejsGetHandle(ejs); mprAssert(web->control->setHeader); va_start(vargs, fmt); value = mprVasprintf(web, -1, fmt, vargs); web->control->setHeader(web->handle, allowMultiple, key, value); }
/* * Return an error to the client */ void ejsWebError(Ejs *ejs, int code, cchar *fmt, ...) { EjsWeb *web; va_list args; char *buf; mprAssert(ejs); mprAssert(fmt); va_start(args, fmt); mprAllocVsprintf(ejs, &buf, -1, fmt, args); web = ejsGetHandle(ejs); if (web->control->error) { web->control->error(web->handle, code, buf); } mprFree(buf); va_end(args); }
int ejsWrite(Ejs *ejs, cchar *fmt, ...) { EjsWeb *web; va_list args; char *buf; int rc, len; mprAssert(ejs); mprAssert(fmt); web = ejsGetHandle(ejs); mprAssert(web->control->write); va_start(args, fmt); len = mprAllocVsprintf(web, &buf, -1, fmt, args); rc = web->control->write(web->handle, buf, len); mprFree(buf); va_end(args); return rc; }
int ejsWrite(Ejs *ejs, cchar *fmt, ...) { EjsWeb *web; va_list args; char *buf; int rc; mprAssert(ejs); mprAssert(fmt); web = ejsGetHandle(ejs); mprAssert(web->control->write); va_start(args, fmt); buf = mprVasprintf(web, -1, fmt, args); rc = web->control->write(web->handle, buf, (int) strlen(buf)); mprFree(buf); va_end(args); return rc; }