Commit ef8660190eac9c17304d0bc6868dcffd63d7f79e
Merge pull request #480 from biometrics/fix_process
Fix multiprocess support
Showing
4 changed files
with
22 additions
and
0 deletions
app/br/br.cpp
| @@ -223,6 +223,11 @@ public: | @@ -223,6 +223,11 @@ public: | ||
| 223 | check(parc == 1, "Incorrect parameter count for 'daemon'."); | 223 | check(parc == 1, "Incorrect parameter count for 'daemon'."); |
| 224 | daemon = true; | 224 | daemon = true; |
| 225 | daemon_pipe = parv[0]; | 225 | daemon_pipe = parv[0]; |
| 226 | + } else if (!strcmp(fun, "slave")) { | ||
| 227 | + // This is used internally by processWrapper, if you want to remove it, also remove | ||
| 228 | + // plugins/core/processwrapper.cpp | ||
| 229 | + check(parc == 1, "Incorrect parameter count for 'slave'"); | ||
| 230 | + br_slave_process(parv[0]); | ||
| 226 | } else if (!strcmp(fun, "exit")) { | 231 | } else if (!strcmp(fun, "exit")) { |
| 227 | check(parc == 0, "No parameters expected for 'exit'."); | 232 | check(parc == 0, "No parameters expected for 'exit'."); |
| 228 | daemon = false; | 233 | daemon = false; |
openbr/openbr.cpp
| @@ -316,6 +316,20 @@ const char *br_version() | @@ -316,6 +316,20 @@ const char *br_version() | ||
| 316 | return version.data(); | 316 | return version.data(); |
| 317 | } | 317 | } |
| 318 | 318 | ||
| 319 | +void br_slave_process(const char *baseName) | ||
| 320 | +{ | ||
| 321 | +#ifdef BR_WITH_QTNETWORK | ||
| 322 | + WorkerProcess *worker = new WorkerProcess; | ||
| 323 | + worker->transform = Globals->algorithm; | ||
| 324 | + worker->baseName = baseName; | ||
| 325 | + worker->mainLoop(); | ||
| 326 | + delete worker; | ||
| 327 | +#else | ||
| 328 | + (void) baseName; | ||
| 329 | + qFatal("multiprocess support requires building with QtNetwork enabled (set BR_WITH_QTNETWORK in cmake)."); | ||
| 330 | +#endif | ||
| 331 | +} | ||
| 332 | + | ||
| 319 | br_template br_load_img(const char *data, int len) | 333 | br_template br_load_img(const char *data, int len) |
| 320 | { | 334 | { |
| 321 | std::vector<char> buf(data, data+len); | 335 | std::vector<char> buf(data, data+len); |
openbr/openbr.h
| @@ -117,6 +117,8 @@ BR_EXPORT void br_train_n(int num_inputs, const char *inputs[], const char *mode | @@ -117,6 +117,8 @@ BR_EXPORT void br_train_n(int num_inputs, const char *inputs[], const char *mode | ||
| 117 | 117 | ||
| 118 | BR_EXPORT const char *br_version(); | 118 | BR_EXPORT const char *br_version(); |
| 119 | 119 | ||
| 120 | +BR_EXPORT void br_slave_process(const char * baseKey); | ||
| 121 | + | ||
| 120 | BR_EXPORT void br_likely(const char *input_type, const char *output_type, const char *output_source_file); | 122 | BR_EXPORT void br_likely(const char *input_type, const char *output_type, const char *output_source_file); |
| 121 | 123 | ||
| 122 | // to avoid having to include unwanted headers | 124 | // to avoid having to include unwanted headers |
openbr/plugins/cmake/network.cmake
| @@ -7,6 +7,7 @@ if(${BR_WITH_QTNETWORK}) | @@ -7,6 +7,7 @@ if(${BR_WITH_QTNETWORK}) | ||
| 7 | if(${BR_INSTALL_SHARE}) | 7 | if(${BR_INSTALL_SHARE}) |
| 8 | install(FILES ${HTTPPARSER_LICENSE} RENAME http-parser DESTINATION share/openbr/licenses) | 8 | install(FILES ${HTTPPARSER_LICENSE} RENAME http-parser DESTINATION share/openbr/licenses) |
| 9 | endif() | 9 | endif() |
| 10 | + add_definitions(-DBR_WITH_QTNETWORK) | ||
| 10 | else() | 11 | else() |
| 11 | set(BR_EXCLUDED_PLUGINS ${BR_EXCLUDED_PLUGINS} plugins/core/processwrapper.cpp | 12 | set(BR_EXCLUDED_PLUGINS ${BR_EXCLUDED_PLUGINS} plugins/core/processwrapper.cpp |
| 12 | plugins/io/download.cpp | 13 | plugins/io/download.cpp |