51 typedef typename BaseDecorator::InterfaceType InterfaceType;
52 typedef typename BaseDecorator::collection_type collection_type;
53 typedef typename BaseDecorator::value_type value_type;
59 : BaseDecorator{ pComponent }
64 const char* TypeName() const noexcept
override{
65 return m_pComponent->TypeName();
68 IDType Add( std::shared_ptr<value_type> pItem )
override{
69 return m_pComponent->Add(pItem);
72 IDType AddRelaxed( std::shared_ptr<value_type> pItem )
override{
73 return m_pComponent->AddRelaxed(pItem);
76 bool Remove( value_type* pItem,
bool zeroIDs =
false )
override{
77 return m_pComponent->Remove( pItem, zeroIDs );
80 int Take( collection_type& ct )
override{
81 return m_pComponent->Take(ct);
84 void Clear()
override{
85 return m_pComponent->Clear();
88 int Count()
const override{
89 return m_pComponent->Count();
92 typename collection_type::iterator begin()
override{
93 return m_pComponent->begin();
96 typename collection_type::const_iterator begin()
const override{
97 return m_pComponent->cbegin();
100 typename collection_type::const_iterator cbegin()
const override{
101 return m_pComponent->cbegin();
104 typename collection_type::iterator end()
override{
105 return m_pComponent->end();
108 typename collection_type::const_iterator end()
const override{
109 return m_pComponent->cend();
112 typename collection_type::const_iterator cend()
const override{
113 return m_pComponent->cend();
116 std::shared_ptr<value_type> GetFirst()
const override{
117 return m_pComponent->GetFirst();
120 std::shared_ptr<value_type> GetNext(
const std::shared_ptr<value_type>& pItem )
const override{
121 return m_pComponent->GetNext(pItem);
124 std::shared_ptr<value_type> GetLast()
const override{
125 return m_pComponent->GetLast();
128 std::shared_ptr<value_type> GetPrevious(
const std::shared_ptr<value_type>& pItem )
const override{
129 return m_pComponent->GetPrevious(pItem);
132 std::shared_ptr<value_type> Get( IDType
id )
const override{
133 return m_pComponent->Get(
id);
136 std::shared_ptr<value_type> Get(
const std::string& name )
const override{
137 return m_pComponent->Get(name);
140 void PushActive( IDType
id )
override{
141 return m_pComponent->PushActive(
id);
144 void PopActive()
override{
145 return m_pComponent->PopActive();
148 std::shared_ptr<value_type> GetActive()
const override{
149 return m_pComponent->GetActive();
152 bool IsMember(
const value_type& item )
const override{
153 return m_pComponent->IsMember(item);
156 bool IsMember( IDType
id )
const override{
157 return m_pComponent->IsMember(
id);
160 void ShiftIDs(
int offset )
override{
161 return m_pComponent->ShiftIDs( offset );
164 IDType MaxID()
const override{
165 return m_pComponent->MaxID();
168 IDType MinID()
const override{
169 return m_pComponent->MinID();
173 using BaseDecorator::m_pComponent;