00001 /*00002 * Licensed to the Apache Software Foundation (ASF) under one or more00003 * contributor license agreements. See the NOTICE file distributed with00004 * this work for additional information regarding copyright ownership.00005 * The ASF licenses this file to You under the Apache License, Version 2.000006 * (the "License"); you may not use this file except in compliance with00007 * the License. You may obtain a copy of the License at00008 * 00009 * http://www.apache.org/licenses/LICENSE-2.000010 * 00011 * Unless required by applicable law or agreed to in writing, software00012 * distributed under the License is distributed on an "AS IS" BASIS,00013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.00014 * See the License for the specific language governing permissions and00015 * limitations under the License.00016 */00017
00018 /*00019 * $Id: XMLGrammarDescription.hpp 568078 2007-08-21 11:43:25Z amassari $00020 */00021
00022 #if !defined(XMLGRAMMARDESCRIPTION_HPP)00023#define XMLGRAMMARDESCRIPTION_HPP00024
00025 #include <xercesc/util/XMemory.hpp>00026 #include <xercesc/validators/common/Grammar.hpp>00027
00028 #include <xercesc/internal/XSerializable.hpp>00029
00030 XERCES_CPP_NAMESPACE_BEGIN00031
00032class XMLGrammarDescription : public XSerializable, publicXMemory00033 {
00034 public :
00035 // -----------------------------------------------------------------------00037 // -----------------------------------------------------------------------00039
00043 virtual ~XMLGrammarDescription();
00045
00046 // -----------------------------------------------------------------------00048 // -----------------------------------------------------------------------00050
00054 virtual Grammar::GrammarType getGrammarType() const = 0;
00055
00060 virtualconst XMLCh* getGrammarKey() const = 0;
00062
00063 inlineMemoryManager* getMemoryManager() const;
00064
00065 /***00066 * Support for Serialization/De-serialization00067 ***/00068 DECL_XSERIALIZABLE(XMLGrammarDescription)
00069
00070 protected :
00071 // -----------------------------------------------------------------------00073 // -----------------------------------------------------------------------00075 XMLGrammarDescription(MemoryManager* const memMgr = XMLPlatformUtils::fgMemoryManager);
00077
00078 private :
00079 // -----------------------------------------------------------------------00081 // -----------------------------------------------------------------------00083 XMLGrammarDescription(constXMLGrammarDescription& );
00084 XMLGrammarDescription& operator=(constXMLGrammarDescription& );
00086
00087 // -----------------------------------------------------------------------00088 //00089 // fMemMgr: plugged-in (or defaulted-in) memory manager, 00090 // not owned 00091 // no reset after initialization00092 // allow derivatives to access directly00093 //00094 // ----------------------------------------------------------------------- 00095 MemoryManager* const fMemMgr;
00096 };
00097
00098inlineMemoryManager* XMLGrammarDescription::getMemoryManager() const00099 {
00100 return fMemMgr;
00101 }
00102
00103 XERCES_CPP_NAMESPACE_END00104
00105 #endif