Commit 40535e79fc2e27ca8b920429951a8860d4cfb754
1 parent
1562909b
Exists in
master
and in
1 other branch
Adicionado a API jsoncpp
Showing
10 changed files
with
45 additions
and
355 deletions
Show diff stats
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 |