Commit 40535e79fc2e27ca8b920429951a8860d4cfb754

Authored by Wesnydy Ribeiro
1 parent 1562909b
Exists in master and in 1 other branch devel

Adicionado a API jsoncpp

Makefile
... ... @@ -9,6 +9,8 @@ FLAGS=-g
9 9 LIBS= \
10 10 `pkg-config --cflags jlibcpp` \
11 11 `pkg-config --libs jlibcpp` \
  12 + `pkg-config --cflags jsoncpp` \
  13 + `pkg-config --libs jsoncpp` \
12 14 -lpython2.7 -llavid_base -llavid_io
13 15  
14 16 INCLUDES= \
... ... @@ -24,8 +26,7 @@ INCLUDES= \
24 26 #-I libs/jthread/include -I libs/jcommon/include -I libs/jsocket/include -Wall
25 27  
26 28 utilObjs= \
27   - logger.o \
28   - property.o
  29 + logger.o
29 30  
30 31 tradutorObjs = \
31 32 pyTradutor.o \
... ...
mixer/src/include/Mixer.h
... ... @@ -17,7 +17,6 @@
17 17 #include <string>
18 18 #include <fstream>
19 19 #include "dprintf.h"
20   -#include "property.h"
21 20  
22 21 //SL Video Position
23 22 #define TOP_LEFT 1
... ... @@ -80,10 +79,7 @@ private:
80 79 char* uploads;
81 80 int positionSecondaryVideo;
82 81 double widthSecondaryVideo, heightSecondaryVideo;
83   - int transparency;
84   -
85   - PropertyHandler* reader;
86   -
  82 + int transparency;
87 83 };
88 84  
89 85 #endif /* MIXER_H */
... ...
servico/src/include/serviceWindowGeneration.h
... ... @@ -7,13 +7,13 @@
7 7 #include <locale>
8 8 #include "jthread.h"
9 9 #include "dprintf.h"
10   -#include "property.h"
11 10 #include "Mixer.h"
12 11 #include "synchronizer.h"
13 12 #include "listenerSynchronizer.h"
14 13 #include "listenerTradutor.h"
15 14 #include "tradutorPortGlosa.h"
16 15 #include "serviceException.h"
  16 +#include <json/json.h>
17 17 #include <lavidlib/base/RuntimeException.h>
18 18  
19 19 #define DEVELOPER "devel"
... ... @@ -25,9 +25,10 @@
25 25 #define PATH_DEVEL "vlibras_user/vlibras-contents/videos/"
26 26 #define PATH_DEVEL_UPLOADS "vlibras_user/vlibras-contents/uploads/"
27 27 #define PATH_VBOX_UPLOADS "vlibras_user/.vlibras-conf/uploads/"
28   -#define PATH_CONF_FILE "vlibras_user/.vlibras-conf/configuration/params-vbox.conf"
  28 +#define PATH_CONF_FILE "vlibras_user/.vlibras-conf/param.json"
29 29 #define MAX_SIZE_PATH 256
30 30  
  31 +using namespace Json;
31 32 using namespace Tradutor;
32 33 using namespace jthread;
33 34 using namespace std;
... ... @@ -37,13 +38,15 @@ class ServiceWindowGeneration {
37 38 protected:
38 39 TradutorPortGlosa* tradutor;
39 40 Synchronizer* sincronizador;
40   - PropertyHandler* ppty_h;
41 41 Mixer* mixer;
42 42  
  43 + Value root;
  44 + Reader reader;
43 45 vector<int64_t>* vetor_pts;
44 46  
45 47 bool finish;
46 48 bool running;
  49 + bool parsingSuccessful;
47 50  
48 51 char* path_input;
49 52 char* path_libras;
... ...
servico/src/serviceWindowGenerationFromRec.cpp
... ... @@ -44,7 +44,6 @@ ServiceWindowGenerationFromRec::ServiceWindowGenerationFromRec(
44 44  
45 45 ServiceWindowGenerationFromRec::~ServiceWindowGenerationFromRec(){
46 46 free(vetor_pts);
47   - delete(ppty_h);
48 47 if (tradutor) delete tradutor;
49 48 if (rec) delete rec;
50 49 if (sincronizador) delete sincronizador;
... ... @@ -58,16 +57,18 @@ void ServiceWindowGenerationFromRec::setPathContents(){
58 57 this->path_uploads = PATH_DEVEL_UPLOADS;
59 58 rec->setPathAudioContents(path_uploads);
60 59 }else if(strcmp(client_type, PRODUCTION) == 0){
61   - try{
62   - ppty_h = new PropertyHandler(PATH_CONF_FILE, PropertyHandler::READ);
63   - this->path_contents = (char*) ppty_h->get_attibute_value("STORAGE");
64   - }catch(RuntimeException &ex){
65   - printf("%s\n", ex.getMessage().c_str());
66   - }
67   - this->path_uploads = PATH_VBOX_UPLOADS;
  60 + ifstream conf_file(PATH_CONF_FILE, ifstream::binary);
  61 + parsingSuccessful = reader.parse(conf_file, root);
  62 + if(!parsingSuccessful){
  63 + throw ServiceException("Fail to parsing param.json");
  64 + }
  65 + string attr = root.get("storage", PATH_VBOX_UPLOADS).asString();
  66 + this->path_contents = new char[MAX_SIZE_PATH];
  67 + strcpy(this->path_contents, attr.c_str());
  68 + this->path_uploads = PATH_VBOX_UPLOADS;
68 69 rec->setPathAudioContents(path_uploads);
69 70 }else{
70   - throw new ServiceException("Invalid client!");
  71 + throw ServiceException("Invalid client!");
71 72 }
72 73 }
73 74  
... ...
servico/src/serviceWindowGenerationFromSRT.cpp
... ... @@ -43,7 +43,6 @@ ServiceWindowGenerationFromSRT::ServiceWindowGenerationFromSRT(char* pathSRT, in
43 43  
44 44 ServiceWindowGenerationFromSRT::~ServiceWindowGenerationFromSRT() {
45 45 free(vetor_pts);
46   - delete(ppty_h);
47 46 if (mixer) delete mixer;
48 47 if (tradutor) delete tradutor;
49 48 if (sincronizador) delete sincronizador;
... ... @@ -54,19 +53,21 @@ ServiceWindowGenerationFromSRT::~ServiceWindowGenerationFromSRT() {
54 53  
55 54 void ServiceWindowGenerationFromSRT::setPathContents() {
56 55 if(strcmp(client_type,DEVELOPER) == 0){
57   - this->path_contents = PATH_DEVEL;
58   - this->path_uploads = PATH_DEVEL_UPLOADS;
59   - }else if(strcmp(client_type, PRODUCTION) == 0){
60   - try{
61   - ppty_h = new PropertyHandler(PATH_CONF_FILE, PropertyHandler::READ);
62   - this->path_contents = (char*) ppty_h->get_attibute_value("STORAGE");
63   - }catch(RuntimeException &ex){
64   - printf("%s\n", ex.getMessage().c_str());
65   - }
66   - this->path_uploads = PATH_VBOX_UPLOADS;
67   - }else{
68   - throw new ServiceException("Invalid client!");
69   - }
  56 + this->path_contents = PATH_DEVEL;
  57 + this->path_uploads = PATH_DEVEL_UPLOADS;
  58 + }else if(strcmp(client_type, PRODUCTION) == 0){
  59 + ifstream conf_file(PATH_CONF_FILE, ifstream::binary);
  60 + parsingSuccessful = reader.parse(conf_file, root);
  61 + if(!parsingSuccessful){
  62 + throw ServiceException("Fail to parsing param.json");
  63 + }
  64 + string attr = root.get("storage", PATH_VBOX_UPLOADS).asString();
  65 + this->path_contents = new char[MAX_SIZE_PATH];
  66 + strcpy(this->path_contents, attr.c_str());
  67 + this->path_uploads = PATH_VBOX_UPLOADS;
  68 + }else{
  69 + throw ServiceException("Invalid client!");
  70 + }
70 71 }
71 72  
72 73 void ServiceWindowGenerationFromSRT::setPathLibras() {
... ...
servico/src/serviceWindowGenerationFromText.cpp
... ... @@ -20,7 +20,6 @@ ServiceWindowGenerationFromText::ServiceWindowGenerationFromText(char* pathFile,
20 20  
21 21 ServiceWindowGenerationFromText::~ServiceWindowGenerationFromText() {
22 22 free(vetor_pts);
23   - delete(ppty_h);
24 23 if (tradutor) delete tradutor;
25 24 if (sincronizador) delete sincronizador;
26 25 if (extratorTXT)delete extratorTXT;
... ... @@ -29,19 +28,21 @@ ServiceWindowGenerationFromText::~ServiceWindowGenerationFromText() {
29 28 }
30 29  
31 30 void ServiceWindowGenerationFromText::setPathContents() {
32   - if(strcmp(client_type,DEVELOPER) == 0){
  31 + if(strcmp(client_type,DEVELOPER) == 0){
33 32 this->path_contents = PATH_DEVEL;
34   - this->path_uploads = PATH_DEVEL_UPLOADS;
  33 + this->path_uploads = PATH_DEVEL_UPLOADS;
35 34 }else if(strcmp(client_type, PRODUCTION) == 0){
36   - try{
37   - ppty_h = new PropertyHandler(PATH_CONF_FILE, PropertyHandler::READ);
38   - this->path_contents = (char*) ppty_h->get_attibute_value("STORAGE");
39   - }catch(RuntimeException &ex){
40   - printf("%s\n", ex.getMessage().c_str());
  35 + ifstream conf_file(PATH_CONF_FILE, ifstream::binary);
  36 + parsingSuccessful = reader.parse(conf_file, root);
  37 + if(!parsingSuccessful){
  38 + throw ServiceException("Fail to parsing param.json");
41 39 }
  40 + string attr = root.get("storage", PATH_VBOX_UPLOADS).asString();
  41 + this->path_contents = new char[MAX_SIZE_PATH];
  42 + strcpy(this->path_contents, attr.c_str());
42 43 this->path_uploads = PATH_VBOX_UPLOADS;
43 44 }else{
44   - throw new ServiceException("Invalid client!");
  45 + throw ServiceException("Invalid client!");
45 46 }
46 47 }
47 48  
... ...
util/src/include/logger.h
... ... @@ -17,7 +17,6 @@
17 17 #include <stddef.h>
18 18 #include <iostream>
19 19 #include <ctime>
20   -#include "property.h"
21 20 //#include <lavidlib/utils/Logger.h>
22 21  
23 22  
... ... @@ -32,9 +31,7 @@ namespace Util {
32 31 public:
33 32 static Logger* Instance();
34 33 void openLogFile();
35   - void openInfoLogFile(char* filepath);
36 34 void writeLog(char* log);
37   - void writeInfoLog(char* filepath ,char* infoLog);
38 35 void closeLogFile();
39 36 char* getTime();
40 37  
... ...
util/src/include/property.h
... ... @@ -1,65 +0,0 @@
1   -/***************************************************************************
2   - * Universidade Federal da Paraíba *
3   - * Copyright (C) 2013 by Laboratório de Aplicações de Vídeo Digital *
4   - * *
5   - * Centro de Informática - UFPB - Campus I *
6   - * João Pessoa - PB - Brasil *
7   - * *
8   - * Author: Leonardo de Araújo Domingues (leonardo.araujo@lavid.ufpb.br) *
9   - * Date: Mon Jun 1 19:29:50 BRT 2015 *
10   - * *
11   - **************************************************************************/
12   -
13   - #ifndef PROPERTYHANDLER_H
14   - #define PROPERTYHANDLER_H
15   -
16   - #include <stdio.h>
17   - #include <stdlib.h>
18   - #include <map>
19   - #include <string>
20   - #include <string.h>
21   - #include <lavidlib/io/File.h>
22   - #include <lavidlib/io/FileIO.h>
23   - #include <lavidlib/io/BufferedReader.h>
24   - #include <lavidlib/io/IOException.h>
25   - #include <lavidlib/io/EOFException.h>
26   - #include <lavidlib/base/RuntimeException.h>
27   -
28   - using namespace lavidlib;
29   -
30   - class PropertyHandler {
31   - public:
32   - enum HandlerMode {
33   - READ,
34   - WRITE
35   - };
36   - PropertyHandler(char* _filename, PropertyHandler::HandlerMode _handler_mode);
37   - virtual ~PropertyHandler();
38   -
39   - int attr_exists(char* _attr);
40   - const char* get_attibute_value(char* _attr);
41   - void set_attribute_value(char* _attr_p, char* _value_p);
42   - void update_properties();
43   - int remove_attribute(char* _attr_p);
44   -
45   - private:
46   -
47   - std::string filename;
48   - File* file_p;
49   - FileIO* file_io_p;
50   - BufferedReader* buff_reader_p;
51   - HandlerMode handler_mode;
52   -
53   - std::map<std::string, std::string> * map_ppty_p;
54   -
55   - int check_file_extension(char* _filename);
56   - void format_line_str(std::string* _line_str);
57   - int load_properties();
58   - void init_write_mode();
59   - std::string get_key(std::string _ppty_line);
60   - std::string get_value(std::string _ppty_line);
61   - int write_properties_on_file(std::string _key, std::string _value, FILE* _file_output);
62   - };
63   -
64   -
65   - #endif /* PROPERTYHANDLER_H */
66 0 \ No newline at end of file
util/src/logger.cpp
... ... @@ -30,9 +30,6 @@ namespace Util {
30 30 file.open("vlibras_user/vlibras-core/log/log", ios_base::app);
31 31 }
32 32  
33   - void Logger::openInfoLogFile(char* filepath){
34   - file.open(filepath , ios_base::trunc);
35   - }
36 33  
37 34 void Logger::closeLogFile(){
38 35 file.close();
... ... @@ -51,10 +48,4 @@ namespace Util {
51 48 this->closeLogFile();
52 49 }
53 50  
54   - void Logger::writeInfoLog(char* filepath ,char* infoLog){
55   - this->openInfoLogFile(filepath);
56   - file << "READY=";
57   - file << infoLog << "\n\r";
58   - this->closeLogFile();
59   - }
60 51 }
... ...
util/src/property.cpp
... ... @@ -1,236 +0,0 @@
1   -/***************************************************************************
2   - * Universidade Federal da Paraíba *
3   - * Copyright (C) 2013 by Laboratório de Aplicações de Vídeo Digital *
4   - * *
5   - * Centro de Informática - UFPB - Campus I *
6   - * João Pessoa - PB - Brasil *
7   - * *
8   - * Author: Leonardo de Araújo Domingues (leonardo.araujo@lavid.ufpb.br) *
9   - * Date: Mon Jun 1 19:29:50 BRT 2015 *
10   - * *
11   - **************************************************************************/
12   -
13   -#include "property.h"
14   -
15   -
16   -PropertyHandler::PropertyHandler(char* _filename, PropertyHandler::HandlerMode _handler_mode)
17   -{
18   - if ( check_file_extension(_filename) == -1 )
19   - throw new RuntimeException("Format file not is supported");
20   -
21   - filename = (std::string) _filename;
22   - handler_mode = _handler_mode;
23   -
24   - switch (handler_mode)
25   - {
26   - case READ:
27   - if ( load_properties() <= 0 )
28   - throw new RuntimeException("Cannot to load properties of the file");
29   - break;
30   - case WRITE:
31   - init_write_mode();
32   - break;
33   - default:
34   - printf("Handler mode not supported");
35   - exit(1);
36   - }
37   -
38   -}
39   -
40   -
41   -PropertyHandler::~PropertyHandler()
42   -{
43   - if (handler_mode == WRITE)
44   - update_properties();
45   -
46   - if (buff_reader_p) delete buff_reader_p;
47   - if (file_io_p) delete file_io_p;
48   - if (file_p) delete file_p;
49   - if (map_ppty_p) delete map_ppty_p;
50   -
51   -}
52   -
53   -
54   -int PropertyHandler::load_properties()
55   -{
56   - std::string buff_str;
57   - int buff_index = 0;
58   -
59   - file_p = new File(filename);
60   - try {
61   - file_io_p = new FileIO(file_p->getPath(), FileIO::MODE_READ);
62   - }
63   - catch(IOException &ex) {
64   - printf("[ERROR] %s\n", ex.getMessage().c_str());
65   - exit(1);
66   - }
67   -
68   - buff_reader_p = new BufferedReader(file_io_p);
69   - map_ppty_p = new std::map<std::string, std::string>();
70   -
71   - try {
72   - buff_str = buff_reader_p->readLine();
73   -
74   - while (buff_str.size() > 0)
75   - {
76   - buff_index++;
77   - format_line_str(&buff_str);
78   -
79   - map_ppty_p->insert(map_ppty_p->begin(),
80   - (std::pair<std::string, std::string>(get_key(buff_str), get_value(buff_str))));
81   -
82   - /* get next line (key, value) */
83   - buff_str = buff_reader_p->readLine();
84   - }
85   -
86   - } catch (EOFException &ex) {
87   - printf("[ERROR] %s\n", ex.getMessage().c_str());
88   - }
89   -
90   - return buff_index;
91   -
92   -}
93   -
94   -
95   -void PropertyHandler::init_write_mode()
96   -{
97   - /* init map structure to manipulate the properties in WRITE mode */
98   - map_ppty_p = new std::map<std::string, std::string>();
99   -}
100   -
101   -
102   -int PropertyHandler::attr_exists(char* _attr)
103   -{
104   - std::map<std::string, std::string>::iterator it;
105   - if ( (it = map_ppty_p->find((const char*) _attr)) != map_ppty_p->end() )
106   - return 1;
107   - return 0;
108   -}
109   -
110   -const char* PropertyHandler::get_attibute_value(char* _attr)
111   -{
112   - if (attr_exists(_attr))
113   - {
114   - return (map_ppty_p->find((const char*) _attr)->second).c_str();
115   - }
116   - return _attr;
117   -}
118   -
119   -
120   -void PropertyHandler::set_attribute_value(char* _attr_p, char* _value_p)
121   -{
122   - if (handler_mode == PropertyHandler::READ)
123   - throw new RuntimeException("Cannot set properties in the READ mode");
124   -
125   - if (attr_exists(_attr_p))
126   - throw new RuntimeException("This attribute already exists");
127   -
128   - map_ppty_p->insert(map_ppty_p->begin(),
129   - (std::pair<std::string, std::string>((std::string) _attr_p, (std::string) _value_p)));
130   -}
131   -
132   -
133   -void PropertyHandler::update_properties()
134   -{
135   - FILE* file_output_p;
136   - file_output_p = fopen (filename.c_str(), "w");
137   - if (file_output_p == NULL)
138   - throw new IOException("Cannot open file to write properties");
139   - fseek(file_output_p, 0, SEEK_SET);
140   -
141   - std::string str_properties;
142   -
143   - std::map<std::string, std::string>::iterator it;
144   - for (it = map_ppty_p->begin(); it != map_ppty_p->end(); it++)
145   - if ( write_properties_on_file(it->first, it->second, file_output_p) == 0 )
146   - throw new IOException("Error to write properties in the file");
147   -
148   - fclose (file_output_p);
149   -}
150   -
151   -
152   -int PropertyHandler::write_properties_on_file(std::string _key, std::string _value, FILE* _file_output)
153   -{
154   - std::string str_properties = _key;
155   - str_properties.append("=");
156   - str_properties.append(_value);
157   -
158   - int count_bytes = 0;
159   -
160   - count_bytes += fputs((char*) str_properties.c_str(), _file_output);
161   - count_bytes += fputs("\n", _file_output);
162   -
163   - return count_bytes;
164   -}
165   -
166   -//TODO
167   -int PropertyHandler::remove_attribute(char* _attr_p)
168   -{
169   -
170   - if (attr_exists(_attr_p)) {
171   -
172   - if ( map_ppty_p->erase((const char*) _attr_p) != 1 )
173   - throw new RuntimeException("Cannot remove attribute of the map structure");
174   -
175   - /* if delete the attribute corretly, update the map of the properties */
176   - update_properties();
177   - return 1;
178   - }
179   - return 0;
180   -}
181   -
182   -
183   -#define CONF_FILE_EXTENSION ".conf"
184   -/**
185   - Verify if the file extension is valid.
186   -*/
187   -int PropertyHandler::check_file_extension(char* _filename)
188   -{
189   - return ((std::string) _filename).find(CONF_FILE_EXTENSION);
190   -}
191   -
192   -#undef CONF_FILE_EXTENSION /* .conf */
193   -
194   -
195   -#define CHAR_TO_REMOVE " \t"
196   -/**
197   - Remove all whitespaces in the text line.
198   -*/
199   -void PropertyHandler::format_line_str(std::string* _line_str)
200   -{
201   - int index = -1;
202   - std::string chars_rm_str = (std::string) CHAR_TO_REMOVE;
203   - for (int i = 0; i < chars_rm_str.size(); i++)
204   - {
205   - while ( (index = (int) _line_str->find(chars_rm_str[i]) ) != std::string::npos)
206   - {
207   - _line_str->replace(index, 1, ""); // remove whitespaces (" ") replacing your position by ""
208   - }
209   - }
210   -}
211   -#undef CHAR_TO_REMOVE
212   -
213   -#define TOKEN_ATTR "="
214   -std::string PropertyHandler::get_key(std::string _ppty_line)
215   -{
216   - int target_pos = -1;
217   - target_pos = _ppty_line.find(TOKEN_ATTR);
218   -
219   - if (target_pos < 1) /* minimum lenght of a key (k=value) */
220   - throw new RuntimeException("Bad format sentence");
221   -
222   - return (std::string) _ppty_line.substr(0, target_pos);
223   -}
224   -
225   -
226   -std::string PropertyHandler::get_value(std::string _ppty_line)
227   -{
228   - int target_pos = -1;
229   - target_pos = _ppty_line.find(TOKEN_ATTR);
230   -
231   - if (target_pos < 1) /* minimum lenght of a key (k=value) */
232   - throw new RuntimeException("Bad format sentence");
233   -
234   - return (std::string) _ppty_line.substr(target_pos+1, _ppty_line.size());
235   -}
236   -#undef TOKEN_ATTR
237 0 \ No newline at end of file