File indexing completed on 2024-04-06 12:11:31
0001 #ifndef Fireworks_Core_FWItemAccessorFactory_h
0002 #define Fireworks_Core_FWItemAccessorFactory_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 #include <memory>
0023 #include <string>
0024
0025
0026
0027
0028 class FWItemAccessorBase;
0029 class TClass;
0030
0031 class FWItemAccessorFactory {
0032 public:
0033 FWItemAccessorFactory();
0034 virtual ~FWItemAccessorFactory();
0035
0036
0037 std::shared_ptr<FWItemAccessorBase> accessorFor(const TClass *) const;
0038 static bool hasAccessor(const TClass *iClass, std::string &result);
0039 static bool hasTVirtualCollectionProxy(const TClass *iClass);
0040 static bool hasMemberTVirtualCollectionProxy(const TClass *iClass, TClass *&oMember, size_t &oOffset);
0041
0042 static bool classAccessedAsCollection(const TClass *);
0043
0044
0045
0046
0047
0048 FWItemAccessorFactory(const FWItemAccessorFactory &) = delete;
0049
0050 const FWItemAccessorFactory &operator=(const FWItemAccessorFactory &) = delete;
0051
0052
0053 };
0054
0055 #endif