test/devel.ma/Makefile \
zypp/Makefile \
zypp/base/Makefile \
- zypp/detail/Makefile
+ zypp/detail/Makefile \
+ zypp/capability/Makefile
)
dnl ==================================================
## Process this file with automake to produce Makefile.in
## ##################################################
-noinst_PROGRAMS = Main Main.debug
+noinst_PROGRAMS = Main Main.debug PtrTest
## ##################################################
## ##################################################
+PtrTest_SOURCES = PtrTest.cc
+
+## ##################################################
+
.PHONY: always
$(noinst_PROGRAMS): $(top_srcdir)/zypp/lib@PACKAGE@.la
MAKE="make -j 15"
fi
-$MAKE -C ../zypp || exit 1
+$MAKE -C ../../zypp || exit 1
$MAKE $PRG || exit 1
./$PRG "$@" 2> $LPIPE
#include "zypp/base/PtrTypes.h"
$(nsopen)
+${INDENT}///////////////////////////////////////////////////////////////////
+${INDENT}namespace detail
+${INDENT}{ /////////////////////////////////////////////////////////////////
+${INDENT} DEFINE_PTR_TYPE(${CLASS}Impl)
+${INDENT} /////////////////////////////////////////////////////////////////
+${INDENT}} // namespace detail
+${INDENT}///////////////////////////////////////////////////////////////////
${INDENT}///////////////////////////////////////////////////////////////////
${INDENT}//
${INDENT}public:
${INDENT} /** Default ctor */
${INDENT} ${CLASS}();
-
+${INDENT} /** Factory ctor */
+${INDENT} explicit
+${INDENT} ${CLASS}( detail::${CLASS}ImplPtr impl_r );
${INDENT} /** Dtor */
${INDENT} ~${CLASS}();
-${INDENT} /** Stream output */
-${INDENT} friend std::ostream & operator<<( std::ostream & str, const ${CLASS} & obj );
-
${INDENT}private:
-${INDENT} /** Hides implementation */
-${INDENT} struct Impl;
${INDENT} /** Pointer to implementation */
-${INDENT} base::shared_ptr<Impl> _pimpl;
+${INDENT} detail::${CLASS}ImplPtr _pimpl;
+${INDENT}public:
+${INDENT} /** Avoid a bunch of friend decl. */
+${INDENT} detail::const${CLASS}ImplPtr sayFriend() const;
${INDENT}};
${INDENT}///////////////////////////////////////////////////////////////////
+${INDENT}/** \relates ${CLASS} Stream output */
+${INDENT}extern std::ostream & operator<<( std::ostream & str, const ${CLASS} & obj );
+
$(nsclose)
#endif // $INCLUDE_DEF
EOF
$(intro $CLASS_CC)
#include <iostream>
-#include "zypp/base/Logger.h"
-#include "zypp/base/BaseTypes.h"
+#include "zypp/base/ReferenceCounted.h"
+#include "zypp/base/NonCopyable.h"
#include "${INCLUDE_H}"
using namespace std;
$(nsopen)
${INDENT}///////////////////////////////////////////////////////////////////
-${INDENT}//
-${INDENT}// CLASS NAME : ${CLASS}::Impl
-${INDENT}//
-${INDENT}/** ${CLASS} implementation */
-${INDENT}struct ${CLASS}::Impl : private zypp::base::noncopyable
-${INDENT}{
-${INDENT} /** Default ctor*/
-${INDENT} Impl();
-
-${INDENT} /** Dtor */
-${INDENT} ~Impl();
-
-${INDENT} /** Stream output */
-${INDENT} friend std::ostream & operator<<( std::ostream & str, const Impl & obj );
-
-${INDENT}};
+${INDENT}namespace detail
+${INDENT}{ /////////////////////////////////////////////////////////////////
+
+${INDENT} ///////////////////////////////////////////////////////////////////
+${INDENT} //
+${INDENT} // CLASS NAME : ${CLASS}Impl
+${INDENT} //
+${INDENT} /** ${CLASS} implementation */
+${INDENT} struct ${CLASS}Impl : public base::ReferenceCounted, private base::NonCopyable
+${INDENT} {
+${INDENT} /** Default ctor*/
+${INDENT} ${CLASS}Impl();
+${INDENT} /** Dtor */
+${INDENT} ~${CLASS}Impl();
+${INDENT} };
+${INDENT} ///////////////////////////////////////////////////////////////////
+
+${INDENT} /** \relates ${CLASS}Impl Stream output */
+${INDENT} inline std::ostream & operator<<( std::ostream & str, const ${CLASS}Impl & obj )
+${INDENT} {
+${INDENT} return str << "${CLASS}Impl";
+${INDENT} }
+
+${INDENT} /////////////////////////////////////////////////////////////////
+${INDENT}} // namespace detail
${INDENT}///////////////////////////////////////////////////////////////////
-${INDENT}/******************************************************************
-${INDENT}**
-${INDENT}** FUNCTION NAME : operator<<
-${INDENT}** FUNCTION TYPE : std::ostream &
-${INDENT}*/
-${INDENT}std::ostream & operator<<( std::ostream & str, const ${CLASS}::Impl & obj )
-${INDENT}{
-${INDENT} return str << "${CLASS}::Impl";
-${INDENT}}
-
-
${INDENT}///////////////////////////////////////////////////////////////////
${INDENT}//
${INDENT}// CLASS NAME : ${CLASS}
${INDENT}///////////////////////////////////////////////////////////////////
${INDENT}//
+${INDENT}// METHOD NAME : ${CLASS}::${CLASS}
+${INDENT}// METHOD TYPE : Ctor
+${INDENT}//
+${INDENT}${CLASS}::${CLASS}( detail::${CLASS}ImplPtr impl_r )
+${INDENT}: _pimpl( impl_r )
+${INDENT}{}
+
+${INDENT}///////////////////////////////////////////////////////////////////
+${INDENT}//
${INDENT}// METHOD NAME : ${CLASS}::~${CLASS}
${INDENT}// METHOD TYPE : Dtor
${INDENT}//
${INDENT}${CLASS}::~${CLASS}()
${INDENT}{}
+${INDENT}///////////////////////////////////////////////////////////////////
+${INDENT}//
+${INDENT}// METHOD NAME : ${CLASS}::sayFriend
+${INDENT}// METHOD TYPE : detail::const${CLASS}ImplPtr
+${INDENT}//
+${INDENT}detail::const${CLASS}ImplPtr ${CLASS}::sayFriend() const
+${INDENT}{ return _pimpl; }
+
${INDENT}/******************************************************************
${INDENT}**
${INDENT}** FUNCTION NAME : operator<<
${INDENT}*/
${INDENT}std::ostream & operator<<( std::ostream & str, const ${CLASS} & obj )
${INDENT}{
-${INDENT} return str << obj._pimpl;
+${INDENT} return str << *obj.sayFriend();
${INDENT}}
$(nsclose)
--- /dev/null
+/*---------------------------------------------------------------------\
+| ____ _ __ __ ___ |
+| |__ / \ / / . \ . \ |
+| / / \ V /| _/ _/ |
+| / /__ | | | | | | |
+| /_____||_| |_| |_| |
+| |
+\---------------------------------------------------------------------*/
+/** \file zypp/Capability.cc
+ *
+*/
+#include <iostream>
+
+#include "zypp/Capability.h"
+#include "zypp/capability/CapabilityImpl.h"
+
+#include "zypp/SolverContext.h"
+
+using namespace std;
+
+///////////////////////////////////////////////////////////////////
+namespace zypp
+{ /////////////////////////////////////////////////////////////////
+
+ ///////////////////////////////////////////////////////////////////
+ //
+ // METHOD NAME : Capability::Capability
+ // METHOD TYPE : Ctor
+ //
+ Capability::Capability( ImplPtr impl_r )
+ : _pimpl( impl_r )
+ {}
+
+ ///////////////////////////////////////////////////////////////////
+ //
+ // METHOD NAME : Capability::~Capability
+ // METHOD TYPE : Dtor
+ //
+ Capability::~Capability()
+ {}
+
+ ///////////////////////////////////////////////////////////////////
+ //
+ // METHOD NAME : Capability::sayFriend
+ // METHOD TYPE : capability::constCapabilityImplPtr
+ //
+ Capability::constImplPtr Capability::sayFriend() const
+ { return _pimpl; }
+
+ bool Capability::matches( constResolvablePtr resolvable_r,
+ const SolverContext & solverContext_r )
+ { return _pimpl->matches( resolvable_r, solverContext_r ); }
+
+ bool Capability::matches( constResolvablePtr resolvable_r )
+ { return _pimpl->matches( resolvable_r, SolverContext() ); }
+
+ /******************************************************************
+ **
+ ** FUNCTION NAME : operator<<
+ ** FUNCTION TYPE : std::ostream &
+ */
+ std::ostream & operator<<( std::ostream & str, const Capability & obj )
+ {
+ return str << *obj.sayFriend();
+ }
+
+ /////////////////////////////////////////////////////////////////
+} // namespace zypp
+///////////////////////////////////////////////////////////////////
--- /dev/null
+/*---------------------------------------------------------------------\
+| ____ _ __ __ ___ |
+| |__ / \ / / . \ . \ |
+| / / \ V /| _/ _/ |
+| / /__ | | | | | | |
+| /_____||_| |_| |_| |
+| |
+\---------------------------------------------------------------------*/
+/** \file zypp/Capability.h
+ *
+*/
+#ifndef ZYPP_CAPABILITY_H
+#define ZYPP_CAPABILITY_H
+
+#include <iosfwd>
+
+#include "zypp/base/PtrTypes.h"
+
+#include "zypp/ResolvableFwd.h"
+#include "zypp/SolverContextFwd.h"
+
+///////////////////////////////////////////////////////////////////
+namespace zypp
+{ /////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////
+ namespace capability
+ { /////////////////////////////////////////////////////////////////
+ DEFINE_PTR_TYPE(CapabilityImpl);
+ /////////////////////////////////////////////////////////////////
+ } // namespace capability
+ ///////////////////////////////////////////////////////////////////
+
+ ///////////////////////////////////////////////////////////////////
+ //
+ // CLASS NAME : Capability
+ //
+ /** */
+ class Capability
+ {
+ typedef capability::CapabilityImplPtr ImplPtr;
+ typedef capability::constCapabilityImplPtr constImplPtr;
+
+ public:
+ /** Factory ctor */
+ explicit
+ Capability( ImplPtr impl_r );
+ /** Dtor */
+ virtual ~Capability();
+
+ public:
+ /** */
+ bool matches( constResolvablePtr resolvable_r,
+ const SolverContext & colverContext_r );
+ /** */
+ bool matches( constResolvablePtr resolvable_r );
+
+ private:
+ /** Pointer to implementation */
+ ImplPtr _pimpl;
+ public:
+ /** Avoid a bunch of friend decl. */
+ constImplPtr sayFriend() const;
+ };
+ ///////////////////////////////////////////////////////////////////
+
+ /** \relates Capability Stream output */
+ extern std::ostream & operator<<( std::ostream & str, const Capability & obj );
+
+ /////////////////////////////////////////////////////////////////
+} // namespace zypp
+///////////////////////////////////////////////////////////////////
+#endif // ZYPP_CAPABILITY_H
#include <string>
#include "zypp/base/PtrTypes.h"
+#include "zypp/RelOp.h"
///////////////////////////////////////////////////////////////////
namespace zypp
class Edition
{
public:
+ /** */
typedef unsigned epoch_t;
+
public:
/** Default ctor */
Edition();
epoch_t epoch = 0 );
/** Dtor */
~Edition();
+
public:
/** */
epoch_t epoch() const;
const std::string & version() const;
/** */
const std::string & release() const;
+
private:
/** Hides implementation */
struct Impl;
};
///////////////////////////////////////////////////////////////////
- /** \relates ResEdition Stream output */
+ /** \relates Edition Stream output */
extern std::ostream & operator<<( std::ostream & str, const Edition & obj );
/////////////////////////////////////////////////////////////////
## Process this file with automake to produce Makefile.in
## ##################################################
-SUBDIRS = base detail
+SUBDIRS = base detail capability
## ##################################################
include_HEADERS = \
Arch.h \
+ Capability.h \
Edition.h \
ResKind.h \
Resolvable.h \
Selection.h \
Message.h \
Script.h \
+ SolverContext.h \
Patch.h
## ##################################################
lib@PACKAGE@_la_SOURCES = \
Arch.cc \
+ Capability.cc \
Edition.cc \
ResKind.cc \
Resolvable.cc \
Selection.cc \
Message.cc \
Script.cc \
+ SolverContext.cc\
Patch.cc
lib@PACKAGE@_la_LDFLAGS = @LIB_VERSION_INFO@
lib@PACKAGE@_la_LIBADD = base/lib@PACKAGE@_base.la \
- detail/lib@PACKAGE@_detail.la
+ detail/lib@PACKAGE@_detail.la \
+ capability/lib@PACKAGE@_capability.la
## ##################################################
--- /dev/null
+/*---------------------------------------------------------------------\
+| ____ _ __ __ ___ |
+| |__ / \ / / . \ . \ |
+| / / \ V /| _/ _/ |
+| / /__ | | | | | | |
+| /_____||_| |_| |_| |
+| |
+\---------------------------------------------------------------------*/
+/** \file zypp/RelOp.h
+ *
+*/
+#ifndef ZYPP_RELOP_H
+#define ZYPP_RELOP_H
+
+///////////////////////////////////////////////////////////////////
+namespace zypp
+{ /////////////////////////////////////////////////////////////////
+
+ enum RelOp { ANY, EQ, NE, LT, LE, GT, GE, NONE };
+
+ /////////////////////////////////////////////////////////////////
+} // namespace zypp
+///////////////////////////////////////////////////////////////////
+#endif // ZYPP_RELOP_H
///////////////////////////////////////////////////////////////////
namespace zypp
{ /////////////////////////////////////////////////////////////////
+ IMPL_PTR_TYPE(Resolvable)
///////////////////////////////////////////////////////////////////
//
--- /dev/null
+/*---------------------------------------------------------------------\
+| ____ _ __ __ ___ |
+| |__ / \ / / . \ . \ |
+| / / \ V /| _/ _/ |
+| / /__ | | | | | | |
+| /_____||_| |_| |_| |
+| |
+\---------------------------------------------------------------------*/
+/** \file zypp/ResolvableFwd.h
+ *
+*/
+#ifndef ZYPP_RESOLVABLEFWD_H
+#define ZYPP_RESOLVABLEFWD_H
+
+#include "zypp/base/PtrTypes.h"
+
+///////////////////////////////////////////////////////////////////
+namespace zypp
+{ /////////////////////////////////////////////////////////////////
+
+ DEFINE_PTR_TYPE(Resolvable)
+
+ /////////////////////////////////////////////////////////////////
+} // namespace zypp
+///////////////////////////////////////////////////////////////////
+#endif // ZYPP_RESOLVABLEFWD_H
--- /dev/null
+/*---------------------------------------------------------------------\
+| ____ _ __ __ ___ |
+| |__ / \ / / . \ . \ |
+| / / \ V /| _/ _/ |
+| / /__ | | | | | | |
+| /_____||_| |_| |_| |
+| |
+\---------------------------------------------------------------------*/
+/** \file zypp/SolverContext.cc
+ *
+*/
+#include <iostream>
+
+#include "zypp/base/ReferenceCounted.h"
+#include "zypp/base/NonCopyable.h"
+#include "zypp/SolverContext.h"
+
+using namespace std;
+
+///////////////////////////////////////////////////////////////////
+namespace zypp
+{ /////////////////////////////////////////////////////////////////
+
+ ///////////////////////////////////////////////////////////////////
+ namespace detail
+ { /////////////////////////////////////////////////////////////////
+
+ ///////////////////////////////////////////////////////////////////
+ //
+ // CLASS NAME : SolverContextImpl
+ //
+ /** SolverContext implementation */
+ struct SolverContextImpl : public base::ReferenceCounted, private base::NonCopyable
+ {
+ /** Default ctor*/
+ SolverContextImpl();
+ /** Dtor */
+ ~SolverContextImpl();
+ };
+ ///////////////////////////////////////////////////////////////////
+
+ IMPL_PTR_TYPE(SolverContextImpl)
+
+ /** \relates SolverContextImpl Stream output */
+ inline std::ostream & operator<<( std::ostream & str, const SolverContextImpl & obj )
+ {
+ return str << "SolverContextImpl";
+ }
+
+ /////////////////////////////////////////////////////////////////
+ } // namespace detail
+ ///////////////////////////////////////////////////////////////////
+
+ ///////////////////////////////////////////////////////////////////
+ //
+ // CLASS NAME : SolverContext
+ //
+ ///////////////////////////////////////////////////////////////////
+
+ ///////////////////////////////////////////////////////////////////
+ //
+ // METHOD NAME : SolverContext::SolverContext
+ // METHOD TYPE : Ctor
+ //
+ SolverContext::SolverContext()
+ {}
+
+ ///////////////////////////////////////////////////////////////////
+ //
+ // METHOD NAME : SolverContext::SolverContext
+ // METHOD TYPE : Ctor
+ //
+ SolverContext::SolverContext( detail::SolverContextImplPtr impl_r )
+ : _pimpl( impl_r )
+ {}
+
+ ///////////////////////////////////////////////////////////////////
+ //
+ // METHOD NAME : SolverContext::~SolverContext
+ // METHOD TYPE : Dtor
+ //
+ SolverContext::~SolverContext()
+ {}
+
+ ///////////////////////////////////////////////////////////////////
+ //
+ // METHOD NAME : SolverContext::sayFriend
+ // METHOD TYPE : detail::constSolverContextImplPtr
+ //
+ detail::constSolverContextImplPtr SolverContext::sayFriend() const
+ { return _pimpl; }
+
+ /******************************************************************
+ **
+ ** FUNCTION NAME : operator<<
+ ** FUNCTION TYPE : std::ostream &
+ */
+ std::ostream & operator<<( std::ostream & str, const SolverContext & obj )
+ {
+ return str << *obj.sayFriend();
+ }
+
+ /////////////////////////////////////////////////////////////////
+} // namespace zypp
+///////////////////////////////////////////////////////////////////
--- /dev/null
+/*---------------------------------------------------------------------\
+| ____ _ __ __ ___ |
+| |__ / \ / / . \ . \ |
+| / / \ V /| _/ _/ |
+| / /__ | | | | | | |
+| /_____||_| |_| |_| |
+| |
+\---------------------------------------------------------------------*/
+/** \file zypp/SolverContext.h
+ *
+*/
+#ifndef ZYPP_SOLVERCONTEXT_H
+#define ZYPP_SOLVERCONTEXT_H
+
+#include <iosfwd>
+
+#include "zypp/base/PtrTypes.h"
+
+///////////////////////////////////////////////////////////////////
+namespace zypp
+{ /////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////
+ namespace detail
+ { /////////////////////////////////////////////////////////////////
+ DEFINE_PTR_TYPE(SolverContextImpl)
+ /////////////////////////////////////////////////////////////////
+ } // namespace detail
+ ///////////////////////////////////////////////////////////////////
+
+ ///////////////////////////////////////////////////////////////////
+ //
+ // CLASS NAME : SolverContext
+ //
+ /** */
+ class SolverContext
+ {
+ public:
+ /** Default ctor */
+ SolverContext();
+ /** Factory ctor */
+ explicit
+ SolverContext( detail::SolverContextImplPtr impl_r );
+ /** Dtor */
+ ~SolverContext();
+
+ private:
+ /** Pointer to implementation */
+ detail::SolverContextImplPtr _pimpl;
+ public:
+ /** Avoid a bunch of friend decl. */
+ detail::constSolverContextImplPtr sayFriend() const;
+ };
+ ///////////////////////////////////////////////////////////////////
+
+ /** \relates SolverContext Stream output */
+ extern std::ostream & operator<<( std::ostream & str, const SolverContext & obj );
+
+ /////////////////////////////////////////////////////////////////
+} // namespace zypp
+///////////////////////////////////////////////////////////////////
+#endif // ZYPP_SOLVERCONTEXT_H
--- /dev/null
+/*---------------------------------------------------------------------\
+| ____ _ __ __ ___ |
+| |__ / \ / / . \ . \ |
+| / / \ V /| _/ _/ |
+| / /__ | | | | | | |
+| /_____||_| |_| |_| |
+| |
+\---------------------------------------------------------------------*/
+/** \file zypp/SolverContextFwd.h
+ *
+*/
+#ifndef ZYPP_SOLVERCONTEXTFWD_H
+#define ZYPP_SOLVERCONTEXTFWD_H
+
+///////////////////////////////////////////////////////////////////
+namespace zypp
+{ /////////////////////////////////////////////////////////////////
+
+ class SolverContext;
+
+ /////////////////////////////////////////////////////////////////
+} // namespace zypp
+///////////////////////////////////////////////////////////////////
+#endif // ZYPP_SOLVERCONTEXTFWD_H
#include <boost/scoped_ptr.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/weak_ptr.hpp>
+#include <boost/intrusive_ptr.hpp>
///////////////////////////////////////////////////////////////////
namespace zypp
/** */
using boost::weak_ptr;
+ /** Use boost::intrusive_ptr as Ptr type*/
+ using boost::intrusive_ptr;
+ using boost::static_pointer_cast;
+ using boost::const_pointer_cast;
+ using boost::dynamic_pointer_cast;
+
/*@}*/
/////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////
} // namespace zypp
///////////////////////////////////////////////////////////////////
+
+/** Forward declaration of Ptr types */
+#define DEFINE_PTR_TYPE(NAME) \
+class NAME; \
+extern void intrusive_ptr_add_ref( const NAME * ); \
+extern void intrusive_ptr_release( const NAME * ); \
+typedef zypp::base::intrusive_ptr<NAME> NAME##Ptr; \
+typedef zypp::base::intrusive_ptr<const NAME> const##NAME##Ptr;
+
+///////////////////////////////////////////////////////////////////
#endif // ZYPP_BASE_PTRTYPES_H
#define ZYPP_BASE_REFERENCECOUNTED_H
#include <iosfwd>
-#include <boost/intrusive_ptr.hpp>
+
+#include "zypp/base/PtrTypes.h"
///////////////////////////////////////////////////////////////////
namespace zypp
delete this;
}
+ /** Called by zypp::base::intrusive_ptr to add a reference.
+ * \see ZYPP_BASE_SMART_PTR
+ */
+ static void add_ref( const ReferenceCounted * ptr_r )
+ { if( ptr_r ) ptr_r->ref(); }
+
+ /** Called by zypp::base::intrusive_ptr to add a reference.
+ * \see ZYPP_BASE_SMART_PTR
+ */
+ static void release( const ReferenceCounted * ptr_r )
+ { if( ptr_r ) ptr_r->unref(); }
+
private:
/** The reference counter. */
mutable unsigned _counter;
};
///////////////////////////////////////////////////////////////////
- /** Use boost::intrusive_ptr as Ptr type*/
- using boost::intrusive_ptr;
- using boost::static_pointer_cast;
- using boost::const_pointer_cast;
- using boost::dynamic_pointer_cast;
-
- /** Called by zypp::base::intrusive_ptr to add a reference.
- * \relates ReferenceCounted
- * \see ZYPP_BASE_SMART_PTR
- */
- inline void intrusive_ptr_add_ref( const ReferenceCounted * ptr_r )
- { if( ptr_r ) ptr_r->ref(); }
-
- /** Called by zypp::base::intrusive_ptr to add a reference.
- * \relates ReferenceCounted
- * \see ZYPP_BASE_SMART_PTR
- */
- inline void intrusive_ptr_release( const ReferenceCounted * ptr_r )
- { if( ptr_r ) ptr_r->unref(); }
-
/////////////////////////////////////////////////////////////////
} // namespace base
///////////////////////////////////////////////////////////////////
} // namespace zypp
///////////////////////////////////////////////////////////////////
-/** Forward declaration of Ptr types */
-#define DEFINE_PTR_TYPE(NAME) \
-class NAME; \
-typedef zypp::base::intrusive_ptr<NAME> NAME##Ptr; \
-typedef zypp::base::intrusive_ptr<const NAME> const##NAME##Ptr;
+#define IMPL_PTR_TYPE(NAME) \
+void intrusive_ptr_add_ref( const NAME * ptr_r ) \
+{ zypp::base::ReferenceCounted::add_ref( ptr_r ); } \
+void intrusive_ptr_release( const NAME * ptr_r ) \
+{ zypp::base::ReferenceCounted::release( ptr_r ); }
///////////////////////////////////////////////////////////////////
#endif // ZYPP_BASE_REFERENCECOUNTED_H
--- /dev/null
+Makefile.in
+Makefile
+.deps
+.libs
+*.o
+*.lo
+*.a
+*.la
--- /dev/null
+/*---------------------------------------------------------------------\
+| ____ _ __ __ ___ |
+| |__ / \ / / . \ . \ |
+| / / \ V /| _/ _/ |
+| / /__ | | | | | | |
+| /_____||_| |_| |_| |
+| |
+\---------------------------------------------------------------------*/
+/** \file zypp/capability/CapabilityImpl.cc
+ *
+*/
+#include <iostream>
+
+#include "zypp/capability/CapabilityImpl.h"
+
+using namespace std;
+
+///////////////////////////////////////////////////////////////////
+namespace zypp
+{ /////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////
+ namespace capability
+ { /////////////////////////////////////////////////////////////////
+ IMPL_PTR_TYPE(CapabilityImpl)
+
+ ///////////////////////////////////////////////////////////////////
+ //
+ // METHOD NAME : CapabilityImpl::~CapabilityImpl
+ // METHOD TYPE : Dtor
+ //
+ CapabilityImpl::~CapabilityImpl()
+ {}
+
+ /******************************************************************
+ **
+ ** FUNCTION NAME : operator<<
+ ** FUNCTION TYPE : std::ostream &
+ */
+ std::ostream & operator<<( std::ostream & str, const CapabilityImpl & obj )
+ {
+ return str << "CapabilityImpl";
+ }
+
+ /////////////////////////////////////////////////////////////////
+ } // namespace capability
+ ///////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////
+} // namespace zypp
+///////////////////////////////////////////////////////////////////
--- /dev/null
+/*---------------------------------------------------------------------\
+| ____ _ __ __ ___ |
+| |__ / \ / / . \ . \ |
+| / / \ V /| _/ _/ |
+| / /__ | | | | | | |
+| /_____||_| |_| |_| |
+| |
+\---------------------------------------------------------------------*/
+/** \file zypp/capability/CapabilityImpl.h
+ *
+*/
+#ifndef ZYPP_CAPABILITY_CAPABILITYIMPL_H
+#define ZYPP_CAPABILITY_CAPABILITYIMPL_H
+
+#include "zypp/base/ReferenceCounted.h"
+#include "zypp/base/NonCopyable.h"
+
+#include "zypp/ResolvableFwd.h"
+#include "zypp/SolverContextFwd.h"
+
+///////////////////////////////////////////////////////////////////
+namespace zypp
+{ /////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////
+ namespace capability
+ { /////////////////////////////////////////////////////////////////
+ DEFINE_PTR_TYPE(CapabilityImpl)
+
+ ///////////////////////////////////////////////////////////////////
+ //
+ // CLASS NAME : CapabilityImpl
+ //
+ /** */
+ class CapabilityImpl : public base::ReferenceCounted, private base::NonCopyable
+ {
+ public:
+ /** Dtor */
+ virtual ~CapabilityImpl();
+
+ public:
+ /** */
+ virtual bool matches( constResolvablePtr resolvable_r,
+ const SolverContext & colverContext_r ) = 0;
+ };
+ ///////////////////////////////////////////////////////////////////
+
+ /** \relates CapabilityImpl Stream output */
+ extern std::ostream & operator<<( std::ostream & str, const CapabilityImpl & obj );
+
+ /////////////////////////////////////////////////////////////////
+ } // namespace capability
+ ///////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////
+} // namespace zypp
+///////////////////////////////////////////////////////////////////
+#endif // ZYPP_CAPABILITY_CAPABILITYIMPL_H
--- /dev/null
+/*---------------------------------------------------------------------\
+| ____ _ __ __ ___ |
+| |__ / \ / / . \ . \ |
+| / / \ V /| _/ _/ |
+| / /__ | | | | | | |
+| /_____||_| |_| |_| |
+| |
+\---------------------------------------------------------------------*/
+/** \file zypp/capability/ConditionalCap.h
+ *
+*/
+#ifndef ZYPP_CAPABILITY_CONDITIONALCAP_H
+#define ZYPP_CAPABILITY_CONDITIONALCAP_H
+
+#include "zypp/capability/CapabilityImpl.h"
+
+///////////////////////////////////////////////////////////////////
+namespace zypp
+{ /////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////
+ namespace capability
+ { /////////////////////////////////////////////////////////////////
+
+ ///////////////////////////////////////////////////////////////////
+ //
+ // CLASS NAME : ConditionalCap
+ //
+ /** */
+ class ConditionalCap : public CapabilityImpl
+ {
+ public:
+ /** */
+ bool matches( constResolvablePtr resolvable_r,
+ const SolverContext & colverContext_r )
+ { return false; }
+ };
+ ///////////////////////////////////////////////////////////////////
+
+ /////////////////////////////////////////////////////////////////
+ } // namespace capability
+ ///////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////
+} // namespace zypp
+///////////////////////////////////////////////////////////////////
+#endif // ZYPP_CAPABILITY_CONDITIONALCAP_H
--- /dev/null
+/*---------------------------------------------------------------------\
+| ____ _ __ __ ___ |
+| |__ / \ / / . \ . \ |
+| / / \ V /| _/ _/ |
+| / /__ | | | | | | |
+| /_____||_| |_| |_| |
+| |
+\---------------------------------------------------------------------*/
+/** \file zypp/capability/FileCap.h
+ *
+*/
+#ifndef ZYPP_CAPABILITY_FILECAP_H
+#define ZYPP_CAPABILITY_FILECAP_H
+
+#include "zypp/capability/CapabilityImpl.h"
+
+///////////////////////////////////////////////////////////////////
+namespace zypp
+{ /////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////
+ namespace capability
+ { /////////////////////////////////////////////////////////////////
+
+ ///////////////////////////////////////////////////////////////////
+ //
+ // CLASS NAME : FileCap
+ //
+ /** */
+ class FileCap : public CapabilityImpl
+ {
+ public:
+ /** */
+ bool matches( constResolvablePtr resolvable_r,
+ const SolverContext & colverContext_r )
+ { return false; }
+ };
+ ///////////////////////////////////////////////////////////////////
+
+ /////////////////////////////////////////////////////////////////
+ } // namespace capability
+ ///////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////
+} // namespace zypp
+///////////////////////////////////////////////////////////////////
+#endif // ZYPP_CAPABILITY_FILECAP_H
--- /dev/null
+## Process this file with automake to produce Makefile.in
+## ##################################################
+
+SUBDIRS =
+
+## ##################################################
+
+include_HEADERS = CapabilityImpl.h \
+ \
+ ConditionalCap.h\
+ FileCap.h \
+ NamedCap.h \
+ OrCap.h \
+ VersionedCap.h
+
+noinst_LTLIBRARIES = lib@PACKAGE@_capability.la
+
+## ##################################################
+
+lib@PACKAGE@_capability_la_SOURCES = \
+ CapabilityImpl.cc
+
+## ##################################################
--- /dev/null
+/*---------------------------------------------------------------------\
+| ____ _ __ __ ___ |
+| |__ / \ / / . \ . \ |
+| / / \ V /| _/ _/ |
+| / /__ | | | | | | |
+| /_____||_| |_| |_| |
+| |
+\---------------------------------------------------------------------*/
+/** \file zypp/capability/NamedCap.h
+ *
+*/
+#ifndef ZYPP_CAPABILITY_NAMEDCAP_H
+#define ZYPP_CAPABILITY_NAMEDCAP_H
+
+#include "zypp/capability/CapabilityImpl.h"
+
+///////////////////////////////////////////////////////////////////
+namespace zypp
+{ /////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////
+ namespace capability
+ { /////////////////////////////////////////////////////////////////
+
+ ///////////////////////////////////////////////////////////////////
+ //
+ // CLASS NAME : NamedCap
+ //
+ /** */
+ class NamedCap : public CapabilityImpl
+ {
+ public:
+ /** */
+ bool matches( constResolvablePtr resolvable_r,
+ const SolverContext & colverContext_r )
+ { return false; }
+ };
+ ///////////////////////////////////////////////////////////////////
+
+ /////////////////////////////////////////////////////////////////
+ } // namespace capability
+ ///////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////
+} // namespace zypp
+///////////////////////////////////////////////////////////////////
+#endif // ZYPP_CAPABILITY_NAMEDCAP_H
--- /dev/null
+/*---------------------------------------------------------------------\
+| ____ _ __ __ ___ |
+| |__ / \ / / . \ . \ |
+| / / \ V /| _/ _/ |
+| / /__ | | | | | | |
+| /_____||_| |_| |_| |
+| |
+\---------------------------------------------------------------------*/
+/** \file zypp/capability/OrCap.h
+ *
+*/
+#ifndef ZYPP_CAPABILITY_ORCAP_H
+#define ZYPP_CAPABILITY_ORCAP_H
+
+#include "zypp/capability/CapabilityImpl.h"
+
+///////////////////////////////////////////////////////////////////
+namespace zypp
+{ /////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////
+ namespace capability
+ { /////////////////////////////////////////////////////////////////
+
+ ///////////////////////////////////////////////////////////////////
+ //
+ // CLASS NAME : OrCap
+ //
+ /** */
+ class OrCap : public CapabilityImpl
+ {
+ public:
+ /** */
+ bool matches( constResolvablePtr resolvable_r,
+ const SolverContext & colverContext_r )
+ { return false; }
+ };
+ ///////////////////////////////////////////////////////////////////
+
+ /////////////////////////////////////////////////////////////////
+ } // namespace capability
+ ///////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////
+} // namespace zypp
+///////////////////////////////////////////////////////////////////
+#endif // ZYPP_CAPABILITY_ORCAP_H
--- /dev/null
+/*---------------------------------------------------------------------\
+| ____ _ __ __ ___ |
+| |__ / \ / / . \ . \ |
+| / / \ V /| _/ _/ |
+| / /__ | | | | | | |
+| /_____||_| |_| |_| |
+| |
+\---------------------------------------------------------------------*/
+/** \file zypp/capability/VersionedCap.h
+ *
+*/
+#ifndef ZYPP_CAPABILITY_VERSIONEDCAP_H
+#define ZYPP_CAPABILITY_VERSIONEDCAP_H
+
+#include "zypp/capability/CapabilityImpl.h"
+
+///////////////////////////////////////////////////////////////////
+namespace zypp
+{ /////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////
+ namespace capability
+ { /////////////////////////////////////////////////////////////////
+
+ ///////////////////////////////////////////////////////////////////
+ //
+ // CLASS NAME : VersionedCap
+ //
+ /** */
+ class VersionedCap : public CapabilityImpl
+ {
+ public:
+ /** */
+ bool matches( constResolvablePtr resolvable_r,
+ const SolverContext & colverContext_r )
+ { return false; }
+ };
+ ///////////////////////////////////////////////////////////////////
+
+ /////////////////////////////////////////////////////////////////
+ } // namespace capability
+ ///////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////
+} // namespace zypp
+///////////////////////////////////////////////////////////////////
+#endif // ZYPP_CAPABILITY_VERSIONEDCAP_H
## ##################################################
-include_HEADERS = \
+include_HEADERS = \
ResolvableImpl.h \
PackageImpl.h \
SelectionImpl.h \
## ##################################################
-lib@PACKAGE@_detail_la_SOURCES = \
- ResolvableImpl.cc \
- PackageImpl.cc \
- SelectionImpl.cc \
- MessageImpl.cc \
- ScriptImpl.cc \
+lib@PACKAGE@_detail_la_SOURCES = \
+ ResolvableImpl.cc \
+ PackageImpl.cc \
+ SelectionImpl.cc \
+ MessageImpl.cc \
+ ScriptImpl.cc \
PatchImpl.cc
## ##################################################
///////////////////////////////////////////////////////////////////
namespace detail
{ /////////////////////////////////////////////////////////////////
+ IMPL_PTR_TYPE(MessageImpl)
///////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////
namespace detail
{ /////////////////////////////////////////////////////////////////
-
+ DEFINE_PTR_TYPE(MessageImpl)
///////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////
namespace detail
{ /////////////////////////////////////////////////////////////////
+ IMPL_PTR_TYPE(PackageImpl)
///////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////
namespace detail
{ /////////////////////////////////////////////////////////////////
+ IMPL_PTR_TYPE(PatchImpl)
///////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////
namespace detail
{ /////////////////////////////////////////////////////////////////
+ DEFINE_PTR_TYPE(PatchImpl)
///////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////
namespace detail
{ /////////////////////////////////////////////////////////////////
+ IMPL_PTR_TYPE(ResolvableImpl)
///////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////
namespace detail
{ /////////////////////////////////////////////////////////////////
+ IMPL_PTR_TYPE(ScriptImpl)
///////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////
namespace detail
{ /////////////////////////////////////////////////////////////////
-
+ DEFINE_PTR_TYPE(ScriptImpl)
///////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////
namespace detail
{ /////////////////////////////////////////////////////////////////
+ IMPL_PTR_TYPE(SelectionImpl)
///////////////////////////////////////////////////////////////////
//