summaryrefslogtreecommitdiff
path: root/kaldi_io/src/tools/openfst/include/fst/script/register.h
diff options
context:
space:
mode:
Diffstat (limited to 'kaldi_io/src/tools/openfst/include/fst/script/register.h')
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/register.h120
1 files changed, 0 insertions, 120 deletions
diff --git a/kaldi_io/src/tools/openfst/include/fst/script/register.h b/kaldi_io/src/tools/openfst/include/fst/script/register.h
deleted file mode 100644
index 03e0e36..0000000
--- a/kaldi_io/src/tools/openfst/include/fst/script/register.h
+++ /dev/null
@@ -1,120 +0,0 @@
-
-// 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.
-//
-// Copyright 2005-2010 Google, Inc.
-// Author: jpr@google.com (Jake Ratkiewicz)
-
-#ifndef FST_SCRIPT_REGISTER_H_
-#define FST_SCRIPT_REGISTER_H_
-
-#include <string>
-
-#include <fst/generic-register.h>
-#include <fst/script/fst-class.h>
-#include <fst/script/weight-class.h>
-
-// Holds methods and classes responsible for maintaining
-// the register for FstClass arc types.
-
-namespace fst {
-namespace script {
-
-//
-// Registers for reading and converting various kinds of FST classes.
-//
-
-// This class definition is to avoid a nested class definition inside
-// the IORegistration struct.
-template<class Reader, class Creator, class Converter>
-struct FstClassRegEntry {
- Reader reader;
- Creator creator;
- Converter converter;
-
- FstClassRegEntry(Reader r, Creator cr, Converter co) :
- reader(r), creator(cr), converter(co) { }
- FstClassRegEntry() : reader(0), creator(0), converter(0) { }
-};
-
-template<class Reader, class Creator, class Converter>
-class FstClassIORegister
- : public GenericRegister<string,
- FstClassRegEntry<Reader, Creator, Converter>,
- FstClassIORegister<Reader, Creator,
- Converter> > {
- public:
- Reader GetReader(const string &arc_type) const {
- return this->GetEntry(arc_type).reader;
- }
-
- Creator GetCreator(const string &arc_type) const {
- return this->GetEntry(arc_type).creator;
- }
-
- Converter GetConverter(const string &arc_type) const {
- return this->GetEntry(arc_type).converter;
- }
-
- protected:
- virtual string ConvertKeyToSoFilename(
- const string& key) const {
- string legal_type(key);
- ConvertToLegalCSymbol(&legal_type);
-
- return legal_type + "-arc.so";
- }
-};
-
-//
-// Struct containing everything needed to register a particular type
-// of FST class (e.g. a plain FstClass, or a MutableFstClass, etc)
-//
-template<class FstClassType>
-struct IORegistration {
- typedef FstClassType *(*Reader)(istream &stream,
- const FstReadOptions &opts);
-
- typedef FstClassImplBase *(*Creator)();
- typedef FstClassImplBase *(*Converter)(const FstClass &other);
-
- typedef FstClassRegEntry<Reader, Creator, Converter> Entry;
-
- // FST class Register
- typedef FstClassIORegister<Reader, Creator, Converter> Register;
-
- // FST class Register-er
- typedef GenericRegisterer<FstClassIORegister<Reader, Creator, Converter> >
- Registerer;
-};
-
-
-//
-// REGISTRATION MACROS
-//
-
-#define REGISTER_FST_CLASS(Class, Arc) \
- static IORegistration<Class>::Registerer Class ## _ ## Arc ## _registerer( \
- Arc::Type(), \
- IORegistration<Class>::Entry(Class::Read<Arc>, \
- Class::Create<Arc>, \
- Class::Convert<Arc>))
-
-#define REGISTER_FST_CLASSES(Arc) \
- REGISTER_FST_CLASS(FstClass, Arc); \
- REGISTER_FST_CLASS(MutableFstClass, Arc); \
- REGISTER_FST_CLASS(VectorFstClass, Arc);
-
-} // namespace script
-} // namespace fst
-
-#endif // FST_SCRIPT_REGISTER_H_