handle border cases
[platform/upstream/libzypp.git] / devel / devel.dmacvicar / mediaaccess.cc
1 #include <sys/time.h>
2
3 #include <iostream>
4 #include <fstream>
5
6 #include <zypp/base/Logger.h>
7 #include <zypp/ZYpp.h>
8 #include <zypp/ZYppFactory.h>
9 #include <zypp/media/MediaAccess.h>
10 #include <zypp/media/MediaManager.h>
11 #include <zypp/MediaSetAccess.h>
12
13 #include "zypp/Product.h"
14 #include "zypp/Package.h"
15
16
17 using namespace std;
18 using namespace zypp;
19 using namespace media;
20
21 class SimpleVerifier : public zypp::media::MediaVerifierBase
22 {
23   public:
24   
25   SimpleVerifier( const std::string &id )
26   {
27     _media_id = id;
28   }
29
30   virtual bool isDesiredMedia(const media::MediaAccessRef &ref)
31   {
32     return ref->doesFileExist(Pathname("/." + _media_id ));
33   }
34   
35   private:
36     std::string _media_id;
37     media::MediaNr _media_nr;
38 };
39
40 int main(int argc, char **argv)
41 {
42     try
43     {
44       ZYpp::Ptr z = getZYpp();
45     
46       MediaSetAccess access(Url("dir:/home/duncanmv/tmp/url/CD1"), "/");
47       access.setVerifier( 1, media::MediaVerifierRef(
48                             new SimpleVerifier("cd1") )
49                         );
50       access.setVerifier( 2, media::MediaVerifierRef(
51                             new SimpleVerifier("cd2") )
52                         );
53       access.setVerifier( 3, media::MediaVerifierRef(
54                             new SimpleVerifier("cd3") )
55                         );
56
57       Pathname file1 = access.provideFile("/hello.text", 1 );
58       Pathname file2 = access.provideFile("/hello.text", 2 );
59       Pathname file3 = access.provideFile("/hello.text", 3 );
60     }
61     catch ( const Exception &e )
62     {
63       ERR << "ups! " << e.msg() << std::endl;
64     }
65     return 0;
66 }
67
68
69