Ignore:
Timestamp:
Feb 9, 2015, 3:36:46 PM (9 years ago)
Author:
djay
Message:

Add OTB Application Observer.

Location:
trunk/zoo-project/zoo-kernel
Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/zoo-project/zoo-kernel/service_internal_otb.c

    r555 r558  
    2121 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    2222 * THE SOFTWARE.
     23 *
     24 * See Ref: http://hg.orfeo-toolbox.org/OTB/ Copyright
     25 * Some parts of this code are derived from ITK. See ITKCopyright.txt for
     26 * details.
    2327 */
    2428
    2529#include "service_internal_otb.h"
    26 #include <vector>
    27 #include <string>
    2830
    2931using namespace otb::Wrapper;
     32
     33class MyCommand : public itk::Command
     34{
     35 public:
     36  itkNewMacro( MyCommand );
     37 public:
     38
     39  void Execute(itk::Object *caller, const itk::EventObject & event)
     40  {
     41    Execute( (const itk::Object *)caller, event);
     42  }
     43 
     44  void Execute(const itk::Object * object, const itk::EventObject & event)
     45  {
     46    const AddProcessToWatchEvent* eventToWatch = dynamic_cast< const AddProcessToWatchEvent*> ( &event );
     47    std::string m_CurrentDescription = eventToWatch->GetProcessDescription();
     48    std::cerr << "err_service_zooo start ccalled." << m_CurrentDescription << std::endl;
     49    ZooWatcher * watch = new ZooWatcher(eventToWatch->GetProcess(),
     50                                        eventToWatch->GetProcessDescription());
     51    watch->SetConf(&m_Conf);
     52    m_WatcherList.push_back(watch);
     53  }
     54
     55
     56
     57};
     58
    3059
    3160std::string ReplaceAll(std::string str, const std::string& from, const std::string& to) {
     
    4271  maps* inputs=*real_inputs;
    4372  maps* outputs=*real_outputs;
     73  map* tmp0=getMapFromMaps(*main_conf,"lenv","cwd");
     74  char *ntmp=tmp0->value;
    4475  map* tmp=NULL;
    4576  int res=-1;
     
    6899          res=-1;
    69100        }else{
     101          // Create Observer on AddProcessToWatchEvent
     102          m_Conf=m;
     103          MyCommand::Pointer myCommand = MyCommand::New();
     104          m_Application->AddObserver(AddProcessToWatchEvent(), myCommand);
    70105          char tmpS[1024];
    71           sprintf(tmpS, "The OTB Application %s was loaded correctly.", (*it).c_str());
    72106          const std::vector<std::string> appKeyList = m_Application->GetParametersKeys(true);
    73107          for (unsigned int i = 0; i < appKeyList.size(); i++){
     
    80114              if(test==NULL){
    81115                test=getMapFromMaps(inputs,paramKey.c_str(),"inRequest");
     116                map* tmpPath=getMapFromMaps(m,"main","tmpPath");
     117                map* tmpSid=getMapFromMaps(m,"lenv","usid");
     118                char tmp[1024];
     119                map* tmpVal=getMapFromMaps(outputs,paramKey.c_str(),"mimeType");
    82120                if(test!=NULL && test->value!=NULL && strncasecmp(test->value,"true",4)==0){
    83121                  test=getMapFromMaps(inputs,paramKey.c_str(),"value");
     
    96134                    else if (strncasecmp(test->value,"double",6)==0)
    97135                      outPixType = ImagePixelType_double;
    98                     map* tmpPath=getMapFromMaps(m,"main","tmpPath");
    99                     map* tmpSid=getMapFromMaps(m,"lenv","sid");
    100                     char tmp[1024];
    101                     map* tmpVal=getMapFromMaps(outputs,paramKey.c_str(),"mimeType");
    102136                    char* ext="tiff";
    103137                    if(tmpVal!=NULL){
     
    122156                }else{
    123157                  if(type == ParameterType_OutputVectorData){
    124                       map* tmpPath=getMapFromMaps(m,"main","tmpPath");
    125                       map* tmpSid=getMapFromMaps(m,"lenv","sid");
    126                       char tmp[1024];
    127                       map* tmpVal=getMapFromMaps(outputs,paramKey.c_str(),"mimeType");
    128158                      char* ext="json";
    129159                      if(tmpVal!=NULL){
     
    146176                  else
    147177                    if(type == ParameterType_OutputFilename){
    148                       map* tmpPath=getMapFromMaps(m,"main","tmpPath");
    149                       map* tmpSid=getMapFromMaps(m,"lenv","sid");
    150                       char tmp[1024];
    151                       map* tmpVal=getMapFromMaps(outputs,paramKey.c_str(),"mimeType");
    152178                      char* ext="txt";
    153179                      if(tmpVal!=NULL){
     
    355381    }
    356382  }
     383
     384  for (unsigned int i = 0; i < m_WatcherList.size(); i++){
     385    m_WatcherList[i]->FreeConf();
     386    delete m_WatcherList[i];
     387    m_WatcherList[i] = NULL;
     388  }
     389  m_WatcherList.clear();
     390
    357391  return res;
    358392}
  • trunk/zoo-project/zoo-kernel/service_internal_otb.h

    r555 r558  
    3131#include "otbWrapperApplicationRegistry.h"
    3232#include "otbWrapperInputImageListParameter.h"
     33#include "otbWrapperAddProcessToWatchEvent.h"
     34#include "otbZooWatcher.h"
    3335#include "service_internal.h"
    3436#include "service.h"
     
    3840#include <direct.h>
    3941#endif
     42#include <vector>
     43#include <string>
    4044
     45typedef std::vector<ZooWatcher *> WatcherListType;
     46WatcherListType m_WatcherList;
     47maps* m_Conf;
    4148int zoo_otb_support(maps**,map*,service*,maps**,maps**);
    4249
Note: See TracChangeset for help on using the changeset viewer.

Search

Context Navigation

ZOO Sponsors

http://www.zoo-project.org/trac/chrome/site/img/geolabs-logo.pnghttp://www.zoo-project.org/trac/chrome/site/img/neogeo-logo.png http://www.zoo-project.org/trac/chrome/site/img/apptech-logo.png http://www.zoo-project.org/trac/chrome/site/img/3liz-logo.png http://www.zoo-project.org/trac/chrome/site/img/gateway-logo.png

Become a sponsor !

Knowledge partners

http://www.zoo-project.org/trac/chrome/site/img/ocu-logo.png http://www.zoo-project.org/trac/chrome/site/img/gucas-logo.png http://www.zoo-project.org/trac/chrome/site/img/polimi-logo.png http://www.zoo-project.org/trac/chrome/site/img/fem-logo.png http://www.zoo-project.org/trac/chrome/site/img/supsi-logo.png http://www.zoo-project.org/trac/chrome/site/img/cumtb-logo.png

Become a knowledge partner

Related links

http://zoo-project.org/img/ogclogo.png http://zoo-project.org/img/osgeologo.png