Todo List

Class zypp::Capability
Need a trival return from matches. E.g. Conditional cpabilities must be able to indicate that they should be treated as if they were not present at all, if the precondition does no apply. Same for the defaut Capability.

Member zypp::capability::CapabilityImpl::encode () const =0
check it!

Class zypp::CapFactory
define EXCEPTIONS

Parser needs improvement in speed and accuracy.

Member zypp::CapFactory::Impl::buildVersioned (const Resolvable::Kind &refers_r, const std::string &name_r, Rel op_r, const Edition &edition_r)
Quick check for name not being filename or split.

Member zypp::CapFactory::Impl::buildHal (const Resolvable::Kind &refers_r, const std::string &name_r, Rel op_r=RelANY, const std::string &value_r=stdstring())
Fix incaccuracy.

Member zypp::CapFactory::Impl::buildModalias (const Resolvable::Kind &refers_r, const std::string &name_r, Rel op_r=RelANY, const std::string &value_r=stdstring())
Fix incaccuracy.

Member zypp::Dep::Dep (const std::string &strval_r)
refine exceptions and check throw.

Class zypp::Edition
Define exceptions.

optimize implementation(e.g don't store epoch if noepoch)

implement debian comparison and make choice backend specific

optimize noedition. unified Impl and quick check in compare.

Class zypp::Edition::Impl
Unifiy Impl in Edition::noedition and Edition::Edition()

Class zypp::Exception
That's a draft to have a common way of throwing exceptions. Most probabely we'll finally use blocxx exceptions. Here, but not in the remaining code of zypp. If we can we should try to wrap the blocxx macros and typedef the classes in here.

Class zypp::Exception
maybe location and message stack.

Class zypp::FailedSourcesRestoreException
move to separate header file.

Class zypp::base::Fd
It's dumb. Openflags and more related functions (read/write..) could be added.

Class zypp::capability::FileCap
Check whether we have to look into the Resolable filelist as well.

Class zypp::pool::GetResolvablesToInsDel
Replace enum Order and take a functor that that determines how to group the resolvables.

Class zypp::target::hal::HalContext
: wrap more functions.

Class zypp::target::hal::HalDrive
: wrap more functions.

Class zypp::target::hal::HalVolume
: wrap more functions.

Member zypp::name_kind_proxy_details::IOrder::operator() (const PoolItem &lhs, const PoolItem &rhs) const
let ResObject provide installtime

Class zypp::KindOf< _Tp >
Unify strings and associate numerical value for more efficient comparison and use in switch.

Make lowercased/uppercased/etc an option. First of all get rid of the string::toLower calls operator.

Maybe collaboration with some sort of Registry.

Member zypp::KindOf::compare (const KindOf &rhs) const
Enable class _Tp to define the order, Fix logical operators below to use compare,

Class zypp::NameKindProxy
provide status query and manipulation methods

Class zypp::Patch
Patch::atoms can't be const, if Impl does not provide a const method. Check it.

Class zypp::detail::PatchImpl
Get rid of string based ResKind detection in e.g. PatchImpl::interactive.

Class zypp::filesystem::Pathname
Add support for handling extensions incl. stripping extensions from basename (basename("/path/foo.baa", ".baa") ==> "foo")

Review. Maybe use COW pimpl, ckeck storage.

EXPLICIT ctors.

Member zypp::pool::PoolImpl::targetArch () const
no poll, but make ZYpp distribute it.

Member zypp::PoolItem_Ref::PoolItemSaver
get rid of it.

Class zypp::base::ReferenceCounted
Make counter thread safe.

Member zypp::Rel::Rel (const std::string &strval_r)
refine exceptions and check throw.

Class zypp::detail::ResObjectImplIf
We should rename the detail::*Impl classes, and classify them into Dumb (holding no real data, provided the ImplIf dtor is the only prure virtual) and FullStore (providing a protected variable and interface methods returning them for each datum). The todo hook is here, because it::s the common base of the *Impl classes.

Member zypp::detail::ResObjectImplIf::insnotify () const PURE_VIRTUAL
well define!

Member zypp::detail::ResObjectImplIf::delnotify () const PURE_VIRTUAL
well define!

Member zypp::detail::ResObjectImplIf::size () const PURE_VIRTUAL
well define which size.

Member zypp::ResPoolManager::proxy () const
Speedup by using a data mamaber invaidated only whenever the pool content changes

Member zypp::ResPoolManager::proxy () const
FIXIT

Class zypp::ResPoolProxy
Make it a _Ref.

Class zypp::base::SafeBool< _Derived >
Investigate why Bit refuses private inheritance and exposition of operator bool_type. Seems to be a gcc bug. protected works.

Class zypp::ui::Selectable
Make it a _Ref.

Member zypp::SelPoolHelper::SelectableIndex
Cleanup typedefs

Member zypp::Source_Ref::noSource
provide a _constRef

Class zypp::SourceFeed_Ref
Clean up implementation.

Class zypp::source::SourceImpl
Provide class NoSourceImpl and protect it against manipulation of data via set methods (or erase them).

Class zypp::SourceManager
make it a resl singleton

throwing findSource is not acceptable, return either a Source or noSource.

Make restore either void or nonthrowing, but two ways of error reporting is bad.

Member zypp::SourceManager::restore (Pathname root_r, bool use_caches=true, const std::string &alias_filter="", const std::string &url_filter="")
Broken design: either use return value or Exception to indicate errors, not both.

Class zypp::SourcesAlreadyRestoredException
move to separate header file.

Class zypp::capability::SplitCap
implement matches().

See where and how we handle it. Currently the info is just stored here. Splits packagename:/absolute/path are shipped as provides (SuSE packages file), but have to be freshens, and implemented as ConditionalCap.

Class zypp::ui::StatusHelper
Support non USER level mipulation.

Member zypp::ui::StatusHelper::setInstall (ResStatus::TransactByValue by_r) const
fix it, handle avaialable list

Member zypp::Target::getResolvablesToInsDel (const ResPool pool_r, PoolItemList &dellist_r, PoolItemList &instlist_r, PoolItemList &srclist_r) const
provide it as standalone algorithm

Member zypp::TranslatedText::Impl::detectLanguage () const
Do it by accessing the global ZYpp.

Class zypp::ZYpp
define Exceptions

Class zypp::ZYppCommitResult
document fields.

Member zypp::zypp_detail::ZYppImpl::target () const
Signal locale change.

Member zypp::zypp_detail::ZYppImpl::commit (const ZYppCommitPolicy &policy_r)
Remove workflow from target, lot's of it could be done here, and target used for transact.

Member zypp::zypp_detail::ZYppImpl::setTextLocale (const Locale &textLocale_r)
Signal locale change.

File ExternalDataSource.cc
replace by Blocxx

File ExternalDataSource.h
replace by Blocxx

Member zypp::iostr::forEachLine (std::istream &str_r, _Function &consume_r)
Should be templated and specialized according to the functors return type, to allow void consumer.

Member zypp::str::toLower (const std::string &s)
improve

Member zypp::str::toUpper (const std::string &s)
improve

File Digest.cc
replace by Blocxx

File Digest.h
replace by Blocxx

Member zypp::rpmverscmp (const std::string &lhs, const std::string &rhs)
review

File ExternalProgram.cc
replace by Blocxx

File ExternalProgram.h
replace by Blocxx

Member zypp::filesystem::readdir (std::list< std::string > &retlist, const Pathname &path, bool dots=true)
provide some readdirIterator.

Member zypp::filesystem::readdir (std::list< Pathname > &retlist, const Pathname &path, bool dots=true)
provide some readdirIterator.

Member zypp::filesystem::erase (const Pathname &path)
check cooperation with zypp::TmpFile and zypp::TmpDir

Member zypp::filesystem::FileType
Think about an Enumeration Class

Member zypp::ResPool_Ref
rename class and eliminate typedef.

Member zypp::ui::Status
make it an EnumerationClass

Namespace zypp::bit
Use boost::mpl library to assert constraints at compiletime! There various like (_IntT is an integral type) (begin+size < maxbits) or ( field dependent constants must be within the range defined by size ).

Namespace zypp::filesystem
move zypp::filesystem stuff into separate header

Add tmpfile and tmpdir handling.

think about using Exceptions in zypp::filesystem

provide a readdir iterator; at least provide an interface using an insert_iterator to be independent from std::container.

Namespace zypp::HACK
Eliminate this!

Group ITERATOR
Separate them into individual zypp header files.

Generated on Thu Jul 6 00:07:30 2006 for zypp by  doxygen 1.4.6