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())));
114 <<
" only contains data member " << member->GetName()
115 <<
" which uses FWItemTVirtualCollectionProxyAccessor."
118 return boost::shared_ptr<FWItemAccessorBase>(
120 boost::shared_ptr<TVirtualCollectionProxy>(member->GetCollectionProxy()->Generate()),
136 << accessorName <<
"." << std::endl;
152 iClass->GetCollectionProxy() &&
153 iClass->GetCollectionProxy()->GetValueClass() &&
154 iClass->GetCollectionProxy()->GetValueClass()->IsLoaded();
173 assert(iClass->GetTypeInfo());
179 if (members.
size() != 1)
185 oMember = TClass::GetClass(memType.typeInfo());
186 oOffset = member.offset();
207 const std::vector<edmplugin::PluginInfo> &available
210 for (
size_t i = 0,
e = available.size();
i !=
e; ++
i)
214 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)