Grassroots Infrastructure
The Grassroots Infrastructure is a suite of computing tools to help users and developers use scientific data infrastructure that can easily be interconnected.
drmaa_blast_tool_factory.hpp
Go to the documentation of this file.
1 /*
2 ** Copyright 2014-2016 The Earlham Institute
3 **
4 ** Licensed under the Apache License, Version 2.0 (the "License");
5 ** you may not use this file except in compliance with the License.
6 ** You may obtain a copy of the License at
7 **
8 ** http://www.apache.org/licenses/LICENSE-2.0
9 **
10 ** Unless required by applicable law or agreed to in writing, software
11 ** distributed under the License is distributed on an "AS IS" BASIS,
12 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 ** See the License for the specific language governing permissions and
14 ** limitations under the License.
15 */
16 
21 /*
22  * drmaa_blast_tool_factory.hpp
23  *
24  * Created on: 24 Feb 2016
25  * Author: tyrrells
26  */
27 
28 #ifndef SERVICES_BLAST_INCLUDE_DRMAA_BLAST_TOOL_FACTORY_HPP_
29 #define SERVICES_BLAST_INCLUDE_DRMAA_BLAST_TOOL_FACTORY_HPP_
30 
31 
33 
41 {
42 public:
52  static DrmaaBlastToolFactory *CreateDrmaaBlastToolFactory (const json_t *service_config_p);
53 
57  virtual ~DrmaaBlastToolFactory ();
58 
59 
65  virtual const char *GetName ();
66 
67 
76  virtual BlastTool *CreateBlastTool (BlastServiceJob *job_p, const char *name_s, const BlastServiceData *data_p);
77 
78 
87  virtual BlastTool *CreateBlastTool (const json_t *json_p, BlastServiceJob *blast_job_p, BlastServiceData *service_data_p);
88 
89 
97  virtual Synchronicity GetToolsSynchronicity () const;
98 
99 protected:
100 
107  DrmaaBlastToolFactory (const json_t *service_config_p);
108 };
109 
110 
111 #endif /* SERVICES_BLAST_INCLUDE_DRMAA_BLAST_TOOL_FACTORY_HPP_ */
BlastServiceJob
This datatype stores the ServiceJob and its associated BlastTool.
Definition: blast_service_job.h:66
Synchronicity
Synchronicity
A datatype to define how a Service runs.
Definition: service.h:101
BlastToolFactory::CreateBlastTool
virtual BlastTool * CreateBlastTool(BlastServiceJob *job_p, const char *name_s, const BlastServiceData *data_p)=0
Create a BlastTool.
BlastServiceData
The configuration data for the Blast Service.
Definition: blast_service.h:143
ExternalBlastToolFactory
The base class for running blast tools as a separate process.
Definition: external_blast_tool_factory.hpp:40
BlastToolFactory::GetToolsSynchronicity
virtual Synchronicity GetToolsSynchronicity() const =0
Are the BlastTools that this BlastToolFactory create able to run asynchronously?
BLAST_SERVICE_LOCAL
#define BLAST_SERVICE_LOCAL
Definition: blast_service_api.h:48
BlastTool
The base class for running Blast.
Definition: blast_tool.hpp:43
DrmaaBlastToolFactory
The base class for generating DrmaaBlastTools.
Definition: drmaa_blast_tool_factory.hpp:40
BlastToolFactory::GetName
virtual const char * GetName()=0
Get an identifying name for this BlastToolFactory.
external_blast_tool_factory.hpp