encode.h revision f4c12fce1ee58e670f9c3fce46c40296ba9ee8a2
1656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// Licensed under the Apache License, Version 2.0 (the "License"); 3656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// you may not use this file except in compliance with the License. 4656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// You may obtain a copy of the License at 5656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// 6656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// http://www.apache.org/licenses/LICENSE-2.0 7656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// 8656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// Unless required by applicable law or agreed to in writing, software 9656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// distributed under the License is distributed on an "AS IS" BASIS, 10656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// See the License for the specific language governing permissions and 12656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// limitations under the License. 13656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// 14656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// Copyright 2005-2010 Google, Inc. 15656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project// Author: jpr@google.com (Jake Ratkiewicz) 16656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 17656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef FST_SCRIPT_ENCODE_H_ 18656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define FST_SCRIPT_ENCODE_H_ 19656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 20656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <string> 21656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 22656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <fst/script/arg-packs.h> 23656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <fst/script/fst-class.h> 24656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <fst/encode.h> 25656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 26656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectnamespace fst { 27656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectnamespace script { 28656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 29656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef args::Package<MutableFstClass*, uint32, bool, 30656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project const string &> EncodeArgs; 31656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 32656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttemplate<class Arc> 33656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid Encode(EncodeArgs *args) { 34656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project MutableFst<Arc> *ofst = args->arg1->GetMutableFst<Arc>(); 35656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bool reuse_encoder = args->arg3; 36656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project const string &coder_fname = args->arg4; 37656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project uint32 flags = args->arg2; 38656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 39656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project EncodeMapper<Arc> *encoder = reuse_encoder 40656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ? EncodeMapper<Arc>::Read(coder_fname, ENCODE) 41656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project : new EncodeMapper<Arc>(flags, ENCODE); 42656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 43656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project Encode(ofst, encoder); 44656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (!args->arg3) 45656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project encoder->Write(coder_fname); 46656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 47656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project delete encoder; 48656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project} 49656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 50656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid Encode(MutableFstClass *fst, uint32 flags, bool reuse_encoder, 51656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project const string &coder_fname); 52656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 53656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project} // namespace script 54656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project} // namespace fst 55656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 56656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 57656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 58656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif // FST_SCRIPT_ENCODE_H_ 59656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project