core/indigo-core/reaction/rxnfile_loader.h (50 lines of code) (raw):
/****************************************************************************
* Copyright (C) from 2009 to Present EPAM Systems.
*
* This file is part of Indigo toolkit.
*
* 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 __rxnfile_loader__
#define __rxnfile_loader__
#include "base_cpp/exception.h"
#include "molecule/molecule_stereocenter_options.h"
namespace indigo
{
class Scanner;
class BaseReaction;
class Reaction;
class QueryReaction;
class MolfileLoader;
class PropertiesMap;
class DLLEXPORT RxnfileLoader
{
public:
RxnfileLoader(Scanner& scanner);
~RxnfileLoader();
void loadReaction(Reaction& reaction);
void loadQueryReaction(QueryReaction& reaction);
void loadReaction(Reaction& reaction, PropertiesMap& props);
void loadQueryReaction(QueryReaction& reaction, PropertiesMap& props);
bool treat_x_as_pseudoatom;
StereocentersOptions stereochemistry_options;
bool ignore_noncritical_query_features;
bool ignore_no_chiral_flag;
int treat_stereo_as;
bool ignore_bad_valence;
DECL_ERROR;
protected:
BaseReaction* _brxn;
QueryReaction* _qrxn;
Reaction* _rxn;
void _loadReaction();
Scanner& _scanner;
void _readRxnHeader();
void _readReactantsHeaderV3000();
void _readProductsHeaderV3000();
void _readCatalystsHeaderV3000();
void _readReactantsFooterV3000();
void _readProductsFooterV3000();
void _readCatalystsFooterV3000();
void _readMol2000Header();
void _readMol(MolfileLoader& loader, int index);
int _n_reactants;
int _n_products;
int _n_catalysts;
bool _v3000;
};
} // namespace indigo
#endif