Qualia  0.2
OscAgent.h
Go to the documentation of this file.
1 /*
2  * OscAgent.h
3  *
4  * (c) 2013 Sofian Audry -- info(@)sofianaudry(.)com
5  *
6  * This program is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program. If not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #ifndef OSCAGENT_H_
21 #define OSCAGENT_H_
22 
23 #include <qualia/core/Agent.h>
24 #include <stdio.h>
25 
26 #include "OscManager.h"
27 
28 class OscAgent: public Agent {
29 public:
30  int id;
31 
33  int actionDim;
35 
36  // Internal use.
38  volatile bool locked;
39  char actionTypes[100];
40 
42  virtual ~OscAgent();
43 
44  char* getPath(const char* path);
45 
46  virtual void init();
47  virtual Action* start(const Observation* observation);
48  virtual Action* step(const Observation* observation);
49  //virtual void end(const Observation* observation);
50 
51  // Read the action from the observationBuffer.
52  virtual Action* readAction(action_dim_t* buffer) = 0;
53 
54  //virtual void save(XFile* file) {}
55  //virtual void load(XFile* file) {}
56 
57 
58  // static int handlerCreate(const char *path, const char *types, lo_arg **argv,
59  // int argc, void *data, void *user_data);
60  static int handlerInit(const char *path, const char *types, lo_arg **argv,
61  int argc, void *data, void *user_data);
62  static int handlerStartStep(const char *path, const char *types, lo_arg **argv,
63  int argc, void *data, void *user_data);
64 };
65 
66 #endif /* OSCAGENT_H_ */