00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef HxImgFtorRuleBase_h
00011 #define HxImgFtorRuleBase_h
00012
00013 #include "HxString.h"
00014 #include "HxImageSignature.h"
00015
00016 class HxImgFtorKey;
00017
00018 class L_HXIMAGEREP HxIfRbPair
00019 {
00020 public:
00021 HxIfRbPair() {}
00022 HxIfRbPair(
00023 HxImageSignature s, bool f = true)
00024 : sig(s), found(f) {}
00025
00026 bool found;
00027 HxImageSignature sig;
00028
00029 operator int() { return found ? 1 : 0; }
00030 operator HxImageSignature() { return sig; }
00031 };
00032
00033
00036 class L_HXIMAGEREP HxImgFtorRuleBase
00037 {
00038 public:
00039 typedef HxIfRbPair QueryResultType;
00040
00041 static HxImgFtorRuleBase& instance();
00042
00043 void setResultType(
00044 HxString resultType,
00045 HxString ftorClass, HxString srcType,
00046 HxString opName);
00047
00048 void setResultType(
00049 HxString resultType,
00050 HxString ftorClass,
00051 HxString src1Type, HxString src2Type,
00052 HxString opName);
00053
00054 QueryResultType getResultType(
00055 HxImageSignature defaultResult,
00056 HxString ftorClass, HxString srcType,
00057 HxString opName);
00058
00059 QueryResultType getResultType(
00060 HxImageSignature defaultResult,
00061 HxString ftorClass,
00062 HxString src1Type, HxString src2Type,
00063 HxString opName);
00064
00065 void setArgumentType(
00066 HxString argumentType,
00067 HxString ftorClass, HxString srcType,
00068 HxString opName);
00069
00070 QueryResultType getArgumentType(
00071 HxImageSignature defaultArgument,
00072 HxString ftorClass, HxString srcType,
00073 HxString opName);
00074
00075 void setKernelType(
00076 HxString kernelType,
00077 HxString ftorClass, HxString srcType,
00078 HxString opName);
00079
00080 QueryResultType getKernelType(
00081 HxImageSignature defaultKernel,
00082 HxString ftorClass, HxString srcType,
00083 HxString opName);
00084
00085 void setIsModifying(
00086 HxString ftorClass, HxString opName,
00087 bool f = true);
00088
00089 bool getIsModifying(
00090 HxString ftorClass, HxString opName);
00091
00092 ~HxImgFtorRuleBase();
00093
00094 private:
00095 HxImgFtorRuleBase();
00096 HxImgFtorRuleBase(const HxImgFtorRuleBase&);
00097
00098 HxString getRule(
00099 HxString ruleType,
00100 const HxImgFtorKey& key);
00101 void setRule(
00102 HxString ruleType, const HxImgFtorKey& key,
00103 HxString ruleValue);
00104 bool getFlagRule(
00105 HxString ruleType,
00106 const HxImgFtorKey& key);
00107 void setFlagRule(
00108 HxString ruleType, const HxImgFtorKey& key,
00109 bool ruleValue);
00110 };
00111
00112 #endif