- Group Digest computaion.
- check cooperation with zypp::Digest
- Group Digest computaion.
- check cooperation with zypp::Digest
- Group Digest computaion.
- check cooperation with zypp::Digest
- File Digest.cc
- replace by Blocxx
- File Digest.h
- replace by Blocxx
- File ExternalDataSource.cc
- replace by Blocxx
- File ExternalDataSource.h
- replace by Blocxx
- Group Hexencode.
- unsecape()
- Group Hexencode.
- unsecape()
- Group Hexencode.
- unsecape()
- Group ITERATOR
- Separate them into individual zypp header files.
- Member makeDeltaCandidates
- templated ctor
- Member makeDeltaCandidates
- templated ctor
- Group Poor man's save/restore state.
- There may be better save/restore state strategies.
- Group Repository content manipulating methods.
- maybe a separate Repository/Solvable content manip interface provided by the pool.
- Group RESFILTERS
- migrate to namespace filter and enhance to support Solvables as well.
- Member SET_OPTION (opt, val)
- deprecate SET_OPTION and use the typed versions below.
- Group Trimming whitepace.
- optimize l/r trim.
- Group Trimming whitepace.
- optimize l/r trim.
- Group Trimming whitepace.
- optimize l/r trim.
- Member zypp::Arch::CompatEntry::CompatBits
- Migrate to some infinite BitField
- Class zypp::base::Fd
- It's dumb. Openflags and more related functions (read/write..) could be added.
- Class zypp::base::ReferenceCounted
- Make counter thread safe.
- 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.
- 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 ).
- Class zypp::DefaultIntegral< _Tp, _Initial >
maybe specialize for bool, add logical and bit operators
let _Initial default to 0 then remove base/Counter.h
- Member zypp::Dep::Dep (const std::string &strval_r)
- refine exceptions and check throw.
- Class zypp::DtorReset
- Check if using call_traits enables 'DtorReset(std::string,"value")', as this currently would require assignment of 'char[]'.
- 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.
- Member zypp::Fetcher::enqueueDigested (const OnMediaLocation &resource, const FileChecker &checker=FileChecker(), const Pathname &deltafile=Pathname())
- FIXME implement checker == operator to avoid this.
- 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.
- Member zypp::filesystem::erase (const Pathname &path)
- check cooperation with zypp::TmpFile and zypp::TmpDir
- Member zypp::filesystem::FileType
- Think about an Enumeration Class
- 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, check storage.
remove prfx_i
- Member zypp::filesystem::readdir (std::list< Pathname > &retlist, const Pathname &path, bool dots=true)
- provide some readdirIterator.
- Member zypp::filesystem::readdir (std::list< std::string > &retlist, const Pathname &path, bool dots=true)
- provide some readdirIterator.
- Namespace zypp::functor::functor_detail
- drop it an use boost::ref
- Namespace zypp::HACK
- Eliminate this!
- Class zypp::HistoryLog
- The implementation as pseudo signleton is questionable. Use shared_ptr instead of handcrafted ref/unref. Manage multiple logs at different locations.
- Class zypp::IdStringType< Derived >
allow redefinition of order vis _doCompare not only for char* but on any level
- Class zypp::Locale
- migrate to IdString
- Member zypp::make (const sat::Solvable &solvable_r)
- make<> was a poor choice (AFAIR because gcc had some trouble with asKind<>(sat::Solvable)). Remove it in favour of asKind<>(sat::Solvable)
- Class zypp::media::CredentialManager
better method names
delete(AuthData) method
- Member zypp::media::CredentialManager::addCred (const AuthData &cred)
Currently no callback is called, credentials are automatically saved to user's credentials.cat if no 'credentials' parameter has been specified
ask user where to store these creds. saving to user creds for now
- Member zypp::media::CredentialManager::getCred (const Url &url)
- return a copy instead?
- Member zypp::media::CredentialManager::saveInFile (const AuthData &, const Pathname &credFile)
- figure out the reason(?), call back to user
- Class zypp::media::CredManagerOptions
- configurable cred file locations
- Member zypp::media::MediaCIFS::authenticate (AuthData &authdata, bool firstTry) const
need a way to pass different CredManagerOptions here
add comma to the message for the next release
find a way to save the url with changed username back to repoinfo or dont store urls with username (and either forbid more repos with the same url and different user, or return a set of credentials from CM and try them one by one)
- Member zypp::media::MediaCurl::authenticate (const std::string &availAuthTypes, bool firstTry) const
need a way to pass different CredManagerOptions here
add comma to the message for the next release
find a way to save the url with changed username back to repoinfo or dont store urls with username (and either forbid more repos with the same url and different user, or return a set of credentials from CM and try them one by one)
- Member zypp::media::MediaCurl::progressCallback (void *clientp, double dltotal, double dlnow, double ultotal, double ulnow)
- more accurate download rate computationn, e.g. compute average value from last 5 seconds, or work with milliseconds instead of seconds
- Member zypp::media::MediaISO::attachTo (bool next=false)
- make this thread-safe - another thread might pick up the same device
- Class zypp::media::MediaPriority
- Maybe introduce a static tribool, to allow overwriting zypp.conf(download.media_preference) default.
- Member zypp::MediaSetAccess::provideDir (const Pathname &dir, bool recursive, unsigned media_nr=1, ProvideFileOptions options=PROVIDE_DEFAULT)
- throw SkipRequestException if a problem occured and user has chosen to skip the current operation. The calling code should continue with the next one, if possible.
- Member zypp::misc::defaultLoadSystem (const Pathname &sysRoot_r="/", LoadSystemFlags flags_r=LoadSystemFlags())
- properly handle service refreshs
- Class zypp::OnMediaLocation
- Implement cheap copy via COW.
- Class zypp::packagedelta::DeltaRpm
- cheap copy! (switch to RWCOW)
- Member zypp::parser::RepoindexFileReader::Impl::consumeNode (Reader &reader_r)
- FIXME this hardcodes the "/repo/" fragment - should not be if we want it to be usable by others!
- Member zypp::parser::yum::RepomdFileReader::Impl::consumeNode (Reader &reader_r)
- xpath: /repomd/open-checksum (?)
- Member zypp::PoolItem::PoolItemSaver
- get rid of it.
- Class zypp::PoolItemBest
- Support arbitrary Predicates.
- Member zypp::PoolQuery::addAttribute (const sat::SolvAttr &attr, const std::string &value="")
- check the above
- Member zypp::PoolQuery::setRequireAll (bool require_all=true)
- doesn't work yet, don't use this function
- Member zypp::Product::UrlList::ListType
- Change to directly iterate the .solv
- Class zypp::ProgressData
Complete the progess sending.
Tell recipient whether percentage or keepalive is sent, the id and name might be helpfull, and maybe tell whether task is abortable or not; i.e extend the ReceiverFnc signature.
- Member zypp::readRepoFile (const Url &repo_file)
- add MediaManager::provideFile(Url file_url) to easily access any file URLs? (no need for media access id or media_nr)
- Member zypp::Rel::Rel (const std::string &strval_r)
- refine exceptions and check throw.
- Member zypp::repo::RepoMediaAccess::Impl::mediaAccessForUrl (const Url &url, RepoInfo repo)
- This mixture of media and repos specific data is fragile.
- Member zypp::repo::RepoMediaAccess::provideFile (RepoInfo repo_r, const OnMediaLocation &loc_r, const ProvideFilePolicy &policy_r)
- Investigate why this needs a non-const Repository as arg.
- Member zypp::repo::yum::Downloader::repomd_Callback (const OnMediaLocation &loc, const ResourceType &dtype)
- do this through a ZConfig call so that it is always in sync with parser
- Member zypp::RepoManager::Impl::addRepository (const RepoInfo &info, OPT_PROGRESS)
- use a method calling UI callbacks to ask where to save creds?
- Member zypp::RepoManager::Impl::addService (const ServiceInfo &service)
- use a method calling UI callbacks to ask where to save creds?
- Member zypp::RepoManager::Impl::modifyService (const std::string &oldAlias, const ServiceInfo &newService)
do nothing? the repos will be enabled on service refresh
how to know the service needs a (auto) refresh????
refresh the service automatically if url is changed?
- Member zypp::RepoManager::Impl::refreshService (const std::string &alias)
- add callbacks for apps (start, end, repo removed, repo added, repo changed)
- Member zypp::RepoStatus::RepoStatus (const Pathname &file)
- Add recursive option for dirs so we finaly get the same as parser::plaindir::dirStatus and can unify both.
- Class zypp::Resolvable
- Merge with ResObject
- Class zypp::ResPoolProxy
- integrate it into ResPool
- Class zypp::ResPoolProxy::Impl
- Seedup as it is still using old index
- Class zypp::sat::ArrayAttr< _ResultT, _AttrT >
- Maybe add some way to unify the result.
- Member zypp::sat::detail::PoolImpl::getRepo (RepoIdType id_r) const
- a quick check whether the repo was meanwhile deleted.
- Member zypp::sat::detail::PoolImpl::prepare () const
- actually requires a watcher.
- Class zypp::sat::LocaleSupport
- If iterator is too slow install a proxy watching the Pool::serial.
- Class zypp::sat::WhatObsoletes
- Publish obsoleteUsesProvides config option.
- Class zypp::solver::detail::Resolver
- Merge this and class SATResolver. Logic and date are horribly distributed between this and SATResolver. Either SATResolver becomes a pure wrapper adapting the libsolv C interface to fit our needs, and all the solver logic and problem handling goes here; or completely merge both classes.
- Class zypp::solver::detail::SATResolver
- The way solver options are passed as individual booleans from Resolver via solver::detail::Resolver to SATResolver is pedestrian and error prone. Introdce a dedicated solver option structure which is passed down as a whole.
- Member zypp::solver::detail::SATResolver::doUpdate ()
- duplicate code to be joined with solving.
- Member zypp::str::toLower (const std::string &s)
- improve
- Member zypp::str::toUpper (const std::string &s)
- improve
- 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::ui::Status
- make it an EnumerationClass
- Class zypp::ui::StatusHelper
- Unify status and pickStatus.
- Class zypp::xml::ParseDef::Impl
- Check using share_ptr_from_this for parent in addNode.
- Class zypp::xml::Validate
- Implement RelaxNG and W3C XSD
- Class zypp::ZConfig::Impl
- Enrich section and entry definition by some comment (including the default setting and provide some method to write this into a sample zypp.conf.
- Class zypp::ZYpp
- define Exceptions ZYpp API main interface
- 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::target () const
- Signal locale change.