2019-04-29 05:10:27 +00:00
|
|
|
#include "angel_wings.h"
|
2019-04-29 05:13:45 +00:00
|
|
|
#include "wings_socket.h"
|
|
|
|
using namespace wings;
|
2019-04-29 05:10:27 +00:00
|
|
|
|
2019-04-29 05:55:02 +00:00
|
|
|
void Dart_WingsSocket_listen(Dart_NativeArguments arguments)
|
|
|
|
{
|
|
|
|
uint64_t ptr;
|
|
|
|
Dart_Handle pointerHandle = Dart_GetNativeArgument(arguments, 0);
|
|
|
|
HandleError(Dart_IntegerToUint64(pointerHandle, &ptr));
|
|
|
|
|
|
|
|
auto *socket = (WingsSocket *)ptr;
|
|
|
|
socket->start(arguments);
|
|
|
|
}
|
|
|
|
|
2019-04-29 05:10:27 +00:00
|
|
|
void Dart_WingsSocket_getPort(Dart_NativeArguments arguments)
|
|
|
|
{
|
2019-04-29 05:13:45 +00:00
|
|
|
uint64_t ptr;
|
|
|
|
Dart_Handle pointerHandle = Dart_GetNativeArgument(arguments, 0);
|
|
|
|
HandleError(Dart_IntegerToUint64(pointerHandle, &ptr));
|
|
|
|
|
2019-04-29 05:55:02 +00:00
|
|
|
auto *socket = (WingsSocket *)ptr;
|
2019-04-29 05:13:45 +00:00
|
|
|
auto outHandle = Dart_NewIntegerFromUint64(socket->getInfo().port);
|
|
|
|
Dart_SetReturnValue(arguments, outHandle);
|
2019-04-29 05:10:27 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void Dart_WingsSocket_write(Dart_NativeArguments arguments)
|
|
|
|
{
|
|
|
|
// TODO: Actually do something.
|
|
|
|
}
|
|
|
|
|
|
|
|
void Dart_WingsSocket_closeDescriptor(Dart_NativeArguments arguments)
|
|
|
|
{
|
2019-04-29 05:55:02 +00:00
|
|
|
int64_t fd;
|
|
|
|
Dart_Handle fdHandle = Dart_GetNativeArgument(arguments, 0);
|
|
|
|
HandleError(Dart_IntegerToInt64(fdHandle, &fd));
|
|
|
|
close(fd);
|
2019-04-29 05:10:27 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void Dart_WingsSocket_close(Dart_NativeArguments arguments)
|
|
|
|
{
|
|
|
|
// TODO: Actually do something.
|
|
|
|
}
|