rllib
1
Main Page
Classes
Files
File List
File Members
All
Classes
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
lib
rldataprovider.h
Go to the documentation of this file.
1
/***************************************************************************
2
rldataprovider.h - description
3
-------------------
4
begin : Fri Dec 20 2002
5
copyright : (C) 2002 by R. Lehrig
6
email : lehrig@t-online.de
7
***************************************************************************/
8
9
/***************************************************************************
10
* *
11
* This library is free software; you can redistribute it and/or modify *
12
* it under the terms of the GNU LESSER GENERAL PUBLIC LICENSE as *
13
* published by the Free Software Foundation *
14
* *
15
***************************************************************************/
16
#ifndef _RL_DATA_PROVIDER_H_
17
#define _RL_DATA_PROVIDER_H_
18
19
#include "
rldefine.h
"
20
#include "
rlthread.h
"
21
#include "
rlsocket.h
"
22
#include "
rlinterpreter.h
"
23
29
class
rlDataProvider
30
{
31
public
:
32
rlDataProvider
(
int
numInteger,
int
numFloat=0,
int
numString=0);
33
virtual
~rlDataProvider
();
34
int
getInt
(
int
id
);
35
float
getFloat
(
int
id
);
36
int
getIntArray
(
int
id
,
int
*i,
int
nmax);
37
int
getFloatArray
(
int
id
,
float
*f,
int
nmax);
38
const
char
*
getString
(
int
id
);
39
int
setInt
(
int
id
,
int
i);
40
int
setFloat
(
int
id
,
float
f);
41
int
setIntArray
(
int
id
,
int
*i,
int
num);
42
int
setFloatArray
(
int
id
,
float
*f,
int
num);
43
int
setString
(
int
id
,
const
char
*str);
44
int
getIntAndReset
(
int
id
);
45
int
setIntAndWaitForReset
(
int
id
,
int
i);
46
int
setInt0Semaphore
(
int
i);
47
int
getInt0Semaphore
();
48
int
run
(
rlSocket
*socket);
49
private
:
50
typedef
char
*
CHARPTR
;
51
int
*
ints
;
52
float
*
floats
;
53
char
**
strings
;
54
int
num_integer
,
num_float
,
num_string
;
55
rlMutex
mutex
;
56
rlSemaphore
int0semaphore
;
57
};
58
62
class
rlDataProviderClient
63
{
64
public
:
65
rlDataProviderClient
();
66
virtual
~rlDataProviderClient
();
67
int
getInt
(
rlSocket
*socket,
int
id
,
int
*status);
68
float
getFloat
(
rlSocket
*socket,
int
id
,
int
*status);
69
int
getIntArray
(
rlSocket
*socket,
int
id
,
int
*array,
int
nmax);
70
int
getFloatArray
(
rlSocket
*socket,
int
id
,
float
*array,
int
nmax);
71
const
char
*
getString
(
rlSocket
*socket,
int
id
,
int
*status);
72
int
setInt
(
rlSocket
*socket,
int
id
,
int
i);
73
int
setFloat
(
rlSocket
*socket,
int
id
,
float
f);
74
int
setIntArray
(
rlSocket
*socket,
int
id
,
int
*i,
int
num);
75
int
setFloatArray
(
rlSocket
*socket,
int
id
,
float
*f,
int
num);
76
int
setString
(
rlSocket
*socket,
int
id
,
const
char
*str);
77
int
getIntAndReset
(
rlSocket
*socket,
int
id
,
int
*status);
78
int
setIntAndWaitForReset
(
rlSocket
*socket,
int
id
,
int
i);
79
int
getInt0Semaphore
(
rlSocket
*socket,
int
*status);
80
private
:
81
rlInterpreter
interpreter
;
82
char
cret
[
rl_PRINTF_LENGTH
];
83
};
84
89
class
rlDataProviderThreads
90
{
91
public
:
92
rlDataProviderThreads
(
int
Port,
rlDataProvider
*Provider);
93
virtual
~rlDataProviderThreads
();
94
void
start
();
95
rlDataProvider
*
provider
;
96
rlThread
thread
;
97
int
port
;
98
};
99
100
#endif
Generated by
1.8.2