diff options
author | Ted Yin <[email protected]> | 2015-08-14 17:42:26 +0800 |
---|---|---|
committer | Ted Yin <[email protected]> | 2015-08-14 17:42:26 +0800 |
commit | c3cffb58b9921d78753336421b52b9ffdaa5515c (patch) | |
tree | bfea20e97c200cf734021e3756d749c892e658a4 /kaldi_io/src/tools/openfst/include/fst/script/register.h | |
parent | 10cce5f6a5c9e2f8e00d5a2a4d87c9cb7c26bf4c (diff) | |
parent | dfdd17afc2e984ec6c32ea01290f5c76309a456a (diff) |
Merge pull request #2 from yimmon/master
remove needless files
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.h | 120 |
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: [email protected] (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_ |