parent
1d4db34ecb
commit
bbdd5a24f5
@ -1,24 +0,0 @@
|
|||||||
# wf_jsonrpc
|
|
||||||
|
|
||||||
add_library(wf_jsonrpc STATIC
|
|
||||||
lib/wf/jsonrpc/src/wf/jsonrpc/api.c
|
|
||||||
lib/wf/jsonrpc/src/wf/jsonrpc/impl/proxy.c
|
|
||||||
lib/wf/jsonrpc/src/wf/jsonrpc/impl/server.c
|
|
||||||
lib/wf/jsonrpc/src/wf/jsonrpc/impl/method.c
|
|
||||||
lib/wf/jsonrpc/src/wf/jsonrpc/impl/request.c
|
|
||||||
lib/wf/jsonrpc/src/wf/jsonrpc/impl/response.c
|
|
||||||
lib/wf/jsonrpc/src/wf/jsonrpc/impl/error.c
|
|
||||||
)
|
|
||||||
|
|
||||||
target_link_libraries(wf_jsonrpc PUBLIC wf_timer)
|
|
||||||
|
|
||||||
target_include_directories(wf_jsonrpc PRIVATE
|
|
||||||
lib/wf/timer/include
|
|
||||||
lib/wf/jsonrpc/src
|
|
||||||
)
|
|
||||||
|
|
||||||
target_include_directories(wf_jsonrpc PUBLIC
|
|
||||||
lib/wf/jsonrpc/include
|
|
||||||
)
|
|
||||||
|
|
||||||
set_target_properties(wf_jsonrpc PROPERTIES C_VISIBILITY_PRESET hidden)
|
|
@ -1,18 +0,0 @@
|
|||||||
# timer
|
|
||||||
|
|
||||||
add_library(wf_timer STATIC
|
|
||||||
lib/wf/timer/src/wf/timer/api.c
|
|
||||||
lib/wf/timer/src/wf/timer/impl/manager.c
|
|
||||||
lib/wf/timer/src/wf/timer/impl/timepoint.c
|
|
||||||
lib/wf/timer/src/wf/timer/impl/timer.c
|
|
||||||
)
|
|
||||||
|
|
||||||
target_include_directories(wf_timer PRIVATE
|
|
||||||
lib/wf/timer/src
|
|
||||||
)
|
|
||||||
|
|
||||||
target_include_directories(wf_timer PUBLIC
|
|
||||||
lib/wf/timer/include
|
|
||||||
)
|
|
||||||
|
|
||||||
set_target_properties(wf_timer PROPERTIES C_VISIBILITY_PRESET hidden)
|
|
@ -0,0 +1,48 @@
|
|||||||
|
#ifndef WF_JSONRPC_PROXY_INTERN_H
|
||||||
|
#define WF_JSONRPC_PROXY_INTERN_H
|
||||||
|
|
||||||
|
#include "webfuse/core/jsonrpc/proxy.h"
|
||||||
|
#include "webfuse/core/jsonrpc/proxy_finished_fn.h"
|
||||||
|
#include "webfuse/core/jsonrpc/send_fn.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C"
|
||||||
|
{
|
||||||
|
#endif
|
||||||
|
|
||||||
|
struct wf_timer;
|
||||||
|
|
||||||
|
struct wf_jsonrpc_request
|
||||||
|
{
|
||||||
|
bool is_pending;
|
||||||
|
wf_jsonrpc_proxy_finished_fn * finished;
|
||||||
|
void * user_data;
|
||||||
|
int id;
|
||||||
|
struct wf_timer * timer;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct wf_jsonrpc_proxy
|
||||||
|
{
|
||||||
|
struct wf_jsonrpc_request request;
|
||||||
|
int timeout;
|
||||||
|
wf_jsonrpc_send_fn * send;
|
||||||
|
void * user_data;
|
||||||
|
};
|
||||||
|
|
||||||
|
extern void
|
||||||
|
wf_jsonrpc_proxy_init(
|
||||||
|
struct wf_jsonrpc_proxy * proxy,
|
||||||
|
struct wf_timer_manager * manager,
|
||||||
|
int timeout,
|
||||||
|
wf_jsonrpc_send_fn * send,
|
||||||
|
void * user_data);
|
||||||
|
|
||||||
|
extern void
|
||||||
|
wf_jsonrpc_proxy_cleanup(
|
||||||
|
struct wf_jsonrpc_proxy * proxy);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
@ -0,0 +1,26 @@
|
|||||||
|
#ifndef WF_TIMER_MANAGER_INTERN_H
|
||||||
|
#define WF_TIMER_MANAGER_INTERN_H
|
||||||
|
|
||||||
|
#include "webfuse/core/timer/manager.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C"
|
||||||
|
{
|
||||||
|
#endif
|
||||||
|
|
||||||
|
struct wf_timer;
|
||||||
|
|
||||||
|
extern void wf_timer_manager_addtimer(
|
||||||
|
struct wf_timer_manager * manager,
|
||||||
|
struct wf_timer * timer);
|
||||||
|
|
||||||
|
extern void wf_timer_manager_removetimer(
|
||||||
|
struct wf_timer_manager * manager,
|
||||||
|
struct wf_timer * timer);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
@ -0,0 +1,40 @@
|
|||||||
|
#ifndef WF_TIMER_TIMER_H
|
||||||
|
#define WF_TIMER_TIMER_H
|
||||||
|
|
||||||
|
#include "webfuse/core/timer/timer.h"
|
||||||
|
#include "webfuse/core/timer/on_timer_fn.h"
|
||||||
|
#include "webfuse/core/timer/timepoint.h"
|
||||||
|
|
||||||
|
#ifndef __cplusplus
|
||||||
|
#include <stdbool.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C"
|
||||||
|
{
|
||||||
|
#endif
|
||||||
|
|
||||||
|
struct wf_timer
|
||||||
|
{
|
||||||
|
struct wf_timer_manager * manager;
|
||||||
|
wf_timer_timepoint timeout;
|
||||||
|
wf_timer_on_timer_fn * on_timer;
|
||||||
|
void * user_data;
|
||||||
|
struct wf_timer * next;
|
||||||
|
struct wf_timer * prev;
|
||||||
|
};
|
||||||
|
|
||||||
|
extern bool wf_timer_is_timeout(
|
||||||
|
struct wf_timer * timer);
|
||||||
|
|
||||||
|
extern void wf_timer_trigger(
|
||||||
|
struct wf_timer * timer);
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
@ -1,14 +0,0 @@
|
|||||||
#ifndef WF_JSONRPC_H
|
|
||||||
#define WF_JSONRPC_H
|
|
||||||
|
|
||||||
#include <wf/jsonrpc/api.h>
|
|
||||||
#include <wf/jsonrpc/method_invoke_fn.h>
|
|
||||||
#include <wf/jsonrpc/proxy.h>
|
|
||||||
#include <wf/jsonrpc/proxy_finished_fn.h>
|
|
||||||
#include <wf/jsonrpc/request.h>
|
|
||||||
#include <wf/jsonrpc/response.h>
|
|
||||||
#include <wf/jsonrpc/send_fn.h>
|
|
||||||
#include <wf/jsonrpc/server.h>
|
|
||||||
#include <wf/jsonrpc/status.h>
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,8 +0,0 @@
|
|||||||
#ifndef WF_JSONRPC_API_H
|
|
||||||
#define WF_JSONRPC_API_H
|
|
||||||
|
|
||||||
#ifndef WF_JSONRPC_API
|
|
||||||
#define WF_JSONRPC_API
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,11 +0,0 @@
|
|||||||
#ifndef WF_JSONRPC_STATUS_H
|
|
||||||
#define WF_JSONRPC_STATUS_H
|
|
||||||
|
|
||||||
#define WF_JSONRPC_GOOD 0
|
|
||||||
#define WF_JSONRPC_BAD -1
|
|
||||||
#define WF_JSONRPC_BAD_NOTIMPLEMENTED -2
|
|
||||||
#define WF_JSONRPC_BAD_TIMEOUT -3
|
|
||||||
#define WF_JSONRPC_BAD_BUSY -4
|
|
||||||
#define WF_JSONRPC_BAD_FORMAT -5
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,144 +0,0 @@
|
|||||||
#include "wf/jsonrpc.h"
|
|
||||||
|
|
||||||
#include "wf/jsonrpc/impl/proxy.h"
|
|
||||||
#include "wf/jsonrpc/impl/request.h"
|
|
||||||
#include "wf/jsonrpc/impl/response.h"
|
|
||||||
#include "wf/jsonrpc/impl/server.h"
|
|
||||||
|
|
||||||
// proxy
|
|
||||||
|
|
||||||
struct wf_jsonrpc_proxy *
|
|
||||||
wf_jsonrpc_proxy_create(
|
|
||||||
struct wf_timer_manager * manager,
|
|
||||||
int timeout,
|
|
||||||
wf_jsonrpc_send_fn * send,
|
|
||||||
void * user_data)
|
|
||||||
{
|
|
||||||
return wf_jsonrpc_impl_proxy_create(manager, timeout, send, user_data);
|
|
||||||
}
|
|
||||||
|
|
||||||
void wf_jsonrpc_proxy_dispose(
|
|
||||||
struct wf_jsonrpc_proxy * proxy)
|
|
||||||
{
|
|
||||||
wf_jsonrpc_impl_proxy_dispose(proxy);
|
|
||||||
}
|
|
||||||
|
|
||||||
void wf_jsonrpc_proxy_invoke(
|
|
||||||
struct wf_jsonrpc_proxy * proxy,
|
|
||||||
wf_jsonrpc_proxy_finished_fn * finished,
|
|
||||||
void * user_data,
|
|
||||||
char const * method_name,
|
|
||||||
char const * param_info,
|
|
||||||
...
|
|
||||||
)
|
|
||||||
{
|
|
||||||
va_list args;
|
|
||||||
va_start(args, param_info);
|
|
||||||
wf_jsonrpc_impl_proxy_invoke(proxy, finished, user_data, method_name, param_info, args);
|
|
||||||
va_end(args);
|
|
||||||
}
|
|
||||||
|
|
||||||
void wf_jsonrpc_proxy_notify(
|
|
||||||
struct wf_jsonrpc_proxy * proxy,
|
|
||||||
char const * method_name,
|
|
||||||
char const * param_info,
|
|
||||||
...
|
|
||||||
)
|
|
||||||
{
|
|
||||||
va_list args;
|
|
||||||
va_start(args, param_info);
|
|
||||||
wf_jsonrpc_impl_proxy_notify(proxy, method_name, param_info, args);
|
|
||||||
va_end(args);
|
|
||||||
}
|
|
||||||
|
|
||||||
void wf_jsonrpc_proxy_onresult(
|
|
||||||
struct wf_jsonrpc_proxy * proxy,
|
|
||||||
json_t * message)
|
|
||||||
{
|
|
||||||
wf_jsonrpc_impl_proxy_onresult(proxy, message);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// request
|
|
||||||
|
|
||||||
bool wf_jsonrpc_is_request(
|
|
||||||
json_t * message)
|
|
||||||
{
|
|
||||||
return wf_jsonrpc_impl_is_request(message);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct wf_jsonrpc_request * wf_jsonrpc_request_create(
|
|
||||||
int id,
|
|
||||||
wf_jsonrpc_send_fn * send,
|
|
||||||
void * user_data)
|
|
||||||
{
|
|
||||||
return wf_jsonrpc_impl_request_create(id, send, user_data);
|
|
||||||
}
|
|
||||||
|
|
||||||
void wf_jsonrpc_request_dispose(
|
|
||||||
struct wf_jsonrpc_request * request)
|
|
||||||
{
|
|
||||||
wf_jsonrpc_impl_request_dispose(request);
|
|
||||||
}
|
|
||||||
|
|
||||||
void * wf_jsonrpc_request_get_userdata(
|
|
||||||
struct wf_jsonrpc_request * request)
|
|
||||||
{
|
|
||||||
return wf_jsonrpc_impl_request_get_userdata(request);
|
|
||||||
}
|
|
||||||
|
|
||||||
void wf_jsonrpc_respond(
|
|
||||||
struct wf_jsonrpc_request * request,
|
|
||||||
json_t * result)
|
|
||||||
{
|
|
||||||
wf_jsonrpc_impl_respond(request, result);
|
|
||||||
}
|
|
||||||
|
|
||||||
void wf_jsonrpc_respond_error(
|
|
||||||
struct wf_jsonrpc_request * request,
|
|
||||||
int code,
|
|
||||||
char const * message)
|
|
||||||
{
|
|
||||||
wf_jsonrpc_impl_respond_error(request, code, message);
|
|
||||||
}
|
|
||||||
|
|
||||||
// response
|
|
||||||
|
|
||||||
bool wf_jsonrpc_is_response(
|
|
||||||
json_t * message)
|
|
||||||
{
|
|
||||||
return wf_jsonrpc_impl_is_response(message);
|
|
||||||
}
|
|
||||||
|
|
||||||
// server
|
|
||||||
|
|
||||||
struct wf_jsonrpc_server *
|
|
||||||
wf_jsonrpc_server_create(void)
|
|
||||||
{
|
|
||||||
return wf_jsonrpc_impl_server_create();
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
wf_jsonrpc_server_dispose(
|
|
||||||
struct wf_jsonrpc_server * server)
|
|
||||||
{
|
|
||||||
wf_jsonrpc_impl_server_dispose(server);
|
|
||||||
}
|
|
||||||
|
|
||||||
void wf_jsonrpc_server_add(
|
|
||||||
struct wf_jsonrpc_server * server,
|
|
||||||
char const * method_name,
|
|
||||||
wf_jsonrpc_method_invoke_fn * invoke,
|
|
||||||
void * user_data)
|
|
||||||
{
|
|
||||||
wf_jsonrpc_impl_server_add(server, method_name, invoke, user_data);
|
|
||||||
}
|
|
||||||
|
|
||||||
void wf_jsonrpc_server_process(
|
|
||||||
struct wf_jsonrpc_server * server,
|
|
||||||
json_t * request,
|
|
||||||
wf_jsonrpc_send_fn * send,
|
|
||||||
void * user_data)
|
|
||||||
{
|
|
||||||
wf_jsonrpc_impl_server_process(server, request, send, user_data);
|
|
||||||
}
|
|
@ -1,84 +0,0 @@
|
|||||||
#ifndef WF_JSONRPC_IMPL_PROXY_H
|
|
||||||
#define WF_JSONRPC_IMPL_PROXY_H
|
|
||||||
|
|
||||||
#include "wf/jsonrpc/proxy_finished_fn.h"
|
|
||||||
#include "wf/jsonrpc/send_fn.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C"
|
|
||||||
{
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct wf_timer_manager;
|
|
||||||
struct wf_timer;
|
|
||||||
|
|
||||||
struct wf_jsonrpc_request
|
|
||||||
{
|
|
||||||
bool is_pending;
|
|
||||||
wf_jsonrpc_proxy_finished_fn * finished;
|
|
||||||
void * user_data;
|
|
||||||
int id;
|
|
||||||
struct wf_timer * timer;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct wf_jsonrpc_proxy
|
|
||||||
{
|
|
||||||
struct wf_jsonrpc_request request;
|
|
||||||
int timeout;
|
|
||||||
wf_jsonrpc_send_fn * send;
|
|
||||||
void * user_data;
|
|
||||||
};
|
|
||||||
|
|
||||||
extern void
|
|
||||||
wf_jsonrpc_impl_proxy_init(
|
|
||||||
struct wf_jsonrpc_proxy * proxy,
|
|
||||||
struct wf_timer_manager * manager,
|
|
||||||
int timeout,
|
|
||||||
wf_jsonrpc_send_fn * send,
|
|
||||||
void * user_data);
|
|
||||||
|
|
||||||
extern void
|
|
||||||
wf_jsonrpc_impl_proxy_cleanup(
|
|
||||||
struct wf_jsonrpc_proxy * proxy);
|
|
||||||
|
|
||||||
extern struct wf_jsonrpc_proxy *
|
|
||||||
wf_jsonrpc_impl_proxy_create(
|
|
||||||
struct wf_timer_manager * manager,
|
|
||||||
int timeout,
|
|
||||||
wf_jsonrpc_send_fn * send,
|
|
||||||
void * user_data);
|
|
||||||
|
|
||||||
extern void
|
|
||||||
wf_jsonrpc_impl_proxy_dispose(
|
|
||||||
struct wf_jsonrpc_proxy * proxy);
|
|
||||||
|
|
||||||
|
|
||||||
extern void
|
|
||||||
wf_jsonrpc_impl_proxy_invoke(
|
|
||||||
struct wf_jsonrpc_proxy * proxy,
|
|
||||||
wf_jsonrpc_proxy_finished_fn * finished,
|
|
||||||
void * user_data,
|
|
||||||
char const * method_name,
|
|
||||||
char const * param_info,
|
|
||||||
va_list args
|
|
||||||
);
|
|
||||||
|
|
||||||
extern void
|
|
||||||
wf_jsonrpc_impl_proxy_notify(
|
|
||||||
struct wf_jsonrpc_proxy * proxy,
|
|
||||||
char const * method_name,
|
|
||||||
char const * param_info,
|
|
||||||
va_list args
|
|
||||||
);
|
|
||||||
|
|
||||||
extern void
|
|
||||||
wf_jsonrpc_impl_proxy_onresult(
|
|
||||||
struct wf_jsonrpc_proxy * proxy,
|
|
||||||
json_t * message);
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,53 +0,0 @@
|
|||||||
#ifndef WF_JSONRPC_IMPL_REQUEST_H
|
|
||||||
#define WF_JSONRPC_IMPL_REQUEST_H
|
|
||||||
|
|
||||||
#ifndef __cplusplus
|
|
||||||
#include <stdarg.h>
|
|
||||||
#include <stddef.h>
|
|
||||||
#include <stdbool.h>
|
|
||||||
#else
|
|
||||||
#include <cstdarg>
|
|
||||||
#include <cstddef>
|
|
||||||
using std::size_t;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <jansson.h>
|
|
||||||
#include <wf/jsonrpc/api.h>
|
|
||||||
#include "wf/jsonrpc/send_fn.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C"
|
|
||||||
{
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct wf_jsonrpc_request;
|
|
||||||
|
|
||||||
extern bool wf_jsonrpc_impl_is_request(
|
|
||||||
json_t * message);
|
|
||||||
|
|
||||||
extern struct wf_jsonrpc_request * wf_jsonrpc_impl_request_create(
|
|
||||||
int id,
|
|
||||||
wf_jsonrpc_send_fn * send,
|
|
||||||
void * user_data);
|
|
||||||
|
|
||||||
extern void wf_jsonrpc_impl_request_dispose(
|
|
||||||
struct wf_jsonrpc_request * request);
|
|
||||||
|
|
||||||
extern void * wf_jsonrpc_impl_request_get_userdata(
|
|
||||||
struct wf_jsonrpc_request * request);
|
|
||||||
|
|
||||||
extern void wf_jsonrpc_impl_respond(
|
|
||||||
struct wf_jsonrpc_request * request,
|
|
||||||
json_t * result);
|
|
||||||
|
|
||||||
extern void wf_jsonrpc_impl_respond_error(
|
|
||||||
struct wf_jsonrpc_request * request,
|
|
||||||
int code,
|
|
||||||
char const * message);
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,41 +0,0 @@
|
|||||||
#ifndef WF_JSONRPC_IMPL_SERVER_H
|
|
||||||
#define WF_JSONRPC_IMPL_SERVER_H
|
|
||||||
|
|
||||||
#include <jansson.h>
|
|
||||||
#include "wf/jsonrpc/method_invoke_fn.h"
|
|
||||||
#include "wf/jsonrpc/send_fn.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C"
|
|
||||||
{
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct wf_jsonrpc_server;
|
|
||||||
|
|
||||||
extern struct wf_jsonrpc_server *
|
|
||||||
wf_jsonrpc_impl_server_create(void);
|
|
||||||
|
|
||||||
extern void
|
|
||||||
wf_jsonrpc_impl_server_dispose(
|
|
||||||
struct wf_jsonrpc_server * server);
|
|
||||||
|
|
||||||
extern void
|
|
||||||
wf_jsonrpc_impl_server_add(
|
|
||||||
struct wf_jsonrpc_server * server,
|
|
||||||
char const * method_name,
|
|
||||||
wf_jsonrpc_method_invoke_fn * invoke,
|
|
||||||
void * user_data);
|
|
||||||
|
|
||||||
extern void
|
|
||||||
wf_jsonrpc_impl_server_process(
|
|
||||||
struct wf_jsonrpc_server * server,
|
|
||||||
json_t * request,
|
|
||||||
wf_jsonrpc_send_fn * send,
|
|
||||||
void * user_data);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,10 +0,0 @@
|
|||||||
#ifndef WF_JSONRPC_UTIL_H
|
|
||||||
#define WF_JSONRPC_UTIL_H
|
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#define WF_JSONRPC_UNUSED_PARAM(param) param __attribute__((unused))
|
|
||||||
#else
|
|
||||||
#define WF_JSONRPC_UNUSED_PARAM(param)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,9 +0,0 @@
|
|||||||
#ifndef WF_TIMER_H
|
|
||||||
#define WF_TIMER_H
|
|
||||||
|
|
||||||
#include <wf/timer/api.h>
|
|
||||||
#include <wf/timer/on_timer_fn.h>
|
|
||||||
#include <wf/timer/timer.h>
|
|
||||||
#include <wf/timer/manager.h>
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,8 +0,0 @@
|
|||||||
#ifndef WF_TIMER_API_H
|
|
||||||
#define WF_TIMER_API_H
|
|
||||||
|
|
||||||
#ifndef WF_TIMER_API
|
|
||||||
#define WF_TIMER_API
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,59 +0,0 @@
|
|||||||
#include "wf/timer.h"
|
|
||||||
|
|
||||||
#include "wf/timer/impl/manager.h"
|
|
||||||
#include "wf/timer/impl/timer.h"
|
|
||||||
|
|
||||||
// manager
|
|
||||||
|
|
||||||
struct wf_timer_manager *
|
|
||||||
wf_timer_manager_create(void)
|
|
||||||
{
|
|
||||||
return wf_timer_impl_manager_create();
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
wf_timer_manager_dispose(
|
|
||||||
struct wf_timer_manager * manager)
|
|
||||||
{
|
|
||||||
wf_timer_impl_manager_dispose(manager);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
wf_timer_manager_check(
|
|
||||||
struct wf_timer_manager * manager)
|
|
||||||
{
|
|
||||||
wf_timer_impl_manager_check(manager);
|
|
||||||
}
|
|
||||||
|
|
||||||
// timer
|
|
||||||
|
|
||||||
struct wf_timer *
|
|
||||||
wf_timer_create(
|
|
||||||
struct wf_timer_manager * manager,
|
|
||||||
wf_timer_on_timer_fn * on_timer,
|
|
||||||
void * user_data)
|
|
||||||
{
|
|
||||||
return wf_timer_impl_create(manager, on_timer, user_data);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
wf_timer_dispose(
|
|
||||||
struct wf_timer * timer)
|
|
||||||
{
|
|
||||||
wf_timer_impl_dispose(timer);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
wf_timer_start(
|
|
||||||
struct wf_timer * timer,
|
|
||||||
int timeout_ms)
|
|
||||||
{
|
|
||||||
wf_timer_impl_start(timer, timeout_ms);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
wf_timer_cancel(
|
|
||||||
struct wf_timer * timer)
|
|
||||||
{
|
|
||||||
wf_timer_impl_cancel(timer);
|
|
||||||
}
|
|
@ -1,36 +0,0 @@
|
|||||||
#ifndef WF_TIMER_IMPL_MANAGER_H
|
|
||||||
#define WF_TIMER_IMPL_MANAGER_H
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C"
|
|
||||||
{
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct wf_timer;
|
|
||||||
struct wf_timer_manager;
|
|
||||||
|
|
||||||
extern struct wf_timer_manager *
|
|
||||||
wf_timer_impl_manager_create(void);
|
|
||||||
|
|
||||||
extern void
|
|
||||||
wf_timer_impl_manager_dispose(
|
|
||||||
struct wf_timer_manager * manager);
|
|
||||||
|
|
||||||
extern void
|
|
||||||
wf_timer_impl_manager_check(
|
|
||||||
struct wf_timer_manager * manager);
|
|
||||||
|
|
||||||
extern void wf_timer_impl_manager_addtimer(
|
|
||||||
struct wf_timer_manager * manager,
|
|
||||||
struct wf_timer * timer);
|
|
||||||
|
|
||||||
extern void wf_timer_impl_manager_removetimer(
|
|
||||||
struct wf_timer_manager * manager,
|
|
||||||
struct wf_timer * timer);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,59 +0,0 @@
|
|||||||
#ifndef WF_ADAPTER_IMPL_TIME_TIMER_H
|
|
||||||
#define WF_ADAPTER_IMPL_TIME_TIMER_H
|
|
||||||
|
|
||||||
#include "wf/timer/on_timer_fn.h"
|
|
||||||
#include "wf/timer/impl/timepoint.h"
|
|
||||||
|
|
||||||
#ifndef __cplusplus
|
|
||||||
#include <stdbool.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C"
|
|
||||||
{
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct wf_timer_manager;
|
|
||||||
|
|
||||||
struct wf_timer
|
|
||||||
{
|
|
||||||
struct wf_timer_manager * manager;
|
|
||||||
wf_timer_timepoint timeout;
|
|
||||||
wf_timer_on_timer_fn * on_timer;
|
|
||||||
void * user_data;
|
|
||||||
struct wf_timer * next;
|
|
||||||
struct wf_timer * prev;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
struct wf_timer *
|
|
||||||
wf_timer_impl_create(
|
|
||||||
struct wf_timer_manager * manager,
|
|
||||||
wf_timer_on_timer_fn * on_timer,
|
|
||||||
void * user_data);
|
|
||||||
|
|
||||||
void
|
|
||||||
wf_timer_impl_dispose(
|
|
||||||
struct wf_timer * timer);
|
|
||||||
|
|
||||||
extern void wf_timer_impl_start(
|
|
||||||
struct wf_timer * timer,
|
|
||||||
int timeout_ms);
|
|
||||||
|
|
||||||
extern void wf_timer_impl_cancel(
|
|
||||||
struct wf_timer * timer);
|
|
||||||
|
|
||||||
extern bool wf_timer_impl_is_timeout(
|
|
||||||
struct wf_timer * timer);
|
|
||||||
|
|
||||||
extern void wf_timer_impl_trigger(
|
|
||||||
struct wf_timer * timer);
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,38 +0,0 @@
|
|||||||
#include <gtest/gtest.h>
|
|
||||||
|
|
||||||
#include "wf/timer/impl/timepoint.h"
|
|
||||||
|
|
||||||
#include <thread>
|
|
||||||
#include <chrono>
|
|
||||||
|
|
||||||
using namespace std::chrono_literals;
|
|
||||||
|
|
||||||
TEST(wf_timer_timepoint, now)
|
|
||||||
{
|
|
||||||
wf_timer_timepoint start = wf_timer_impl_timepoint_now();
|
|
||||||
std::this_thread::sleep_for(42ms);
|
|
||||||
wf_timer_timepoint end = wf_timer_impl_timepoint_now();
|
|
||||||
|
|
||||||
ASSERT_LT(start, end);
|
|
||||||
ASSERT_LT(end, start + 500);
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(wf_timer_timepoint, in_msec)
|
|
||||||
{
|
|
||||||
wf_timer_timepoint now = wf_timer_impl_timepoint_now();
|
|
||||||
wf_timer_timepoint later = wf_timer_impl_timepoint_in_msec(42);
|
|
||||||
|
|
||||||
ASSERT_LT(now, later);
|
|
||||||
ASSERT_LT(later, now + 500);
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(wf_timer_timepoint, elapsed)
|
|
||||||
{
|
|
||||||
wf_timer_timepoint now;
|
|
||||||
|
|
||||||
now = wf_timer_impl_timepoint_now();
|
|
||||||
ASSERT_TRUE(wf_timer_impl_timepoint_is_elapsed(now - 1));
|
|
||||||
|
|
||||||
now = wf_timer_impl_timepoint_now();
|
|
||||||
ASSERT_FALSE(wf_timer_impl_timepoint_is_elapsed(now + 500));
|
|
||||||
}
|
|
@ -1,5 +1,5 @@
|
|||||||
#include "wf/jsonrpc/mock_timer.hpp"
|
#include "webfuse/tests/core/jsonrpc/mock_timer.hpp"
|
||||||
#include "wf/jsonrpc/wrap.hpp"
|
#include "webfuse/utils/wrap.hpp"
|
||||||
|
|
||||||
extern "C"
|
extern "C"
|
||||||
{
|
{
|
@ -1,7 +1,8 @@
|
|||||||
#ifndef WF_JSONRPC_MOCK_TIMERMANAGER_HPP
|
#ifndef WF_JSONRPC_MOCK_TIMERMANAGER_HPP
|
||||||
#define WF_JSONRPC_MOCK_TIMERMANAGER_HPP
|
#define WF_JSONRPC_MOCK_TIMERMANAGER_HPP
|
||||||
|
|
||||||
#include <wf/timer.h>
|
#include "webfuse/core/timer/timer.h"
|
||||||
|
#include "webfuse/core/timer/manager.h"
|
||||||
#include <gmock/gmock.h>
|
#include <gmock/gmock.h>
|
||||||
|
|
||||||
namespace wf_jsonrpc_test
|
namespace wf_jsonrpc_test
|
@ -1,4 +1,4 @@
|
|||||||
#include "wf/jsonrpc/mock_timer_callback.hpp"
|
#include "webfuse/tests/core/jsonrpc/mock_timer_callback.hpp"
|
||||||
|
|
||||||
extern "C"
|
extern "C"
|
||||||
{
|
{
|
@ -1,7 +1,7 @@
|
|||||||
#ifndef WF_JSONRPC_MOCK_TIMERCALLBACK_HPP
|
#ifndef WF_JSONRPC_MOCK_TIMERCALLBACK_HPP
|
||||||
#define WF_JSONRPC_MOCK_TIMERCALLBACK_HPP
|
#define WF_JSONRPC_MOCK_TIMERCALLBACK_HPP
|
||||||
|
|
||||||
#include "wf/timer.h"
|
#include "webfuse/core/timer/on_timer_fn.h"
|
||||||
#include <gmock/gmock.h>
|
#include <gmock/gmock.h>
|
||||||
|
|
||||||
namespace wf_jsonrpc_test
|
namespace wf_jsonrpc_test
|
@ -1,5 +1,5 @@
|
|||||||
#include <gtest/gtest.h>
|
#include <gtest/gtest.h>
|
||||||
#include "wf/jsonrpc/request.h"
|
#include "webfuse/core/jsonrpc/request.h"
|
||||||
|
|
||||||
TEST(wf_jsonrpc_is_request, request_with_object_params)
|
TEST(wf_jsonrpc_is_request, request_with_object_params)
|
||||||
{
|
{
|
@ -1,5 +1,5 @@
|
|||||||
#include <gtest/gtest.h>
|
#include <gtest/gtest.h>
|
||||||
#include "wf/jsonrpc/response.h"
|
#include "webfuse/core/jsonrpc/response.h"
|
||||||
|
|
||||||
TEST(wf_jsonrpc_is_response, valid_result)
|
TEST(wf_jsonrpc_is_response, valid_result)
|
||||||
{
|
{
|
@ -0,0 +1,38 @@
|
|||||||
|
#include <gtest/gtest.h>
|
||||||
|
|
||||||
|
#include "webfuse/core/timer/timepoint.h"
|
||||||
|
|
||||||
|
#include <thread>
|
||||||
|
#include <chrono>
|
||||||
|
|
||||||
|
using namespace std::chrono_literals;
|
||||||
|
|
||||||
|
TEST(wf_timer_timepoint, now)
|
||||||
|
{
|
||||||
|
wf_timer_timepoint start = wf_timer_timepoint_now();
|
||||||
|
std::this_thread::sleep_for(42ms);
|
||||||
|
wf_timer_timepoint end = wf_timer_timepoint_now();
|
||||||
|
|
||||||
|
ASSERT_LT(start, end);
|
||||||
|
ASSERT_LT(end, start + 500);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(wf_timer_timepoint, in_msec)
|
||||||
|
{
|
||||||
|
wf_timer_timepoint now = wf_timer_timepoint_now();
|
||||||
|
wf_timer_timepoint later = wf_timer_timepoint_in_msec(42);
|
||||||
|
|
||||||
|
ASSERT_LT(now, later);
|
||||||
|
ASSERT_LT(later, now + 500);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(wf_timer_timepoint, elapsed)
|
||||||
|
{
|
||||||
|
wf_timer_timepoint now;
|
||||||
|
|
||||||
|
now = wf_timer_timepoint_now();
|
||||||
|
ASSERT_TRUE(wf_timer_timepoint_is_elapsed(now - 1));
|
||||||
|
|
||||||
|
now = wf_timer_timepoint_now();
|
||||||
|
ASSERT_FALSE(wf_timer_timepoint_is_elapsed(now + 500));
|
||||||
|
}
|
Loading…
Reference in new issue