blob: 770438557b12427a3010b27a7e7e63fb84f3168d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
General Information
======================
KIRO is the KITs InfiniBand remote communication library.
It provides a simple server and client class that can be used to pass arbitrary
information from the server to the client using _native_ InfiniBand
communication.
It also provides a network transmittable ring-buffer (KIRO-TRB) which can be used as
a transmission container for same-sized objects and a (uni directional) self-synchronizing buffer (KIRO-SB) which can be used to automatically keep a local object in sync with a shared remote object.
The library is optimized for speed and ease of use.
Installation
=====================
Please refer to the INSTALL file of this project.
Usage
====================
Example KIRO server usage
```C
#include <kiro-server.h>
...
int memSize = 42;
void *mem = malloc(memSize); //This is the memory we want to provide
KiroServer *server = kiro_server_new ();
const char *address = "192.168.1.1";
const char *port = "60010";
kiro_server_start (server, address, port, mem, memSize);
// The KIRO server is now running
...
kiro_server_stop (server);
kiro_server_free (server);
...
```
Example KIRO client usage
```C
#include <kiro-client.h>
...
KiroClient *client = kiro_client_new ();
const char *address = "192.168.1.1";
const char *port = "60010";
kiro_client_connect (client, address, port);
//The client is now connected
kiro_client_sync (client);
void *mem = kiro_client_get_memory (client);
kiro_client_free (client);
```
For TRB usage, check the examples in the _test_ directory
Licensing
=====================
kiro is copyright to the Karlsruhe Institute of Technology and licensed under
the LGPL 2.1.
|