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.
system_blast_tool.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  * system_blast_tool.hpp
23  *
24  * Created on: 22 Apr 2015
25  * Author: tyrrells
26  */
27 
28 #ifndef SYSTEM_BLAST_TOOL_HPP_
29 #define SYSTEM_BLAST_TOOL_HPP_
30 
32 #include "external_blast_tool.hpp"
33 
40 {
41 public:
52  SystemBlastTool (BlastServiceJob *service_job_p, const char *name_s, const char *factory_s, const BlastServiceData *data_p, const char *blast_program_name_s);
53 
54 
63  SystemBlastTool (BlastServiceJob *job_p, const BlastServiceData *data_p, const json_t *json_p);
64 
65 
69  virtual ~SystemBlastTool ();
70 
83  virtual bool ParseParameters (ParameterSet *params_p, BlastAppParameters *app_params_p);
84 
85 
92  virtual OperationStatus Run ();
93 
94 
103  virtual OperationStatus GetStatus (bool update_flag = true);
104 
105 protected:
106 
108 
117  virtual ArgsProcessor *GetArgsProcessor ();
118 
126  bool Init (const char *prog_s);
127 
128  bool SaveCommandLine (const char *command_line_s);
129 
130 };
131 
132 
133 
134 
135 #endif /* SYSTEM_BLAST_TOOL_HPP_ */
BlastServiceJob
This datatype stores the ServiceJob and its associated BlastTool.
Definition: blast_service_job.h:66
SystemBlastTool
A class that will run Blast as a system process.
Definition: system_blast_tool.hpp:39
ByteBufferArgsProcessor
An ArgsProcessor that adds all of its values to a given ByteBuffer.
Definition: byte_buffer_args_processor.hpp:40
BlastAppParameters
This datatype is used to parse a given ParameterSet in a method suitable for a particular BLAST confi...
Definition: blast_app_parameters.h:47
ExternalBlastTool::ParseParameters
virtual bool ParseParameters(ParameterSet *param_set_p, BlastAppParameters *app_params_p)
Parse a ParameterSet to configure a ExternalBlastTool prior to it being ran.
BlastServiceData
The configuration data for the Blast Service.
Definition: blast_service.h:143
external_blast_tool.hpp
BLAST_SERVICE_LOCAL
#define BLAST_SERVICE_LOCAL
Definition: blast_service_api.h:48
ExternalBlastTool
A class that will run Blast using an external application such as blastn rather than calling Blast li...
Definition: external_blast_tool.hpp:42
OperationStatus
OperationStatus
The current status of an Operation.
Definition: operation.h:96
BlastTool::Run
virtual OperationStatus Run()=0
Run this BlastTool.
BlastTool::GetStatus
virtual OperationStatus GetStatus(bool update_flag=true)
Get the status of a BlastTool.
ParameterSet
A set of Parameters along with an optional name and description.
Definition: parameter_set.h:46
ExternalBlastTool::GetArgsProcessor
virtual ArgsProcessor * GetArgsProcessor()=0
Get the ArgsProcessor that this BlastTool will use to parse the input ParameterSet prior to running i...
byte_buffer_args_processor.hpp
ArgsProcessor
An ArgsProcessor is a class to abstract out how a particular BlastTool stores a value when an argumen...
Definition: args_processor.hpp:46
SystemBlastTool::sbt_args_processor_p
ByteBufferArgsProcessor * sbt_args_processor_p
Definition: system_blast_tool.hpp:107