Horus Doc || C++ Reference || Class Overview   Pixels   Images   Detector   Geometry   Registry || Doxygen's quick Index  

HxImgFtorRuleBase.h

00001 /*
00002  *  Copyright (c) 2000, University of Amsterdam, The Netherlands.
00003  *  All rights reserved.
00004  *
00005  *  Author(s):
00006  *  Edo Poll                (poll@wins.uva.nl)
00007  *  Dennis Koelma           (koelma@wins.uva.nl)
00008  */
00009 
00010 #ifndef HxImgFtorRuleBase_h
00011 #define HxImgFtorRuleBase_h
00012 
00013 #include "HxString.h"
00014 #include "HxImageSignature.h"
00015 
00016 class HxImgFtorKey;
00017 
00023 class L_HXIMAGEREP HxIfRbPair
00024 {
00025 public:
00027                                 HxIfRbPair() {}
00028                                 
00030                                 HxIfRbPair(HxImageSignature s, bool f = true)
00031                                     : sig(s), found(f) {}
00032 
00034     bool                        found;
00036     HxImageSignature            sig;
00037 
00039                                 operator int() { return found ? 1 : 0; }
00041                                 operator HxImageSignature() { return sig; }
00042 };
00043 
00044 
00058 class L_HXIMAGEREP HxImgFtorRuleBase
00059 {
00060 public:
00062     typedef HxIfRbPair          QueryResultType;
00063 
00065     static HxImgFtorRuleBase&   instance();
00066 
00070     void                        setResultType(
00071                                     HxString resultType,
00072                                     HxString ftorClass, HxString srcType,
00073                                     HxString opName);
00074 
00078     void                        setResultType(
00079                                     HxString resultType,
00080                                     HxString ftorClass,
00081                                     HxString src1Type, HxString src2Type,
00082                                     HxString opName);
00083 
00088     QueryResultType             getResultType(
00089                                     HxImageSignature defaultResult,
00090                                     HxString ftorClass, HxString srcType,
00091                                     HxString opName);
00092 
00097     QueryResultType             getResultType(
00098                                     HxImageSignature defaultResult,
00099                                     HxString ftorClass,
00100                                     HxString src1Type, HxString src2Type,
00101                                     HxString opName);
00102 
00106     void                        setArgumentType(
00107                                     HxString argumentType,
00108                                     HxString ftorClass, HxString srcType,
00109                                     HxString opName);
00110 
00115     QueryResultType             getArgumentType(
00116                                     HxImageSignature defaultArgument,
00117                                     HxString ftorClass, HxString srcType,
00118                                     HxString opName);
00119 
00123     void                        setKernelType(
00124                                     HxString kernelType,
00125                                     HxString ftorClass, HxString srcType,
00126                                     HxString opName);
00127 
00132     QueryResultType             getKernelType(
00133                                     HxImageSignature defaultKernel,
00134                                     HxString ftorClass, HxString srcType,
00135                                     HxString opName);
00136 
00140     void                        setExtraType(
00141                                     HxString extraType,
00142                                     HxString ftorClass, HxString srcType,
00143                                     HxString opName);
00144 
00149     QueryResultType             getExtraType(
00150                                     HxImageSignature defaultExtra,
00151                                     HxString ftorClass, HxString srcType,
00152                                     HxString opName);
00153 
00157     void                        setExtra2Type(
00158                                     HxString extra2Type,
00159                                     HxString ftorClass, HxString srcType,
00160                                     HxString opName);
00161 
00166     QueryResultType             getExtra2Type(
00167                                     HxImageSignature defaultExtra2,
00168                                     HxString ftorClass, HxString srcType,
00169                                     HxString opName);
00170 
00174     void                        setIsModifying(
00175                                     HxString ftorClass, HxString opName,
00176                                     bool f = true);
00177 
00181     bool                        getIsModifying(
00182                                     HxString ftorClass, HxString opName);
00183 
00185                                 ~HxImgFtorRuleBase();
00186 
00187 private:
00188                                 HxImgFtorRuleBase();
00189                                 HxImgFtorRuleBase(const HxImgFtorRuleBase&);
00190 
00191     HxString                    getRule(
00192                                     HxString ruleType,
00193                                     const HxImgFtorKey& key);
00194     void                        setRule(
00195                                     HxString ruleType, const HxImgFtorKey& key,
00196                                     HxString ruleValue);
00197     bool                        getFlagRule(
00198                                     HxString ruleType,
00199                                     const HxImgFtorKey& key);
00200     void                        setFlagRule(
00201                                     HxString ruleType, const HxImgFtorKey& key,
00202                                     bool ruleValue);
00203 };
00204 
00205 #endif

Generated on Tue Feb 3 14:18:38 2004 for C++Reference by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001