lazarus-ccr/components/beepfp/vortex/vortex_io.inc

179 lines
13 KiB
C++

(*
* LibVortex: C Header file to Free Pascal translation.
* Copyright (C) 2009, Wimpie Nortje <wimpienortje@gmail.com>
*)
(*
* LibVortex: A BEEP (RFC3080/RFC3081) implementation.
* Copyright (C) 2008 Advanced Software Production Line, S.L.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* as published by the Free Software Foundation; either version 2.1
* 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this program; if not, write to the Free
* Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
* 02111-1307 USA
*
* You may find a copy of the license under this software is released
* at COPYING file. This is LGPL software: you are welcome to develop
* proprietary applications using this library without any royalty or
* fee but returning back any change, improvement or addition in the
* form of source code, project image, documentation patches, etc.
*
* For commercial support on build BEEP enabled solutions contact us:
*
* Postal address:
* Advanced Software Production Line, S.L.
* C/ Antonio Suarez 10,
* Edificio Alius A, Despacho 102
* Alcalá de Henares 28802 (Madrid)
* Spain
*
* Email address:
* info@aspl.es - http://www.aspl.es/vortex
*)
{* api to configure current I/O system *}
//axl_bool vortex_io_waiting_use (VortexCtx * ctx,
// VortexIoWaitingType type);
function vortex_io_waiting_use (ctx : PVortexCtx;
atype : TVortexIoWaitingType):Taxl_bool;
cdecl;external External_library name 'vortex_io_waiting_use';
//axl_bool vortex_io_waiting_is_available (VortexIoWaitingType type);
function vortex_io_waiting_is_available (atype : TVortexIoWaitingType):Taxl_bool;
cdecl;external External_library name 'vortex_io_waiting_is_available';
//VortexIoWaitingType vortex_io_waiting_get_current (VortexCtx * ctx);
function vortex_io_waiting_get_current (ctx : PVortexCtx):TVortexIoWaitingType;
cdecl;external External_library name 'vortex_io_waiting_get_current';
//void vortex_io_waiting_set_create_fd_group (VortexCtx * ctx,
// VortexIoCreateFdGroup create);
procedure vortex_io_waiting_set_create_fd_group (ctx : PVortexCtx;
create : TVortexIoCreateFdGroup);
cdecl;external External_library name 'vortex_io_waiting_set_create_fd_group';
//void vortex_io_waiting_set_destroy_fd_group (VortexCtx * ctx,
// VortexIoDestroyFdGroup destroy);
procedure vortex_io_waiting_set_destroy_fd_group (ctx : PVortexCtx;
destroy : TVortexIoDestroyFdGroup);
cdecl;external External_library name 'vortex_io_waiting_set_destroy_fd_group';
//void vortex_io_waiting_set_clear_fd_group (VortexCtx * ctx,
// VortexIoClearFdGroup clear);
procedure vortex_io_waiting_set_clear_fd_group (ctx : PVortexCtx;
clear : TVortexIoClearFdGroup);
cdecl;external External_library name 'vortex_io_waiting_set_clear_fd_group';
//void vortex_io_waiting_set_add_to_fd_group (VortexCtx * ctx,
// VortexIoAddToFdGroup add_to);
procedure vortex_io_waiting_set_add_to_fd_group (ctx : PVortexCtx;
add_to : TVortexIoAddToFdGroup);
cdecl;external External_library name 'vortex_io_waiting_set_add_to_fd_group';
//void vortex_io_waiting_set_is_set_fd_group (VortexCtx * ctx,
// VortexIoIsSetFdGroup is_set);
procedure vortex_io_waiting_set_is_set_fd_group (ctx : PVortexCtx;
is_set : TVortexIoIsSetFdGroup);
cdecl;external External_library name 'vortex_io_waiting_set_is_set_fd_group';
//void vortex_io_waiting_set_have_dispatch (VortexCtx * ctx,
// VortexIoHaveDispatch have_dispatch);
procedure vortex_io_waiting_set_have_dispatch (ctx : PVortexCtx;
have_dispatch : TVortexIoHaveDispatch);
cdecl;external External_library name 'vortex_io_waiting_set_have_dispatch';
//void vortex_io_waiting_set_dispatch (VortexCtx * ctx,
// VortexIoDispatch dispatch);
procedure vortex_io_waiting_set_dispatch (ctx : PVortexCtx;
dispatch : TVortexIoDispatch);
cdecl;external External_library name 'vortex_io_waiting_set_dispatch';
//void vortex_io_waiting_set_wait_on_fd_group (VortexCtx * ctx,
// VortexIoWaitOnFdGroup wait_on);
procedure vortex_io_waiting_set_wait_on_fd_group (ctx : PVortexCtx;
wait_on : TVortexIoWaitOnFdGroup);
cdecl;external External_library name 'vortex_io_waiting_set_wait_on_fd_group';
{* api to perform invocations to the current I/O system configured *}
//axlPointer vortex_io_waiting_invoke_create_fd_group (VortexCtx * ctx,
// VortexIoWaitingFor wait_to);
function vortex_io_waiting_invoke_create_fd_group (ctx : PVortexCtx;
wait_to : TVortexIoWaitingFor):TaxlPointer;
cdecl;external External_library name 'vortex_io_waiting_invoke_create_fd_group';
//void vortex_io_waiting_invoke_destroy_fd_group (VortexCtx * ctx,
// axlPointer fd_group);
procedure vortex_io_waiting_invoke_destroy_fd_group (ctx : PVortexCtx;
fd_group : TaxlPointer);
cdecl;external External_library name 'vortex_io_waiting_invoke_destroy_fd_group';
//void vortex_io_waiting_invoke_clear_fd_group (VortexCtx * ctx,
// axlPointer fd_group);
procedure vortex_io_waiting_invoke_clear_fd_group (ctx : PVortexCtx;
fd_group : TaxlPointer);
cdecl;external External_library name 'vortex_io_waiting_invoke_clear_fd_group';
//axl_bool vortex_io_waiting_invoke_add_to_fd_group (VortexCtx * ctx,
// VORTEX_SOCKET fds,
// VortexConnection * connection,
// axlPointer fd_group);
function vortex_io_waiting_invoke_add_to_fd_group (ctx : PVortexCtx;
fds : TVORTEX_SOCKET;
connection : PVortexConnection;
fd_group : TaxlPointer):Taxl_bool;
cdecl;external External_library name 'vortex_io_waiting_invoke_add_to_fd_group';
//axl_bool vortex_io_waiting_invoke_is_set_fd_group (VortexCtx * ctx,
// VORTEX_SOCKET fds,
// axlPointer fd_group,
// axlPointer user_data);
function vortex_io_waiting_invoke_is_set_fd_group (ctx : PVortexCtx;
fds : TVORTEX_SOCKET;
fd_group : TaxlPointer;
user_data : TaxlPointer):Taxl_bool;
cdecl;external External_library name 'vortex_io_waiting_invoke_is_set_fd_group';
//axl_bool vortex_io_waiting_invoke_have_dispatch (VortexCtx * ctx,
// axlPointer fd_group);
function vortex_io_waiting_invoke_have_dispatch (ctx : PVortexCtx;
fd_group : TaxlPointer):Taxl_bool;
cdecl;external External_library name 'vortex_io_waiting_invoke_have_dispatch';
//void vortex_io_waiting_invoke_dispatch (VortexCtx * ctx,
// axlPointer fd_group,
// VortexIoDispatchFunc func,
// int changed,
// axlPointer user_data);
procedure vortex_io_waiting_invoke_dispatch (ctx : PVortexCtx;
fd_group : TaxlPointer;
func : TVortexIoDispatchFunc;
changed : longint;
user_data : TaxlPointer);
cdecl;external External_library name 'vortex_io_waiting_invoke_dispatch';
//int vortex_io_waiting_invoke_wait (VortexCtx * ctx,
// axlPointer fd_group,
// int max_fds,
// VortexIoWaitingFor wait_to);
function vortex_io_waiting_invoke_wait (ctx : PVortexCtx;
fd_group : TaxlPointer;
max_fds : longint;
wait_to : TVortexIoWaitingFor):longint;
cdecl;external External_library name 'vortex_io_waiting_invoke_wait';
//void vortex_io_init (VortexCtx * ctx);
procedure vortex_io_init (ctx:PVortexCtx);
cdecl;external External_library name 'vortex_io_init';