43
43
<a name="l00020"></a>00020 <span class="preprocessor">#ifndef SBUILD_CHROOT_H</span>
44
44
<a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#define SBUILD_CHROOT_H</span>
45
45
<a name="l00022"></a>00022 <span class="preprocessor"></span>
46
<a name="l00023"></a>00023 <span class="preprocessor">#include <iomanip></span>
47
<a name="l00024"></a>00024 <span class="preprocessor">#include <ostream></span>
48
<a name="l00025"></a>00025 <span class="preprocessor">#include <string></span>
49
<a name="l00026"></a>00026 <span class="preprocessor">#include <vector></span>
50
<a name="l00027"></a>00027 <span class="preprocessor">#include <tr1/memory></span>
51
<a name="l00028"></a>00028
52
<a name="l00029"></a>00029 <span class="preprocessor">#include "<a class="code" href="sbuild-error_8h.html">sbuild-error.h</a>"</span>
53
<a name="l00030"></a>00030 <span class="preprocessor">#include "<a class="code" href="sbuild-environment_8h.html">sbuild-environment.h</a>"</span>
54
<a name="l00031"></a>00031 <span class="preprocessor">#include "<a class="code" href="sbuild-keyfile_8h.html">sbuild-keyfile.h</a>"</span>
55
<a name="l00032"></a>00032 <span class="preprocessor">#include "<a class="code" href="sbuild-util_8h.html">sbuild-util.h</a>"</span>
56
<a name="l00033"></a>00033
57
<a name="l00034"></a>00034 <span class="keyword">namespace </span>sbuild
58
<a name="l00035"></a>00035 {
59
<a name="l00036"></a>00036
60
<a name="l00044"></a><a class="code" href="classsbuild_1_1chroot.html">00044</a> <span class="keyword">class </span><a class="code" href="classsbuild_1_1chroot.html">chroot</a>
61
<a name="l00045"></a>00045 {
62
<a name="l00046"></a>00046 <span class="keyword">public</span>:
63
<a name="l00048"></a><a class="code" href="classsbuild_1_1chroot.html#9c7517b01054dee9285cd48cf42073e9">00048</a> <span class="keyword">enum</span> <a class="code" href="classsbuild_1_1chroot.html#9c7517b01054dee9285cd48cf42073e9">setup_type</a>
64
<a name="l00049"></a>00049 {
65
<a name="l00050"></a>00050 <a class="code" href="classsbuild_1_1chroot.html#9c7517b01054dee9285cd48cf42073e9de9dab11fde09d3ba495265be1b5ccf4">SETUP_START</a>,
66
<a name="l00051"></a>00051 <a class="code" href="classsbuild_1_1chroot.html#9c7517b01054dee9285cd48cf42073e90da53964e1f36ce8d7b6705d6de32564">SETUP_RECOVER</a>,
67
<a name="l00052"></a>00052 <a class="code" href="classsbuild_1_1chroot.html#9c7517b01054dee9285cd48cf42073e90c865a86ba2a16168094e852dca3f68a">SETUP_STOP</a>,
68
<a name="l00053"></a>00053 <a class="code" href="classsbuild_1_1chroot.html#9c7517b01054dee9285cd48cf42073e9e86dfeeab178d564c82f656ad489585c">EXEC_START</a>,
69
<a name="l00054"></a><a class="code" href="classsbuild_1_1chroot.html#9c7517b01054dee9285cd48cf42073e9112c98d73ab4a844208b2f4a5a034c22">00054</a> <a class="code" href="classsbuild_1_1chroot.html#9c7517b01054dee9285cd48cf42073e9112c98d73ab4a844208b2f4a5a034c22">EXEC_STOP</a>
70
<a name="l00055"></a>00055 };
71
<a name="l00056"></a>00056
72
<a name="l00058"></a><a class="code" href="classsbuild_1_1chroot.html#ef89631e62590a5864a644e1d6c19e8e">00058</a> <span class="keyword">enum</span> <a class="code" href="classsbuild_1_1chroot.html#ef89631e62590a5864a644e1d6c19e8e">session_flags</a>
73
<a name="l00059"></a>00059 {
74
<a name="l00060"></a><a class="code" href="classsbuild_1_1chroot.html#ef89631e62590a5864a644e1d6c19e8e76d78c177962f0975687d10eca601db2">00060</a> <a class="code" href="classsbuild_1_1chroot.html#ef89631e62590a5864a644e1d6c19e8e76d78c177962f0975687d10eca601db2">SESSION_CREATE</a> = 1 << 0
75
<a name="l00061"></a>00061 };
76
<a name="l00062"></a>00062
77
<a name="l00064"></a><a class="code" href="classsbuild_1_1chroot.html#a6c35162d64ac4cedcf09a3d6baf5520">00064</a> <span class="keyword">typedef</span> <a class="code" href="classsbuild_1_1runtime__error__custom.html">runtime_error_custom<chroot></a> <a class="code" href="classsbuild_1_1runtime__error__custom.html">error</a>;
78
<a name="l00065"></a>00065
79
<a name="l00067"></a><a class="code" href="classsbuild_1_1chroot.html#ef7d5b607d1a0a4a7ebe1d40e2ec9c3a">00067</a> <span class="keyword">typedef</span> std::tr1::shared_ptr<chroot> <a class="code" href="classsbuild_1_1chroot.html#ef7d5b607d1a0a4a7ebe1d40e2ec9c3a">ptr</a>;
80
<a name="l00068"></a>00068
81
<a name="l00069"></a>00069 <span class="keyword">protected</span>:
82
<a name="l00071"></a>00071 <a class="code" href="classsbuild_1_1chroot.html#7f3338ab5ce304493c36f28a0ecbea4c">chroot</a> ();
83
<a name="l00072"></a>00072
84
<a name="l00073"></a>00073 <span class="keyword">public</span>:
85
<a name="l00075"></a>00075 <span class="keyword">virtual</span> <a class="code" href="classsbuild_1_1chroot.html#f71bda76465a991f4ea08f674843fe5f">~chroot</a> ();
46
<a name="l00023"></a>00023 <span class="preprocessor">#include "<a class="code" href="sbuild-config_8h.html">sbuild-config.h</a>"</span>
47
<a name="l00024"></a>00024
48
<a name="l00025"></a>00025 <span class="preprocessor">#include <iomanip></span>
49
<a name="l00026"></a>00026 <span class="preprocessor">#include <ostream></span>
50
<a name="l00027"></a>00027 <span class="preprocessor">#include <string></span>
51
<a name="l00028"></a>00028 <span class="preprocessor">#include <vector></span>
52
<a name="l00029"></a>00029
53
<a name="l00030"></a>00030 <span class="preprocessor">#ifdef HAVE_TR1_MEMORY</span>
54
<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor">#include <tr1/memory></span>
55
<a name="l00032"></a>00032 <span class="preprocessor">#elif HAVE_BOOST_SHARED_PTR_HPP</span>
56
<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor">#include <boost/shared_ptr.hpp></span>
57
<a name="l00034"></a>00034 <span class="keyword">namespace </span>std { <span class="keyword">namespace </span>tr1 { <span class="keyword">using</span> boost::shared_ptr; } }
58
<a name="l00035"></a>00035 <span class="preprocessor">#else</span>
59
<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor">#error A shared_ptr implementation is not available</span>
60
<a name="l00037"></a>00037 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
61
<a name="l00038"></a>00038 <span class="preprocessor"></span>
62
<a name="l00039"></a>00039 <span class="preprocessor">#include "<a class="code" href="sbuild-error_8h.html">sbuild-error.h</a>"</span>
63
<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="sbuild-environment_8h.html">sbuild-environment.h</a>"</span>
64
<a name="l00041"></a>00041 <span class="preprocessor">#include "<a class="code" href="sbuild-keyfile_8h.html">sbuild-keyfile.h</a>"</span>
65
<a name="l00042"></a>00042 <span class="preprocessor">#include "<a class="code" href="sbuild-personality_8h.html">sbuild-personality.h</a>"</span>
66
<a name="l00043"></a>00043 <span class="preprocessor">#include "<a class="code" href="sbuild-util_8h.html">sbuild-util.h</a>"</span>
67
<a name="l00044"></a>00044
68
<a name="l00045"></a>00045 <span class="keyword">namespace </span>sbuild
69
<a name="l00046"></a>00046 {
70
<a name="l00047"></a>00047
71
<a name="l00055"></a><a class="code" href="classsbuild_1_1chroot.html">00055</a> <span class="keyword">class </span><a class="code" href="classsbuild_1_1chroot.html">chroot</a>
72
<a name="l00056"></a>00056 {
73
<a name="l00057"></a>00057 <span class="keyword">public</span>:
74
<a name="l00059"></a><a class="code" href="classsbuild_1_1chroot.html#9c7517b01054dee9285cd48cf42073e9">00059</a> <span class="keyword">enum</span> <a class="code" href="classsbuild_1_1chroot.html#9c7517b01054dee9285cd48cf42073e9">setup_type</a>
75
<a name="l00060"></a>00060 {
76
<a name="l00061"></a>00061 <a class="code" href="classsbuild_1_1chroot.html#9c7517b01054dee9285cd48cf42073e9de9dab11fde09d3ba495265be1b5ccf4">SETUP_START</a>,
77
<a name="l00062"></a>00062 <a class="code" href="classsbuild_1_1chroot.html#9c7517b01054dee9285cd48cf42073e90da53964e1f36ce8d7b6705d6de32564">SETUP_RECOVER</a>,
78
<a name="l00063"></a>00063 <a class="code" href="classsbuild_1_1chroot.html#9c7517b01054dee9285cd48cf42073e90c865a86ba2a16168094e852dca3f68a">SETUP_STOP</a>,
79
<a name="l00064"></a>00064 <a class="code" href="classsbuild_1_1chroot.html#9c7517b01054dee9285cd48cf42073e9e86dfeeab178d564c82f656ad489585c">EXEC_START</a>,
80
<a name="l00065"></a><a class="code" href="classsbuild_1_1chroot.html#9c7517b01054dee9285cd48cf42073e9112c98d73ab4a844208b2f4a5a034c22">00065</a> <a class="code" href="classsbuild_1_1chroot.html#9c7517b01054dee9285cd48cf42073e9112c98d73ab4a844208b2f4a5a034c22">EXEC_STOP</a>
81
<a name="l00066"></a>00066 };
82
<a name="l00067"></a>00067
83
<a name="l00069"></a><a class="code" href="classsbuild_1_1chroot.html#ef89631e62590a5864a644e1d6c19e8e">00069</a> <span class="keyword">enum</span> <a class="code" href="classsbuild_1_1chroot.html#ef89631e62590a5864a644e1d6c19e8e">session_flags</a>
84
<a name="l00070"></a>00070 {
85
<a name="l00071"></a><a class="code" href="classsbuild_1_1chroot.html#ef89631e62590a5864a644e1d6c19e8e76d78c177962f0975687d10eca601db2">00071</a> <a class="code" href="classsbuild_1_1chroot.html#ef89631e62590a5864a644e1d6c19e8e76d78c177962f0975687d10eca601db2">SESSION_CREATE</a> = 1 << 0
86
<a name="l00072"></a>00072 };
87
<a name="l00073"></a>00073
88
<a name="l00075"></a><a class="code" href="classsbuild_1_1chroot.html#a6c35162d64ac4cedcf09a3d6baf5520">00075</a> <span class="keyword">typedef</span> <a class="code" href="classsbuild_1_1runtime__error__custom.html">runtime_error_custom<chroot></a> <a class="code" href="classsbuild_1_1runtime__error__custom.html">error</a>;
86
89
<a name="l00076"></a>00076
87
<a name="l00083"></a>00083 <span class="keyword">static</span> <a class="code" href="classsbuild_1_1chroot.html#ef7d5b607d1a0a4a7ebe1d40e2ec9c3a">ptr</a>
88
<a name="l00084"></a>00084 <a class="code" href="classsbuild_1_1chroot.html#a78d74b4937a4bcbd54b3d73304343d2">create</a> (std::string <span class="keyword">const</span>& type);
89
<a name="l00085"></a>00085
90
<a name="l00091"></a>00091 <span class="keyword">virtual</span> <a class="code" href="classsbuild_1_1chroot.html#ef7d5b607d1a0a4a7ebe1d40e2ec9c3a">ptr</a>
91
<a name="l00092"></a>00092 <a class="code" href="classsbuild_1_1chroot.html#cd6d20ce80856dac4c556eea25b9e862">clone</a> () <span class="keyword">const </span>= 0;
92
<a name="l00093"></a>00093
93
<a name="l00099"></a>00099 std::string <span class="keyword">const</span>&
94
<a name="l00100"></a>00100 <a class="code" href="classsbuild_1_1chroot.html#f0b7cb9619721ab1cc9e019dda9f5d60">get_name</a> () <span class="keyword">const</span>;
95
<a name="l00101"></a>00101
96
<a name="l00107"></a>00107 <span class="keywordtype">void</span>
97
<a name="l00108"></a>00108 <a class="code" href="classsbuild_1_1chroot.html#87f8b1da978e9d1a418508c9d8bfab8f">set_name</a> (std::string <span class="keyword">const</span>& <a class="code" href="classsbuild_1_1chroot.html#6ea91940964e72fcbec1cc2b6a269624">name</a>);
98
<a name="l00109"></a>00109
99
<a name="l00115"></a>00115 std::string <span class="keyword">const</span>&
100
<a name="l00116"></a>00116 <a class="code" href="classsbuild_1_1chroot.html#fc96bd88d1aa0b2c60d529a8c6a401d3">get_description</a> () <span class="keyword">const</span>;
101
<a name="l00117"></a>00117
102
<a name="l00123"></a>00123 <span class="keywordtype">void</span>
103
<a name="l00124"></a>00124 <a class="code" href="classsbuild_1_1chroot.html#3929961b82040f8fc837e09c09a530f3">set_description</a> (std::string <span class="keyword">const</span>& <a class="code" href="classsbuild_1_1chroot.html#b8200f4c23cfdab4a49e2709294bb547">description</a>);
104
<a name="l00125"></a>00125
105
<a name="l00131"></a>00131 <span class="keyword">virtual</span> std::string <span class="keyword">const</span>&
106
<a name="l00132"></a>00132 <a class="code" href="classsbuild_1_1chroot.html#be430a260e40e730458c3517aed410ec">get_mount_location</a> () <span class="keyword">const</span>;
107
<a name="l00133"></a>00133
108
<a name="l00139"></a>00139 <span class="keywordtype">void</span>
109
<a name="l00140"></a>00140 <a class="code" href="classsbuild_1_1chroot.html#bf596d3d57cf6ab95ed1b72a5a85da3e">set_mount_location</a> (std::string <span class="keyword">const</span>& <a class="code" href="classsbuild_1_1chroot.html#efbc5a3c1c7d5cb7a349f70bebaccac1">location</a>);
110
<a name="l00141"></a>00141
111
<a name="l00149"></a>00149 <span class="keyword">virtual</span> std::string <span class="keyword">const</span>&
112
<a name="l00150"></a>00150 <a class="code" href="classsbuild_1_1chroot.html#51dc847229a1f9979e6151797dc8122f">get_location</a> () <span class="keyword">const</span>;
113
<a name="l00151"></a>00151
114
<a name="l00152"></a>00152 <span class="keyword">protected</span>:
115
<a name="l00160"></a>00160 <span class="keyword">virtual</span> <span class="keywordtype">void</span>
116
<a name="l00161"></a>00161 <a class="code" href="classsbuild_1_1chroot.html#dabe7e9b1f1bc2a93096ad15ec0b2973">set_location</a> (std::string <span class="keyword">const</span>& <a class="code" href="classsbuild_1_1chroot.html#efbc5a3c1c7d5cb7a349f70bebaccac1">location</a>);
90
<a name="l00078"></a><a class="code" href="classsbuild_1_1chroot.html#ef7d5b607d1a0a4a7ebe1d40e2ec9c3a">00078</a> <span class="keyword">typedef</span> std::tr1::shared_ptr<chroot> <a class="code" href="classsbuild_1_1chroot.html#ef7d5b607d1a0a4a7ebe1d40e2ec9c3a">ptr</a>;
91
<a name="l00079"></a>00079
92
<a name="l00080"></a>00080 <span class="keyword">protected</span>:
93
<a name="l00082"></a>00082 <a class="code" href="classsbuild_1_1chroot.html#7f3338ab5ce304493c36f28a0ecbea4c">chroot</a> ();
94
<a name="l00083"></a>00083
95
<a name="l00084"></a>00084 <span class="keyword">public</span>:
96
<a name="l00086"></a>00086 <span class="keyword">virtual</span> <a class="code" href="classsbuild_1_1chroot.html#f71bda76465a991f4ea08f674843fe5f">~chroot</a> ();
97
<a name="l00087"></a>00087
98
<a name="l00094"></a>00094 <span class="keyword">static</span> <a class="code" href="classsbuild_1_1chroot.html#ef7d5b607d1a0a4a7ebe1d40e2ec9c3a">ptr</a>
99
<a name="l00095"></a>00095 <a class="code" href="classsbuild_1_1chroot.html#a78d74b4937a4bcbd54b3d73304343d2">create</a> (std::string <span class="keyword">const</span>& type);
100
<a name="l00096"></a>00096
101
<a name="l00102"></a>00102 <span class="keyword">virtual</span> <a class="code" href="classsbuild_1_1chroot.html#ef7d5b607d1a0a4a7ebe1d40e2ec9c3a">ptr</a>
102
<a name="l00103"></a>00103 <a class="code" href="classsbuild_1_1chroot.html#cd6d20ce80856dac4c556eea25b9e862">clone</a> () <span class="keyword">const </span>= 0;
103
<a name="l00104"></a>00104
104
<a name="l00110"></a>00110 std::string <span class="keyword">const</span>&
105
<a name="l00111"></a>00111 <a class="code" href="classsbuild_1_1chroot.html#f0b7cb9619721ab1cc9e019dda9f5d60">get_name</a> () <span class="keyword">const</span>;
106
<a name="l00112"></a>00112
107
<a name="l00118"></a>00118 <span class="keywordtype">void</span>
108
<a name="l00119"></a>00119 <a class="code" href="classsbuild_1_1chroot.html#87f8b1da978e9d1a418508c9d8bfab8f">set_name</a> (std::string <span class="keyword">const</span>& <a class="code" href="classsbuild_1_1chroot.html#6ea91940964e72fcbec1cc2b6a269624">name</a>);
109
<a name="l00120"></a>00120
110
<a name="l00126"></a>00126 std::string <span class="keyword">const</span>&
111
<a name="l00127"></a>00127 <a class="code" href="classsbuild_1_1chroot.html#fc96bd88d1aa0b2c60d529a8c6a401d3">get_description</a> () <span class="keyword">const</span>;
112
<a name="l00128"></a>00128
113
<a name="l00134"></a>00134 <span class="keywordtype">void</span>
114
<a name="l00135"></a>00135 <a class="code" href="classsbuild_1_1chroot.html#3929961b82040f8fc837e09c09a530f3">set_description</a> (std::string <span class="keyword">const</span>& <a class="code" href="classsbuild_1_1chroot.html#b8200f4c23cfdab4a49e2709294bb547">description</a>);
115
<a name="l00136"></a>00136
116
<a name="l00142"></a>00142 <span class="keyword">virtual</span> std::string <span class="keyword">const</span>&
117
<a name="l00143"></a>00143 <a class="code" href="classsbuild_1_1chroot.html#be430a260e40e730458c3517aed410ec">get_mount_location</a> () <span class="keyword">const</span>;
118
<a name="l00144"></a>00144
119
<a name="l00150"></a>00150 <span class="keywordtype">void</span>
120
<a name="l00151"></a>00151 <a class="code" href="classsbuild_1_1chroot.html#bf596d3d57cf6ab95ed1b72a5a85da3e">set_mount_location</a> (std::string <span class="keyword">const</span>& <a class="code" href="classsbuild_1_1chroot.html#efbc5a3c1c7d5cb7a349f70bebaccac1">location</a>);
121
<a name="l00152"></a>00152
122
<a name="l00160"></a>00160 <span class="keyword">virtual</span> std::string <span class="keyword">const</span>&
123
<a name="l00161"></a>00161 <a class="code" href="classsbuild_1_1chroot.html#51dc847229a1f9979e6151797dc8122f">get_location</a> () <span class="keyword">const</span>;
117
124
<a name="l00162"></a>00162
118
<a name="l00163"></a>00163 <span class="keyword">public</span>:
119
<a name="l00172"></a>00172 <span class="keyword">virtual</span> std::string
120
<a name="l00173"></a>00173 <a class="code" href="classsbuild_1_1chroot.html#a55a0850437268625326e6145d94d719">get_path</a> () <span class="keyword">const</span>;
121
<a name="l00174"></a>00174
122
<a name="l00180"></a>00180 <span class="keyword">virtual</span> std::string <span class="keyword">const</span>&
123
<a name="l00181"></a>00181 <a class="code" href="classsbuild_1_1chroot.html#48e3f8e86bda7a0e7e14e5b4b625c75f">get_mount_device</a> () <span class="keyword">const</span>;
124
<a name="l00182"></a>00182
125
<a name="l00188"></a>00188 <span class="keywordtype">void</span>
126
<a name="l00189"></a>00189 <a class="code" href="classsbuild_1_1chroot.html#8e7f9121f35fb51408d0b123269b7e2b">set_mount_device</a> (std::string <span class="keyword">const</span>& device);
127
<a name="l00190"></a>00190
128
<a name="l00197"></a>00197 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>
129
<a name="l00198"></a>00198 <a class="code" href="classsbuild_1_1chroot.html#8af1f1772d544a1113de2fa7143f7816">get_priority</a> () <span class="keyword">const</span>;
130
<a name="l00199"></a>00199
131
<a name="l00209"></a>00209 <span class="keywordtype">void</span>
132
<a name="l00210"></a>00210 <a class="code" href="classsbuild_1_1chroot.html#a4f9365882606b7f95f8c9b033b3fa42">set_priority</a> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classsbuild_1_1chroot.html#1e54020aa9e70dade6f6a3afb6cf7ca7">priority</a>);
133
<a name="l00211"></a>00211
134
<a name="l00217"></a>00217 <a class="code" href="namespacesbuild.html#4268c3202ab4b20cbebf347a6d69393f">string_list</a> <span class="keyword">const</span>&
135
<a name="l00218"></a>00218 <a class="code" href="classsbuild_1_1chroot.html#e6062e65ea7da76bd289e287885173c0">get_groups</a> () <span class="keyword">const</span>;
136
<a name="l00219"></a>00219
137
<a name="l00225"></a>00225 <span class="keywordtype">void</span>
138
<a name="l00226"></a>00226 <a class="code" href="classsbuild_1_1chroot.html#ffc8fa80414dac32e5bf0d194eca0b25">set_groups</a> (<a class="code" href="namespacesbuild.html#4268c3202ab4b20cbebf347a6d69393f">string_list</a> <span class="keyword">const</span>& <a class="code" href="classsbuild_1_1chroot.html#397c5fc1852eb0db5be420e0a1d4c7f4">groups</a>);
139
<a name="l00227"></a>00227
140
<a name="l00235"></a>00235 <a class="code" href="namespacesbuild.html#4268c3202ab4b20cbebf347a6d69393f">string_list</a> <span class="keyword">const</span>&
141
<a name="l00236"></a>00236 <a class="code" href="classsbuild_1_1chroot.html#f18cee06da0c25fa9a7b411e1c6672eb">get_root_groups</a> () <span class="keyword">const</span>;
142
<a name="l00237"></a>00237
143
<a name="l00245"></a>00245 <span class="keywordtype">void</span>
144
<a name="l00246"></a>00246 <a class="code" href="classsbuild_1_1chroot.html#5d979471addd75a2b80f86ccd2c95796">set_root_groups</a> (<a class="code" href="namespacesbuild.html#4268c3202ab4b20cbebf347a6d69393f">string_list</a> <span class="keyword">const</span>& <a class="code" href="classsbuild_1_1chroot.html#397c5fc1852eb0db5be420e0a1d4c7f4">groups</a>);
145
<a name="l00247"></a>00247
146
<a name="l00254"></a>00254 <a class="code" href="namespacesbuild.html#4268c3202ab4b20cbebf347a6d69393f">string_list</a> <span class="keyword">const</span>&
147
<a name="l00255"></a>00255 <a class="code" href="classsbuild_1_1chroot.html#275e4824f82f20e508a09ab132b6e684">get_aliases</a> () <span class="keyword">const</span>;
148
<a name="l00256"></a>00256
149
<a name="l00263"></a>00263 <span class="keywordtype">void</span>
150
<a name="l00264"></a>00264 <a class="code" href="classsbuild_1_1chroot.html#abdb3b58d7be3270cb4c844e0a2b3202">set_aliases</a> (<a class="code" href="namespacesbuild.html#4268c3202ab4b20cbebf347a6d69393f">string_list</a> <span class="keyword">const</span>& <a class="code" href="classsbuild_1_1chroot.html#3a61cf930983a30189ebcbd8b884d1df">aliases</a>);
151
<a name="l00265"></a>00265
152
<a name="l00271"></a>00271 <span class="keywordtype">bool</span>
153
<a name="l00272"></a>00272 <a class="code" href="classsbuild_1_1chroot.html#78291bd01b18d0d8a548a9ad05a49336">get_active</a> () <span class="keyword">const</span>;
154
<a name="l00273"></a>00273
155
<a name="l00279"></a>00279 <span class="keywordtype">void</span>
156
<a name="l00280"></a>00280 <a class="code" href="classsbuild_1_1chroot.html#ca9774dd4f9928fc99b85e4cf1a058e6">set_active</a> (<span class="keywordtype">bool</span> <a class="code" href="classsbuild_1_1chroot.html#72007d7d80cf375329924471b15d7f14">active</a>);
157
<a name="l00281"></a>00281
158
<a name="l00287"></a>00287 <span class="keywordtype">bool</span>
159
<a name="l00288"></a>00288 <a class="code" href="classsbuild_1_1chroot.html#9215ac4c2835bddcb799823e1ded85c3">get_run_setup_scripts</a> () <span class="keyword">const</span>;
160
<a name="l00289"></a>00289
161
<a name="l00296"></a>00296 <span class="keywordtype">void</span>
162
<a name="l00297"></a>00297 <a class="code" href="classsbuild_1_1chroot.html#7ab9f77d4fac1d6f41664c7e68f214dd">set_run_setup_scripts</a> (<span class="keywordtype">bool</span> <a class="code" href="classsbuild_1_1chroot.html#94952ca28167cf294320a42f815f8691">run_setup_scripts</a>);
163
<a name="l00298"></a>00298
164
<a name="l00304"></a>00304 <span class="keywordtype">bool</span>
165
<a name="l00305"></a>00305 <a class="code" href="classsbuild_1_1chroot.html#aa8cc71758aef96849ece37e1c391899">get_run_exec_scripts</a> () <span class="keyword">const</span>;
166
<a name="l00306"></a>00306
167
<a name="l00313"></a>00313 <span class="keywordtype">void</span>
168
<a name="l00314"></a>00314 <a class="code" href="classsbuild_1_1chroot.html#8cd08f5e52ffc9f57a8f1b6d68a320ca">set_run_exec_scripts</a> (<span class="keywordtype">bool</span> <a class="code" href="classsbuild_1_1chroot.html#a14a2d20332f3af5cc2fc04aabc1d638">run_exec_scripts</a>);
169
<a name="l00315"></a>00315
170
<a name="l00322"></a>00322 <a class="code" href="namespacesbuild.html#4268c3202ab4b20cbebf347a6d69393f">string_list</a> <span class="keyword">const</span>&
171
<a name="l00323"></a>00323 <a class="code" href="classsbuild_1_1chroot.html#2692e5fdc975dabe4645725d74eb3d9c">get_command_prefix</a> () <span class="keyword">const</span>;
172
<a name="l00324"></a>00324
173
<a name="l00331"></a>00331 <span class="keywordtype">void</span>
174
<a name="l00332"></a>00332 <a class="code" href="classsbuild_1_1chroot.html#9b81f558b3c4def90d9f8e6f0e2d1b81">set_command_prefix</a> (<a class="code" href="namespacesbuild.html#4268c3202ab4b20cbebf347a6d69393f">string_list</a> <span class="keyword">const</span>& <a class="code" href="classsbuild_1_1chroot.html#e7966e5e79acbece662b3b7c21c4a5b5">command_prefix</a>);
175
<a name="l00333"></a>00333
176
<a name="l00339"></a>00339 <span class="keyword">virtual</span> std::string <span class="keyword">const</span>&
177
<a name="l00340"></a>00340 <a class="code" href="classsbuild_1_1chroot.html#2fef84e91421d84141dbd8da9d756949">get_chroot_type</a> () <span class="keyword">const </span>= 0;
178
<a name="l00341"></a>00341
179
<a name="l00348"></a>00348 <span class="keyword">virtual</span> <span class="keywordtype">void</span>
180
<a name="l00349"></a>00349 <a class="code" href="classsbuild_1_1chroot.html#5eef8f0da324842ae34393a52462f9e5">setup_env</a> (<a class="code" href="classsbuild_1_1environment.html">environment</a>& env);
181
<a name="l00350"></a>00350
182
<a name="l00363"></a>00363 <span class="keyword">virtual</span> <span class="keywordtype">void</span>
183
<a name="l00364"></a>00364 <a class="code" href="classsbuild_1_1chroot.html#54a7944f6a48b1372cd64e9a4b5e4e8f">setup_lock</a> (<a class="code" href="classsbuild_1_1chroot.html#9c7517b01054dee9285cd48cf42073e9">setup_type</a> type,
184
<a name="l00365"></a>00365 <span class="keywordtype">bool</span> <a class="code" href="classsbuild_1_1lock.html">lock</a>) = 0;
185
<a name="l00366"></a>00366
186
<a name="l00367"></a>00367 <span class="keyword">protected</span>:
187
<a name="l00373"></a>00373 <span class="keyword">virtual</span> <span class="keywordtype">void</span>
188
<a name="l00374"></a>00374 <a class="code" href="classsbuild_1_1chroot.html#0bdf73513e548bc087b67e1035db9017">setup_session_info</a> (<span class="keywordtype">bool</span> start);
189
<a name="l00375"></a>00375
190
<a name="l00376"></a>00376 <span class="keyword">public</span>:
191
<a name="l00383"></a>00383 <span class="keyword">virtual</span> <a class="code" href="classsbuild_1_1chroot.html#ef89631e62590a5864a644e1d6c19e8e">session_flags</a>
192
<a name="l00384"></a>00384 <a class="code" href="classsbuild_1_1chroot.html#3971cded8d1c466c20bfec514729161a">get_session_flags</a> () <span class="keyword">const </span>= 0;
193
<a name="l00385"></a>00385
194
<a name="l00395"></a>00395 <span class="keyword">friend</span> std::ostream&
195
<a name="l00396"></a><a class="code" href="classsbuild_1_1chroot.html#3734d2a34092c36403ef516fdd93b7e8">00396</a> <a class="code" href="classsbuild_1_1chroot.html#3734d2a34092c36403ef516fdd93b7e8">operator << </a>(std::ostream& stream,
196
<a name="l00397"></a>00397 <a class="code" href="classsbuild_1_1chroot.html#ef7d5b607d1a0a4a7ebe1d40e2ec9c3a">ptr</a> <span class="keyword">const</span>& rhs)
197
<a name="l00398"></a>00398 {
198
<a name="l00399"></a>00399 rhs->print_details(stream);
199
<a name="l00400"></a>00400 <span class="keywordflow">return</span> stream;
200
<a name="l00401"></a>00401 }
201
<a name="l00402"></a>00402
202
<a name="l00406"></a>00406 <span class="keyword">friend</span>
203
<a name="l00407"></a>00407 <a class="code" href="classsbuild_1_1keyfile.html">keyfile</a> <span class="keyword">const</span>&
204
<a name="l00408"></a><a class="code" href="classsbuild_1_1chroot.html#cade786d24b3c0a3105544d3e87f0543">00408</a> <a class="code" href="classsbuild_1_1chroot.html#cade786d24b3c0a3105544d3e87f0543">operator >> </a>(<a class="code" href="classsbuild_1_1keyfile.html">keyfile</a> <span class="keyword">const</span>& <a class="code" href="classsbuild_1_1keyfile.html">keyfile</a>,
205
<a name="l00409"></a>00409 <a class="code" href="classsbuild_1_1chroot.html#ef7d5b607d1a0a4a7ebe1d40e2ec9c3a">ptr</a>& rhs)
206
<a name="l00410"></a>00410 {
207
<a name="l00411"></a>00411 rhs->set_keyfile(keyfile);
208
<a name="l00412"></a>00412 <span class="keywordflow">return</span> keyfile;
209
<a name="l00413"></a>00413 }
210
<a name="l00414"></a>00414
211
<a name="l00418"></a>00418 <span class="keyword">friend</span>
212
<a name="l00419"></a>00419 <a class="code" href="classsbuild_1_1keyfile.html">keyfile</a>&
213
<a name="l00420"></a><a class="code" href="classsbuild_1_1chroot.html#80cf448b903d9f2b2c899b86d4d8294f">00420</a> <a class="code" href="classsbuild_1_1chroot.html#3734d2a34092c36403ef516fdd93b7e8">operator << </a>(<a class="code" href="classsbuild_1_1keyfile.html">keyfile</a>& <a class="code" href="classsbuild_1_1keyfile.html">keyfile</a>,
214
<a name="l00421"></a>00421 <a class="code" href="classsbuild_1_1chroot.html#ef7d5b607d1a0a4a7ebe1d40e2ec9c3a">ptr</a> <span class="keyword">const</span>& rhs)
215
<a name="l00422"></a>00422 {
216
<a name="l00423"></a>00423 rhs->get_keyfile(keyfile);
217
<a name="l00424"></a>00424 <span class="keywordflow">return</span> keyfile;
218
<a name="l00425"></a>00425 }
219
<a name="l00426"></a>00426
220
<a name="l00427"></a>00427
221
<a name="l00428"></a>00428 <span class="keyword">protected</span>:
222
<a name="l00432"></a>00432 <span class="keyword">template</span><<span class="keyword">typename</span> T>
223
<a name="l00433"></a><a class="code" href="classsbuild_1_1chroot_1_1format__detail.html">00433</a> <span class="keyword">class </span><a class="code" href="classsbuild_1_1chroot_1_1format__detail.html">format_detail</a>
224
<a name="l00434"></a>00434 {
225
<a name="l00442"></a>00442 <span class="keyword">public</span>:
226
<a name="l00443"></a><a class="code" href="classsbuild_1_1chroot_1_1format__detail.html#01c86920ce1765c0bff96a849fc99f8e">00443</a> <a class="code" href="classsbuild_1_1chroot_1_1format__detail.html#01c86920ce1765c0bff96a849fc99f8e">format_detail</a> (std::string <span class="keyword">const</span>& <a class="code" href="classsbuild_1_1chroot_1_1format__detail.html#02e6444686bf12854c4a4386c20b0a7f">name</a>,
227
<a name="l00444"></a>00444 T <span class="keyword">const</span>& <a class="code" href="classsbuild_1_1chroot_1_1format__detail.html#797e23d2f14bb3aeed536c6610f1f265">value</a>):
228
<a name="l00445"></a>00445 name(name),
229
<a name="l00446"></a>00446 value(value)
230
<a name="l00447"></a>00447 {}
231
<a name="l00448"></a>00448
232
<a name="l00456"></a>00456 <span class="keyword">friend</span> std::ostream&
233
<a name="l00457"></a><a class="code" href="classsbuild_1_1chroot_1_1format__detail.html#257cace25e8f945db808a914c67d42f1">00457</a> <a class="code" href="classsbuild_1_1chroot_1_1format__detail.html#257cace25e8f945db808a914c67d42f1">operator << </a>(std::ostream& stream,
234
<a name="l00458"></a>00458 <a class="code" href="classsbuild_1_1chroot_1_1format__detail.html">format_detail<T></a> <span class="keyword">const</span>& rhs)
235
<a name="l00459"></a>00459 {
236
<a name="l00460"></a>00460 <span class="keywordflow">return</span> stream << <span class="stringliteral">" "</span>
237
<a name="l00461"></a>00461 << std::setw(22) << std::left << rhs.<a class="code" href="classsbuild_1_1chroot_1_1format__detail.html#02e6444686bf12854c4a4386c20b0a7f">name</a>
238
<a name="l00462"></a>00462 << rhs.<a class="code" href="classsbuild_1_1chroot_1_1format__detail.html#797e23d2f14bb3aeed536c6610f1f265">value</a> << <span class="charliteral">'\n'</span>;
239
<a name="l00463"></a>00463 }
240
<a name="l00464"></a>00464
241
<a name="l00473"></a>00473 <span class="keyword">friend</span> std::ostream&
242
<a name="l00474"></a><a class="code" href="classsbuild_1_1chroot_1_1format__detail.html#0815ae1f6ff7f0651ed66175b33b4731">00474</a> <a class="code" href="classsbuild_1_1chroot_1_1format__detail.html#257cace25e8f945db808a914c67d42f1">operator << </a>(std::ostream& stream,
243
<a name="l00475"></a>00475 <a class="code" href="classsbuild_1_1chroot_1_1format__detail.html">format_detail<bool></a> <span class="keyword">const</span>& rhs)
244
<a name="l00476"></a>00476 {
245
<a name="l00477"></a>00477 <span class="keyword">const</span> <span class="keywordtype">char</span> *desc = 0;
246
<a name="l00478"></a>00478 <span class="keywordflow">if</span> (rhs.<a class="code" href="classsbuild_1_1chroot_1_1format__detail.html#797e23d2f14bb3aeed536c6610f1f265">value</a>)
247
<a name="l00479"></a>00479 desc = <a class="code" href="sbuild-i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934">_</a>(<span class="stringliteral">"true"</span>);
248
<a name="l00480"></a>00480 <span class="keywordflow">else</span>
249
<a name="l00481"></a>00481 desc = <a class="code" href="sbuild-i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934">_</a>(<span class="stringliteral">"false"</span>);
250
<a name="l00482"></a>00482 <span class="keywordflow">return</span> stream << format_detail<std::string>(rhs.<a class="code" href="classsbuild_1_1chroot_1_1format__detail.html#02e6444686bf12854c4a4386c20b0a7f">name</a>, desc);
251
<a name="l00483"></a>00483 }
252
<a name="l00484"></a>00484
253
<a name="l00493"></a>00493 <span class="keyword">friend</span> std::ostream&
254
<a name="l00494"></a><a class="code" href="classsbuild_1_1chroot_1_1format__detail.html#f97b2e47c52d7ea77dcec1ace42244d5">00494</a> <a class="code" href="classsbuild_1_1chroot_1_1format__detail.html#257cace25e8f945db808a914c67d42f1">operator << </a>(std::ostream& stream,
255
<a name="l00495"></a>00495 <a class="code" href="classsbuild_1_1chroot_1_1format__detail.html">format_detail<string_list></a> <span class="keyword">const</span>& rhs)
256
<a name="l00496"></a>00496 {
257
<a name="l00497"></a>00497 <span class="keywordflow">return</span> stream <<
258
<a name="l00498"></a>00498 <a class="code" href="classsbuild_1_1chroot_1_1format__detail.html">format_detail<std::string></a>(rhs.<a class="code" href="classsbuild_1_1chroot_1_1format__detail.html#02e6444686bf12854c4a4386c20b0a7f">name</a>,
259
<a name="l00499"></a>00499 <a class="code" href="namespacesbuild.html#56e63f2becadeda121c470befde8e76b">string_list_to_string</a>(rhs.<a class="code" href="classsbuild_1_1chroot_1_1format__detail.html#797e23d2f14bb3aeed536c6610f1f265">value</a>, <span class="stringliteral">" "</span>));
260
<a name="l00500"></a>00500 }
261
<a name="l00501"></a>00501
262
<a name="l00502"></a>00502 <span class="keyword">private</span>:
263
<a name="l00504"></a><a class="code" href="classsbuild_1_1chroot_1_1format__detail.html#02e6444686bf12854c4a4386c20b0a7f">00504</a> std::string <span class="keyword">const</span>& <a class="code" href="classsbuild_1_1chroot_1_1format__detail.html#02e6444686bf12854c4a4386c20b0a7f">name</a>;
264
<a name="l00506"></a><a class="code" href="classsbuild_1_1chroot_1_1format__detail.html#797e23d2f14bb3aeed536c6610f1f265">00506</a> T <span class="keyword">const</span>& <a class="code" href="classsbuild_1_1chroot_1_1format__detail.html#797e23d2f14bb3aeed536c6610f1f265">value</a>;
265
<a name="l00507"></a>00507 };
266
<a name="l00508"></a>00508
267
<a name="l00517"></a>00517 <span class="keyword">template</span><<span class="keyword">typename</span> T>
268
<a name="l00518"></a>00518 <a class="code" href="classsbuild_1_1chroot_1_1format__detail.html">format_detail<T></a>
269
<a name="l00519"></a><a class="code" href="classsbuild_1_1chroot.html#292c84300b79d233bb745fbd9fbbac8c">00519</a> <a class="code" href="classsbuild_1_1chroot.html#292c84300b79d233bb745fbd9fbbac8c">format_details</a> (std::string <span class="keyword">const</span>& <a class="code" href="classsbuild_1_1chroot.html#6ea91940964e72fcbec1cc2b6a269624">name</a>,
270
<a name="l00520"></a>00520 T <span class="keyword">const</span>& value)<span class="keyword"> const</span>
271
<a name="l00521"></a>00521 <span class="keyword"> </span>{
272
<a name="l00522"></a>00522 <span class="keywordflow">return</span> <a class="code" href="classsbuild_1_1chroot_1_1format__detail.html">format_detail<T></a>(name, value);
273
<a name="l00523"></a>00523 }
274
<a name="l00524"></a>00524
275
<a name="l00532"></a>00532 <span class="keyword">virtual</span> <span class="keywordtype">void</span>
276
<a name="l00533"></a>00533 <a class="code" href="classsbuild_1_1chroot.html#b6393db259840e4f76109bddff7bad57">print_details</a> (std::ostream& stream) <span class="keyword">const</span>;
277
<a name="l00534"></a>00534
278
<a name="l00542"></a>00542 <span class="keyword">virtual</span> <span class="keywordtype">void</span>
279
<a name="l00543"></a>00543 <a class="code" href="classsbuild_1_1chroot.html#bd88b14c1aae6b73da82d1a59967d86c">get_keyfile</a> (<a class="code" href="classsbuild_1_1keyfile.html">keyfile</a>& <a class="code" href="classsbuild_1_1keyfile.html">keyfile</a>) <span class="keyword">const</span>;
280
<a name="l00544"></a>00544
281
<a name="l00552"></a>00552 <span class="keyword">virtual</span> <span class="keywordtype">void</span>
282
<a name="l00553"></a>00553 <a class="code" href="classsbuild_1_1chroot.html#3bacd7509aaf9f062be635bca5f27a01">set_keyfile</a> (<a class="code" href="classsbuild_1_1keyfile.html">keyfile</a> <span class="keyword">const</span>& <a class="code" href="classsbuild_1_1keyfile.html">keyfile</a>);
125
<a name="l00163"></a>00163 <span class="keyword">protected</span>:
126
<a name="l00171"></a>00171 <span class="keyword">virtual</span> <span class="keywordtype">void</span>
127
<a name="l00172"></a>00172 <a class="code" href="classsbuild_1_1chroot.html#dabe7e9b1f1bc2a93096ad15ec0b2973">set_location</a> (std::string <span class="keyword">const</span>& <a class="code" href="classsbuild_1_1chroot.html#efbc5a3c1c7d5cb7a349f70bebaccac1">location</a>);
128
<a name="l00173"></a>00173
129
<a name="l00174"></a>00174 <span class="keyword">public</span>:
130
<a name="l00183"></a>00183 <span class="keyword">virtual</span> std::string
131
<a name="l00184"></a>00184 <a class="code" href="classsbuild_1_1chroot.html#a55a0850437268625326e6145d94d719">get_path</a> () <span class="keyword">const</span>;
132
<a name="l00185"></a>00185
133
<a name="l00191"></a>00191 <span class="keyword">virtual</span> std::string <span class="keyword">const</span>&
134
<a name="l00192"></a>00192 <a class="code" href="classsbuild_1_1chroot.html#48e3f8e86bda7a0e7e14e5b4b625c75f">get_mount_device</a> () <span class="keyword">const</span>;
135
<a name="l00193"></a>00193
136
<a name="l00199"></a>00199 <span class="keywordtype">void</span>
137
<a name="l00200"></a>00200 <a class="code" href="classsbuild_1_1chroot.html#8e7f9121f35fb51408d0b123269b7e2b">set_mount_device</a> (std::string <span class="keyword">const</span>& device);
138
<a name="l00201"></a>00201
139
<a name="l00208"></a>00208 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>
140
<a name="l00209"></a>00209 <a class="code" href="classsbuild_1_1chroot.html#8af1f1772d544a1113de2fa7143f7816">get_priority</a> () <span class="keyword">const</span>;
141
<a name="l00210"></a>00210
142
<a name="l00220"></a>00220 <span class="keywordtype">void</span>
143
<a name="l00221"></a>00221 <a class="code" href="classsbuild_1_1chroot.html#a4f9365882606b7f95f8c9b033b3fa42">set_priority</a> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classsbuild_1_1chroot.html#1e54020aa9e70dade6f6a3afb6cf7ca7">priority</a>);
144
<a name="l00222"></a>00222
145
<a name="l00228"></a>00228 <a class="code" href="namespacesbuild.html#4268c3202ab4b20cbebf347a6d69393f">string_list</a> <span class="keyword">const</span>&
146
<a name="l00229"></a>00229 <a class="code" href="classsbuild_1_1chroot.html#e6062e65ea7da76bd289e287885173c0">get_groups</a> () <span class="keyword">const</span>;
147
<a name="l00230"></a>00230
148
<a name="l00236"></a>00236 <span class="keywordtype">void</span>
149
<a name="l00237"></a>00237 <a class="code" href="classsbuild_1_1chroot.html#ffc8fa80414dac32e5bf0d194eca0b25">set_groups</a> (<a class="code" href="namespacesbuild.html#4268c3202ab4b20cbebf347a6d69393f">string_list</a> <span class="keyword">const</span>& <a class="code" href="classsbuild_1_1chroot.html#397c5fc1852eb0db5be420e0a1d4c7f4">groups</a>);
150
<a name="l00238"></a>00238
151
<a name="l00246"></a>00246 <a class="code" href="namespacesbuild.html#4268c3202ab4b20cbebf347a6d69393f">string_list</a> <span class="keyword">const</span>&
152
<a name="l00247"></a>00247 <a class="code" href="classsbuild_1_1chroot.html#f18cee06da0c25fa9a7b411e1c6672eb">get_root_groups</a> () <span class="keyword">const</span>;
153
<a name="l00248"></a>00248
154
<a name="l00256"></a>00256 <span class="keywordtype">void</span>
155
<a name="l00257"></a>00257 <a class="code" href="classsbuild_1_1chroot.html#5d979471addd75a2b80f86ccd2c95796">set_root_groups</a> (<a class="code" href="namespacesbuild.html#4268c3202ab4b20cbebf347a6d69393f">string_list</a> <span class="keyword">const</span>& <a class="code" href="classsbuild_1_1chroot.html#397c5fc1852eb0db5be420e0a1d4c7f4">groups</a>);
156
<a name="l00258"></a>00258
157
<a name="l00265"></a>00265 <a class="code" href="namespacesbuild.html#4268c3202ab4b20cbebf347a6d69393f">string_list</a> <span class="keyword">const</span>&
158
<a name="l00266"></a>00266 <a class="code" href="classsbuild_1_1chroot.html#275e4824f82f20e508a09ab132b6e684">get_aliases</a> () <span class="keyword">const</span>;
159
<a name="l00267"></a>00267
160
<a name="l00274"></a>00274 <span class="keywordtype">void</span>
161
<a name="l00275"></a>00275 <a class="code" href="classsbuild_1_1chroot.html#abdb3b58d7be3270cb4c844e0a2b3202">set_aliases</a> (<a class="code" href="namespacesbuild.html#4268c3202ab4b20cbebf347a6d69393f">string_list</a> <span class="keyword">const</span>& <a class="code" href="classsbuild_1_1chroot.html#3a61cf930983a30189ebcbd8b884d1df">aliases</a>);
162
<a name="l00276"></a>00276
163
<a name="l00282"></a>00282 <span class="keywordtype">bool</span>
164
<a name="l00283"></a>00283 <a class="code" href="classsbuild_1_1chroot.html#78291bd01b18d0d8a548a9ad05a49336">get_active</a> () <span class="keyword">const</span>;
165
<a name="l00284"></a>00284
166
<a name="l00290"></a>00290 <span class="keywordtype">void</span>
167
<a name="l00291"></a>00291 <a class="code" href="classsbuild_1_1chroot.html#ca9774dd4f9928fc99b85e4cf1a058e6">set_active</a> (<span class="keywordtype">bool</span> <a class="code" href="classsbuild_1_1chroot.html#72007d7d80cf375329924471b15d7f14">active</a>);
168
<a name="l00292"></a>00292
169
<a name="l00298"></a>00298 <span class="keywordtype">bool</span>
170
<a name="l00299"></a>00299 <a class="code" href="classsbuild_1_1chroot.html#9215ac4c2835bddcb799823e1ded85c3">get_run_setup_scripts</a> () <span class="keyword">const</span>;
171
<a name="l00300"></a>00300
172
<a name="l00307"></a>00307 <span class="keywordtype">void</span>
173
<a name="l00308"></a>00308 <a class="code" href="classsbuild_1_1chroot.html#7ab9f77d4fac1d6f41664c7e68f214dd">set_run_setup_scripts</a> (<span class="keywordtype">bool</span> <a class="code" href="classsbuild_1_1chroot.html#94952ca28167cf294320a42f815f8691">run_setup_scripts</a>);
174
<a name="l00309"></a>00309
175
<a name="l00315"></a>00315 <span class="keywordtype">bool</span>
176
<a name="l00316"></a>00316 <a class="code" href="classsbuild_1_1chroot.html#aa8cc71758aef96849ece37e1c391899">get_run_exec_scripts</a> () <span class="keyword">const</span>;
177
<a name="l00317"></a>00317
178
<a name="l00324"></a>00324 <span class="keywordtype">void</span>
179
<a name="l00325"></a>00325 <a class="code" href="classsbuild_1_1chroot.html#8cd08f5e52ffc9f57a8f1b6d68a320ca">set_run_exec_scripts</a> (<span class="keywordtype">bool</span> <a class="code" href="classsbuild_1_1chroot.html#a14a2d20332f3af5cc2fc04aabc1d638">run_exec_scripts</a>);
180
<a name="l00326"></a>00326
181
<a name="l00333"></a>00333 <a class="code" href="namespacesbuild.html#4268c3202ab4b20cbebf347a6d69393f">string_list</a> <span class="keyword">const</span>&
182
<a name="l00334"></a>00334 <a class="code" href="classsbuild_1_1chroot.html#2692e5fdc975dabe4645725d74eb3d9c">get_command_prefix</a> () <span class="keyword">const</span>;
183
<a name="l00335"></a>00335
184
<a name="l00342"></a>00342 <span class="keywordtype">void</span>
185
<a name="l00343"></a>00343 <a class="code" href="classsbuild_1_1chroot.html#9b81f558b3c4def90d9f8e6f0e2d1b81">set_command_prefix</a> (<a class="code" href="namespacesbuild.html#4268c3202ab4b20cbebf347a6d69393f">string_list</a> <span class="keyword">const</span>& <a class="code" href="classsbuild_1_1chroot.html#e7966e5e79acbece662b3b7c21c4a5b5">command_prefix</a>);
186
<a name="l00344"></a>00344
187
<a name="l00350"></a>00350 <a class="code" href="classsbuild_1_1personality.html">personality</a> <span class="keyword">const</span>&
188
<a name="l00351"></a>00351 <a class="code" href="classsbuild_1_1chroot.html#d59d6648394af9ec6365c03b38dba370">get_persona</a> () <span class="keyword">const</span>;
189
<a name="l00352"></a>00352
190
<a name="l00358"></a>00358 <span class="keywordtype">void</span>
191
<a name="l00359"></a>00359 <a class="code" href="classsbuild_1_1chroot.html#538c4e383e7d34c3b5dc9e4dd19c3b05">set_persona</a> (<a class="code" href="classsbuild_1_1personality.html">personality</a> <span class="keyword">const</span>& <a class="code" href="classsbuild_1_1chroot.html#519eda4b474b1d58abf9fa7b39f9f72c">persona</a>);
192
<a name="l00360"></a>00360
193
<a name="l00366"></a>00366 <span class="keyword">virtual</span> std::string <span class="keyword">const</span>&
194
<a name="l00367"></a>00367 <a class="code" href="classsbuild_1_1chroot.html#2fef84e91421d84141dbd8da9d756949">get_chroot_type</a> () <span class="keyword">const </span>= 0;
195
<a name="l00368"></a>00368
196
<a name="l00375"></a>00375 <span class="keyword">virtual</span> <span class="keywordtype">void</span>
197
<a name="l00376"></a>00376 <a class="code" href="classsbuild_1_1chroot.html#5eef8f0da324842ae34393a52462f9e5">setup_env</a> (<a class="code" href="classsbuild_1_1environment.html">environment</a>& env);
198
<a name="l00377"></a>00377
199
<a name="l00389"></a>00389 <span class="keywordtype">void</span>
200
<a name="l00390"></a>00390 <a class="code" href="classsbuild_1_1chroot.html#b8bec531b4e4e7832039a0686858e287">lock</a> (<a class="code" href="classsbuild_1_1chroot.html#9c7517b01054dee9285cd48cf42073e9">setup_type</a> type);
201
<a name="l00391"></a>00391
202
<a name="l00405"></a>00405 <span class="keywordtype">void</span>
203
<a name="l00406"></a>00406 <a class="code" href="classsbuild_1_1chroot.html#7a82bcb34b2a411676e7050bcf22d72a">unlock</a> (<a class="code" href="classsbuild_1_1chroot.html#9c7517b01054dee9285cd48cf42073e9">setup_type</a> type,
204
<a name="l00407"></a>00407 <span class="keywordtype">int</span> status);
205
<a name="l00408"></a>00408
206
<a name="l00409"></a>00409 <span class="keyword">protected</span>:
207
<a name="l00415"></a>00415 <span class="keyword">virtual</span> <span class="keywordtype">void</span>
208
<a name="l00416"></a>00416 <a class="code" href="classsbuild_1_1chroot.html#0bdf73513e548bc087b67e1035db9017">setup_session_info</a> (<span class="keywordtype">bool</span> start);
209
<a name="l00417"></a>00417
210
<a name="l00432"></a>00432 <span class="keyword">virtual</span> <span class="keywordtype">void</span>
211
<a name="l00433"></a>00433 <a class="code" href="classsbuild_1_1chroot.html#f48549badb146871eadc9e38517b29f4">setup_lock</a>(<a class="code" href="classsbuild_1_1chroot.html#9c7517b01054dee9285cd48cf42073e9">setup_type</a> type,
212
<a name="l00434"></a>00434 <span class="keywordtype">bool</span> <a class="code" href="classsbuild_1_1lock.html">lock</a>,
213
<a name="l00435"></a>00435 <span class="keywordtype">int</span> status) = 0;
214
<a name="l00436"></a>00436
215
<a name="l00437"></a>00437 <span class="keyword">public</span>:
216
<a name="l00444"></a>00444 <span class="keyword">virtual</span> <a class="code" href="classsbuild_1_1chroot.html#ef89631e62590a5864a644e1d6c19e8e">session_flags</a>
217
<a name="l00445"></a>00445 <a class="code" href="classsbuild_1_1chroot.html#3971cded8d1c466c20bfec514729161a">get_session_flags</a> () <span class="keyword">const </span>= 0;
218
<a name="l00446"></a>00446
219
<a name="l00456"></a>00456 <span class="keyword">friend</span> std::ostream&
220
<a name="l00457"></a><a class="code" href="classsbuild_1_1chroot.html#3734d2a34092c36403ef516fdd93b7e8">00457</a> <a class="code" href="classsbuild_1_1chroot.html#3734d2a34092c36403ef516fdd93b7e8">operator << </a>(std::ostream& stream,
221
<a name="l00458"></a>00458 <a class="code" href="classsbuild_1_1chroot.html#ef7d5b607d1a0a4a7ebe1d40e2ec9c3a">ptr</a> <span class="keyword">const</span>& rhs)
222
<a name="l00459"></a>00459 {
223
<a name="l00460"></a>00460 rhs->print_details(stream);
224
<a name="l00461"></a>00461 <span class="keywordflow">return</span> stream;
225
<a name="l00462"></a>00462 }
226
<a name="l00463"></a>00463
227
<a name="l00467"></a>00467 <span class="keyword">friend</span>
228
<a name="l00468"></a>00468 <a class="code" href="classsbuild_1_1keyfile.html">keyfile</a> <span class="keyword">const</span>&
229
<a name="l00469"></a><a class="code" href="classsbuild_1_1chroot.html#cade786d24b3c0a3105544d3e87f0543">00469</a> <a class="code" href="classsbuild_1_1chroot.html#cade786d24b3c0a3105544d3e87f0543">operator >> </a>(<a class="code" href="classsbuild_1_1keyfile.html">keyfile</a> <span class="keyword">const</span>& <a class="code" href="classsbuild_1_1keyfile.html">keyfile</a>,
230
<a name="l00470"></a>00470 <a class="code" href="classsbuild_1_1chroot.html#ef7d5b607d1a0a4a7ebe1d40e2ec9c3a">ptr</a>& rhs)
231
<a name="l00471"></a>00471 {
232
<a name="l00472"></a>00472 rhs->set_keyfile(keyfile);
233
<a name="l00473"></a>00473 <span class="keywordflow">return</span> keyfile;
234
<a name="l00474"></a>00474 }
235
<a name="l00475"></a>00475
236
<a name="l00479"></a>00479 <span class="keyword">friend</span>
237
<a name="l00480"></a>00480 <a class="code" href="classsbuild_1_1keyfile.html">keyfile</a>&
238
<a name="l00481"></a><a class="code" href="classsbuild_1_1chroot.html#80cf448b903d9f2b2c899b86d4d8294f">00481</a> <a class="code" href="classsbuild_1_1chroot.html#3734d2a34092c36403ef516fdd93b7e8">operator << </a>(<a class="code" href="classsbuild_1_1keyfile.html">keyfile</a>& <a class="code" href="classsbuild_1_1keyfile.html">keyfile</a>,
239
<a name="l00482"></a>00482 <a class="code" href="classsbuild_1_1chroot.html#ef7d5b607d1a0a4a7ebe1d40e2ec9c3a">ptr</a> <span class="keyword">const</span>& rhs)
240
<a name="l00483"></a>00483 {
241
<a name="l00484"></a>00484 rhs->get_keyfile(keyfile);
242
<a name="l00485"></a>00485 <span class="keywordflow">return</span> keyfile;
243
<a name="l00486"></a>00486 }
244
<a name="l00487"></a>00487
245
<a name="l00488"></a>00488
246
<a name="l00489"></a>00489 <span class="keyword">protected</span>:
247
<a name="l00497"></a>00497 <span class="keyword">virtual</span> <span class="keywordtype">void</span>
248
<a name="l00498"></a>00498 <a class="code" href="classsbuild_1_1chroot.html#b6393db259840e4f76109bddff7bad57">print_details</a> (std::ostream& stream) <span class="keyword">const</span>;
249
<a name="l00499"></a>00499
250
<a name="l00507"></a>00507 <span class="keyword">virtual</span> <span class="keywordtype">void</span>
251
<a name="l00508"></a>00508 <a class="code" href="classsbuild_1_1chroot.html#bd88b14c1aae6b73da82d1a59967d86c">get_keyfile</a> (<a class="code" href="classsbuild_1_1keyfile.html">keyfile</a>& <a class="code" href="classsbuild_1_1keyfile.html">keyfile</a>) <span class="keyword">const</span>;
252
<a name="l00509"></a>00509
253
<a name="l00517"></a>00517 <span class="keyword">virtual</span> <span class="keywordtype">void</span>
254
<a name="l00518"></a>00518 <a class="code" href="classsbuild_1_1chroot.html#3bacd7509aaf9f062be635bca5f27a01">set_keyfile</a> (<a class="code" href="classsbuild_1_1keyfile.html">keyfile</a> <span class="keyword">const</span>& <a class="code" href="classsbuild_1_1keyfile.html">keyfile</a>);
255
<a name="l00519"></a>00519
256
<a name="l00520"></a>00520 <span class="keyword">private</span>:
257
<a name="l00522"></a><a class="code" href="classsbuild_1_1chroot.html#6ea91940964e72fcbec1cc2b6a269624">00522</a> std::string <a class="code" href="classsbuild_1_1chroot.html#6ea91940964e72fcbec1cc2b6a269624">name</a>;
258
<a name="l00524"></a><a class="code" href="classsbuild_1_1chroot.html#b8200f4c23cfdab4a49e2709294bb547">00524</a> std::string <a class="code" href="classsbuild_1_1chroot.html#b8200f4c23cfdab4a49e2709294bb547">description</a>;
259
<a name="l00526"></a><a class="code" href="classsbuild_1_1chroot.html#1e54020aa9e70dade6f6a3afb6cf7ca7">00526</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classsbuild_1_1chroot.html#1e54020aa9e70dade6f6a3afb6cf7ca7">priority</a>;
260
<a name="l00528"></a><a class="code" href="classsbuild_1_1chroot.html#397c5fc1852eb0db5be420e0a1d4c7f4">00528</a> <a class="code" href="namespacesbuild.html#4268c3202ab4b20cbebf347a6d69393f">string_list</a> <a class="code" href="classsbuild_1_1chroot.html#397c5fc1852eb0db5be420e0a1d4c7f4">groups</a>;
261
<a name="l00530"></a><a class="code" href="classsbuild_1_1chroot.html#51ce6e9524375e2872ee837c1fc60669">00530</a> <a class="code" href="namespacesbuild.html#4268c3202ab4b20cbebf347a6d69393f">string_list</a> <a class="code" href="classsbuild_1_1chroot.html#51ce6e9524375e2872ee837c1fc60669">root_groups</a>;
262
<a name="l00532"></a><a class="code" href="classsbuild_1_1chroot.html#3a61cf930983a30189ebcbd8b884d1df">00532</a> <a class="code" href="namespacesbuild.html#4268c3202ab4b20cbebf347a6d69393f">string_list</a> <a class="code" href="classsbuild_1_1chroot.html#3a61cf930983a30189ebcbd8b884d1df">aliases</a>;
263
<a name="l00534"></a><a class="code" href="classsbuild_1_1chroot.html#b8ff67da5be7150a891909a17ec48785">00534</a> std::string <a class="code" href="classsbuild_1_1chroot.html#b8ff67da5be7150a891909a17ec48785">mount_location</a>;
264
<a name="l00536"></a><a class="code" href="classsbuild_1_1chroot.html#efbc5a3c1c7d5cb7a349f70bebaccac1">00536</a> std::string <a class="code" href="classsbuild_1_1chroot.html#efbc5a3c1c7d5cb7a349f70bebaccac1">location</a>;
265
<a name="l00538"></a><a class="code" href="classsbuild_1_1chroot.html#0cbaf2ce0f64e8821cbe54b73f9aab67">00538</a> std::string <a class="code" href="classsbuild_1_1chroot.html#0cbaf2ce0f64e8821cbe54b73f9aab67">mount_device</a>;
266
<a name="l00540"></a><a class="code" href="classsbuild_1_1chroot.html#72007d7d80cf375329924471b15d7f14">00540</a> <span class="keywordtype">bool</span> <a class="code" href="classsbuild_1_1chroot.html#72007d7d80cf375329924471b15d7f14">active</a>;
267
<a name="l00542"></a><a class="code" href="classsbuild_1_1chroot.html#94952ca28167cf294320a42f815f8691">00542</a> <span class="keywordtype">bool</span> <a class="code" href="classsbuild_1_1chroot.html#94952ca28167cf294320a42f815f8691">run_setup_scripts</a>;
268
<a name="l00544"></a><a class="code" href="classsbuild_1_1chroot.html#a14a2d20332f3af5cc2fc04aabc1d638">00544</a> <span class="keywordtype">bool</span> <a class="code" href="classsbuild_1_1chroot.html#a14a2d20332f3af5cc2fc04aabc1d638">run_exec_scripts</a>;
269
<a name="l00546"></a><a class="code" href="classsbuild_1_1chroot.html#e7966e5e79acbece662b3b7c21c4a5b5">00546</a> <a class="code" href="namespacesbuild.html#4268c3202ab4b20cbebf347a6d69393f">string_list</a> <a class="code" href="classsbuild_1_1chroot.html#e7966e5e79acbece662b3b7c21c4a5b5">command_prefix</a>;
270
<a name="l00548"></a><a class="code" href="classsbuild_1_1chroot.html#519eda4b474b1d58abf9fa7b39f9f72c">00548</a> <a class="code" href="classsbuild_1_1personality.html">personality</a> <a class="code" href="classsbuild_1_1chroot.html#519eda4b474b1d58abf9fa7b39f9f72c">persona</a>;
271
<a name="l00549"></a>00549 };
272
<a name="l00550"></a>00550
273
<a name="l00551"></a>00551 }
274
<a name="l00552"></a>00552
275
<a name="l00553"></a>00553 <span class="preprocessor">#endif </span><span class="comment">/* SBUILD_CHROOT_H */</span>
283
276
<a name="l00554"></a>00554
284
<a name="l00555"></a>00555 <span class="keyword">private</span>:
285
<a name="l00557"></a><a class="code" href="classsbuild_1_1chroot.html#6ea91940964e72fcbec1cc2b6a269624">00557</a> std::string <a class="code" href="classsbuild_1_1chroot.html#6ea91940964e72fcbec1cc2b6a269624">name</a>;
286
<a name="l00559"></a><a class="code" href="classsbuild_1_1chroot.html#b8200f4c23cfdab4a49e2709294bb547">00559</a> std::string <a class="code" href="classsbuild_1_1chroot.html#b8200f4c23cfdab4a49e2709294bb547">description</a>;
287
<a name="l00561"></a><a class="code" href="classsbuild_1_1chroot.html#1e54020aa9e70dade6f6a3afb6cf7ca7">00561</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classsbuild_1_1chroot.html#1e54020aa9e70dade6f6a3afb6cf7ca7">priority</a>;
288
<a name="l00563"></a><a class="code" href="classsbuild_1_1chroot.html#397c5fc1852eb0db5be420e0a1d4c7f4">00563</a> <a class="code" href="namespacesbuild.html#4268c3202ab4b20cbebf347a6d69393f">string_list</a> <a class="code" href="classsbuild_1_1chroot.html#397c5fc1852eb0db5be420e0a1d4c7f4">groups</a>;
289
<a name="l00565"></a><a class="code" href="classsbuild_1_1chroot.html#51ce6e9524375e2872ee837c1fc60669">00565</a> <a class="code" href="namespacesbuild.html#4268c3202ab4b20cbebf347a6d69393f">string_list</a> <a class="code" href="classsbuild_1_1chroot.html#51ce6e9524375e2872ee837c1fc60669">root_groups</a>;
290
<a name="l00567"></a><a class="code" href="classsbuild_1_1chroot.html#3a61cf930983a30189ebcbd8b884d1df">00567</a> <a class="code" href="namespacesbuild.html#4268c3202ab4b20cbebf347a6d69393f">string_list</a> <a class="code" href="classsbuild_1_1chroot.html#3a61cf930983a30189ebcbd8b884d1df">aliases</a>;
291
<a name="l00569"></a><a class="code" href="classsbuild_1_1chroot.html#b8ff67da5be7150a891909a17ec48785">00569</a> std::string <a class="code" href="classsbuild_1_1chroot.html#b8ff67da5be7150a891909a17ec48785">mount_location</a>;
292
<a name="l00571"></a><a class="code" href="classsbuild_1_1chroot.html#efbc5a3c1c7d5cb7a349f70bebaccac1">00571</a> std::string <a class="code" href="classsbuild_1_1chroot.html#efbc5a3c1c7d5cb7a349f70bebaccac1">location</a>;
293
<a name="l00573"></a><a class="code" href="classsbuild_1_1chroot.html#0cbaf2ce0f64e8821cbe54b73f9aab67">00573</a> std::string <a class="code" href="classsbuild_1_1chroot.html#0cbaf2ce0f64e8821cbe54b73f9aab67">mount_device</a>;
294
<a name="l00575"></a><a class="code" href="classsbuild_1_1chroot.html#72007d7d80cf375329924471b15d7f14">00575</a> <span class="keywordtype">bool</span> <a class="code" href="classsbuild_1_1chroot.html#72007d7d80cf375329924471b15d7f14">active</a>;
295
<a name="l00577"></a><a class="code" href="classsbuild_1_1chroot.html#94952ca28167cf294320a42f815f8691">00577</a> <span class="keywordtype">bool</span> <a class="code" href="classsbuild_1_1chroot.html#94952ca28167cf294320a42f815f8691">run_setup_scripts</a>;
296
<a name="l00579"></a><a class="code" href="classsbuild_1_1chroot.html#a14a2d20332f3af5cc2fc04aabc1d638">00579</a> <span class="keywordtype">bool</span> <a class="code" href="classsbuild_1_1chroot.html#a14a2d20332f3af5cc2fc04aabc1d638">run_exec_scripts</a>;
297
<a name="l00581"></a><a class="code" href="classsbuild_1_1chroot.html#e7966e5e79acbece662b3b7c21c4a5b5">00581</a> <a class="code" href="namespacesbuild.html#4268c3202ab4b20cbebf347a6d69393f">string_list</a> <a class="code" href="classsbuild_1_1chroot.html#e7966e5e79acbece662b3b7c21c4a5b5">command_prefix</a>;
298
<a name="l00582"></a>00582 };
299
<a name="l00583"></a>00583
300
<a name="l00584"></a>00584 }
301
<a name="l00585"></a>00585
302
<a name="l00586"></a>00586 <span class="preprocessor">#endif </span><span class="comment">/* SBUILD_CHROOT_H */</span>
303
<a name="l00587"></a>00587
304
<a name="l00588"></a>00588 <span class="comment">/*</span>
305
<a name="l00589"></a>00589 <span class="comment"> * Local Variables:</span>
306
<a name="l00590"></a>00590 <span class="comment"> * mode:C++</span>
307
<a name="l00591"></a>00591 <span class="comment"> * End:</span>
308
<a name="l00592"></a>00592 <span class="comment"> */</span>
309
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Sun Mar 19 12:07:48 2006 for schroot by
277
<a name="l00555"></a>00555 <span class="comment">/*</span>
278
<a name="l00556"></a>00556 <span class="comment"> * Local Variables:</span>
279
<a name="l00557"></a>00557 <span class="comment"> * mode:C++</span>
280
<a name="l00558"></a>00558 <span class="comment"> * End:</span>
281
<a name="l00559"></a>00559 <span class="comment"> */</span>
282
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Sat Jun 17 14:41:22 2006 for schroot by
310
283
<a href="http://www.doxygen.org/index.html">
311
284
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>