diff -r 127731b7107d -r 3eebb1e54d3a secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XProtoType.hpp --- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XProtoType.hpp Fri Jan 22 09:56:12 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,94 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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. - */ - -/* - * $Id: XProtoType.hpp 568078 2007-08-21 11:43:25Z amassari $ - */ - - -#if !defined(XPROTOTYPE_HPP) -#define XPROTOTYPE_HPP - -#include - -XERCES_CPP_NAMESPACE_BEGIN - -class XSerializeEngine; -class XSerializable; - -class XMLUTIL_EXPORT XProtoType -{ -public: - - void store(XSerializeEngine& serEng) const; - - static void load(XSerializeEngine& serEng - , XMLByte* const name - , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager - ); - - // ------------------------------------------------------------------------------- - // data - // - // fClassName: - // name of the XSerializable derivatives - // - // fCreateObject: - // pointer to the factory method (createObject()) - // of the XSerializable derivatives - // - // ------------------------------------------------------------------------------- - - XMLByte* fClassName; - - XSerializable* (*fCreateObject)(MemoryManager*); - -}; - -#define DECL_XPROTOTYPE(class_name) \ -static XProtoType class##class_name; \ -static XSerializable* createObject(MemoryManager* manager); - -/*** - * For non-abstract class - ***/ -#define IMPL_XPROTOTYPE_TOCREATE(class_name) \ -IMPL_XPROTOTYPE_INSTANCE(class_name) \ -XSerializable* class_name::createObject(MemoryManager* manager) \ -{return new (manager) class_name(manager);} - -/*** -* For abstract class - ***/ -#define IMPL_XPROTOTYPE_NOCREATE(class_name) \ -IMPL_XPROTOTYPE_INSTANCE(class_name) \ -XSerializable* class_name::createObject(MemoryManager*) \ -{return 0;} - - -/*** - * Helper Macro - ***/ -#define XPROTOTYPE_CLASS(class_name) ((XProtoType*)(&class_name::class##class_name)) - -#define IMPL_XPROTOTYPE_INSTANCE(class_name) \ -XProtoType class_name::class##class_name = \ -{(XMLByte*) #class_name, class_name::createObject }; - -XERCES_CPP_NAMESPACE_END - -#endif