summaryrefslogtreecommitdiffstats
path: root/sample/template/smhandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sample/template/smhandler.cpp')
-rw-r--r--sample/template/smhandler.cpp157
1 files changed, 0 insertions, 157 deletions
diff --git a/sample/template/smhandler.cpp b/sample/template/smhandler.cpp
deleted file mode 100644
index 54b94d8..0000000
--- a/sample/template/smhandler.cpp
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright (c) 2017 TOYOTA MOTOR CORPORATION
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "libsmwrapper.h"
-using namespace std;
-
-static int create_json_object(const QJsonObject& obj, struct json_object* jobj);
-static bool put_val_to_jobj(const char* key, const QJsonValue& val, struct json_object* jobj);
-static bool put_array_to_jobj(const char* key, const QJsonArray& qarray, struct json_object* jobj);
-
-LibSMWrapper::LibSMWrapper(QObject *parent) :
- QObject(parent)
-{
- /* This is not enabled */
- //libsm = new LibSoundmanager();
-}
-
-LibSMWrapper::LibSMWrapper(const int port, const QString& token, QObject *parent) :
- QObject(parent)
-{
- libsm = new LibSoundmanager(port, token.toStdString());
-}
-
-LibSMWrapper::~LibSMWrapper()
-{
- delete libsm;
-}
-
-int LibSMWrapper::call(const QString &verb, const QString &arg)
-{
- // translate QJsonObject to struct json_object
- struct json_object* jobj = json_object_new_object();
- QJsonDocument jsonDoc = QJsonDocument::fromJson(arg.toUtf8());
- const QJsonObject jsonObj = jsonDoc.object();
- int ret = create_json_object(jsonObj, jobj);
- if(ret < 0)
- {
- return -1;
- }
- return libsm->call(verb.toStdString().c_str(), jobj);
-}
-
-static int create_json_object(const QJsonObject& obj, struct json_object* jobj)
-{
- try{
- for(auto itr = obj.begin(); itr != obj.end();++itr)
- {
- string key = itr.key().toStdString();
- //const char* key = itr.key().toStdString().c_str(); // Do not code like this. string is removed if size is over 16!!
-
- bool ret = put_val_to_jobj(key.c_str(), itr.value(),jobj);
- if(!ret){
- /*This is not implemented*/
- qDebug("JsonArray can't parse for now");
- return -1;
- // ToDo
- // For now, array may not be inputted for soundmanager
- // But use case absolutely exists
- /*QJsonArray qarray = itr.value().toArray();
- ret = put_array_to_jobj(key, qarray, jobj);*/
- }
- }
- }
- catch(...){
- qDebug("Json parse error occured");
- return -1;
- }
- return 0;
-}
-
-static bool put_val_to_jobj(const char* key, const QJsonValue& val, struct json_object* jobj)
-{
- if(val.isArray()){
- return false; // Array can't input
- }
- if(val.isString()){
- string value = val.toString().toStdString();
- json_object_object_add(jobj, key, json_object_new_string(value.c_str()));
- }
- else{
- const int value = val.toInt();
- json_object_object_add(jobj, key, json_object_new_int(value));
- }
- return true;
-}
-
-static bool put_array_to_jobj(const char* key, const QJsonArray& qarray, struct json_object* jobj)
-{
- // ToDo Fix this !!
-/* struct json_object* jarray = json_object_new_array();
-
- bool ret;
- for(auto jitr = qarray.begin(); jitr != qarray.end(); ++jitr){
- struct json_object* tmp = json_object_new_object();
- ret = put_val_to_jobj(key,jitr,tmp);
- if(!ret)
- {
- put_array_to_jobj(key,jitr,tmp);
- }
- json_object_array_add(jarray, tmp);
- }
- json_object_object_add(jobj, key, jarray);
- return true;*/
-}
-
-void LibSMWrapper::wrapper_registerCallback(
- void (*event_func)(const string& event, struct json_object* event_contents),
- void (*reply_func)(struct json_object* reply_contents))
-{
- libsm->register_callback(event_func, reply_func);
-}
-
-void LibSMWrapper::subscribe(const QString event_name)
-{
- std::string str = event_name.toStdString();
- libsm->subscribe(str);
-}
-
-void LibSMWrapper::unsubscribe(const QString event_name)
-{
- std::string str = event_name.toStdString();
- libsm->unsubscribe(str);
-}
-
-void LibSMWrapper::run_eventloop()
-{
- libsm->run_eventloop();
-}
-
-void LibSMWrapper::print(const QString &str)
-{
- qDebug("%s is called", str.toStdString().c_str());
-}
-
-void LibSMWrapper::emit_event(const QString &event, const QJsonObject &msg)
-{
- qDebug("emit smEvent signal @%s", __FUNCTION__);
- emit smEvent(event, msg);
-}
-void LibSMWrapper::emit_reply(const QJsonObject &msg)
-{
- qDebug("emit smReply signal @%s", __FUNCTION__);
- emit smReply(msg);
-} \ No newline at end of file