| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- /* Copyright 2016 Google Inc. All Rights Reserved.
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- ==============================================================================*/
- #ifndef SYNTAXNET_TASK_CONTEXT_H_
- #define SYNTAXNET_TASK_CONTEXT_H_
- #include <string>
- #include <vector>
- #include "syntaxnet/task_spec.pb.h"
- #include "syntaxnet/utils.h"
- namespace syntaxnet {
- // A task context holds configuration information for a task. It is basically a
- // wrapper around a TaskSpec protocol buffer.
- class TaskContext {
- public:
- // Returns the underlying task specification protocol buffer for the context.
- const TaskSpec &spec() const { return spec_; }
- TaskSpec *mutable_spec() { return &spec_; }
- // Returns a named input descriptor for the task. A new input is created if
- // the task context does not already have an input with that name.
- TaskInput *GetInput(const string &name);
- TaskInput *GetInput(const string &name, const string &file_format,
- const string &record_format);
- // Sets task parameter.
- void SetParameter(const string &name, const string &value);
- // Returns task parameter. If the parameter is not in the task configuration
- // the (default) value of the corresponding command line flag is returned.
- string GetParameter(const string &name) const;
- int GetIntParameter(const string &name) const;
- int64 GetInt64Parameter(const string &name) const;
- bool GetBoolParameter(const string &name) const;
- double GetFloatParameter(const string &name) const;
- // Returns task parameter. If the parameter is not in the task configuration
- // the default value is returned. Parameters retrieved using these methods
- // don't need to be defined with a DEFINE_*() macro.
- string Get(const string &name, const string &defval) const;
- string Get(const string &name, const char *defval) const;
- int Get(const string &name, int defval) const;
- int64 Get(const string &name, int64 defval) const;
- double Get(const string &name, double defval) const;
- bool Get(const string &name, bool defval) const;
- // Returns input file name for a single-file task input.
- static string InputFile(const TaskInput &input);
- // Returns true if task input supports the file and record format.
- static bool Supports(const TaskInput &input, const string &file_format,
- const string &record_format);
- private:
- // Underlying task specification protocol buffer.
- TaskSpec spec_;
- // Vector of parameters required by this task. These must be specified in the
- // task rather than relying on default values.
- std::vector<string> required_parameters_;
- };
- } // namespace syntaxnet
- #endif // SYNTAXNET_TASK_CONTEXT_H_
|