00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef INTERFACES_IANNOTATIONFACTORY_H
00011 #define INTERFACES_IANNOTATIONFACTORY_H 1
00012
00013 #ifndef ANAPHE_NO_NAMESPACE
00014 namespace Anaphe {
00015 #endif
00016
00017 class IAnnotation;
00018
00019 class IAnnotationFactory {
00020
00021 public:
00022 virtual ~IAnnotationFactory() { ; }
00023
00024 public:
00025
00026
00027
00028
00029 public:
00030 virtual IAnnotation * create() = 0;
00031 virtual IAnnotation * create(const IAnnotation * other) = 0;
00032
00033 };
00034
00035 #ifndef ANAPHE_NO_NAMESPACE
00036 };
00037 #endif
00038
00039
00040
00041 extern "C" {
00042 Anaphe::IAnnotationFactory * createIAnnotationFactory();
00043 }
00044
00045 #endif