Fawkes API Fawkes Development Version
clips-rest-api.h
1
2/***************************************************************************
3 * clips-rest-api.h - CLIPS REST API
4 *
5 * Created: Sat Mar 31 01:35:21 2018
6 * Copyright 2006-2018 Tim Niemueller [www.niemueller.de]
7 ****************************************************************************/
8
9/* This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU Library General Public License for more details.
18 *
19 * Read the full text in the LICENSE.GPL file in the doc directory.
20 */
21
22#pragma once
23
24#include "model/Environment.h"
25#include "model/Fact.h"
26
27#include <aspect/logging.h>
28#include <aspect/webview.h>
29#include <clipsmm/fact.h>
30#include <core/threading/thread.h>
31#include <core/utils/lockptr.h>
32#include <plugins/clips/aspect/clips_manager.h>
33#include <webview/rest_api.h>
34#include <webview/rest_array.h>
35
36namespace CLIPS {
37class Environment;
38}
39
44{
45public:
48
49 virtual void init();
50 virtual void loop();
51 virtual void finalize();
52
53private:
54 WebviewRestArray<Environment> cb_list_environments();
56
57 Fact
58 gen_fact(fawkes::LockPtr<CLIPS::Environment> &clips, CLIPS::Fact::pointer &fact, bool formatted);
59
60private:
61 fawkes::WebviewRestApi *rest_api_;
62};
REST API backend for CLIPS.
~ClipsRestApi()
Destructor.
virtual void finalize()
Finalize the thread.
virtual void loop()
Code to execute in the thread.
ClipsRestApi()
Constructor.
virtual void init()
Initialize the thread.
Environment representation for JSON transfer.
Definition: Environment.h:28
Fact representation for JSON transfer.
Definition: Fact.h:30
Container to return array via REST.
Definition: rest_array.h:36
Thread aspect access the CLIPS environment manager.
Definition: clips_manager.h:36
Thread aspect to log output.
Definition: logging.h:33
Thread class encapsulation of pthreads.
Definition: thread.h:46
Thread aspect to provide web pages via Webview.
Definition: webview.h:37
Webview REST API component.
Definition: rest_api.h:221
REST parameters to pass to handlers.
Definition: rest_api.h:125