MICO Platform
 All Classes Namespaces Functions Variables Friends
AnalysisService.hpp
1 #ifndef HAVE_ANALYSIS_SERVICE_H
2 #define HAVE_ANALYSIS_SERVICE_H 1
3 
4 #include <string>
5 #include <list>
6 #include <map>
7 
8 #include "rdf_model.hpp"
9 #include "Item.hpp"
10 #include "Uri.hpp"
11 
12 
13 namespace mico {
14  namespace event {
15 
16  class AnalysisResponse; //class forward declaration
24 
25  protected:
27  std::string queue;
28  std::string extractorID;
29  std::string extractorModeID;
30  std::string extractorVersion;
31  std::string provides;
32  std::string requires;
33 
34  public:
35  AnalysisService(const std::string extractorID, const std::string extractorModeID, const std::string extractorVersion,
36  const std::string requires, const std::string provides)
37  : serviceID("http://www.mico-project.org/services/" + extractorID + "-" + extractorVersion + "-" + extractorModeID),
38  queue(extractorID + "-" + extractorVersion + "-" + extractorModeID),
39  extractorID(extractorID), extractorModeID(extractorModeID), extractorVersion(extractorVersion),
40  provides(provides), requires(requires) {}
41 
42 
43  virtual ~AnalysisService() {}
44 
50  virtual const mico::persistence::model::URI& getServiceID() const final {
51  return serviceID;
52  }
53 
59  virtual const std::string& getExtractorID() { return extractorID; }
60 
66  virtual const std::string& getExtractorModeID() { return extractorModeID; }
67 
73  virtual const std::string& getExtractorVersion() { return extractorVersion; }
74 
81  virtual const std::string& getProvides() const { return provides; }
82 
83 
90  virtual const std::string& getRequires() const { return requires; }
91 
92 
102  virtual const std::string getQueueName() const final { return queue; }
103 
104 
114  virtual void call(mico::event::AnalysisResponse& response,
115  std::shared_ptr< mico::persistence::model::Item > item,
116  std::vector<std::shared_ptr<mico::persistence::model::Resource>> resources,
117  std::map<std::string,std::string>& params) = 0;
118  };
119 
120  }
121 }
122 #endif
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in c...
Definition: http_client.cpp:23
virtual const std::string & getExtractorModeID()
Return an ID (String) that identifies this extractor.
Definition: AnalysisService.hpp:66
virtual const std::string & getExtractorVersion()
Returns the version of the extractor.
Definition: AnalysisService.hpp:73
virtual const std::string getQueueName() const final
Return the queue name that should be used by the messaging infrastructure for this service...
Definition: AnalysisService.hpp:102
virtual const mico::persistence::model::URI & getServiceID() const final
Return a unique ID (URI) that identifies this service and its functionality.
Definition: AnalysisService.hpp:50
virtual const std::string & getRequires() const
Return the type of input required by this service as symbolic identifier.
Definition: AnalysisService.hpp:90
Definition: EventManager.hpp:69
virtual void call(mico::event::AnalysisResponse &response, std::shared_ptr< mico::persistence::model::Item > item, std::vector< std::shared_ptr< mico::persistence::model::Resource >> resources, std::map< std::string, std::string > &params)=0
Call this service for the given content item and object.
Interface to be implemented by services.
Definition: AnalysisService.hpp:23
virtual const std::string & getProvides() const
Return the type of output produced by this service as symbolic identifier.
Definition: AnalysisService.hpp:81
virtual const std::string & getExtractorID()
Return an ID (String) that identifies this extractor.
Definition: AnalysisService.hpp:59
A URI.
Definition: Uri.hpp:22