mirror of
https://github.com/VCMP-SqMod/SqMod.git
synced 2024-11-08 08:47:17 +01:00
101 lines
6.8 KiB
C++
101 lines
6.8 KiB
C++
// ------------------------------------------------------------------------------------------------
|
|
#include "PocoLib/Net.hpp"
|
|
|
|
// ------------------------------------------------------------------------------------------------
|
|
#include <sqratConst.h>
|
|
|
|
// ------------------------------------------------------------------------------------------------
|
|
namespace SqMod {
|
|
|
|
// ------------------------------------------------------------------------------------------------
|
|
SQMOD_DECL_TYPENAME(SqWsClient, _SC("SqWsClient"))
|
|
|
|
// ------------------------------------------------------------------------------------------------
|
|
void TerminatePocoNet()
|
|
{
|
|
|
|
}
|
|
|
|
// ================================================================================================
|
|
void Register_POCO_Net(HSQUIRRELVM vm, Table & ns)
|
|
{
|
|
// --------------------------------------------------------------------------------------------
|
|
ns.Bind(_SC("WsClient"),
|
|
Class< WsClient, NoCopy< WsClient > >(ns.GetVM(), SqWsClient::Str)
|
|
// Constructors
|
|
.Ctor< StackStrF &, uint16_t, StackStrF & >()
|
|
// Meta-methods
|
|
.SquirrelFunc(_SC("_typename"), &SqWsClient::Fn)
|
|
// Member Variables
|
|
.Var(_SC("Flags"), &WsClient::mFlags)
|
|
.Var(_SC("State"), &WsClient::mState)
|
|
// Properties
|
|
.Prop(_SC("Tag"), &WsClient::GetTag, &WsClient::SetTag)
|
|
.Prop(_SC("Data"), &WsClient::GetData, &WsClient::SetData)
|
|
.Prop(_SC("MaxPayloadSize"), &WsClient::GetMaxPayloadSize, &WsClient::SetMaxPayloadSize)
|
|
// Member Methods
|
|
.FmtFunc(_SC("SetTag"), &WsClient::ApplyTag)
|
|
.FmtFunc(_SC("SetData"), &WsClient::ApplyData)
|
|
.Func(_SC("Shutdown"), &WsClient::Shutdown)
|
|
.FmtFunc(_SC("ShutdownWith"), &WsClient::ShutdownWith)
|
|
.Func(_SC("SendFrame"), &WsClient::SendFrame)
|
|
.FmtFunc(_SC("SendStringFrame"), &WsClient::SendStringFrame)
|
|
.Func(_SC("RecvFrame"), &WsClient::RecvFrame)
|
|
.Func(_SC("RecvStringFrame"), &WsClient::RecvStringFrame)
|
|
.CbFunc(_SC("RecvFrameIn"), &WsClient::RecvFrameIn)
|
|
.CbFunc(_SC("RecvStringFrameIn"), &WsClient::RecvStringFrameIn)
|
|
);
|
|
// --------------------------------------------------------------------------------------------
|
|
ConstTable(vm).Enum(_SC("SqWsFrameFlags"), Enumeration(vm)
|
|
.Const(_SC("FIN"), static_cast< SQInteger >(Poco::Net::WebSocket::FRAME_FLAG_FIN))
|
|
.Const(_SC("RSV1"), static_cast< SQInteger >(Poco::Net::WebSocket::FRAME_FLAG_RSV1))
|
|
.Const(_SC("RSV2"), static_cast< SQInteger >(Poco::Net::WebSocket::FRAME_FLAG_RSV2))
|
|
.Const(_SC("RSV3"), static_cast< SQInteger >(Poco::Net::WebSocket::FRAME_FLAG_RSV3))
|
|
);
|
|
// --------------------------------------------------------------------------------------------
|
|
ConstTable(vm).Enum(_SC("SqWsFrameOpcodes"), Enumeration(vm)
|
|
.Const(_SC("CONT"), static_cast< SQInteger >(Poco::Net::WebSocket::FRAME_OP_CONT))
|
|
.Const(_SC("TEXT"), static_cast< SQInteger >(Poco::Net::WebSocket::FRAME_OP_TEXT))
|
|
.Const(_SC("BINARY"), static_cast< SQInteger >(Poco::Net::WebSocket::FRAME_OP_BINARY))
|
|
.Const(_SC("CLOSE"), static_cast< SQInteger >(Poco::Net::WebSocket::FRAME_OP_CLOSE))
|
|
.Const(_SC("PING"), static_cast< SQInteger >(Poco::Net::WebSocket::FRAME_OP_PING))
|
|
.Const(_SC("PONG"), static_cast< SQInteger >(Poco::Net::WebSocket::FRAME_OP_PONG))
|
|
.Const(_SC("BITMASK"), static_cast< SQInteger >(Poco::Net::WebSocket::FRAME_OP_BITMASK))
|
|
.Const(_SC("SETRAW"), static_cast< SQInteger >(Poco::Net::WebSocket::FRAME_OP_SETRAW))
|
|
);
|
|
// --------------------------------------------------------------------------------------------
|
|
ConstTable(vm).Enum(_SC("SqWsSendFlags"), Enumeration(vm)
|
|
.Const(_SC("Text"), static_cast< SQInteger >(Poco::Net::WebSocket::FRAME_TEXT))
|
|
.Const(_SC("Binary"), static_cast< SQInteger >(Poco::Net::WebSocket::FRAME_BINARY))
|
|
);
|
|
// --------------------------------------------------------------------------------------------
|
|
ConstTable(vm).Enum(_SC("SqWsStatusCodes"), Enumeration(vm)
|
|
.Const(_SC("NormalClose"), static_cast< SQInteger >(Poco::Net::WebSocket::WS_NORMAL_CLOSE))
|
|
.Const(_SC("EndpointGoingAway"), static_cast< SQInteger >(Poco::Net::WebSocket::WS_ENDPOINT_GOING_AWAY))
|
|
.Const(_SC("ProtocolError"), static_cast< SQInteger >(Poco::Net::WebSocket::WS_PROTOCOL_ERROR))
|
|
.Const(_SC("PayloadNotAcceptable"), static_cast< SQInteger >(Poco::Net::WebSocket::WS_PAYLOAD_NOT_ACCEPTABLE))
|
|
.Const(_SC("Reserved"), static_cast< SQInteger >(Poco::Net::WebSocket::WS_RESERVED))
|
|
.Const(_SC("ReservedNoStatusCode"), static_cast< SQInteger >(Poco::Net::WebSocket::WS_RESERVED_NO_STATUS_CODE))
|
|
.Const(_SC("ReservedAbnormalClose"), static_cast< SQInteger >(Poco::Net::WebSocket::WS_RESERVED_ABNORMAL_CLOSE))
|
|
.Const(_SC("MalformedPayload"), static_cast< SQInteger >(Poco::Net::WebSocket::WS_MALFORMED_PAYLOAD))
|
|
.Const(_SC("PolicyViolation"), static_cast< SQInteger >(Poco::Net::WebSocket::WS_POLICY_VIOLATION))
|
|
.Const(_SC("PayloadTooBig"), static_cast< SQInteger >(Poco::Net::WebSocket::WS_PAYLOAD_TOO_BIG))
|
|
.Const(_SC("ExtensionRequired"), static_cast< SQInteger >(Poco::Net::WebSocket::WS_EXTENSION_REQUIRED))
|
|
.Const(_SC("UnexpectedCondition"), static_cast< SQInteger >(Poco::Net::WebSocket::WS_UNEXPECTED_CONDITION))
|
|
.Const(_SC("ReservedTlsFailure"), static_cast< SQInteger >(Poco::Net::WebSocket::WS_RESERVED_TLS_FAILURE))
|
|
);
|
|
// --------------------------------------------------------------------------------------------
|
|
ConstTable(vm).Enum(_SC("SqWsErrorCodes"), Enumeration(vm)
|
|
.Const(_SC("NoHandshake"), static_cast< SQInteger >(Poco::Net::WebSocket::WS_ERR_NO_HANDSHAKE))
|
|
.Const(_SC("HandshakeNoVersion"), static_cast< SQInteger >(Poco::Net::WebSocket::WS_ERR_HANDSHAKE_NO_VERSION))
|
|
.Const(_SC("HandshakeUnsupportedVersion"), static_cast< SQInteger >(Poco::Net::WebSocket::WS_ERR_HANDSHAKE_UNSUPPORTED_VERSION))
|
|
.Const(_SC("HandshakeNoKey"), static_cast< SQInteger >(Poco::Net::WebSocket::WS_ERR_HANDSHAKE_NO_KEY))
|
|
.Const(_SC("HandshakeAccept"), static_cast< SQInteger >(Poco::Net::WebSocket::WS_ERR_HANDSHAKE_ACCEPT))
|
|
.Const(_SC("Unauthorized"), static_cast< SQInteger >(Poco::Net::WebSocket::WS_ERR_UNAUTHORIZED))
|
|
.Const(_SC("PayloadTooBig"), static_cast< SQInteger >(Poco::Net::WebSocket::WS_ERR_PAYLOAD_TOO_BIG))
|
|
.Const(_SC("IncompleteFrame"), static_cast< SQInteger >(Poco::Net::WebSocket::WS_ERR_INCOMPLETE_FRAME))
|
|
);
|
|
}
|
|
|
|
} // Namespace:: SqMod
|