blob: 22e311587d0fbb64790c87f8503a3d777169b5d9 [file] [log] [blame]
Joe Gregorio66212032012-06-14 09:10:14 -04001<?xml version="1.0" encoding="ascii"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3 "DTD/xhtml1-transitional.dtd">
4<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5<head>
6 <title>oauth2client.locked_file</title>
7 <link rel="stylesheet" href="epydoc.css" type="text/css" />
8 <script type="text/javascript" src="epydoc.js"></script>
9</head>
10
11<body bgcolor="white" text="black" link="blue" vlink="#204080"
12 alink="#204080">
13<!-- ==================== NAVIGATION BAR ==================== -->
14<table class="navbar" border="0" width="100%" cellpadding="0"
15 bgcolor="#a0c0ff" cellspacing="0">
16 <tr valign="middle">
17
18 <!-- Tree link -->
19 <th>&nbsp;&nbsp;&nbsp;<a
20 href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
21
22 <!-- Index link -->
23 <th>&nbsp;&nbsp;&nbsp;<a
24 href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
25
26 <!-- Help link -->
27 <th>&nbsp;&nbsp;&nbsp;<a
28 href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
29
30 <th class="navbar" width="100%"></th>
31 </tr>
32</table>
33<table width="100%" cellpadding="0" cellspacing="0">
34 <tr valign="top">
35 <td width="100%">
36 <span class="breadcrumbs">
37 <a href="oauth2client-module.html">Package&nbsp;oauth2client</a> ::
38 Module&nbsp;locked_file
39 </span>
40 </td>
41 <td>
42 <table cellpadding="0" cellspacing="0">
43 <!-- hide/show private -->
44 <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
45 onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
46 <tr><td align="right"><span class="options"
47 >[<a href="frames.html" target="_top">frames</a
48 >]&nbsp;|&nbsp;<a href="oauth2client.locked_file-module.html"
49 target="_top">no&nbsp;frames</a>]</span></td></tr>
50 </table>
51 </td>
52 </tr>
53</table>
54<!-- ==================== MODULE DESCRIPTION ==================== -->
55<h1 class="epydoc">Module locked_file</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.locked_file-pysrc.html">source&nbsp;code</a></span></p>
56<pre class="literalblock">
57Locked file interface that should work on Unix and Windows pythons.
58
59This module first tries to use fcntl locking to ensure serialized access
60to a file, then falls back on a lock file if that is unavialable.
61
62Usage:
63 f = LockedFile('filename', 'r+b', 'rb')
64 f.open_and_lock()
65 if f.is_locked():
66 print 'Acquired filename with r+b mode'
67 f.file_handle().write('locked data')
68 else:
69 print 'Aquired filename with rb mode'
70 f.unlock_and_close()
71
72</pre>
73
74<hr />
75<div class="fields"> <p><strong>Author:</strong>
76 cache@google.com (David T McWherter)
77 </p>
78</div><!-- ==================== CLASSES ==================== -->
79<a name="section-Classes"></a>
80<table class="summary" border="1" cellpadding="3"
81 cellspacing="0" width="100%" bgcolor="white">
82<tr bgcolor="#70b0f0" class="table-header">
83 <td colspan="2" class="table-header">
84 <table border="0" cellpadding="0" cellspacing="0" width="100%">
85 <tr valign="top">
86 <td align="left"><span class="table-header">Classes</span></td>
87 <td align="right" valign="top"
88 ><span class="options">[<a href="#section-Classes"
89 class="privatelink" onclick="toggle_private();"
90 >hide private</a>]</span></td>
91 </tr>
92 </table>
93 </td>
94</tr>
95<tr>
96 <td width="15%" align="right" valign="top" class="summary">
97 <span class="summary-type">&nbsp;</span>
98 </td><td class="summary">
Joe Gregorio0cd347a2012-08-30 08:22:27 -040099 <a href="oauth2client.locked_file.CredentialsFileSymbolicLinkError-class.html" class="summary-name">CredentialsFileSymbolicLinkError</a><br />
100 Credentials files must not be symbolic links.
101 </td>
102 </tr>
103<tr>
104 <td width="15%" align="right" valign="top" class="summary">
105 <span class="summary-type">&nbsp;</span>
106 </td><td class="summary">
Joe Gregorio66212032012-06-14 09:10:14 -0400107 <a href="oauth2client.locked_file.AlreadyLockedException-class.html" class="summary-name">AlreadyLockedException</a><br />
108 Trying to lock a file that has already been locked by the LockedFile.
109 </td>
110 </tr>
111<tr class="private">
112 <td width="15%" align="right" valign="top" class="summary">
113 <span class="summary-type">&nbsp;</span>
114 </td><td class="summary">
115 <a href="oauth2client.locked_file._Opener-class.html" class="summary-name" onclick="show_private();">_Opener</a><br />
116 Base class for different locking primitives.
117 </td>
118 </tr>
119<tr class="private">
120 <td width="15%" align="right" valign="top" class="summary">
121 <span class="summary-type">&nbsp;</span>
122 </td><td class="summary">
123 <a href="oauth2client.locked_file._PosixOpener-class.html" class="summary-name" onclick="show_private();">_PosixOpener</a><br />
124 Lock files using Posix advisory lock files.
125 </td>
126 </tr>
127<tr class="private">
128 <td width="15%" align="right" valign="top" class="summary">
129 <span class="summary-type">&nbsp;</span>
130 </td><td class="summary">
131 <a href="oauth2client.locked_file._FcntlOpener-class.html" class="summary-name" onclick="show_private();">_FcntlOpener</a><br />
132 Open, lock, and unlock a file using fcntl.lockf.
133 </td>
134 </tr>
135<tr>
136 <td width="15%" align="right" valign="top" class="summary">
137 <span class="summary-type">&nbsp;</span>
138 </td><td class="summary">
139 <a href="oauth2client.locked_file.LockedFile-class.html" class="summary-name">LockedFile</a><br />
140 Represent a file that has exclusive access.
141 </td>
142 </tr>
143</table>
Joe Gregorio0cd347a2012-08-30 08:22:27 -0400144<!-- ==================== FUNCTIONS ==================== -->
145<a name="section-Functions"></a>
146<table class="summary" border="1" cellpadding="3"
147 cellspacing="0" width="100%" bgcolor="white">
148<tr bgcolor="#70b0f0" class="table-header">
149 <td colspan="2" class="table-header">
150 <table border="0" cellpadding="0" cellspacing="0" width="100%">
151 <tr valign="top">
152 <td align="left"><span class="table-header">Functions</span></td>
153 <td align="right" valign="top"
154 ><span class="options">[<a href="#section-Functions"
155 class="privatelink" onclick="toggle_private();"
156 >hide private</a>]</span></td>
157 </tr>
158 </table>
159 </td>
160</tr>
161<tr>
162 <td width="15%" align="right" valign="top" class="summary">
163 <span class="summary-type">&nbsp;</span>
164 </td><td class="summary">
165 <table width="100%" cellpadding="0" cellspacing="0" border="0">
166 <tr>
167 <td><span class="summary-sig"><a name="validate_file"></a><span class="summary-sig-name">validate_file</span>(<span class="summary-sig-arg">filename</span>)</span></td>
168 <td align="right" valign="top">
169 <span class="codelink"><a href="oauth2client.locked_file-pysrc.html#validate_file">source&nbsp;code</a></span>
170
171 </td>
172 </tr>
173 </table>
174
175 </td>
176 </tr>
177</table>
Joe Gregorio66212032012-06-14 09:10:14 -0400178<!-- ==================== VARIABLES ==================== -->
179<a name="section-Variables"></a>
180<table class="summary" border="1" cellpadding="3"
181 cellspacing="0" width="100%" bgcolor="white">
182<tr bgcolor="#70b0f0" class="table-header">
183 <td colspan="2" class="table-header">
184 <table border="0" cellpadding="0" cellspacing="0" width="100%">
185 <tr valign="top">
186 <td align="left"><span class="table-header">Variables</span></td>
187 <td align="right" valign="top"
188 ><span class="options">[<a href="#section-Variables"
189 class="privatelink" onclick="toggle_private();"
190 >hide private</a>]</span></td>
191 </tr>
192 </table>
193 </td>
194</tr>
195<tr>
196 <td width="15%" align="right" valign="top" class="summary">
197 <span class="summary-type">&nbsp;</span>
198 </td><td class="summary">
199 <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger(__name__)">logging.getLogger(__name__)</code>
200 </td>
201 </tr>
Joe Gregoriobf14cef2012-06-22 15:26:16 -0400202<tr class="private">
203 <td width="15%" align="right" valign="top" class="summary">
204 <span class="summary-type">&nbsp;</span>
205 </td><td class="summary">
206 <a name="_Win32Opener"></a><span class="summary-name">_Win32Opener</span> = <code title="None">None</code>
207 </td>
208 </tr>
Joe Gregorio66212032012-06-14 09:10:14 -0400209<tr>
210 <td width="15%" align="right" valign="top" class="summary">
211 <span class="summary-type">&nbsp;</span>
212 </td><td class="summary">
213 <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'oauth2client'"><code class="variable-quote">'</code><code class="variable-string">oauth2client</code><code class="variable-quote">'</code></code>
214 </td>
215 </tr>
216</table>
217<!-- ==================== NAVIGATION BAR ==================== -->
218<table class="navbar" border="0" width="100%" cellpadding="0"
219 bgcolor="#a0c0ff" cellspacing="0">
220 <tr valign="middle">
221
222 <!-- Tree link -->
223 <th>&nbsp;&nbsp;&nbsp;<a
224 href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
225
226 <!-- Index link -->
227 <th>&nbsp;&nbsp;&nbsp;<a
228 href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
229
230 <!-- Help link -->
231 <th>&nbsp;&nbsp;&nbsp;<a
232 href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
233
234 <th class="navbar" width="100%"></th>
235 </tr>
236</table>
237<table border="0" cellpadding="0" cellspacing="0" width="100%%">
238 <tr>
239 <td align="left" class="footer">
Joe Gregorio0cd347a2012-08-30 08:22:27 -0400240 Generated by Epydoc 3.0.1 on Thu Aug 30 07:12:42 2012
Joe Gregorio66212032012-06-14 09:10:14 -0400241 </td>
242 <td align="right" class="footer">
243 <a target="mainFrame" href="http://epydoc.sourceforge.net"
244 >http://epydoc.sourceforge.net</a>
245 </td>
246 </tr>
247</table>
248
249<script type="text/javascript">
250 <!--
251 // Private objects are initially displayed (because if
252 // javascript is turned off then we want them to be
253 // visible); but by default, we want to hide them. So hide
254 // them unless we have a cookie that says to show them.
255 checkCookie();
256 // -->
257</script>
258</body>
259</html>