libzypp
17.14.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
MediaManager.h
Go to the documentation of this file.
1
/*---------------------------------------------------------------------\
2
| ____ _ __ __ ___ |
3
| |__ / \ / / . \ . \ |
4
| / / \ V /| _/ _/ |
5
| / /__ | | | | | | |
6
| /_____||_| |_| |_| |
7
| |
8
\---------------------------------------------------------------------*/
12
#ifndef ZYPP_MEDIA_MEDIAMANAGER_H
13
#define ZYPP_MEDIA_MEDIAMANAGER_H
14
15
#include "
zypp/media/MediaAccess.h
"
16
17
#include "
zypp/APIConfig.h
"
18
#include "
zypp/base/NonCopyable.h
"
19
#include "
zypp/base/PtrTypes.h
"
20
#include "
zypp/Pathname.h
"
21
#include "
zypp/Url.h
"
22
23
#include <list>
24
25
27
namespace
zypp
28
{
29
31
namespace
media
32
{
33
34
36
typedef
zypp::RW_pointer<MediaAccess>
MediaAccessRef
;
37
38
// OBSOLETE HERE:
39
typedef
MediaAccessId
MediaId
;
40
typedef
unsigned
int
MediaNr
;
41
42
44
// forward declaration
45
struct
MountEntry
;
46
class
MediaManager_Impl
;
47
49
//
50
// CLASS NAME : MediaVerifierBase
51
//
55
class
MediaVerifierBase
//: private zypp::NonCopyable
56
{
57
public
:
58
MediaVerifierBase
()
59
{}
60
61
virtual
62
~MediaVerifierBase
()
63
{}
64
69
virtual
std::string
70
info
()
const
;
71
72
/*
73
** Check if the specified attached media contains
74
** the desired media (e.g. SLES10 CD1).
75
*/
76
virtual
bool
77
isDesiredMedia
(
const
MediaAccessRef
&ref) = 0;
78
};
79
80
82
//
83
// CLASS NAME : NoVerifier
84
//
88
class
NoVerifier
:
public
MediaVerifierBase
89
{
90
public
:
91
NoVerifier
():
MediaVerifierBase
()
92
{}
93
94
virtual
95
~NoVerifier
()
96
{}
97
101
virtual
std::string
102
info
()
const
;
103
104
/*
105
** Don't check if the specified attached media contains
106
** the desired media number. Always return true.
107
*/
108
virtual
bool
109
isDesiredMedia
(
const
MediaAccessRef
&ref)
110
{
111
(void)ref;
112
return
true
;
113
}
114
};
115
116
118
//
119
// CLASS NAME : MediaVerifierRef
120
//
124
typedef
zypp::RW_pointer<MediaVerifierBase>
MediaVerifierRef
;
125
126
128
//
129
// CLASS NAME : MediaManager
130
//
470
class
MediaManager
:
private
zypp::base::NonCopyable
471
{
472
public
:
484
MediaManager
();
485
490
~MediaManager
();
491
512
MediaAccessId
513
open
(
const
Url
&
url
,
const
Pathname & preferred_attach_point =
""
);
514
519
void
520
close
(
MediaAccessId
accessId);
521
528
bool
529
isOpen
(
MediaAccessId
accessId)
const
;
530
540
std::string
541
protocol
(
MediaAccessId
accessId)
const
;
542
548
bool
549
downloads
(
MediaAccessId
accessId)
const
;
550
558
Url
559
url
(
MediaAccessId
accessId)
const
;
560
561
public
:
570
void
571
addVerifier
(
MediaAccessId
accessId,
572
const
MediaVerifierRef
&
verifier
);
573
581
void
582
delVerifier
(
MediaAccessId
accessId);
583
584
public
:
597
bool
598
setAttachPrefix
(
const
Pathname &attach_prefix);
599
609
void
610
attach
(
MediaAccessId
accessId);
611
623
void
624
release
(
MediaAccessId
accessId,
const
std::string & ejectDev =
""
);
625
629
void
630
releaseAll
();
631
646
void
647
disconnect
(
MediaAccessId
accessId);
648
656
bool
657
isAttached
(
MediaAccessId
accessId)
const
;
658
667
bool
668
isSharedMedia
(
MediaAccessId
accessId)
const
;
669
679
bool
680
isDesiredMedia
(
MediaAccessId
accessId)
const
;
681
692
bool
693
isDesiredMedia
(
MediaAccessId
accessId,
694
const
MediaVerifierRef
&verifier)
const
;
695
707
bool
708
isChangeable
(
MediaAccessId
accessId);
709
722
Pathname
723
localRoot
(
MediaAccessId
accessId)
const
;
724
737
Pathname
738
localPath
(
MediaAccessId
accessId,
const
Pathname & pathname)
const
;
739
740
public
:
760
void
761
provideFile
(
MediaAccessId
accessId,
762
const
Pathname &filename,
763
const
ByteCount
&expectedFileSize)
const
;
764
765
void
766
provideFile
(
MediaAccessId
accessId,
767
const
Pathname &filename )
const
;
768
772
void
773
provideDir
(
MediaAccessId
accessId,
774
const
Pathname &dirname)
const
;
775
779
void
780
provideDirTree
(
MediaAccessId
accessId,
781
const
Pathname &dirname)
const
;
782
786
void
787
releaseFile
(
MediaAccessId
accessId,
788
const
Pathname &filename)
const
;
789
793
void
794
releaseDir
(
MediaAccessId
accessId,
795
const
Pathname &dirname)
const
;
796
800
void
801
releasePath
(
MediaAccessId
accessId,
802
const
Pathname &pathname)
const
;
803
807
void
808
dirInfo
(
MediaAccessId
accessId,
809
std::list<std::string> &retlist,
810
const
Pathname &dirname,
811
bool
dots =
true
)
const
;
812
816
void
817
dirInfo
(
MediaAccessId
accessId,
818
filesystem::DirContent
&retlist,
819
const
Pathname &dirname,
820
bool
dots =
true
)
const
;
821
825
bool
doesFileExist
(
MediaAccessId
accessId,
826
const
Pathname & filename )
const
;
827
837
void
838
getDetectedDevices
(
MediaAccessId
accessId,
839
std::vector<std::string> & devices,
840
unsigned
int
& index)
const
;
841
842
void
843
setDeltafile
(
MediaAccessId
accessId,
844
const
Pathname &filename )
const
;
845
846
public
:
851
static
time_t
852
getMountTableMTime
();
853
858
static
std::vector<MountEntry>
859
getMountEntries
();
860
870
bool
871
isUseableAttachPoint
(
const
Pathname &path,
872
bool
mtab=
true
)
const
;
873
874
private
:
875
friend
class
MediaHandler
;
876
886
AttachedMedia
887
getAttachedMedia
(
MediaAccessId
&accessId)
const
;
888
898
AttachedMedia
899
findAttachedMedia
(
const
MediaSourceRef
&media)
const
;
900
909
void
910
forceReleaseShared
(
const
MediaSourceRef
&media);
911
912
private
:
916
static
zypp::RW_pointer<MediaManager_Impl>
m_impl
;
917
};
918
919
921
}
// namespace media
923
925
}
// namespace zypp
927
928
#endif // ZYPP_MEDIA_MEDIAMANAGER_H
929
930
/*
931
** vim: set ts=2 sts=2 sw=2 ai et:
932
*/
zypp
media
MediaManager.h
Generated by
1.8.2