Commit ef8660190eac9c17304d0bc6868dcffd63d7f79e

Authored by Josh Klontz
2 parents 237af8f5 3020b509

Merge pull request #480 from biometrics/fix_process

Fix multiprocess support
app/br/br.cpp
... ... @@ -223,6 +223,11 @@ public:
223 223 check(parc == 1, "Incorrect parameter count for 'daemon'.");
224 224 daemon = true;
225 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 231 } else if (!strcmp(fun, "exit")) {
227 232 check(parc == 0, "No parameters expected for 'exit'.");
228 233 daemon = false;
... ...
openbr/openbr.cpp
... ... @@ -316,6 +316,20 @@ const char *br_version()
316 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 333 br_template br_load_img(const char *data, int len)
320 334 {
321 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 117  
118 118 BR_EXPORT const char *br_version();
119 119  
  120 +BR_EXPORT void br_slave_process(const char * baseKey);
  121 +
120 122 BR_EXPORT void br_likely(const char *input_type, const char *output_type, const char *output_source_file);
121 123  
122 124 // to avoid having to include unwanted headers
... ...
openbr/plugins/cmake/network.cmake
... ... @@ -7,6 +7,7 @@ if(${BR_WITH_QTNETWORK})
7 7 if(${BR_INSTALL_SHARE})
8 8 install(FILES ${HTTPPARSER_LICENSE} RENAME http-parser DESTINATION share/openbr/licenses)
9 9 endif()
  10 + add_definitions(-DBR_WITH_QTNETWORK)
10 11 else()
11 12 set(BR_EXCLUDED_PLUGINS ${BR_EXCLUDED_PLUGINS} plugins/core/processwrapper.cpp
12 13 plugins/io/download.cpp
... ...