130 lines
4.2 KiB
C++
130 lines
4.2 KiB
C++
#pragma once
|
|
|
|
#include "lua.h"
|
|
|
|
namespace lua {
|
|
|
|
class BufferWrapper : public BaseLuaObject<BufferWrapper> {
|
|
public:
|
|
static ExportedFunctions exportedFunctions() {
|
|
return {{"length", static_luaLength},
|
|
{"getBytes", static_luaGetBytes},
|
|
{"setBytes", static_luaSetBytes}};
|
|
}
|
|
private:
|
|
DECLARE_LUA_FUNCTION(BufferWrapper, luaLength);
|
|
DECLARE_LUA_FUNCTION(BufferWrapper, luaGetBytes);
|
|
DECLARE_LUA_FUNCTION(BufferWrapper, luaSetBytes);
|
|
};
|
|
|
|
class HeaderMapIterator : public BaseLuaObject<HeaderMapIterator> {
|
|
public:
|
|
static ExportedFunctions exportedFunctions() { return {}; }
|
|
|
|
DECLARE_LUA_CLOSURE(HeaderMapIterator, luaPairsIterator);
|
|
};
|
|
|
|
class HeaderMapWrapper : public BaseLuaObject<HeaderMapWrapper> {
|
|
public:
|
|
static ExportedFunctions exportedFunctions() {
|
|
return {
|
|
{ "add", static_luaAdd },
|
|
{ "get", static_luaGet },
|
|
{ "__pairs", static_luaPairs },
|
|
};
|
|
}
|
|
|
|
private:
|
|
DECLARE_LUA_FUNCTION(HeaderMapWrapper, luaAdd);
|
|
DECLARE_LUA_FUNCTION(HeaderMapWrapper, luaGet);
|
|
DECLARE_LUA_FUNCTION(HeaderMapWrapper, luaPairs);
|
|
|
|
LuaDeathRef<HeaderMapIterator> iterator_;
|
|
};
|
|
|
|
class MetadataMapIterator : public BaseLuaObject<MetadataMapIterator> {
|
|
public:
|
|
static ExportedFunctions exportedFunctions() { return {}; }
|
|
|
|
DECLARE_LUA_CLOSURE(MetadataMapIterator, luaPairsIterator);
|
|
};
|
|
|
|
class MetadataMapWrapper : public BaseLuaObject<MetadataMapWrapper> {
|
|
public:
|
|
static ExportedFunctions exportedFunctions() {
|
|
return {{"get", static_luaGet}, {"__pairs", static_luaPairs}};
|
|
}
|
|
|
|
private:
|
|
DECLARE_LUA_FUNCTION(MetadataMapWrapper, luaGet);
|
|
DECLARE_LUA_FUNCTION(MetadataMapWrapper, luaPairs);
|
|
|
|
LuaDeathRef<MetadataMapIterator> iterator_;
|
|
};
|
|
|
|
class StreamInfoWrapper : public BaseLuaObject<StreamInfoWrapper> {
|
|
public:
|
|
static ExportedFunctions exportedFunctions() {
|
|
return {
|
|
{ "protocol", static_luaProtocol },
|
|
{ "dynamicMetadata", static_luaDynamicMetadata },
|
|
{ "downstreamLocalAddress", static_luaDownstreamLocalAddress },
|
|
{ "downstreamDirectRemoteAddress", static_luaDownstreamDirectRemoteAddress },
|
|
{ "downstreamSslConnection", static_luaDownstreamSslConnection },
|
|
{ "requestedServerName", static_luaRequestedServerName }
|
|
};
|
|
}
|
|
private:
|
|
DECLARE_LUA_FUNCTION(StreamInfoWrapper, luaProtocol);
|
|
DECLARE_LUA_FUNCTION(StreamInfoWrapper, luaDynamicMetadata);
|
|
DECLARE_LUA_FUNCTION(StreamInfoWrapper, luaDownstreamSslConnection);
|
|
DECLARE_LUA_FUNCTION(StreamInfoWrapper, luaDownstreamLocalAddress);
|
|
DECLARE_LUA_FUNCTION(StreamInfoWrapper, luaDownstreamDirectRemoteAddress);
|
|
DECLARE_LUA_FUNCTION(StreamInfoWrapper, luaRequestedServerName);
|
|
};
|
|
|
|
class StreamHandleWrapper : public BaseLuaObject<StreamHandleWrapper> {
|
|
public:
|
|
static ExportedFunctions exportedFunctions() {
|
|
return {
|
|
{ "headers", static_luaHeaders },
|
|
{ "body", static_luaBody },
|
|
{ "bodyChunks", static_luaBodyChunks },
|
|
{ "metadata", static_luaMetadata },
|
|
{ "streamInfo", static_luaStreamInfo },
|
|
{ "logTrace", static_luaLogTrace },
|
|
{ "logDebug", static_luaLogDebug },
|
|
{ "logInfo", static_luaLogInfo },
|
|
{ "logWarn", static_luaLogWarn },
|
|
{ "logErr", static_luaLogErr },
|
|
{ "logCritical", static_luaLogCritical },
|
|
{ "httpCall", static_luaHttpCall },
|
|
{ "respond", static_luaRespond },
|
|
};
|
|
}
|
|
|
|
private:
|
|
DECLARE_LUA_FUNCTION(StreamHandleWrapper, luaHeaders);
|
|
DECLARE_LUA_FUNCTION(StreamHandleWrapper, luaBody);
|
|
DECLARE_LUA_FUNCTION(StreamHandleWrapper, luaBodyChunks);
|
|
DECLARE_LUA_CLOSURE(StreamHandleWrapper, luaBodyIterator);
|
|
|
|
DECLARE_LUA_FUNCTION(StreamHandleWrapper, luaMetadata);
|
|
DECLARE_LUA_FUNCTION(StreamHandleWrapper, luaStreamInfo);
|
|
|
|
DECLARE_LUA_FUNCTION(StreamHandleWrapper, luaLogTrace);
|
|
DECLARE_LUA_FUNCTION(StreamHandleWrapper, luaLogDebug);
|
|
DECLARE_LUA_FUNCTION(StreamHandleWrapper, luaLogInfo);
|
|
DECLARE_LUA_FUNCTION(StreamHandleWrapper, luaLogWarn);
|
|
DECLARE_LUA_FUNCTION(StreamHandleWrapper, luaLogErr);
|
|
DECLARE_LUA_FUNCTION(StreamHandleWrapper, luaLogCritical);
|
|
|
|
DECLARE_LUA_FUNCTION(StreamHandleWrapper, luaHttpCall);
|
|
DECLARE_LUA_FUNCTION(StreamHandleWrapper, luaRespond);
|
|
|
|
LuaDeathRef<HeaderMapWrapper> headers_wrapper_;
|
|
LuaDeathRef<MetadataMapWrapper> metadata_wrapper_;
|
|
LuaDeathRef<StreamInfoWrapper> stream_info_wrapper_;
|
|
};
|
|
|
|
} |