PageRenderTime 51ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/php/class.evstat.html

https://bitbucket.org/stillzhl/manuals
HTML | 359 lines | 301 code | 58 blank | 0 comment | 0 complexity | 6d923eaac31debb7720862ba6aa249c1 MD5 | raw file
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  5. <title>The EvStat class</title>
  6. </head>
  7. <body><div class="manualnavbar" style="text-align: center;">
  8. <div class="prev" style="text-align: left; float: left;"><a href="evsignal.set.html">EvSignal::set</a></div>
  9. <div class="next" style="text-align: right; float: right;"><a href="evstat.attr.html">EvStat::attr</a></div>
  10. <div class="up"><a href="book.ev.html">Ev</a></div>
  11. <div class="home"><a href="index.html">PHP Manual</a></div>
  12. </div><hr /><div id="class.evstat" class="reference">
  13. <h1 class="title">The EvStat class</h1>
  14. <div class="partintro"><p class="verinfo">(No version information available, might only be in SVN)</p>
  15. <div class="section" id="evstat.intro">
  16. <h2 class="title">简介</h2>
  17. <p class="para">
  18. <strong class="classname">EvStat</strong>
  19. monitors a file system path for attribute changes. It calls
  20. <em class="emphasis">stat()</em>
  21. on that path in regular intervals(or when the OS signals it changed) and
  22. sees if it changed compared to the last time, invoking the callback if it
  23. did.
  24. </p>
  25. <p class="para">
  26. The path does not need to exist: changing from &quot;path exists&quot; to &quot;path does
  27. not exist&quot; is a status change like any other. The condition &quot;path does not
  28. exist&quot; is signified by the
  29. <strong><code>&#039;nlink&#039;</code></strong>
  30. item being 0(returned by
  31. <span class="methodname"><a href="evstat.attr.html" class="methodname">EvStat::attr()</a></span>
  32. method).
  33. </p>
  34. <p class="para">
  35. The path must not end in a slash or contain special components such as
  36. <strong><code>&#039;.&#039;</code></strong>
  37. or
  38. <strong><code>..</code></strong>
  39. . The path should be absolute: if it is relative and the working directory
  40. changes, then the behaviour is undefined.
  41. </p>
  42. <p class="para">
  43. Since there is no portable change notification interface available, the
  44. portable implementation simply calls
  45. <em class="emphasis">stat()</em>
  46. regularly on the path to see if it changed somehow. For this case a
  47. recommended polling interval can be specified. If one specifies a polling
  48. interval of
  49. <strong><code>0.0 </code></strong>
  50. (highly recommended) then a suitable, unspecified default value will be
  51. used(which could be expected to be around 5 seconds, although this might
  52. change dynamically).
  53. <em class="emphasis">libev</em>
  54. will also impose a minimum interval which is currently around
  55. <strong><code>0.1</code></strong>
  56. , but thats usually overkill.
  57. </p>
  58. <p class="para">
  59. This watcher type is not meant for massive numbers of
  60. <strong class="classname">EvStat</strong>
  61. watchers, as even with OS-supported change notifications, this can be
  62. resource-intensive.
  63. </p>
  64. </div>
  65. <div class="section" id="evstat.synopsis">
  66. <h2 class="title">类摘要</h2>
  67. <div class="classsynopsis">
  68. <div class="ooclass">
  69. </div>
  70. <div class="classsynopsisinfo">
  71. <span class="ooclass">
  72. <strong class="classname">EvStat</strong>
  73. </span>
  74. <span class="ooclass">
  75. <span class="modifier">extends</span>
  76. <a href="class.evwatcher.html" class="classname">EvWatcher</a>
  77. </span>
  78. {</div>
  79. <div class="classsynopsisinfo classsynopsisinfo_comment">/* 属性 */</div>
  80. <div class="fieldsynopsis">
  81. <span class="modifier">public</span>
  82. <var class="varname"><a href="class.evstat.html#evstat.props.path">$<var class="varname">path</var></a></var>
  83. ;</div>
  84. <div class="fieldsynopsis">
  85. <span class="modifier">public</span>
  86. <var class="varname"><a href="class.evstat.html#evstat.props.interval">$<var class="varname">interval</var></a></var>
  87. ;</div>
  88. <div class="classsynopsisinfo classsynopsisinfo_comment">/* 继承的属性 */</div>
  89. <div class="fieldsynopsis">
  90. <span class="modifier">public</span>
  91. <var class="varname"><a href="class.evwatcher.html#evwatcher.props.is-active">$<var class="varname">is_active</var></a></var>
  92. ;</div>
  93. <div class="fieldsynopsis">
  94. <span class="modifier">public</span>
  95. <var class="varname"><a href="class.evwatcher.html#evwatcher.props.data">$<var class="varname">data</var></a></var>
  96. ;</div>
  97. <div class="fieldsynopsis">
  98. <span class="modifier">public</span>
  99. <var class="varname"><a href="class.evwatcher.html#evwatcher.props.is-pending">$<var class="varname">is_pending</var></a></var>
  100. ;</div>
  101. <div class="fieldsynopsis">
  102. <span class="modifier">public</span>
  103. <var class="varname"><a href="class.evwatcher.html#evwatcher.props.priority">$<var class="varname">priority</var></a></var>
  104. ;</div>
  105. <div class="classsynopsisinfo classsynopsisinfo_comment">/* 方法 */</div>
  106. <div class="methodsynopsis dc-description">
  107. <span class="modifier">public</span>
  108. <span class="type">array</span>
  109. <span class="methodname"><a href="evstat.attr.html" class="methodname">attr</a></span>
  110. ( <span class="methodparam">void</span>
  111. )</div>
  112. <div class="methodsynopsis dc-description">
  113. <span class="modifier">public</span>
  114. <span class="methodname"><a href="evstat.construct.html" class="methodname">__construct</a></span>
  115. ( <span class="methodparam">
  116. <span class="type">string</span>
  117. <code class="parameter">$path</code>
  118. </span>
  119. , <span class="methodparam">
  120. <span class="type">double</span>
  121. <code class="parameter">$interval</code>
  122. </span>
  123. , <span class="methodparam">
  124. <span class="type"><a href="language.types.callable.html" class="type callable">callable</a></span>
  125. <code class="parameter">$callback</code>
  126. </span>
  127. [, <span class="methodparam">
  128. <span class="type"><a href="language.pseudo-types.html#language.types.mixed" class="type mixed">mixed</a></span>
  129. <code class="parameter">$data</code>
  130. <span class="initializer"> = <strong><code>NULL</code></strong></span>
  131. </span>
  132. [, <span class="methodparam">
  133. <span class="type">int</span>
  134. <code class="parameter">$priority</code>
  135. <span class="initializer"> = 0</span>
  136. </span>
  137. ]] )</div>
  138. <div class="methodsynopsis dc-description">
  139. <span class="modifier">final</span>
  140. <span class="modifier">public</span>
  141. <span class="modifier">static</span>
  142. <span class="type">void</span>
  143. <span class="methodname"><a href="evstat.createstopped.html" class="methodname">createStopped</a></span>
  144. ( <span class="methodparam">
  145. <span class="type">string</span>
  146. <code class="parameter">$path</code>
  147. </span>
  148. , <span class="methodparam">
  149. <span class="type">double</span>
  150. <code class="parameter">$interval</code>
  151. </span>
  152. , <span class="methodparam">
  153. <span class="type"><a href="language.types.callable.html" class="type callable">callable</a></span>
  154. <code class="parameter">$callback</code>
  155. </span>
  156. [, <span class="methodparam">
  157. <span class="type"><a href="language.pseudo-types.html#language.types.mixed" class="type mixed">mixed</a></span>
  158. <code class="parameter">$data</code>
  159. <span class="initializer"> = <strong><code>NULL</code></strong></span>
  160. </span>
  161. [, <span class="methodparam">
  162. <span class="type">int</span>
  163. <code class="parameter">$priority</code>
  164. <span class="initializer"> = 0</span>
  165. </span>
  166. ]] )</div>
  167. <div class="methodsynopsis dc-description">
  168. <span class="modifier">public</span>
  169. <span class="type">void</span>
  170. <span class="methodname"><a href="evstat.prev.html" class="methodname">prev</a></span>
  171. ( <span class="methodparam">void</span>
  172. )</div>
  173. <div class="methodsynopsis dc-description">
  174. <span class="modifier">public</span>
  175. <span class="type">void</span>
  176. <span class="methodname"><a href="evstat.set.html" class="methodname">set</a></span>
  177. ( <span class="methodparam">
  178. <span class="type">string</span>
  179. <code class="parameter">$path</code>
  180. </span>
  181. , <span class="methodparam">
  182. <span class="type">double</span>
  183. <code class="parameter">$interval</code>
  184. </span>
  185. )</div>
  186. <div class="methodsynopsis dc-description">
  187. <span class="modifier">public</span>
  188. <span class="type">bool</span>
  189. <span class="methodname"><a href="evstat.stat.html" class="methodname">stat</a></span>
  190. ( <span class="methodparam">void</span>
  191. )</div>
  192. <div class="classsynopsisinfo classsynopsisinfo_comment">/* 继承的方法 */</div>
  193. <div class="methodsynopsis dc-description">
  194. <span class="modifier">public</span>
  195. <span class="type">int</span>
  196. <span class="methodname"><a href="evwatcher.clear.html" class="methodname">EvWatcher::clear</a></span>
  197. ( <span class="methodparam">void</span>
  198. )</div>
  199. <div class="methodsynopsis dc-description">
  200. <span class="modifier">abstract</span>
  201. <span class="modifier">public</span>
  202. <span class="methodname"><a href="evwatcher.construct.html" class="methodname">EvWatcher::__construct</a></span>
  203. ( <span class="methodparam">void</span>
  204. )</div>
  205. <div class="methodsynopsis dc-description">
  206. <span class="modifier">public</span>
  207. <span class="type">void</span>
  208. <span class="methodname"><a href="evwatcher.feed.html" class="methodname">EvWatcher::feed</a></span>
  209. ( <span class="methodparam">
  210. <span class="type">int</span>
  211. <code class="parameter">$revents</code>
  212. </span>
  213. )</div>
  214. <div class="methodsynopsis dc-description">
  215. <span class="modifier">public</span>
  216. <span class="type">EvLoop</span>
  217. <span class="methodname"><a href="evwatcher.getloop.html" class="methodname">EvWatcher::getLoop</a></span>
  218. ( <span class="methodparam">void</span>
  219. )</div>
  220. <div class="methodsynopsis dc-description">
  221. <span class="modifier">public</span>
  222. <span class="type">void</span>
  223. <span class="methodname"><a href="evwatcher.invoke.html" class="methodname">EvWatcher::invoke</a></span>
  224. ( <span class="methodparam">
  225. <span class="type">int</span>
  226. <code class="parameter">$revents</code>
  227. </span>
  228. )</div>
  229. <div class="methodsynopsis dc-description">
  230. <span class="modifier">public</span>
  231. <span class="type">bool</span>
  232. <span class="methodname"><a href="evwatcher.keepalive.html" class="methodname">EvWatcher::keepalive</a></span>
  233. ([ <span class="methodparam">
  234. <span class="type">bool</span>
  235. <code class="parameter">$value</code>
  236. </span>
  237. ] )</div>
  238. <div class="methodsynopsis dc-description">
  239. <span class="modifier">public</span>
  240. <span class="type">void</span>
  241. <span class="methodname"><a href="evwatcher.setcallback.html" class="methodname">EvWatcher::setCallback</a></span>
  242. ( <span class="methodparam">
  243. <span class="type"><a href="language.types.callable.html" class="type callable">callable</a></span>
  244. <code class="parameter">$callback</code>
  245. </span>
  246. )</div>
  247. <div class="methodsynopsis dc-description">
  248. <span class="modifier">public</span>
  249. <span class="type">void</span>
  250. <span class="methodname"><a href="evwatcher.start.html" class="methodname">EvWatcher::start</a></span>
  251. ( <span class="methodparam">void</span>
  252. )</div>
  253. <div class="methodsynopsis dc-description">
  254. <span class="modifier">public</span>
  255. <span class="type">void</span>
  256. <span class="methodname"><a href="evwatcher.stop.html" class="methodname">EvWatcher::stop</a></span>
  257. ( <span class="methodparam">void</span>
  258. )</div>
  259. }</div>
  260. </div>
  261. <div class="section" id="evstat.props">
  262. <h2 class="title">属性</h2>
  263. <dl>
  264. <dt id="evstat.props.interval">
  265. <span class="term">
  266. <var class="varname"><var class="varname">interval</var></var>
  267. </span>
  268. <dd>
  269. <p class="para">
  270. <em class="emphasis">Readonly</em>
  271. . Hint on how quickly a change is expected to be detected and should
  272. normally be specified as
  273. <strong><code>0.0</code></strong>
  274. to let
  275. <em class="emphasis">libev</em>
  276. choose a suitable value.
  277. </p>
  278. </dd>
  279. </dt>
  280. <dt id="evstat.props.path">
  281. <span class="term">
  282. <var class="varname"><var class="varname">path</var></var>
  283. </span>
  284. <dd>
  285. <p class="para">
  286. <em class="emphasis">Readonly</em>
  287. . The path to wait for status changes on.
  288. </p>
  289. </dd>
  290. </dt>
  291. </dl>
  292. </div>
  293. </div>
  294. <h2>Table of Contents</h2><ul class="chunklist chunklist_reference"><li><a href="evstat.attr.html">EvStat::attr</a> Returns the values most recently detected by Ev</li><li><a href="evstat.construct.html">EvStat::__construct</a> Constructs EvStat watcher object</li><li><a href="evstat.createstopped.html">EvStat::createStopped</a> Create a stopped EvStat watcher object</li><li><a href="evstat.prev.html">EvStat::prev</a> Returns the previous set of values returned by EvStat::attr</li><li><a href="evstat.set.html">EvStat::set</a> Configures the watcher</li><li><a href="evstat.stat.html">EvStat::stat</a> Initiates the stat call</li></ul>
  295. </div>
  296. <hr /><div class="manualnavbar" style="text-align: center;">
  297. <div class="prev" style="text-align: left; float: left;"><a href="evsignal.set.html">EvSignal::set</a></div>
  298. <div class="next" style="text-align: right; float: right;"><a href="evstat.attr.html">EvStat::attr</a></div>
  299. <div class="up"><a href="book.ev.html">Ev</a></div>
  300. <div class="home"><a href="index.html">PHP Manual</a></div>
  301. </div></body></html>