1
0
mirror of https://github.com/falk-werner/webfuse-provider synced 2026-03-02 04:09:18 +00:00

added implementation of wf_client_connect and wf_client_disconnect

This commit is contained in:
Falk Werner
2020-06-11 22:57:56 +02:00
parent f2bbebd670
commit eb48dbecc5
8 changed files with 371 additions and 16 deletions

View File

@@ -2,6 +2,9 @@
#include "webfuse/adapter/client.h"
#include "webfuse/adapter/credentials.h"
#include "webfuse/utils/threaded_ws_server.h"
using webfuse_test::ThreadedWsServer;
namespace
{
@@ -63,23 +66,71 @@ void callback(
}
}
void callback2(
wf_client * client,
int reason,
void * args)
{
auto * ctx = reinterpret_cast<context*>(wf_client_get_userdata(client));
switch (reason)
{
case WF_CLIENT_CREATED:
ctx->state = connection_state::connecting;
break;
case WF_CLIENT_CONNECTED:
ctx->state = connection_state::connected;
break;
case WF_CLIENT_DISCONNECTED:
ctx->state = connection_state::disconnected;
break;
default:
break;
}
}
}
TEST(client, general_usage)
{
ThreadedWsServer server(54321);
context ctx;
ctx.state = connection_state::connecting;
wf_client * client = wf_client_create(
&callback, reinterpret_cast<void*>(&ctx));
if (nullptr != client)
while (ctx.state != connection_state::disconnected)
{
while (ctx.state != connection_state::disconnected)
{
wf_client_service(client);
}
wf_client_dispose(client);
wf_client_service(client);
}
wf_client_dispose(client);
}
TEST(client, connect)
{
ThreadedWsServer server(54321);
context ctx;
ctx.state = connection_state::connecting;
wf_client * client = wf_client_create(
&callback2, reinterpret_cast<void*>(&ctx));
wf_client_connect(client, "ws://localhost:54321/");
while (ctx.state != connection_state::connected)
{
wf_client_service(client);
}
wf_client_disconnect(client);
while (ctx.state != connection_state::disconnected)
{
wf_client_service(client);
}
wf_client_dispose(client);
}