Matrix Science header

ms_parserule.hpp

00001 /*
00002 ##############################################################################
00003 # file: ms_parserule.hpp                                                     #
00004 # 'msparser' toolkit                                                         #
00005 # Represents PARSE section of mascot.dat file                                #
00006 ##############################################################################
00007 # COPYRIGHT NOTICE                                                           #
00008 # Copyright 1998-2003 Matrix Science Limited  All Rights Reserved.           #
00009 #                                                                            #
00010 ##############################################################################
00011 #    $Archive:: /Mowse/ms_mascotresfile/include/ms_parserule.hpp           $ #
00012 #     $Author: francoisr $ #
00013 #       $Date: 2016/05/17 12:49:19 $ #
00014 #   $Revision: 1.11 $ #
00015 # $NoKeywords::                                                            $ #
00016 ##############################################################################
00017 */
00018 
00019 #ifndef MS_PARSERULE_HPP
00020 #define MS_PARSERULE_HPP
00021 
00022 #ifdef _WIN32
00023 #pragma warning(disable:4251)   // Don't want all classes to be exported
00024 #pragma warning(disable:4786)   // Debug symbols too long
00025 #   ifndef _MATRIX_USE_STATIC_LIB
00026 #       ifdef MS_MASCOTRESFILE_EXPORTS
00027 #           define MS_MASCOTRESFILE_API __declspec(dllexport)
00028 #       else
00029 #           define MS_MASCOTRESFILE_API __declspec(dllimport)
00030 #       endif
00031 #   else
00032 #       define MS_MASCOTRESFILE_API
00033 #   endif
00034 #else
00035 #   define MS_MASCOTRESFILE_API
00036 #endif
00037 
00038 // for the sake of #include <string>
00039 #ifdef __ALPHA_UNIX__
00040 #include <ctype.h>
00041 #endif
00042 #include <string>
00043 
00044 
00045 namespace matrix_science {
00051 
00052 
00056     class MS_MASCOTRESFILE_API ms_parserule
00057     {
00058         friend class ms_datfile;
00059         friend class ms_parseoptions;
00060         friend class ms_spectral_lib_file;
00061 
00062     public:
00064         ms_parserule();
00065 
00067         ms_parserule(const ms_parserule& src);
00068 
00070         ~ms_parserule();
00071 
00073         void defaultValues();
00074 
00076         void copyFrom(const ms_parserule* right);
00077 
00078 #ifndef SWIG
00079 
00080         ms_parserule& operator=(const ms_parserule& right);
00081 #endif
00082 
00083         bool isAvailable() const;
00084 
00086         void setAvailable(const bool value);
00087 
00089         std::string getRuleStr() const;
00090 
00092         void setRuleStr(const char* str);
00093 
00094     private:
00095         bool    available_;
00096         std::string szRule_;
00097 
00098         void *compiledExp_;
00099         void compileAccessionRegex(ms_errs* pErr);
00100         std::string regexStr(const char * input, ms_errs * pErr, bool reportErrorIfNoMatch) const;
00101 
00102     };// class ms_parserule
00103 
00105 
00120     class MS_MASCOTRESFILE_API ms_parseoptions : public ms_customproperty
00121     {
00122         friend class ms_datfile;
00123     public:
00125         ms_parseoptions();
00126 
00128         ms_parseoptions(const ms_parseoptions& src);
00129 
00131         ~ms_parseoptions();
00132         
00134         void defaultValues();
00135 
00137         void copyFrom(const ms_parseoptions* right);
00138 
00139 #ifndef SWIG
00140 
00141         ms_parseoptions& operator=(const ms_parseoptions& right);
00142 #endif
00143 
00144         bool isSectionAvailable() const;
00145 
00147         void setSectionAvailable(const bool value);
00148 
00150         int getNumberOfParseRules() const;
00151 
00153         void clearParseRules();
00154 
00156         const ms_parserule* getParseRule(const int index) const;
00157 
00159         void setParseRule(const int index, const ms_parserule* rule);
00160 
00162         void dropParseRule(const int index);
00163 
00164         int findOrAddParseRule(const char * rule, bool & added);
00165 
00166 #ifdef SUPPRESS_MS_CUSTOMPROPERTY_INHERITANCE
00167 #include "suppress_ms_customproperty.hpp"
00168 #endif
00169 
00170     private:
00171         bool                sectionAvailable_;
00172         ms_parserule        *parseRules_;
00173     }; // end of config_group
00175 } // namespace matrix_science
00176 
00177 #endif // MS_PARSERULE_HPP
00178 
00179 /*------------------------------- End of File -------------------------------*/
Copyright © 2016 Matrix Science Ltd.  All Rights Reserved. Generated on Fri Jun 2 2017 01:44:51