14 #ifndef ZYPP_NG_BASE_BASE_H_INCLUDED 15 #define ZYPP_NG_BASE_BASE_H_INCLUDED 20 #include <unordered_set> 38 using Ptr = std::shared_ptr<Base>;
59 void removeChild (
Ptr child );
64 const std::unordered_set<Ptr> &children()
const;
71 std::vector< std::weak_ptr<T> > result;
72 for (
Ptr p : children() ) {
73 std::shared_ptr<T> casted = std::dynamic_pointer_cast<T>(p);
75 result.push_back( std::weak_ptr<T>(casted) );
82 return std::static_pointer_cast<T>( shared_from_this() );
87 return std::static_pointer_cast<T>( shared_from_this() );
92 return std::static_pointer_cast<T>( weak_from_this().lock() );
97 return std::static_pointer_cast<T>( weak_from_this().lock() );
107 #endif // ZYPP_NG_CORE_BASE_H_INCLUDED std::weak_ptr< Base > WeakPtr
std::shared_ptr< T > shared_this()
std::vector< std::weak_ptr< T > > findChildren() const
#define NON_COPYABLE(CLASS)
Delete copy ctor and copy assign.
std::weak_ptr< T > weak_this() const
#define ZYPP_DECLARE_PRIVATE(Class)
#define LIBZYPP_NG_EXPORT
std::unique_ptr< BasePrivate > d_ptr
std::weak_ptr< T > weak_this()
std::shared_ptr< T > shared_this() const
std::shared_ptr< Base > Ptr