16 #include "TVirtualCollectionProxy.h"
93 boost::shared_ptr<FWItemAccessorBase>
96 static const bool debug =
false;
105 <<
" uses FWItemTVirtualCollectionProxyAccessor." << std::endl;
106 return boost::shared_ptr<FWItemAccessorBase>(
108 boost::shared_ptr<TVirtualCollectionProxy>(iClass->GetCollectionProxy()->Generate())));
123 << accessorName <<
"." << std::endl;
131 <<
" only contains data member " << member->GetName()
132 <<
" which uses FWItemTVirtualCollectionProxyAccessor."
135 return boost::shared_ptr<FWItemAccessorBase>(
137 boost::shared_ptr<TVirtualCollectionProxy>(member->GetCollectionProxy()->Generate()),
153 iClass->GetCollectionProxy() &&
154 iClass->GetCollectionProxy()->GetValueClass() &&
155 iClass->GetCollectionProxy()->GetValueClass()->IsLoaded();
174 assert(iClass->GetTypeInfo());
180 if (members.
size() != 1)
186 oMember = TClass::GetClass(memType.typeInfo());
187 oOffset = member.offset();
208 const std::vector<edmplugin::PluginInfo> &available
211 for (
size_t i = 0,
e = available.size();
i !=
e; ++
i)
215 if (iClass->GetTypeInfo()->name() ==
type)
const CategoryToInfos & categoryToInfos() const
IterWithDict< TDataMember > begin() const
static bool classAccessedAsCollection(const TClass *)
virtual ~FWItemAccessorFactory()
static bool hasTVirtualCollectionProxy(const TClass *iClass)
static bool hasMemberTVirtualCollectionProxy(const TClass *iClass, TClass *&oMember, size_t &oOffset)
static bool hasAccessor(const TClass *iClass, std::string &result)
static PluginManager * get()
boost::shared_ptr< FWItemAccessorBase > accessorFor(const TClass *) const
T get(const Candidate &c)