New modules.
This commit is contained in:
+204
-1
@@ -3,16 +3,68 @@
|
||||
|
||||
#include "modules.h"
|
||||
|
||||
#include "base64.wren.inc"
|
||||
#include "crypto.wren.inc"
|
||||
#include "datetime.wren.inc"
|
||||
#include "dns.wren.inc"
|
||||
#include "env.wren.inc"
|
||||
#include "http.wren.inc"
|
||||
#include "io.wren.inc"
|
||||
#include "jinja.wren.inc"
|
||||
#include "json.wren.inc"
|
||||
#include "math.wren.inc"
|
||||
#include "net.wren.inc"
|
||||
#include "os.wren.inc"
|
||||
#include "regex.wren.inc"
|
||||
#include "repl.wren.inc"
|
||||
#include "scheduler.wren.inc"
|
||||
#include "signal.wren.inc"
|
||||
#include "sqlite.wren.inc"
|
||||
#include "subprocess.wren.inc"
|
||||
#include "timer.wren.inc"
|
||||
#include "tls.wren.inc"
|
||||
#include "websocket.wren.inc"
|
||||
|
||||
extern void base64Encode(WrenVM* vm);
|
||||
extern void base64Decode(WrenVM* vm);
|
||||
extern void cryptoRandomBytes(WrenVM* vm);
|
||||
extern void cryptoMd5(WrenVM* vm);
|
||||
extern void cryptoSha1(WrenVM* vm);
|
||||
extern void cryptoSha256(WrenVM* vm);
|
||||
extern void datetimeNow(WrenVM* vm);
|
||||
extern void datetimeFromTimestamp(WrenVM* vm);
|
||||
extern void datetimeFormat(WrenVM* vm);
|
||||
extern void datetimeComponent(WrenVM* vm);
|
||||
extern void dnsLookup(WrenVM* vm);
|
||||
extern void directoryList(WrenVM* vm);
|
||||
extern void directoryCreate(WrenVM* vm);
|
||||
extern void directoryDelete(WrenVM* vm);
|
||||
extern void envGet(WrenVM* vm);
|
||||
extern void envSet(WrenVM* vm);
|
||||
extern void envDelete(WrenVM* vm);
|
||||
extern void envAll(WrenVM* vm);
|
||||
extern void jsonParse(WrenVM* vm);
|
||||
extern void mathSin(WrenVM* vm);
|
||||
extern void mathCos(WrenVM* vm);
|
||||
extern void mathTan(WrenVM* vm);
|
||||
extern void mathAsin(WrenVM* vm);
|
||||
extern void mathAcos(WrenVM* vm);
|
||||
extern void mathAtan(WrenVM* vm);
|
||||
extern void mathAtan2(WrenVM* vm);
|
||||
extern void mathSinh(WrenVM* vm);
|
||||
extern void mathCosh(WrenVM* vm);
|
||||
extern void mathTanh(WrenVM* vm);
|
||||
extern void mathLog(WrenVM* vm);
|
||||
extern void mathLog10(WrenVM* vm);
|
||||
extern void mathLog2(WrenVM* vm);
|
||||
extern void mathExp(WrenVM* vm);
|
||||
extern void mathPow(WrenVM* vm);
|
||||
extern void mathSqrt(WrenVM* vm);
|
||||
extern void mathCbrt(WrenVM* vm);
|
||||
extern void mathCeil(WrenVM* vm);
|
||||
extern void mathFloor(WrenVM* vm);
|
||||
extern void mathRound(WrenVM* vm);
|
||||
extern void mathAbs(WrenVM* vm);
|
||||
extern void fileAllocate(WrenVM* vm);
|
||||
extern void fileFinalize(void* data);
|
||||
extern void fileDelete(WrenVM* vm);
|
||||
@@ -68,6 +120,35 @@ extern void serverFinalize(void* data);
|
||||
extern void serverBind(WrenVM* vm);
|
||||
extern void serverAccept(WrenVM* vm);
|
||||
extern void serverClose(WrenVM* vm);
|
||||
extern void signalTrap(WrenVM* vm);
|
||||
extern void signalIgnore(WrenVM* vm);
|
||||
extern void signalReset(WrenVM* vm);
|
||||
extern void sqliteAllocate(WrenVM* vm);
|
||||
extern void sqliteFinalize(void* data);
|
||||
extern void sqliteExecute(WrenVM* vm);
|
||||
extern void sqliteExecuteParams(WrenVM* vm);
|
||||
extern void sqliteQuery(WrenVM* vm);
|
||||
extern void sqliteQueryParams(WrenVM* vm);
|
||||
extern void sqliteClose(WrenVM* vm);
|
||||
extern void sqliteLastInsertId(WrenVM* vm);
|
||||
extern void sqliteChanges(WrenVM* vm);
|
||||
extern void subprocessRun(WrenVM* vm);
|
||||
extern void regexAllocate(WrenVM* vm);
|
||||
extern void regexFinalize(void* data);
|
||||
extern void regexTest(WrenVM* vm);
|
||||
extern void regexMatch(WrenVM* vm);
|
||||
extern void regexMatchAll(WrenVM* vm);
|
||||
extern void regexReplace(WrenVM* vm);
|
||||
extern void regexReplaceAll(WrenVM* vm);
|
||||
extern void regexSplit(WrenVM* vm);
|
||||
extern void regexPattern(WrenVM* vm);
|
||||
extern void regexFlags(WrenVM* vm);
|
||||
extern void tlsSocketAllocate(WrenVM* vm);
|
||||
extern void tlsSocketFinalize(void* data);
|
||||
extern void tlsSocketConnect(WrenVM* vm);
|
||||
extern void tlsSocketWrite(WrenVM* vm);
|
||||
extern void tlsSocketRead(WrenVM* vm);
|
||||
extern void tlsSocketClose(WrenVM* vm);
|
||||
|
||||
// The maximum number of foreign methods a single class defines. Ideally, we
|
||||
// would use variable-length arrays for each class in the table below, but
|
||||
@@ -77,7 +158,7 @@ extern void serverClose(WrenVM* vm);
|
||||
// If you add a new method to the longest class below, make sure to bump this.
|
||||
// Note that it also includes an extra slot for the sentinel value indicating
|
||||
// the end of the list.
|
||||
#define MAX_METHODS_PER_CLASS 14
|
||||
#define MAX_METHODS_PER_CLASS 24
|
||||
|
||||
// The maximum number of foreign classes a single built-in module defines.
|
||||
//
|
||||
@@ -137,6 +218,45 @@ typedef struct
|
||||
// The array of built-in modules.
|
||||
static ModuleRegistry modules[] =
|
||||
{
|
||||
MODULE(base64)
|
||||
CLASS(Base64)
|
||||
STATIC_METHOD("encode(_)", base64Encode)
|
||||
STATIC_METHOD("decode(_)", base64Decode)
|
||||
END_CLASS
|
||||
END_MODULE
|
||||
MODULE(crypto)
|
||||
CLASS(Crypto)
|
||||
STATIC_METHOD("randomBytes_(_,_)", cryptoRandomBytes)
|
||||
END_CLASS
|
||||
CLASS(Hash)
|
||||
STATIC_METHOD("md5_(_)", cryptoMd5)
|
||||
STATIC_METHOD("sha1_(_)", cryptoSha1)
|
||||
STATIC_METHOD("sha256_(_)", cryptoSha256)
|
||||
END_CLASS
|
||||
END_MODULE
|
||||
MODULE(datetime)
|
||||
CLASS(DateTime)
|
||||
STATIC_METHOD("now_()", datetimeNow)
|
||||
STATIC_METHOD("fromTimestamp_(_)", datetimeFromTimestamp)
|
||||
STATIC_METHOD("format_(_,_)", datetimeFormat)
|
||||
STATIC_METHOD("component_(_,_)", datetimeComponent)
|
||||
END_CLASS
|
||||
END_MODULE
|
||||
MODULE(dns)
|
||||
CLASS(Dns)
|
||||
STATIC_METHOD("lookup_(_,_,_)", dnsLookup)
|
||||
END_CLASS
|
||||
END_MODULE
|
||||
MODULE(env)
|
||||
CLASS(Environment)
|
||||
STATIC_METHOD("get(_)", envGet)
|
||||
STATIC_METHOD("set(_,_)", envSet)
|
||||
STATIC_METHOD("delete(_)", envDelete)
|
||||
STATIC_METHOD("all", envAll)
|
||||
END_CLASS
|
||||
END_MODULE
|
||||
MODULE(http)
|
||||
END_MODULE
|
||||
MODULE(io)
|
||||
CLASS(Directory)
|
||||
STATIC_METHOD("create_(_,_)", directoryCreate)
|
||||
@@ -186,6 +306,38 @@ static ModuleRegistry modules[] =
|
||||
STATIC_METHOD("write(_)", stderrWrite)
|
||||
END_CLASS
|
||||
END_MODULE
|
||||
MODULE(jinja)
|
||||
END_MODULE
|
||||
MODULE(json)
|
||||
CLASS(Json)
|
||||
STATIC_METHOD("parse(_)", jsonParse)
|
||||
END_CLASS
|
||||
END_MODULE
|
||||
MODULE(math)
|
||||
CLASS(Math)
|
||||
STATIC_METHOD("sin(_)", mathSin)
|
||||
STATIC_METHOD("cos(_)", mathCos)
|
||||
STATIC_METHOD("tan(_)", mathTan)
|
||||
STATIC_METHOD("asin(_)", mathAsin)
|
||||
STATIC_METHOD("acos(_)", mathAcos)
|
||||
STATIC_METHOD("atan(_)", mathAtan)
|
||||
STATIC_METHOD("atan2(_,_)", mathAtan2)
|
||||
STATIC_METHOD("sinh(_)", mathSinh)
|
||||
STATIC_METHOD("cosh(_)", mathCosh)
|
||||
STATIC_METHOD("tanh(_)", mathTanh)
|
||||
STATIC_METHOD("log(_)", mathLog)
|
||||
STATIC_METHOD("log10(_)", mathLog10)
|
||||
STATIC_METHOD("log2(_)", mathLog2)
|
||||
STATIC_METHOD("exp(_)", mathExp)
|
||||
STATIC_METHOD("pow(_,_)", mathPow)
|
||||
STATIC_METHOD("sqrt(_)", mathSqrt)
|
||||
STATIC_METHOD("cbrt(_)", mathCbrt)
|
||||
STATIC_METHOD("ceil(_)", mathCeil)
|
||||
STATIC_METHOD("floor(_)", mathFloor)
|
||||
STATIC_METHOD("round(_)", mathRound)
|
||||
STATIC_METHOD("abs(_)", mathAbs)
|
||||
END_CLASS
|
||||
END_MODULE
|
||||
MODULE(net)
|
||||
CLASS(Socket)
|
||||
ALLOCATE(socketAllocate)
|
||||
@@ -218,6 +370,20 @@ static ModuleRegistry modules[] =
|
||||
STATIC_METHOD("version", processVersion)
|
||||
END_CLASS
|
||||
END_MODULE
|
||||
MODULE(regex)
|
||||
CLASS(Regex)
|
||||
ALLOCATE(regexAllocate)
|
||||
FINALIZE(regexFinalize)
|
||||
METHOD("test(_)", regexTest)
|
||||
METHOD("match(_)", regexMatch)
|
||||
METHOD("matchAll(_)", regexMatchAll)
|
||||
METHOD("replace(_,_)", regexReplace)
|
||||
METHOD("replaceAll(_,_)", regexReplaceAll)
|
||||
METHOD("split(_)", regexSplit)
|
||||
METHOD("pattern", regexPattern)
|
||||
METHOD("flags", regexFlags)
|
||||
END_CLASS
|
||||
END_MODULE
|
||||
MODULE(repl)
|
||||
END_MODULE
|
||||
MODULE(scheduler)
|
||||
@@ -225,11 +391,48 @@ static ModuleRegistry modules[] =
|
||||
STATIC_METHOD("captureMethods_()", schedulerCaptureMethods)
|
||||
END_CLASS
|
||||
END_MODULE
|
||||
MODULE(signal)
|
||||
CLASS(Signal)
|
||||
STATIC_METHOD("trap_(_,_)", signalTrap)
|
||||
STATIC_METHOD("ignore_(_)", signalIgnore)
|
||||
STATIC_METHOD("reset_(_)", signalReset)
|
||||
END_CLASS
|
||||
END_MODULE
|
||||
MODULE(sqlite)
|
||||
CLASS(Database)
|
||||
ALLOCATE(sqliteAllocate)
|
||||
FINALIZE(sqliteFinalize)
|
||||
METHOD("execute(_)", sqliteExecute)
|
||||
METHOD("execute(_,_)", sqliteExecuteParams)
|
||||
METHOD("query(_)", sqliteQuery)
|
||||
METHOD("query(_,_)", sqliteQueryParams)
|
||||
METHOD("close()", sqliteClose)
|
||||
METHOD("lastInsertId", sqliteLastInsertId)
|
||||
METHOD("changes", sqliteChanges)
|
||||
END_CLASS
|
||||
END_MODULE
|
||||
MODULE(subprocess)
|
||||
CLASS(Subprocess)
|
||||
STATIC_METHOD("run_(_,_)", subprocessRun)
|
||||
END_CLASS
|
||||
END_MODULE
|
||||
MODULE(timer)
|
||||
CLASS(Timer)
|
||||
STATIC_METHOD("startTimer_(_,_)", timerStartTimer)
|
||||
END_CLASS
|
||||
END_MODULE
|
||||
MODULE(tls)
|
||||
CLASS(TlsSocket)
|
||||
ALLOCATE(tlsSocketAllocate)
|
||||
FINALIZE(tlsSocketFinalize)
|
||||
METHOD("connect_(_,_,_,_)", tlsSocketConnect)
|
||||
METHOD("write_(_,_)", tlsSocketWrite)
|
||||
METHOD("read_(_)", tlsSocketRead)
|
||||
METHOD("close_()", tlsSocketClose)
|
||||
END_CLASS
|
||||
END_MODULE
|
||||
MODULE(websocket)
|
||||
END_MODULE
|
||||
|
||||
SENTINEL_MODULE
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user