mirror of
https://github.com/TokTok/c-toxcore
synced 2026-05-31 19:44:49 +00:00
c08b2fb3e2
We put some tokstyle exemptions into the source files themselves, instead. This way we can check some of the code in those files, and more in the future when tokstyle supports more constructs (like apidsl). Also: hacked ping_array.api.h to not emit `_array` as parameter names. We'll need to fix apidsl to do this better. This works for now.
67 lines
1.4 KiB
C++
67 lines
1.4 KiB
C++
%{
|
|
/* SPDX-License-Identifier: GPL-3.0-or-later
|
|
* Copyright © 2016-2018 The TokTok team.
|
|
* Copyright © 2013 Tox project.
|
|
*/
|
|
|
|
/*
|
|
* Implementation of an efficient array to store that we pinged something.
|
|
*/
|
|
#ifndef C_TOXCORE_TOXCORE_PING_ARRAY_H
|
|
#define C_TOXCORE_TOXCORE_PING_ARRAY_H
|
|
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
%}
|
|
|
|
class mono_Time { struct this; }
|
|
|
|
class ping { class array {
|
|
|
|
struct this;
|
|
|
|
/**
|
|
* Initialize a Ping_Array.
|
|
*
|
|
* @param size represents the total size of the array and should be a power of 2.
|
|
* @param timeout represents the maximum timeout in seconds for the entry.
|
|
*
|
|
* @return 0 on success, -1 on failure.
|
|
*/
|
|
static this new(uint32_t size, uint32_t timeout);
|
|
|
|
/**
|
|
* Free all the allocated memory in a Ping_Array.
|
|
*/
|
|
void kill();
|
|
|
|
/**
|
|
* Add a data with length to the Ping_Array list and return a ping_id.
|
|
*
|
|
* @return ping_id on success, 0 on failure.
|
|
*/
|
|
uint64_t add(const mono_Time::this *mono_time, const uint8_t *data, uint32_t length);
|
|
|
|
/**
|
|
* Check if ping_id is valid and not timed out.
|
|
*
|
|
* On success, copies the data into data of length,
|
|
*
|
|
* @return length of data copied on success, -1 on failure.
|
|
*/
|
|
int32_t check(const mono_Time::this *mono_time, uint8_t[length] data, uint64_t ping_id);
|
|
|
|
} }
|
|
|
|
%{
|
|
#ifdef __cplusplus
|
|
} // extern "C"
|
|
#endif
|
|
|
|
#endif // C_TOXCORE_TOXCORE_PING_ARRAY_H
|
|
%}
|