rllib  1
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros
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 
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;
57 };
58 
63 {
64  public:
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:
83 };
84 
90 {
91  public:
92  rlDataProviderThreads(int Port, rlDataProvider *Provider);
93  virtual ~rlDataProviderThreads();
94  void start();
97  int port;
98 };
99 
100 #endif