Initial commit
This commit is contained in:
404
engines/ags/plugins/ags_sock/ags_sock.cpp
Normal file
404
engines/ags/plugins/ags_sock/ags_sock.cpp
Normal file
@@ -0,0 +1,404 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* of the License, or(at your option) any later version.
|
||||
*
|
||||
* 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. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "common/array.h"
|
||||
#include "common/str.h"
|
||||
#include "ags/engine/ac/dynobj/cc_ags_dynamic_object.h"
|
||||
#include "ags/plugins/ags_sock/ags_sock.h"
|
||||
|
||||
namespace AGS3 {
|
||||
namespace Plugins {
|
||||
namespace AGSSock {
|
||||
|
||||
struct SockData : public IAGSScriptManagedObject, public Common::Array<byte> {
|
||||
public:
|
||||
int Dispose(void *address, bool force) override {
|
||||
delete this;
|
||||
return true;
|
||||
}
|
||||
const char *GetType() override {
|
||||
return "SockData";
|
||||
};
|
||||
int Serialize(void *address, char *buffer, int bufsize) override {
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
|
||||
struct SockAddr : public IAGSScriptManagedObject {
|
||||
public:
|
||||
int _port = 0;
|
||||
Common::String _address;
|
||||
Common::String _ip;
|
||||
|
||||
int Dispose(void *address, bool force) override {
|
||||
delete this;
|
||||
return true;
|
||||
}
|
||||
const char *GetType() override {
|
||||
return "SockAddr";
|
||||
};
|
||||
int Serialize(void *address, char *buffer, int bufsize) override {
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
|
||||
struct Socket : public IAGSScriptManagedObject {
|
||||
public:
|
||||
int _id = 0;
|
||||
int _domain = 0;
|
||||
int _type = 0;
|
||||
int _protocol = 0;
|
||||
int _lastError = 0;
|
||||
Common::String _tag;
|
||||
SockAddr *_local = nullptr;
|
||||
SockAddr *_remote = nullptr;
|
||||
bool _valid = false;
|
||||
Common::String _errorString;
|
||||
|
||||
int Dispose(void *address, bool force) override {
|
||||
delete this;
|
||||
return true;
|
||||
}
|
||||
const char *GetType() override {
|
||||
return "Socket";
|
||||
};
|
||||
int Serialize(void *address, char *buffer, int bufsize) override {
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
const char *AGSSock::AGS_GetPluginName() {
|
||||
return "AGS Sock";
|
||||
}
|
||||
|
||||
void AGSSock::AGS_EngineStartup(IAGSEngine *engine) {
|
||||
PluginBase::AGS_EngineStartup(engine);
|
||||
|
||||
SCRIPT_METHOD(SockData::Create^2, AGSSock::SockData_Create);
|
||||
SCRIPT_METHOD(SockData::CreateEmpty^0, AGSSock::SockData_CreateEmpty);
|
||||
SCRIPT_METHOD(SockData::CreateFromString^1, AGSSock::SockData_CreateFromString);
|
||||
SCRIPT_METHOD(SockData::get_Size, AGSSock::SockData_get_Size);
|
||||
SCRIPT_METHOD(SockData::set_Size, AGSSock::SockData_set_Size);
|
||||
SCRIPT_METHOD(SockData::geti_Chars, AGSSock::SockData_geti_Chars);
|
||||
SCRIPT_METHOD(SockData::seti_Chars, AGSSock::SockData_seti_Chars);
|
||||
SCRIPT_METHOD(SockData::AsString^0, AGSSock::SockData_AsString);
|
||||
SCRIPT_METHOD(SockData::Clear^0, AGSSock::SockData_Clear);
|
||||
SCRIPT_METHOD(SockAddr::Create^1, AGSSock::SockAddr_Create);
|
||||
SCRIPT_METHOD(SockAddr::CreateFromString^2, AGSSock::SockAddr_CreateFromString);
|
||||
SCRIPT_METHOD(SockAddr::CreateFromData^1, AGSSock::SockAddr_CreateFromData);
|
||||
SCRIPT_METHOD(SockAddr::CreateIP^2, AGSSock::SockAddr_CreateIP);
|
||||
SCRIPT_METHOD(SockAddr::CreateIPv6^2, AGSSock::SockAddr_CreateIPv6);
|
||||
SCRIPT_METHOD(SockAddr::get_Port, AGSSock::SockAddr_get_Port);
|
||||
SCRIPT_METHOD(SockAddr::set_Port, AGSSock::SockAddr_set_Port);
|
||||
SCRIPT_METHOD(SockAddr::get_Address, AGSSock::SockAddr_get_Address);
|
||||
SCRIPT_METHOD(SockAddr::set_Address, AGSSock::SockAddr_set_Address);
|
||||
SCRIPT_METHOD(SockAddr::get_IP, AGSSock::SockAddr_get_IP);
|
||||
SCRIPT_METHOD(SockAddr::set_IP, AGSSock::SockAddr_set_IP);
|
||||
SCRIPT_METHOD(SockAddr::GetData^0, AGSSock::SockAddr_GetData);
|
||||
SCRIPT_METHOD(Socket::Create^3, AGSSock::Socket_Create);
|
||||
SCRIPT_METHOD(Socket::CreateUDP^0, AGSSock::Socket_CreateUDP);
|
||||
SCRIPT_METHOD(Socket::CreateTCP^0, AGSSock::Socket_CreateTCP);
|
||||
SCRIPT_METHOD(Socket::CreateUDPv6^0, AGSSock::Socket_CreateUDPv6);
|
||||
SCRIPT_METHOD(Socket::CreateTCPv6^0, AGSSock::Socket_CreateTCPv6);
|
||||
SCRIPT_METHOD(Socket::get_Tag, AGSSock::Socket_get_Tag);
|
||||
SCRIPT_METHOD(Socket::set_Tag, AGSSock::Socket_set_Tag);
|
||||
SCRIPT_METHOD(Socket::get_Local, AGSSock::Socket_get_Local);
|
||||
SCRIPT_METHOD(Socket::get_Remote, AGSSock::Socket_get_Remote);
|
||||
SCRIPT_METHOD(Socket::get_Valid, AGSSock::Socket_get_Valid);
|
||||
SCRIPT_METHOD(Socket::ErrorString^0, AGSSock::Socket_ErrorString);
|
||||
SCRIPT_METHOD(Socket::Bind^1, AGSSock::Socket_Bind);
|
||||
SCRIPT_METHOD(Socket::Listen^1, AGSSock::Socket_Listen);
|
||||
SCRIPT_METHOD(Socket::Connect^2, AGSSock::Socket_Connect);
|
||||
SCRIPT_METHOD(Socket::Accept^0, AGSSock::Socket_Accept);
|
||||
SCRIPT_METHOD(Socket::Close^0, AGSSock::Socket_Close);
|
||||
SCRIPT_METHOD(Socket::Send^1, AGSSock::Socket_Send);
|
||||
SCRIPT_METHOD(Socket::SendTo^2, AGSSock::Socket_SendTo);
|
||||
SCRIPT_METHOD(Socket::Recv^0, AGSSock::Socket_Recv);
|
||||
SCRIPT_METHOD(Socket::RecvFrom^1, AGSSock::Socket_RecvFrom);
|
||||
SCRIPT_METHOD(Socket::SendData^1, AGSSock::Socket_SendData);
|
||||
SCRIPT_METHOD(Socket::SendDataTo^2, AGSSock::Socket_SendDataTo);
|
||||
SCRIPT_METHOD(Socket::RecvData^0, AGSSock::Socket_RecvData);
|
||||
SCRIPT_METHOD(Socket::RecvDataFrom^1, AGSSock::Socket_RecvDataFrom);
|
||||
SCRIPT_METHOD(Socket::GetOption^2, AGSSock::Socket_GetOption);
|
||||
SCRIPT_METHOD(Socket::SetOption^3, AGSSock::Socket_SetOption);
|
||||
}
|
||||
|
||||
void AGSSock::SockData_Create(ScriptMethodParams ¶ms) {
|
||||
PARAMS2(int, size, char, defchar);
|
||||
|
||||
SockData *data = new SockData();
|
||||
_engine->RegisterManagedObject(data, data);
|
||||
data->resize(size);
|
||||
Common::fill(&(*data)[0], &(*data)[0] + size, defchar);
|
||||
|
||||
params._result = data;
|
||||
}
|
||||
|
||||
void AGSSock::SockData_CreateEmpty(ScriptMethodParams ¶ms) {
|
||||
params._result = new SockData();
|
||||
}
|
||||
|
||||
void AGSSock::SockData_CreateFromString(ScriptMethodParams ¶ms) {
|
||||
PARAMS1(const char *, str);
|
||||
size_t len = strlen(str);
|
||||
|
||||
SockData *data = new SockData();
|
||||
_engine->RegisterManagedObject(data, data);
|
||||
data->resize(len + 1);
|
||||
Common::copy(str, str + len + 1, &(*data)[0]);
|
||||
|
||||
params._result = data;
|
||||
}
|
||||
|
||||
void AGSSock::SockData_get_Size(ScriptMethodParams ¶ms) {
|
||||
PARAMS1(SockData *, sockData);
|
||||
params._result = sockData->size();
|
||||
}
|
||||
|
||||
void AGSSock::SockData_set_Size(ScriptMethodParams ¶ms) {
|
||||
PARAMS2(SockData *, sockData, size_t, size);
|
||||
sockData->resize(size);
|
||||
}
|
||||
|
||||
void AGSSock::SockData_geti_Chars(ScriptMethodParams ¶ms) {
|
||||
PARAMS1(SockData *, sockData);
|
||||
params._result = &(*sockData)[0];
|
||||
}
|
||||
|
||||
void AGSSock::SockData_seti_Chars(ScriptMethodParams ¶ms) {
|
||||
PARAMS2(SockData *, sockData, const byte *, chars);
|
||||
Common::copy(chars, chars + sockData->size(), &(*sockData)[0]);
|
||||
}
|
||||
|
||||
void AGSSock::SockData_AsString(ScriptMethodParams ¶ms) {
|
||||
PARAMS1(SockData *, sockData);
|
||||
params._result = (const char *)&(*sockData)[0];
|
||||
}
|
||||
|
||||
void AGSSock::SockData_Clear(ScriptMethodParams ¶ms) {
|
||||
PARAMS1(SockData *, sockData);
|
||||
sockData->clear();
|
||||
}
|
||||
|
||||
void AGSSock::SockAddr_Create(ScriptMethodParams ¶ms) {
|
||||
// PARAMS1(int, type);
|
||||
SockAddr *sockAddr = new SockAddr();
|
||||
_engine->RegisterManagedObject(sockAddr, sockAddr);
|
||||
|
||||
params._result = sockAddr;
|
||||
}
|
||||
|
||||
void AGSSock::SockAddr_CreateFromString(ScriptMethodParams ¶ms) {
|
||||
// PARAMS2(const char *, address, int, type);
|
||||
PARAMS1(const char *, address);
|
||||
|
||||
SockAddr *sockAddr = new SockAddr();
|
||||
_engine->RegisterManagedObject(sockAddr, sockAddr);
|
||||
|
||||
sockAddr->_address = address;
|
||||
params._result = sockAddr;
|
||||
}
|
||||
|
||||
void AGSSock::SockAddr_CreateFromData(ScriptMethodParams ¶ms) {
|
||||
// PARAMS1(const SockData *, data);
|
||||
SockAddr *sockAddr = new SockAddr();
|
||||
_engine->RegisterManagedObject(sockAddr, sockAddr);
|
||||
|
||||
params._result = sockAddr;
|
||||
}
|
||||
|
||||
void AGSSock::SockAddr_CreateIP(ScriptMethodParams ¶ms) {
|
||||
PARAMS2(const char *, address, int, port);
|
||||
|
||||
SockAddr *sockAddr = new SockAddr();
|
||||
_engine->RegisterManagedObject(sockAddr, sockAddr);
|
||||
|
||||
sockAddr->_address = address;
|
||||
sockAddr->_port = port;
|
||||
|
||||
params._result = sockAddr;
|
||||
}
|
||||
|
||||
void AGSSock::SockAddr_CreateIPv6(ScriptMethodParams ¶ms) {
|
||||
//PARAMS2(const char *, address, int, port);
|
||||
PARAMS1(const char *, address);
|
||||
|
||||
SockAddr *sockAddr = new SockAddr();
|
||||
_engine->RegisterManagedObject(sockAddr, sockAddr);
|
||||
|
||||
sockAddr->_address = address;
|
||||
params._result = sockAddr;
|
||||
}
|
||||
|
||||
void AGSSock::SockAddr_get_Port(ScriptMethodParams ¶ms) {
|
||||
PARAMS1(const SockAddr *, sockAddr);
|
||||
params._result = sockAddr->_port;
|
||||
}
|
||||
|
||||
void AGSSock::SockAddr_set_Port(ScriptMethodParams ¶ms) {
|
||||
PARAMS2(SockAddr *, sockAddr, int, port);
|
||||
sockAddr->_port = port;
|
||||
}
|
||||
|
||||
void AGSSock::SockAddr_get_Address(ScriptMethodParams ¶ms) {
|
||||
PARAMS1(const SockAddr *, sockAddr);
|
||||
params._result = sockAddr->_address.c_str();
|
||||
}
|
||||
|
||||
void AGSSock::SockAddr_set_Address(ScriptMethodParams ¶ms) {
|
||||
PARAMS2(SockAddr *, sockAddr, const char *, address);
|
||||
sockAddr->_address = address;
|
||||
}
|
||||
|
||||
void AGSSock::SockAddr_get_IP(ScriptMethodParams ¶ms) {
|
||||
PARAMS1(const SockAddr *, sockAddr);
|
||||
params._result = sockAddr->_ip.c_str();
|
||||
}
|
||||
|
||||
void AGSSock::SockAddr_set_IP(ScriptMethodParams ¶ms) {
|
||||
PARAMS2(SockAddr *, sockAddr, const char *, IP);
|
||||
sockAddr->_ip = IP;
|
||||
}
|
||||
|
||||
void AGSSock::SockAddr_GetData(ScriptMethodParams ¶ms) {
|
||||
// PARAMS1(const SockAddr *, sockAddr);
|
||||
params._result = new SockData();
|
||||
}
|
||||
|
||||
|
||||
void AGSSock::Socket_Create(ScriptMethodParams ¶ms) {
|
||||
//PARAMS3(int, domain, int, type, int, protocol);
|
||||
|
||||
Socket *socket = new Socket();
|
||||
_engine->RegisterManagedObject(socket, socket);
|
||||
|
||||
params._result = socket;
|
||||
}
|
||||
|
||||
void AGSSock::Socket_CreateUDP(ScriptMethodParams ¶ms) {
|
||||
Socket *socket = new Socket();
|
||||
_engine->RegisterManagedObject(socket, socket);
|
||||
|
||||
params._result = socket;
|
||||
}
|
||||
|
||||
void AGSSock::Socket_CreateTCP(ScriptMethodParams ¶ms) {
|
||||
Socket *socket = new Socket();
|
||||
_engine->RegisterManagedObject(socket, socket);
|
||||
|
||||
params._result = socket;
|
||||
}
|
||||
|
||||
void AGSSock::Socket_CreateUDPv6(ScriptMethodParams ¶ms) {
|
||||
Socket *socket = new Socket();
|
||||
_engine->RegisterManagedObject(socket, socket);
|
||||
|
||||
params._result = socket;
|
||||
}
|
||||
|
||||
void AGSSock::Socket_CreateTCPv6(ScriptMethodParams ¶ms) {
|
||||
Socket *socket = new Socket();
|
||||
_engine->RegisterManagedObject(socket, socket);
|
||||
|
||||
params._result = socket;
|
||||
}
|
||||
|
||||
void AGSSock::Socket_get_Tag(ScriptMethodParams ¶ms) {
|
||||
PARAMS1(const Socket *, socket);
|
||||
params._result = socket->_tag.c_str();
|
||||
}
|
||||
|
||||
void AGSSock::Socket_set_Tag(ScriptMethodParams ¶ms) {
|
||||
PARAMS2(Socket *, socket, const char *, tag);
|
||||
socket->_tag = tag;
|
||||
}
|
||||
|
||||
void AGSSock::Socket_get_Local(ScriptMethodParams ¶ms) {
|
||||
PARAMS1(const Socket *, socket);
|
||||
params._result = socket->_local;
|
||||
}
|
||||
|
||||
void AGSSock::Socket_get_Remote(ScriptMethodParams ¶ms) {
|
||||
PARAMS1(const Socket *, socket);
|
||||
params._result = socket->_remote;
|
||||
}
|
||||
|
||||
void AGSSock::Socket_get_Valid(ScriptMethodParams ¶ms) {
|
||||
PARAMS1(const Socket *, socket);
|
||||
params._result = socket->_valid;
|
||||
}
|
||||
|
||||
void AGSSock::Socket_ErrorString(ScriptMethodParams ¶ms) {
|
||||
PARAMS1(const Socket *, socket);
|
||||
params._result = socket->_errorString.c_str();
|
||||
}
|
||||
|
||||
void AGSSock::Socket_Bind(ScriptMethodParams ¶ms) {
|
||||
}
|
||||
|
||||
void AGSSock::Socket_Listen(ScriptMethodParams ¶ms) {
|
||||
}
|
||||
|
||||
void AGSSock::Socket_Connect(ScriptMethodParams ¶ms) {
|
||||
// Fail the connection
|
||||
params._result = 0;
|
||||
}
|
||||
|
||||
void AGSSock::Socket_Accept(ScriptMethodParams ¶ms) {
|
||||
}
|
||||
|
||||
void AGSSock::Socket_Close(ScriptMethodParams ¶ms) {
|
||||
}
|
||||
|
||||
void AGSSock::Socket_Send(ScriptMethodParams ¶ms) {
|
||||
}
|
||||
|
||||
void AGSSock::Socket_SendTo(ScriptMethodParams ¶ms) {
|
||||
}
|
||||
|
||||
void AGSSock::Socket_Recv(ScriptMethodParams ¶ms) {
|
||||
}
|
||||
|
||||
void AGSSock::Socket_RecvFrom(ScriptMethodParams ¶ms) {
|
||||
}
|
||||
|
||||
void AGSSock::Socket_SendData(ScriptMethodParams ¶ms) {
|
||||
}
|
||||
|
||||
void AGSSock::Socket_SendDataTo(ScriptMethodParams ¶ms) {
|
||||
}
|
||||
|
||||
void AGSSock::Socket_RecvData(ScriptMethodParams ¶ms) {
|
||||
}
|
||||
|
||||
void AGSSock::Socket_RecvDataFrom(ScriptMethodParams ¶ms) {
|
||||
}
|
||||
|
||||
void AGSSock::Socket_GetOption(ScriptMethodParams ¶ms) {
|
||||
}
|
||||
|
||||
void AGSSock::Socket_SetOption(ScriptMethodParams ¶ms) {
|
||||
}
|
||||
|
||||
} // namespace AGSSock
|
||||
} // namespace Plugins
|
||||
} // namespace AGS3
|
||||
306
engines/ags/plugins/ags_sock/ags_sock.h
Normal file
306
engines/ags/plugins/ags_sock/ags_sock.h
Normal file
@@ -0,0 +1,306 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* of the License, or(at your option) any later version.
|
||||
*
|
||||
* 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. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef AGS_PLUGINS_AGS_SOCK_H
|
||||
#define AGS_PLUGINS_AGS_SOCK_H
|
||||
|
||||
#include "ags/plugins/ags_plugin.h"
|
||||
|
||||
namespace AGS3 {
|
||||
namespace Plugins {
|
||||
namespace AGSSock {
|
||||
|
||||
class AGSSock : public PluginBase {
|
||||
SCRIPT_HASH(AGSSock)
|
||||
private:
|
||||
Common::String _text;
|
||||
|
||||
/**
|
||||
* Creates a new data container with specified size
|
||||
* (and what character to fill it with)
|
||||
*/
|
||||
void SockData_Create(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Creates a new data container of zero size
|
||||
*/
|
||||
void SockData_CreateEmpty(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Creates a data container from a string
|
||||
*/
|
||||
void SockData_CreateFromString(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Gets the size property
|
||||
*/
|
||||
void SockData_get_Size(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Sets the size property
|
||||
*/
|
||||
void SockData_set_Size(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Gets the chars array
|
||||
*/
|
||||
void SockData_geti_Chars(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Sets the chars array
|
||||
*/
|
||||
void SockData_seti_Chars(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Makes and returns a string from the data object.
|
||||
* (Warning: anything after a null character will be truncated)
|
||||
*/
|
||||
void SockData_AsString(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Removes all the data from a socket data object,
|
||||
* reducing it's size to zero
|
||||
*/
|
||||
void SockData_Clear(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Creates an empty socket address. (advanced: set type
|
||||
* to IPv6 if you're using IPv6)
|
||||
*/
|
||||
void SockAddr_Create(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Creates a socket address from a string.
|
||||
* (for example: "https://www.scummvm.org/"
|
||||
*/
|
||||
void SockAddr_CreateFromString(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Creates a socket address from raw data. (advanced)
|
||||
*/
|
||||
void SockAddr_CreateFromData(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Creates a socket address from an IP-address.
|
||||
* (for example: "127.0.0.1")
|
||||
*/
|
||||
void SockAddr_CreateIP(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Creates a socket address from an IPv6-address.
|
||||
* (for example: "::1")
|
||||
*/
|
||||
void SockAddr_CreateIPv6(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Gets the value of the port property
|
||||
*/
|
||||
void SockAddr_get_Port(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Sets the value of the port property
|
||||
*/
|
||||
void SockAddr_set_Port(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Gets the value of the address property
|
||||
*/
|
||||
void SockAddr_get_Address(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Sets the value of the address property
|
||||
*/
|
||||
void SockAddr_set_Address(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Gets the value of the IP property
|
||||
*/
|
||||
void SockAddr_get_IP(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Sets the value of the IP property
|
||||
*/
|
||||
void SockAddr_set_IP(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Returns a SockData object that contains the raw data
|
||||
* of the socket address. (advanced)
|
||||
*/
|
||||
void SockAddr_GetData(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Creates a socket for the specified protocol. (advanced)
|
||||
*/
|
||||
void Socket_Create(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Creates a UDP socket. (unrealiable, connectionless, message based)
|
||||
*/
|
||||
void Socket_CreateUDP(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Creates a TCP socket. (reliable, connection based, streaming)
|
||||
*/
|
||||
void Socket_CreateTCP(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Creates a UDP socket for IPv6. (when in doubt use CreateUDP)
|
||||
*/
|
||||
void Socket_CreateUDPv6(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Creates a TCP socket for IPv6. (when in doubt use CreateTCP)
|
||||
*/
|
||||
void Socket_CreateTCPv6(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Gets the value of the Tag property
|
||||
*/
|
||||
void Socket_get_Tag(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Sets the value of the Tag property
|
||||
*/
|
||||
void Socket_set_Tag(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Gets the value of the Local property
|
||||
*/
|
||||
void Socket_get_Local(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Gets the value of the Remote property
|
||||
*/
|
||||
void Socket_get_Remote(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Gets the value of the Value property
|
||||
*/
|
||||
void Socket_get_Valid(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Returns the last error observed from this socket
|
||||
* as an human readable string
|
||||
*/
|
||||
void Socket_ErrorString(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Binds the socket to a local address. (generally used
|
||||
* before listening)
|
||||
*/
|
||||
void Socket_Bind(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Makes a socket listen for incoming connection requests.
|
||||
* (TCP only) Backlog specifies how many requests can be
|
||||
* queued. (optional)
|
||||
*/
|
||||
void Socket_Listen(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Makes a socket connect to a remote host. (for UDP it
|
||||
* will simply bind to a remote address) Defaults to sync
|
||||
* which makes it wait; see the manual for async use.
|
||||
*/
|
||||
void Socket_Connect(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Accepts a connection request and returns the resulting
|
||||
* socket when successful. (TCP only)
|
||||
*/
|
||||
void Socket_Accept(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Closes the socket. (you can still receive until socket
|
||||
* is marked invalid
|
||||
*/
|
||||
void Socket_Close(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Sends a string to the remote host. Returns whether
|
||||
* successful. (no error means: try again later)
|
||||
*/
|
||||
void Socket_Send(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Sends a string to the specified remote host. (UDP only)
|
||||
*/
|
||||
void Socket_SendTo(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Receives a string from the remote host. (no error
|
||||
* means: try again later)
|
||||
*/
|
||||
void Socket_Recv(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Receives a string from an unspecified host. The given
|
||||
* address object will contain the remote address. (UDP only)
|
||||
*/
|
||||
void Socket_RecvFrom(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Sends raw data to the remote host. Returns whether
|
||||
* successful. (no error means: try again later
|
||||
*/
|
||||
void Socket_SendData(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Sends raw data to the specified remote host. (UDP only)
|
||||
*/
|
||||
void Socket_SendDataTo(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Receives raw data from the remote host. (no error
|
||||
* means: try again later
|
||||
*/
|
||||
void Socket_RecvData(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Receives raw data from an unspecified host. The given
|
||||
* address object will contain the remote address. (UDP only)
|
||||
*/
|
||||
void Socket_RecvDataFrom(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Gets a socket option. (advanced)
|
||||
*/
|
||||
void Socket_GetOption(ScriptMethodParams ¶ms);
|
||||
|
||||
/**
|
||||
* Sets a socket option. (advanced)
|
||||
*/
|
||||
void Socket_SetOption(ScriptMethodParams ¶ms);
|
||||
|
||||
public:
|
||||
AGSSock() : PluginBase() {}
|
||||
virtual ~AGSSock() {}
|
||||
|
||||
const char *AGS_GetPluginName() override;
|
||||
void AGS_EngineStartup(IAGSEngine *engine) override;
|
||||
|
||||
};
|
||||
|
||||
} // namespace AGSSock
|
||||
} // namespace Plugins
|
||||
} // namespace AGS3
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user