From: Stanislav Visnovsky Date: Thu, 2 Feb 2006 16:40:40 +0000 (+0000) Subject: media verifier (rough) X-Git-Tag: BASE-SuSE-SLE-10-SP2-Branch~2741 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7c348376739ce19406eb8674b22b17423e36d12d;p=platform%2Fupstream%2Flibzypp.git media verifier (rough) --- diff --git a/zypp/media/Makefile.am b/zypp/media/Makefile.am index c845f93..f9eb8fd 100644 --- a/zypp/media/Makefile.am +++ b/zypp/media/Makefile.am @@ -23,7 +23,8 @@ mediainclude_HEADERS = \ MediaCIFS.h \ ProxyInfo.h \ MediaCurl.h \ - MediaManager.h + MediaManager.h \ + SuseMediaVerifier.h noinst_LTLIBRARIES = lib@PACKAGE@_media.la @@ -43,7 +44,8 @@ lib@PACKAGE@_media_la_SOURCES = \ MediaCIFS.cc \ ProxyInfo.cc \ MediaCurl.cc \ - MediaManager.cc + MediaManager.cc \ + SuseMediaVerifier.cc lib@PACKAGE@_media_la_LIBADD = proxyinfo/lib@PACKAGE@_media_proxyinfo.la \ diff --git a/zypp/media/SuseMediaVerifier.cc b/zypp/media/SuseMediaVerifier.cc new file mode 100644 index 0000000..de2eeb3 --- /dev/null +++ b/zypp/media/SuseMediaVerifier.cc @@ -0,0 +1,62 @@ +/*---------------------------------------------------------------------\ +| ____ _ __ __ ___ | +| |__ / \ / / . \ . \ | +| / / \ V /| _/ _/ | +| / /__ | | | | | | | +| /_____||_| |_| |_| | +| | +\---------------------------------------------------------------------*/ +/** \file zypp/parser/media/SuseMediaVerifier.cc + * +*/ + +#include "zypp/media/SuseMediaVerifier.h" +#include "zypp/media/MediaManager.h" +#include "zypp/base/String.h" +#include "zypp/base/Logger.h" +#include "zypp/Pathname.h" + +#include +#include + +namespace zypp { + + namespace media { + + SuseMediaVerifier::SuseMediaVerifier() : MediaVerifierBase() {} + + SuseMediaVerifier::~SuseMediaVerifier() {} + + bool SuseMediaVerifier::isDesiredMedia(const MediaAccessRef &ref, MediaNr mediaNr) + { + DBG << "isDesiredMedia(): for media nr " << mediaNr << std::endl; + + if( !ref) + DBG << "isDesiredMedia(): invalid media handle" << std::endl; + + std::list lst; + + Pathname dir("/media." + str::numstring(mediaNr)); + + DBG << "isDesiredMedia(): checking " << dir.asString() << std::endl; + + try + { + if( ref ) + ref->dirInfo(lst, dir, false); + } + catch( ... ) + {} + + DBG << "isDesiredMedia(): media " + << (lst.empty() ? "does not contain" : "contains") + << " the " << dir.asString() << " directory." + << std::endl; + + return !lst.empty(); + } + + } + +} + diff --git a/zypp/media/SuseMediaVerifier.h b/zypp/media/SuseMediaVerifier.h new file mode 100644 index 0000000..02c3755 --- /dev/null +++ b/zypp/media/SuseMediaVerifier.h @@ -0,0 +1,41 @@ +/*---------------------------------------------------------------------\ +| ____ _ __ __ ___ | +| |__ / \ / / . \ . \ | +| / / \ V /| _/ _/ | +| / /__ | | | | | | | +| /_____||_| |_| |_| | +| | +\---------------------------------------------------------------------*/ +/** \file zypp/parser/media/SuseMediaVerifier.h + * +*/ +#ifndef ZYPP_MEDIA_SUSEMEDIAVERIFIER_H +#define ZYPP_MEDIA_SUSEMEDIAVERIFIER_H + +#include +#include +#include +#include + +namespace zypp { + + namespace media { + + class SuseMediaVerifier: public MediaVerifierBase + { + public: + SuseMediaVerifier(); + virtual ~SuseMediaVerifier(); + + /** + * + * \throws Exception + */ + virtual bool isDesiredMedia(const MediaAccessRef &ref, MediaNr mediaNr); + }; + + } + +} + +#endif // ZYPP_MEDIA_SUSEMEDIAVERIFIER_h