CNAS取数仪器端升级
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

1807 satır
89KB

  1. <?xml version="1.0"?>
  2. <doc>
  3. <assembly>
  4. <name>DiscUtils.Streams</name>
  5. </assembly>
  6. <members>
  7. <member name="T:DiscUtils.Streams.AligningStream">
  8. <summary>
  9. Aligns I/O to a given block size.
  10. </summary>
  11. <remarks>Uses the read-modify-write pattern to align I/O.</remarks>
  12. </member>
  13. <member name="T:DiscUtils.Streams.BlockCacheSettings">
  14. <summary>
  15. Settings controlling BlockCache instances.
  16. </summary>
  17. </member>
  18. <member name="M:DiscUtils.Streams.BlockCacheSettings.#ctor">
  19. <summary>
  20. Initializes a new instance of the BlockCacheSettings class.
  21. </summary>
  22. </member>
  23. <member name="M:DiscUtils.Streams.BlockCacheSettings.#ctor(DiscUtils.Streams.BlockCacheSettings)">
  24. <summary>
  25. Initializes a new instance of the BlockCacheSettings class.
  26. </summary>
  27. <param name="settings">The cache settings.</param>
  28. </member>
  29. <member name="P:DiscUtils.Streams.BlockCacheSettings.BlockSize">
  30. <summary>
  31. Gets or sets the size (in bytes) of each cached block.
  32. </summary>
  33. </member>
  34. <member name="P:DiscUtils.Streams.BlockCacheSettings.LargeReadSize">
  35. <summary>
  36. Gets or sets the maximum read size that will be cached.
  37. </summary>
  38. <remarks>Large reads are not cached, on the assumption they will not
  39. be repeated. This setting controls what is considered 'large'.
  40. Any read that is more than this many bytes will not be cached.</remarks>
  41. </member>
  42. <member name="P:DiscUtils.Streams.BlockCacheSettings.OptimumReadSize">
  43. <summary>
  44. Gets or sets the optimum size of a read to the wrapped stream.
  45. </summary>
  46. <remarks>This value must be a multiple of BlockSize.</remarks>
  47. </member>
  48. <member name="P:DiscUtils.Streams.BlockCacheSettings.ReadCacheSize">
  49. <summary>
  50. Gets or sets the size (in bytes) of the read cache.
  51. </summary>
  52. </member>
  53. <member name="T:DiscUtils.Streams.BlockCacheStatistics">
  54. <summary>
  55. Statistical information about the effectiveness of a BlockCache instance.
  56. </summary>
  57. </member>
  58. <member name="P:DiscUtils.Streams.BlockCacheStatistics.FreeReadBlocks">
  59. <summary>
  60. Gets the number of free blocks in the read cache.
  61. </summary>
  62. </member>
  63. <member name="P:DiscUtils.Streams.BlockCacheStatistics.LargeReadsIn">
  64. <summary>
  65. Gets the number of requested 'large' reads, as defined by the LargeReadSize setting.
  66. </summary>
  67. </member>
  68. <member name="P:DiscUtils.Streams.BlockCacheStatistics.ReadCacheHits">
  69. <summary>
  70. Gets the number of times a read request was serviced (in part or whole) from the cache.
  71. </summary>
  72. </member>
  73. <member name="P:DiscUtils.Streams.BlockCacheStatistics.ReadCacheMisses">
  74. <summary>
  75. Gets the number of time a read request was serviced (in part or whole) from the wrapped stream.
  76. </summary>
  77. </member>
  78. <member name="P:DiscUtils.Streams.BlockCacheStatistics.TotalReadsIn">
  79. <summary>
  80. Gets the total number of requested reads.
  81. </summary>
  82. </member>
  83. <member name="P:DiscUtils.Streams.BlockCacheStatistics.TotalReadsOut">
  84. <summary>
  85. Gets the total number of reads passed on by the cache.
  86. </summary>
  87. </member>
  88. <member name="P:DiscUtils.Streams.BlockCacheStatistics.TotalWritesIn">
  89. <summary>
  90. Gets the total number of requested writes.
  91. </summary>
  92. </member>
  93. <member name="P:DiscUtils.Streams.BlockCacheStatistics.UnalignedReadsIn">
  94. <summary>
  95. Gets the number of requested unaligned reads.
  96. </summary>
  97. <remarks>Unaligned reads are reads where the read doesn't start on a multiple of
  98. the block size.</remarks>
  99. </member>
  100. <member name="P:DiscUtils.Streams.BlockCacheStatistics.UnalignedWritesIn">
  101. <summary>
  102. Gets the number of requested unaligned writes.
  103. </summary>
  104. <remarks>Unaligned writes are writes where the write doesn't start on a multiple of
  105. the block size.</remarks>
  106. </member>
  107. <member name="T:DiscUtils.Streams.BlockCacheStream">
  108. <summary>
  109. A stream implementing a block-oriented read cache.
  110. </summary>
  111. </member>
  112. <member name="M:DiscUtils.Streams.BlockCacheStream.#ctor(DiscUtils.Streams.SparseStream,DiscUtils.Streams.Ownership)">
  113. <summary>
  114. Initializes a new instance of the BlockCacheStream class.
  115. </summary>
  116. <param name="toWrap">The stream to wrap.</param>
  117. <param name="ownership">Whether to assume ownership of <c>toWrap</c>.</param>
  118. </member>
  119. <member name="M:DiscUtils.Streams.BlockCacheStream.#ctor(DiscUtils.Streams.SparseStream,DiscUtils.Streams.Ownership,DiscUtils.Streams.BlockCacheSettings)">
  120. <summary>
  121. Initializes a new instance of the BlockCacheStream class.
  122. </summary>
  123. <param name="toWrap">The stream to wrap.</param>
  124. <param name="ownership">Whether to assume ownership of <c>toWrap</c>.</param>
  125. <param name="settings">The cache settings.</param>
  126. </member>
  127. <member name="P:DiscUtils.Streams.BlockCacheStream.CanRead">
  128. <summary>
  129. Gets an indication as to whether the stream can be read.
  130. </summary>
  131. </member>
  132. <member name="P:DiscUtils.Streams.BlockCacheStream.CanSeek">
  133. <summary>
  134. Gets an indication as to whether the stream position can be changed.
  135. </summary>
  136. </member>
  137. <member name="P:DiscUtils.Streams.BlockCacheStream.CanWrite">
  138. <summary>
  139. Gets an indication as to whether the stream can be written to.
  140. </summary>
  141. </member>
  142. <member name="P:DiscUtils.Streams.BlockCacheStream.Extents">
  143. <summary>
  144. Gets the parts of the stream that are stored.
  145. </summary>
  146. <remarks>This may be an empty enumeration if all bytes are zero.</remarks>
  147. </member>
  148. <member name="P:DiscUtils.Streams.BlockCacheStream.Length">
  149. <summary>
  150. Gets the length of the stream.
  151. </summary>
  152. </member>
  153. <member name="P:DiscUtils.Streams.BlockCacheStream.Position">
  154. <summary>
  155. Gets and sets the current stream position.
  156. </summary>
  157. </member>
  158. <member name="P:DiscUtils.Streams.BlockCacheStream.Statistics">
  159. <summary>
  160. Gets the performance statistics for this instance.
  161. </summary>
  162. </member>
  163. <member name="M:DiscUtils.Streams.BlockCacheStream.GetExtentsInRange(System.Int64,System.Int64)">
  164. <summary>
  165. Gets the parts of a stream that are stored, within a specified range.
  166. </summary>
  167. <param name="start">The offset of the first byte of interest.</param>
  168. <param name="count">The number of bytes of interest.</param>
  169. <returns>An enumeration of stream extents, indicating stored bytes.</returns>
  170. </member>
  171. <member name="M:DiscUtils.Streams.BlockCacheStream.Read(System.Byte[],System.Int32,System.Int32)">
  172. <summary>
  173. Reads data from the stream.
  174. </summary>
  175. <param name="buffer">The buffer to fill.</param>
  176. <param name="offset">The buffer offset to start from.</param>
  177. <param name="count">The number of bytes to read.</param>
  178. <returns>The number of bytes read.</returns>
  179. </member>
  180. <member name="M:DiscUtils.Streams.BlockCacheStream.Flush">
  181. <summary>
  182. Flushes the stream.
  183. </summary>
  184. </member>
  185. <member name="M:DiscUtils.Streams.BlockCacheStream.Seek(System.Int64,System.IO.SeekOrigin)">
  186. <summary>
  187. Moves the stream position.
  188. </summary>
  189. <param name="offset">The origin-relative location.</param>
  190. <param name="origin">The base location.</param>
  191. <returns>The new absolute stream position.</returns>
  192. </member>
  193. <member name="M:DiscUtils.Streams.BlockCacheStream.SetLength(System.Int64)">
  194. <summary>
  195. Sets the length of the stream.
  196. </summary>
  197. <param name="value">The new length.</param>
  198. </member>
  199. <member name="M:DiscUtils.Streams.BlockCacheStream.Write(System.Byte[],System.Int32,System.Int32)">
  200. <summary>
  201. Writes data to the stream at the current location.
  202. </summary>
  203. <param name="buffer">The data to write.</param>
  204. <param name="offset">The first byte to write from buffer.</param>
  205. <param name="count">The number of bytes to write.</param>
  206. </member>
  207. <member name="M:DiscUtils.Streams.BlockCacheStream.Dispose(System.Boolean)">
  208. <summary>
  209. Disposes of this instance, freeing up associated resources.
  210. </summary>
  211. <param name="disposing"><c>true</c> if invoked from <c>Dispose</c>, else <c>false</c>.</param>
  212. </member>
  213. <member name="T:DiscUtils.Streams.Buffer">
  214. <summary>
  215. Abstract base class for implementations of IBuffer.
  216. </summary>
  217. </member>
  218. <member name="P:DiscUtils.Streams.Buffer.CanRead">
  219. <summary>
  220. Gets a value indicating whether this buffer can be read.
  221. </summary>
  222. </member>
  223. <member name="P:DiscUtils.Streams.Buffer.CanWrite">
  224. <summary>
  225. Gets a value indicating whether this buffer can be modified.
  226. </summary>
  227. </member>
  228. <member name="P:DiscUtils.Streams.Buffer.Capacity">
  229. <summary>
  230. Gets the current capacity of the buffer, in bytes.
  231. </summary>
  232. </member>
  233. <member name="P:DiscUtils.Streams.Buffer.Extents">
  234. <summary>
  235. Gets the parts of the stream that are stored.
  236. </summary>
  237. <remarks>This may be an empty enumeration if all bytes are zero.</remarks>
  238. </member>
  239. <member name="M:DiscUtils.Streams.Buffer.Read(System.Int64,System.Byte[],System.Int32,System.Int32)">
  240. <summary>
  241. Reads from the buffer into a byte array.
  242. </summary>
  243. <param name="pos">The offset within the buffer to start reading.</param>
  244. <param name="buffer">The destination byte array.</param>
  245. <param name="offset">The start offset within the destination buffer.</param>
  246. <param name="count">The number of bytes to read.</param>
  247. <returns>The actual number of bytes read.</returns>
  248. </member>
  249. <member name="M:DiscUtils.Streams.Buffer.Write(System.Int64,System.Byte[],System.Int32,System.Int32)">
  250. <summary>
  251. Writes a byte array into the buffer.
  252. </summary>
  253. <param name="pos">The start offset within the buffer.</param>
  254. <param name="buffer">The source byte array.</param>
  255. <param name="offset">The start offset within the source byte array.</param>
  256. <param name="count">The number of bytes to write.</param>
  257. </member>
  258. <member name="M:DiscUtils.Streams.Buffer.Clear(System.Int64,System.Int32)">
  259. <summary>
  260. Clears bytes from the buffer.
  261. </summary>
  262. <param name="pos">The start offset within the buffer.</param>
  263. <param name="count">The number of bytes to clear.</param>
  264. <remarks>
  265. <para>Logically equivalent to writing <c>count</c> null/zero bytes to the buffer, some
  266. implementations determine that some (or all) of the range indicated is not actually
  267. stored. There is no direct, automatic, correspondence to clearing bytes and them
  268. not being represented as an 'extent' - for example, the implementation of the underlying
  269. stream may not permit fine-grained extent storage.</para>
  270. <para>It is always safe to call this method to 'zero-out' a section of a buffer, regardless of
  271. the underlying buffer implementation.</para>
  272. </remarks>
  273. </member>
  274. <member name="M:DiscUtils.Streams.Buffer.Flush">
  275. <summary>
  276. Flushes all data to the underlying storage.
  277. </summary>
  278. <remarks>The default behaviour, implemented by this class, is to take no action.</remarks>
  279. </member>
  280. <member name="M:DiscUtils.Streams.Buffer.SetCapacity(System.Int64)">
  281. <summary>
  282. Sets the capacity of the buffer, truncating if appropriate.
  283. </summary>
  284. <param name="value">The desired capacity of the buffer.</param>
  285. </member>
  286. <member name="M:DiscUtils.Streams.Buffer.GetExtentsInRange(System.Int64,System.Int64)">
  287. <summary>
  288. Gets the parts of a buffer that are stored, within a specified range.
  289. </summary>
  290. <param name="start">The offset of the first byte of interest.</param>
  291. <param name="count">The number of bytes of interest.</param>
  292. <returns>An enumeration of stream extents, indicating stored bytes.</returns>
  293. </member>
  294. <member name="T:DiscUtils.Streams.BufferStream">
  295. <summary>
  296. Converts a Buffer into a Stream.
  297. </summary>
  298. </member>
  299. <member name="M:DiscUtils.Streams.BufferStream.#ctor(DiscUtils.Streams.IBuffer,System.IO.FileAccess)">
  300. <summary>
  301. Initializes a new instance of the BufferStream class.
  302. </summary>
  303. <param name="buffer">The buffer to use.</param>
  304. <param name="access">The access permitted to clients.</param>
  305. </member>
  306. <member name="P:DiscUtils.Streams.BufferStream.CanRead">
  307. <summary>
  308. Gets an indication of whether read access is permitted.
  309. </summary>
  310. </member>
  311. <member name="P:DiscUtils.Streams.BufferStream.CanSeek">
  312. <summary>
  313. Gets an indication of whether seeking is permitted.
  314. </summary>
  315. </member>
  316. <member name="P:DiscUtils.Streams.BufferStream.CanWrite">
  317. <summary>
  318. Gets an indication of whether write access is permitted.
  319. </summary>
  320. </member>
  321. <member name="P:DiscUtils.Streams.BufferStream.Extents">
  322. <summary>
  323. Gets the stored extents within the sparse stream.
  324. </summary>
  325. </member>
  326. <member name="P:DiscUtils.Streams.BufferStream.Length">
  327. <summary>
  328. Gets the length of the stream (the capacity of the underlying buffer).
  329. </summary>
  330. </member>
  331. <member name="P:DiscUtils.Streams.BufferStream.Position">
  332. <summary>
  333. Gets and sets the current position within the stream.
  334. </summary>
  335. </member>
  336. <member name="M:DiscUtils.Streams.BufferStream.Flush">
  337. <summary>
  338. Flushes all data to the underlying storage.
  339. </summary>
  340. </member>
  341. <member name="M:DiscUtils.Streams.BufferStream.Read(System.Byte[],System.Int32,System.Int32)">
  342. <summary>
  343. Reads a number of bytes from the stream.
  344. </summary>
  345. <param name="buffer">The destination buffer.</param>
  346. <param name="offset">The start offset within the destination buffer.</param>
  347. <param name="count">The number of bytes to read.</param>
  348. <returns>The number of bytes read.</returns>
  349. </member>
  350. <member name="M:DiscUtils.Streams.BufferStream.Seek(System.Int64,System.IO.SeekOrigin)">
  351. <summary>
  352. Changes the current stream position.
  353. </summary>
  354. <param name="offset">The origin-relative stream position.</param>
  355. <param name="origin">The origin for the stream position.</param>
  356. <returns>The new stream position.</returns>
  357. </member>
  358. <member name="M:DiscUtils.Streams.BufferStream.SetLength(System.Int64)">
  359. <summary>
  360. Sets the length of the stream (the underlying buffer's capacity).
  361. </summary>
  362. <param name="value">The new length of the stream.</param>
  363. </member>
  364. <member name="M:DiscUtils.Streams.BufferStream.Write(System.Byte[],System.Int32,System.Int32)">
  365. <summary>
  366. Writes a buffer to the stream.
  367. </summary>
  368. <param name="buffer">The buffer to write.</param>
  369. <param name="offset">The starting offset within buffer.</param>
  370. <param name="count">The number of bytes to write.</param>
  371. </member>
  372. <member name="M:DiscUtils.Streams.BufferStream.Clear(System.Int32)">
  373. <summary>
  374. Clears bytes from the stream.
  375. </summary>
  376. <param name="count">The number of bytes (from the current position) to clear.</param>
  377. <remarks>
  378. <para>Logically equivalent to writing <c>count</c> null/zero bytes to the stream, some
  379. implementations determine that some (or all) of the range indicated is not actually
  380. stored. There is no direct, automatic, correspondence to clearing bytes and them
  381. not being represented as an 'extent' - for example, the implementation of the underlying
  382. stream may not permit fine-grained extent storage.</para>
  383. <para>It is always safe to call this method to 'zero-out' a section of a stream, regardless of
  384. the underlying stream implementation.</para>
  385. </remarks>
  386. </member>
  387. <member name="M:DiscUtils.Streams.BufferStream.GetExtentsInRange(System.Int64,System.Int64)">
  388. <summary>
  389. Gets the parts of a stream that are stored, within a specified range.
  390. </summary>
  391. <param name="start">The offset of the first byte of interest.</param>
  392. <param name="count">The number of bytes of interest.</param>
  393. <returns>An enumeration of stream extents, indicating stored bytes.</returns>
  394. </member>
  395. <member name="T:DiscUtils.Streams.IBuffer">
  396. <summary>
  397. Interface shared by all buffers.
  398. </summary>
  399. <remarks>
  400. Buffers are very similar to streams, except the buffer has no notion of
  401. 'current position'. All I/O operations instead specify the position, as
  402. needed. Buffers also support sparse behaviour.
  403. </remarks>
  404. </member>
  405. <member name="P:DiscUtils.Streams.IBuffer.CanRead">
  406. <summary>
  407. Gets a value indicating whether this buffer can be read.
  408. </summary>
  409. </member>
  410. <member name="P:DiscUtils.Streams.IBuffer.CanWrite">
  411. <summary>
  412. Gets a value indicating whether this buffer can be modified.
  413. </summary>
  414. </member>
  415. <member name="P:DiscUtils.Streams.IBuffer.Capacity">
  416. <summary>
  417. Gets the current capacity of the buffer, in bytes.
  418. </summary>
  419. </member>
  420. <member name="P:DiscUtils.Streams.IBuffer.Extents">
  421. <summary>
  422. Gets the parts of the buffer that are stored.
  423. </summary>
  424. <remarks>This may be an empty enumeration if all bytes are zero.</remarks>
  425. </member>
  426. <member name="M:DiscUtils.Streams.IBuffer.Read(System.Int64,System.Byte[],System.Int32,System.Int32)">
  427. <summary>
  428. Reads from the buffer into a byte array.
  429. </summary>
  430. <param name="pos">The offset within the buffer to start reading.</param>
  431. <param name="buffer">The destination byte array.</param>
  432. <param name="offset">The start offset within the destination buffer.</param>
  433. <param name="count">The number of bytes to read.</param>
  434. <returns>The actual number of bytes read.</returns>
  435. </member>
  436. <member name="M:DiscUtils.Streams.IBuffer.Write(System.Int64,System.Byte[],System.Int32,System.Int32)">
  437. <summary>
  438. Writes a byte array into the buffer.
  439. </summary>
  440. <param name="pos">The start offset within the buffer.</param>
  441. <param name="buffer">The source byte array.</param>
  442. <param name="offset">The start offset within the source byte array.</param>
  443. <param name="count">The number of bytes to write.</param>
  444. </member>
  445. <member name="M:DiscUtils.Streams.IBuffer.Clear(System.Int64,System.Int32)">
  446. <summary>
  447. Clears bytes from the buffer.
  448. </summary>
  449. <param name="pos">The start offset within the buffer.</param>
  450. <param name="count">The number of bytes to clear.</param>
  451. <remarks>
  452. <para>Logically equivalent to writing <c>count</c> null/zero bytes to the buffer, some
  453. implementations determine that some (or all) of the range indicated is not actually
  454. stored. There is no direct, automatic, correspondence to clearing bytes and them
  455. not being represented as an 'extent' - for example, the implementation of the underlying
  456. stream may not permit fine-grained extent storage.</para>
  457. <para>It is always safe to call this method to 'zero-out' a section of a buffer, regardless of
  458. the underlying buffer implementation.</para>
  459. </remarks>
  460. </member>
  461. <member name="M:DiscUtils.Streams.IBuffer.Flush">
  462. <summary>
  463. Flushes all data to the underlying storage.
  464. </summary>
  465. </member>
  466. <member name="M:DiscUtils.Streams.IBuffer.SetCapacity(System.Int64)">
  467. <summary>
  468. Sets the capacity of the buffer, truncating if appropriate.
  469. </summary>
  470. <param name="value">The desired capacity of the buffer.</param>
  471. </member>
  472. <member name="M:DiscUtils.Streams.IBuffer.GetExtentsInRange(System.Int64,System.Int64)">
  473. <summary>
  474. Gets the parts of a buffer that are stored, within a specified range.
  475. </summary>
  476. <param name="start">The offset of the first byte of interest.</param>
  477. <param name="count">The number of bytes of interest.</param>
  478. <returns>An enumeration of stream extents, indicating stored bytes.</returns>
  479. </member>
  480. <member name="T:DiscUtils.Streams.SubBuffer">
  481. <summary>
  482. Class representing a portion of an existing buffer.
  483. </summary>
  484. </member>
  485. <member name="M:DiscUtils.Streams.SubBuffer.#ctor(DiscUtils.Streams.IBuffer,System.Int64,System.Int64)">
  486. <summary>
  487. Initializes a new instance of the SubBuffer class.
  488. </summary>
  489. <param name="parent">The parent buffer.</param>
  490. <param name="first">The first byte in <paramref name="parent"/> represented by this sub-buffer.</param>
  491. <param name="length">The number of bytes of <paramref name="parent"/> represented by this sub-buffer.</param>
  492. </member>
  493. <member name="P:DiscUtils.Streams.SubBuffer.CanRead">
  494. <summary>
  495. Can this buffer be read.
  496. </summary>
  497. </member>
  498. <member name="P:DiscUtils.Streams.SubBuffer.CanWrite">
  499. <summary>
  500. Can this buffer be modified.
  501. </summary>
  502. </member>
  503. <member name="P:DiscUtils.Streams.SubBuffer.Capacity">
  504. <summary>
  505. Gets the current capacity of the buffer, in bytes.
  506. </summary>
  507. </member>
  508. <member name="P:DiscUtils.Streams.SubBuffer.Extents">
  509. <summary>
  510. Gets the parts of the buffer that are stored.
  511. </summary>
  512. <remarks>This may be an empty enumeration if all bytes are zero.</remarks>
  513. </member>
  514. <member name="M:DiscUtils.Streams.SubBuffer.Flush">
  515. <summary>
  516. Flushes all data to the underlying storage.
  517. </summary>
  518. </member>
  519. <member name="M:DiscUtils.Streams.SubBuffer.Read(System.Int64,System.Byte[],System.Int32,System.Int32)">
  520. <summary>
  521. Reads from the buffer into a byte array.
  522. </summary>
  523. <param name="pos">The offset within the buffer to start reading.</param>
  524. <param name="buffer">The destination byte array.</param>
  525. <param name="offset">The start offset within the destination buffer.</param>
  526. <param name="count">The number of bytes to read.</param>
  527. <returns>The actual number of bytes read.</returns>
  528. </member>
  529. <member name="M:DiscUtils.Streams.SubBuffer.Write(System.Int64,System.Byte[],System.Int32,System.Int32)">
  530. <summary>
  531. Writes a byte array into the buffer.
  532. </summary>
  533. <param name="pos">The start offset within the buffer.</param>
  534. <param name="buffer">The source byte array.</param>
  535. <param name="offset">The start offset within the source byte array.</param>
  536. <param name="count">The number of bytes to write.</param>
  537. </member>
  538. <member name="M:DiscUtils.Streams.SubBuffer.SetCapacity(System.Int64)">
  539. <summary>
  540. Sets the capacity of the buffer, truncating if appropriate.
  541. </summary>
  542. <param name="value">The desired capacity of the buffer.</param>
  543. </member>
  544. <member name="M:DiscUtils.Streams.SubBuffer.GetExtentsInRange(System.Int64,System.Int64)">
  545. <summary>
  546. Gets the parts of a buffer that are stored, within a specified range.
  547. </summary>
  548. <param name="start">The offset of the first byte of interest.</param>
  549. <param name="count">The number of bytes of interest.</param>
  550. <returns>An enumeration of stream extents, indicating stored bytes.</returns>
  551. </member>
  552. <member name="P:DiscUtils.Streams.BuilderExtent.StreamExtents">
  553. <summary>
  554. Gets the parts of the stream that are stored.
  555. </summary>
  556. <remarks>This may be an empty enumeration if all bytes are zero.</remarks>
  557. </member>
  558. <member name="T:DiscUtils.Streams.StreamBuilder">
  559. <summary>
  560. Base class for objects that can dynamically construct a stream.
  561. </summary>
  562. </member>
  563. <member name="M:DiscUtils.Streams.StreamBuilder.Build">
  564. <summary>
  565. Builds a new stream.
  566. </summary>
  567. <returns>The stream created by the StreamBuilder instance.</returns>
  568. </member>
  569. <member name="M:DiscUtils.Streams.StreamBuilder.Build(System.IO.Stream)">
  570. <summary>
  571. Writes the stream contents to an existing stream.
  572. </summary>
  573. <param name="output">The stream to write to.</param>
  574. </member>
  575. <member name="M:DiscUtils.Streams.StreamBuilder.Build(System.String)">
  576. <summary>
  577. Writes the stream contents to a file.
  578. </summary>
  579. <param name="outputFile">The file to write to.</param>
  580. </member>
  581. <member name="T:DiscUtils.Streams.CircularStream">
  582. <summary>
  583. Represents a stream that is circular, so reads and writes off the end of the stream wrap.
  584. </summary>
  585. </member>
  586. <member name="T:DiscUtils.Streams.ConcatStream">
  587. <summary>
  588. The concatenation of multiple streams (read-only, for now).
  589. </summary>
  590. </member>
  591. <member name="T:DiscUtils.Streams.IByteArraySerializable">
  592. <summary>
  593. Common interface for reading structures to/from byte arrays.
  594. </summary>
  595. </member>
  596. <member name="P:DiscUtils.Streams.IByteArraySerializable.Size">
  597. <summary>
  598. Gets the total number of bytes the structure occupies.
  599. </summary>
  600. </member>
  601. <member name="M:DiscUtils.Streams.IByteArraySerializable.ReadFrom(System.Byte[],System.Int32)">
  602. <summary>
  603. Reads the structure from a byte array.
  604. </summary>
  605. <param name="buffer">The buffer to read from.</param>
  606. <param name="offset">The buffer offset to start reading from.</param>
  607. <returns>The number of bytes read.</returns>
  608. </member>
  609. <member name="M:DiscUtils.Streams.IByteArraySerializable.WriteTo(System.Byte[],System.Int32)">
  610. <summary>
  611. Writes a structure to a byte array.
  612. </summary>
  613. <param name="buffer">The buffer to write to.</param>
  614. <param name="offset">The buffer offset to start writing at.</param>
  615. </member>
  616. <member name="T:DiscUtils.Streams.LengthWrappingStream">
  617. <summary>
  618. Represents a stream with a specified length
  619. </summary>
  620. <remarks>
  621. since the wrapped stream may not support <see cref="P:System.IO.Stream.Position"/>
  622. there is no validation of the specified length
  623. </remarks>
  624. </member>
  625. <member name="T:DiscUtils.Streams.MappedStream">
  626. <summary>
  627. Base class for streams that are essentially a mapping onto a parent stream.
  628. </summary>
  629. <remarks>
  630. This class provides access to the mapping underlying the stream, enabling
  631. callers to convert a byte range in this stream into one or more ranges in
  632. the parent stream.
  633. </remarks>
  634. </member>
  635. <member name="M:DiscUtils.Streams.MappedStream.FromStream(System.IO.Stream,DiscUtils.Streams.Ownership)">
  636. <summary>
  637. Converts any stream into a non-linear stream.
  638. </summary>
  639. <param name="stream">The stream to convert.</param>
  640. <param name="takeOwnership"><c>true</c> to have the new stream dispose the wrapped
  641. stream when it is disposed.</param>
  642. <returns>A sparse stream.</returns>
  643. <remarks>The wrapped stream is assumed to be a linear stream (such that any byte range
  644. maps directly onto the parent stream).</remarks>
  645. </member>
  646. <member name="M:DiscUtils.Streams.MappedStream.FromStream(System.IO.Stream,DiscUtils.Streams.Ownership,System.Collections.Generic.IEnumerable{DiscUtils.Streams.StreamExtent})">
  647. <summary>
  648. Converts any stream into a non-linear stream.
  649. </summary>
  650. <param name="stream">The stream to convert.</param>
  651. <param name="takeOwnership"><c>true</c> to have the new stream dispose the wrapped
  652. stream when it is disposed.</param>
  653. <param name="extents">The set of extents actually stored in <c>stream</c>.</param>
  654. <returns>A sparse stream.</returns>
  655. <remarks>The wrapped stream is assumed to be a linear stream (such that any byte range
  656. maps directly onto the parent stream).</remarks>
  657. </member>
  658. <member name="M:DiscUtils.Streams.MappedStream.MapContent(System.Int64,System.Int64)">
  659. <summary>
  660. Maps a logical range down to storage locations.
  661. </summary>
  662. <param name="start">The first logical range to map.</param>
  663. <param name="length">The length of the range to map.</param>
  664. <returns>One or more stream extents specifying the storage locations that correspond
  665. to the identified logical extent range.</returns>
  666. <remarks>
  667. <para>As far as possible, the stream extents are returned in logical disk order -
  668. however, due to the nature of non-linear streams, not all of the range may actually
  669. be stored, or some or all of the range may be compressed - thus reading the
  670. returned stream extents is not equivalent to reading the logical disk range.</para>
  671. </remarks>
  672. </member>
  673. <member name="T:DiscUtils.Streams.PositionWrappingStream">
  674. <summary>
  675. Stream wrapper to allow forward only seeking on not seekable streams
  676. </summary>
  677. </member>
  678. <member name="T:DiscUtils.Streams.PumpProgressEventArgs">
  679. <summary>
  680. Event arguments indicating progress on pumping a stream.
  681. </summary>
  682. </member>
  683. <member name="P:DiscUtils.Streams.PumpProgressEventArgs.BytesRead">
  684. <summary>
  685. Gets or sets the number of bytes read from <c>InputStream</c>.
  686. </summary>
  687. </member>
  688. <member name="P:DiscUtils.Streams.PumpProgressEventArgs.BytesWritten">
  689. <summary>
  690. Gets or sets the number of bytes written to <c>OutputStream</c>.
  691. </summary>
  692. </member>
  693. <member name="P:DiscUtils.Streams.PumpProgressEventArgs.DestinationPosition">
  694. <summary>
  695. Gets or sets the absolute position in <c>OutputStream</c>.
  696. </summary>
  697. </member>
  698. <member name="P:DiscUtils.Streams.PumpProgressEventArgs.SourcePosition">
  699. <summary>
  700. Gets or sets the absolute position in <c>InputStream</c>.
  701. </summary>
  702. </member>
  703. <member name="T:DiscUtils.Streams.DataReader">
  704. <summary>
  705. Base class for reading binary data from a stream.
  706. </summary>
  707. </member>
  708. <member name="T:DiscUtils.Streams.LittleEndianDataReader">
  709. <summary>
  710. Class for reading little-endian data from a stream.
  711. </summary>
  712. </member>
  713. <member name="T:DiscUtils.Streams.SnapshotStream">
  714. <summary>
  715. A wrapper stream that enables you to take a snapshot, pushing changes into a side buffer.
  716. </summary>
  717. <remarks>Once a snapshot is taken, you can discard subsequent changes or merge them back
  718. into the wrapped stream.</remarks>
  719. </member>
  720. <member name="F:DiscUtils.Streams.SnapshotStream._diffExtents">
  721. <summary>
  722. Records which byte ranges in diffStream hold changes.
  723. </summary>
  724. <remarks>Can't use _diffStream's own tracking because that's based on it's
  725. internal block size, not on the _actual_ bytes stored.</remarks>
  726. </member>
  727. <member name="F:DiscUtils.Streams.SnapshotStream._diffStream">
  728. <summary>
  729. Captures changes to the base stream (when enabled).
  730. </summary>
  731. </member>
  732. <member name="F:DiscUtils.Streams.SnapshotStream._frozen">
  733. <summary>
  734. Indicates that no writes should be permitted.
  735. </summary>
  736. </member>
  737. <member name="F:DiscUtils.Streams.SnapshotStream._savedPosition">
  738. <summary>
  739. The saved stream position (if the diffStream is active).
  740. </summary>
  741. </member>
  742. <member name="M:DiscUtils.Streams.SnapshotStream.#ctor(System.IO.Stream,DiscUtils.Streams.Ownership)">
  743. <summary>
  744. Initializes a new instance of the SnapshotStream class.
  745. </summary>
  746. <param name="baseStream">The stream to wrap.</param>
  747. <param name="owns">Indicates if this stream should control the lifetime of baseStream.</param>
  748. </member>
  749. <member name="P:DiscUtils.Streams.SnapshotStream.CanRead">
  750. <summary>
  751. Gets an indication as to whether the stream can be read.
  752. </summary>
  753. </member>
  754. <member name="P:DiscUtils.Streams.SnapshotStream.CanSeek">
  755. <summary>
  756. Gets an indication as to whether the stream position can be changed.
  757. </summary>
  758. </member>
  759. <member name="P:DiscUtils.Streams.SnapshotStream.CanWrite">
  760. <summary>
  761. Gets an indication as to whether the stream can be written to.
  762. </summary>
  763. <remarks>This property is orthogonal to Freezing/Thawing, it's
  764. perfectly possible for a stream to be frozen and this method
  765. return <c>true</c>.</remarks>
  766. </member>
  767. <member name="P:DiscUtils.Streams.SnapshotStream.Extents">
  768. <summary>
  769. Returns an enumeration over the parts of the stream that contain real data.
  770. </summary>
  771. </member>
  772. <member name="P:DiscUtils.Streams.SnapshotStream.Length">
  773. <summary>
  774. Gets the length of the stream.
  775. </summary>
  776. </member>
  777. <member name="P:DiscUtils.Streams.SnapshotStream.Position">
  778. <summary>
  779. Gets and sets the current stream position.
  780. </summary>
  781. </member>
  782. <member name="M:DiscUtils.Streams.SnapshotStream.Freeze">
  783. <summary>
  784. Prevents any write operations to the stream.
  785. </summary>
  786. <remarks>Useful to prevent changes whilst inspecting the stream.</remarks>
  787. </member>
  788. <member name="M:DiscUtils.Streams.SnapshotStream.Thaw">
  789. <summary>
  790. Re-permits write operations to the stream.
  791. </summary>
  792. </member>
  793. <member name="M:DiscUtils.Streams.SnapshotStream.Snapshot">
  794. <summary>
  795. Takes a snapshot of the current stream contents.
  796. </summary>
  797. </member>
  798. <member name="M:DiscUtils.Streams.SnapshotStream.RevertToSnapshot">
  799. <summary>
  800. Reverts to a previous snapshot, discarding any changes made to the stream.
  801. </summary>
  802. </member>
  803. <member name="M:DiscUtils.Streams.SnapshotStream.ForgetSnapshot">
  804. <summary>
  805. Discards the snapshot any changes made after the snapshot was taken are kept.
  806. </summary>
  807. </member>
  808. <member name="M:DiscUtils.Streams.SnapshotStream.Flush">
  809. <summary>
  810. Flushes the stream.
  811. </summary>
  812. </member>
  813. <member name="M:DiscUtils.Streams.SnapshotStream.Read(System.Byte[],System.Int32,System.Int32)">
  814. <summary>
  815. Reads data from the stream.
  816. </summary>
  817. <param name="buffer">The buffer to fill.</param>
  818. <param name="offset">The buffer offset to start from.</param>
  819. <param name="count">The number of bytes to read.</param>
  820. <returns>The number of bytes read.</returns>
  821. </member>
  822. <member name="M:DiscUtils.Streams.SnapshotStream.Seek(System.Int64,System.IO.SeekOrigin)">
  823. <summary>
  824. Moves the stream position.
  825. </summary>
  826. <param name="offset">The origin-relative location.</param>
  827. <param name="origin">The base location.</param>
  828. <returns>The new absolute stream position.</returns>
  829. </member>
  830. <member name="M:DiscUtils.Streams.SnapshotStream.SetLength(System.Int64)">
  831. <summary>
  832. Sets the length of the stream.
  833. </summary>
  834. <param name="value">The new length.</param>
  835. </member>
  836. <member name="M:DiscUtils.Streams.SnapshotStream.Write(System.Byte[],System.Int32,System.Int32)">
  837. <summary>
  838. Writes data to the stream at the current location.
  839. </summary>
  840. <param name="buffer">The data to write.</param>
  841. <param name="offset">The first byte to write from buffer.</param>
  842. <param name="count">The number of bytes to write.</param>
  843. </member>
  844. <member name="M:DiscUtils.Streams.SnapshotStream.Dispose(System.Boolean)">
  845. <summary>
  846. Disposes of this instance.
  847. </summary>
  848. <param name="disposing"><c>true</c> if called from Dispose(), else <c>false</c>.</param>
  849. </member>
  850. <member name="T:DiscUtils.Streams.SparseMemoryBuffer">
  851. <summary>
  852. A sparse in-memory buffer.
  853. </summary>
  854. <remarks>This class is useful for storing large sparse buffers in memory, unused
  855. chunks of the buffer are not stored (assumed to be zero).</remarks>
  856. </member>
  857. <member name="M:DiscUtils.Streams.SparseMemoryBuffer.#ctor(System.Int32)">
  858. <summary>
  859. Initializes a new instance of the SparseMemoryBuffer class.
  860. </summary>
  861. <param name="chunkSize">The size of each allocation chunk.</param>
  862. </member>
  863. <member name="P:DiscUtils.Streams.SparseMemoryBuffer.AllocatedChunks">
  864. <summary>
  865. Gets the (sorted) list of allocated chunks, as chunk indexes.
  866. </summary>
  867. <returns>An enumeration of chunk indexes.</returns>
  868. <remarks>This method returns chunks as an index rather than absolute stream position.
  869. For example, if ChunkSize is 16KB, and the first 32KB of the buffer is actually stored,
  870. this method will return 0 and 1. This indicates the first and second chunks are stored.</remarks>
  871. </member>
  872. <member name="P:DiscUtils.Streams.SparseMemoryBuffer.CanRead">
  873. <summary>
  874. Indicates this stream can be read (always <c>true</c>).
  875. </summary>
  876. </member>
  877. <member name="P:DiscUtils.Streams.SparseMemoryBuffer.CanWrite">
  878. <summary>
  879. Indicates this stream can be written (always <c>true</c>).
  880. </summary>
  881. </member>
  882. <member name="P:DiscUtils.Streams.SparseMemoryBuffer.Capacity">
  883. <summary>
  884. Gets the current capacity of the sparse buffer (number of logical bytes stored).
  885. </summary>
  886. </member>
  887. <member name="P:DiscUtils.Streams.SparseMemoryBuffer.ChunkSize">
  888. <summary>
  889. Gets the size of each allocation chunk.
  890. </summary>
  891. </member>
  892. <member name="P:DiscUtils.Streams.SparseMemoryBuffer.Item(System.Int64)">
  893. <summary>
  894. Accesses this memory buffer as an infinite byte array.
  895. </summary>
  896. <param name="pos">The buffer position to read.</param>
  897. <returns>The byte stored at this position (or Zero if not explicitly stored).</returns>
  898. </member>
  899. <member name="M:DiscUtils.Streams.SparseMemoryBuffer.Read(System.Int64,System.Byte[],System.Int32,System.Int32)">
  900. <summary>
  901. Reads a section of the sparse buffer into a byte array.
  902. </summary>
  903. <param name="pos">The offset within the sparse buffer to start reading.</param>
  904. <param name="buffer">The destination byte array.</param>
  905. <param name="offset">The start offset within the destination buffer.</param>
  906. <param name="count">The number of bytes to read.</param>
  907. <returns>The actual number of bytes read.</returns>
  908. </member>
  909. <member name="M:DiscUtils.Streams.SparseMemoryBuffer.Write(System.Int64,System.Byte[],System.Int32,System.Int32)">
  910. <summary>
  911. Writes a byte array into the sparse buffer.
  912. </summary>
  913. <param name="pos">The start offset within the sparse buffer.</param>
  914. <param name="buffer">The source byte array.</param>
  915. <param name="offset">The start offset within the source byte array.</param>
  916. <param name="count">The number of bytes to write.</param>
  917. </member>
  918. <member name="M:DiscUtils.Streams.SparseMemoryBuffer.Clear(System.Int64,System.Int32)">
  919. <summary>
  920. Clears bytes from the buffer.
  921. </summary>
  922. <param name="pos">The start offset within the buffer.</param>
  923. <param name="count">The number of bytes to clear.</param>
  924. </member>
  925. <member name="M:DiscUtils.Streams.SparseMemoryBuffer.SetCapacity(System.Int64)">
  926. <summary>
  927. Sets the capacity of the sparse buffer, truncating if appropriate.
  928. </summary>
  929. <param name="value">The desired capacity of the buffer.</param>
  930. <remarks>This method does not allocate any chunks, it merely records the logical
  931. capacity of the sparse buffer. Writes beyond the specified capacity will increase
  932. the capacity.</remarks>
  933. </member>
  934. <member name="M:DiscUtils.Streams.SparseMemoryBuffer.GetExtentsInRange(System.Int64,System.Int64)">
  935. <summary>
  936. Gets the parts of a buffer that are stored, within a specified range.
  937. </summary>
  938. <param name="start">The offset of the first byte of interest.</param>
  939. <param name="count">The number of bytes of interest.</param>
  940. <returns>An enumeration of stream extents, indicating stored bytes.</returns>
  941. </member>
  942. <member name="T:DiscUtils.Streams.SparseMemoryStream">
  943. <summary>
  944. Provides a sparse equivalent to MemoryStream.
  945. </summary>
  946. </member>
  947. <member name="M:DiscUtils.Streams.SparseMemoryStream.#ctor">
  948. <summary>
  949. Initializes a new instance of the SparseMemoryStream class.
  950. </summary>
  951. <remarks>The created instance permits read and write access.</remarks>
  952. </member>
  953. <member name="M:DiscUtils.Streams.SparseMemoryStream.#ctor(DiscUtils.Streams.SparseMemoryBuffer,System.IO.FileAccess)">
  954. <summary>
  955. Initializes a new instance of the SparseMemoryStream class.
  956. </summary>
  957. <param name="buffer">The buffer to use.</param>
  958. <param name="access">The access permitted to clients.</param>
  959. </member>
  960. <member name="T:DiscUtils.Streams.SparseStream">
  961. <summary>
  962. Represents a sparse stream.
  963. </summary>
  964. <remarks>A sparse stream is a logically contiguous stream where some parts of the stream
  965. aren't stored. The unstored parts are implicitly zero-byte ranges.</remarks>
  966. </member>
  967. <member name="P:DiscUtils.Streams.SparseStream.Extents">
  968. <summary>
  969. Gets the parts of the stream that are stored.
  970. </summary>
  971. <remarks>This may be an empty enumeration if all bytes are zero.</remarks>
  972. </member>
  973. <member name="M:DiscUtils.Streams.SparseStream.FromStream(System.IO.Stream,DiscUtils.Streams.Ownership)">
  974. <summary>
  975. Converts any stream into a sparse stream.
  976. </summary>
  977. <param name="stream">The stream to convert.</param>
  978. <param name="takeOwnership"><c>true</c> to have the new stream dispose the wrapped
  979. stream when it is disposed.</param>
  980. <returns>A sparse stream.</returns>
  981. <remarks>The returned stream has the entire wrapped stream as a
  982. single extent.</remarks>
  983. </member>
  984. <member name="M:DiscUtils.Streams.SparseStream.FromStream(System.IO.Stream,DiscUtils.Streams.Ownership,System.Collections.Generic.IEnumerable{DiscUtils.Streams.StreamExtent})">
  985. <summary>
  986. Converts any stream into a sparse stream.
  987. </summary>
  988. <param name="stream">The stream to convert.</param>
  989. <param name="takeOwnership"><c>true</c> to have the new stream dispose the wrapped
  990. stream when it is disposed.</param>
  991. <param name="extents">The set of extents actually stored in <c>stream</c>.</param>
  992. <returns>A sparse stream.</returns>
  993. <remarks>The returned stream has the entire wrapped stream as a
  994. single extent.</remarks>
  995. </member>
  996. <member name="M:DiscUtils.Streams.SparseStream.Pump(System.IO.Stream,System.IO.Stream)">
  997. <summary>
  998. Efficiently pumps data from a sparse stream to another stream.
  999. </summary>
  1000. <param name="inStream">The sparse stream to pump from.</param>
  1001. <param name="outStream">The stream to pump to.</param>
  1002. <remarks><paramref name="outStream"/> must support seeking.</remarks>
  1003. </member>
  1004. <member name="M:DiscUtils.Streams.SparseStream.Pump(System.IO.Stream,System.IO.Stream,System.Int32)">
  1005. <summary>
  1006. Efficiently pumps data from a sparse stream to another stream.
  1007. </summary>
  1008. <param name="inStream">The stream to pump from.</param>
  1009. <param name="outStream">The stream to pump to.</param>
  1010. <param name="chunkSize">The smallest sequence of zero bytes that will be skipped when writing to <paramref name="outStream"/>.</param>
  1011. <remarks><paramref name="outStream"/> must support seeking.</remarks>
  1012. </member>
  1013. <member name="M:DiscUtils.Streams.SparseStream.ReadOnly(DiscUtils.Streams.SparseStream,DiscUtils.Streams.Ownership)">
  1014. <summary>
  1015. Wraps a sparse stream in a read-only wrapper, preventing modification.
  1016. </summary>
  1017. <param name="toWrap">The stream to make read-only.</param>
  1018. <param name="ownership">Whether to transfer responsibility for calling Dispose on <c>toWrap</c>.</param>
  1019. <returns>The read-only stream.</returns>
  1020. </member>
  1021. <member name="M:DiscUtils.Streams.SparseStream.Clear(System.Int32)">
  1022. <summary>
  1023. Clears bytes from the stream.
  1024. </summary>
  1025. <param name="count">The number of bytes (from the current position) to clear.</param>
  1026. <remarks>
  1027. <para>Logically equivalent to writing <c>count</c> null/zero bytes to the stream, some
  1028. implementations determine that some (or all) of the range indicated is not actually
  1029. stored. There is no direct, automatic, correspondence to clearing bytes and them
  1030. not being represented as an 'extent' - for example, the implementation of the underlying
  1031. stream may not permit fine-grained extent storage.</para>
  1032. <para>It is always safe to call this method to 'zero-out' a section of a stream, regardless of
  1033. the underlying stream implementation.</para>
  1034. </remarks>
  1035. </member>
  1036. <member name="M:DiscUtils.Streams.SparseStream.GetExtentsInRange(System.Int64,System.Int64)">
  1037. <summary>
  1038. Gets the parts of a stream that are stored, within a specified range.
  1039. </summary>
  1040. <param name="start">The offset of the first byte of interest.</param>
  1041. <param name="count">The number of bytes of interest.</param>
  1042. <returns>An enumeration of stream extents, indicating stored bytes.</returns>
  1043. </member>
  1044. <member name="T:DiscUtils.Streams.StreamBuffer">
  1045. <summary>
  1046. Converts a Stream into an IBuffer instance.
  1047. </summary>
  1048. </member>
  1049. <member name="M:DiscUtils.Streams.StreamBuffer.#ctor(System.IO.Stream,DiscUtils.Streams.Ownership)">
  1050. <summary>
  1051. Initializes a new instance of the StreamBuffer class.
  1052. </summary>
  1053. <param name="stream">The stream to wrap.</param>
  1054. <param name="ownership">Whether to dispose stream, when this object is disposed.</param>
  1055. </member>
  1056. <member name="P:DiscUtils.Streams.StreamBuffer.CanRead">
  1057. <summary>
  1058. Can this buffer be read.
  1059. </summary>
  1060. </member>
  1061. <member name="P:DiscUtils.Streams.StreamBuffer.CanWrite">
  1062. <summary>
  1063. Can this buffer be written.
  1064. </summary>
  1065. </member>
  1066. <member name="P:DiscUtils.Streams.StreamBuffer.Capacity">
  1067. <summary>
  1068. Gets the current capacity of the buffer, in bytes.
  1069. </summary>
  1070. </member>
  1071. <member name="P:DiscUtils.Streams.StreamBuffer.Extents">
  1072. <summary>
  1073. Gets the parts of the stream that are stored.
  1074. </summary>
  1075. <remarks>This may be an empty enumeration if all bytes are zero.</remarks>
  1076. </member>
  1077. <member name="M:DiscUtils.Streams.StreamBuffer.Dispose">
  1078. <summary>
  1079. Disposes of this instance.
  1080. </summary>
  1081. </member>
  1082. <member name="M:DiscUtils.Streams.StreamBuffer.Read(System.Int64,System.Byte[],System.Int32,System.Int32)">
  1083. <summary>
  1084. Reads from the buffer into a byte array.
  1085. </summary>
  1086. <param name="pos">The offset within the buffer to start reading.</param>
  1087. <param name="buffer">The destination byte array.</param>
  1088. <param name="offset">The start offset within the destination buffer.</param>
  1089. <param name="count">The number of bytes to read.</param>
  1090. <returns>The actual number of bytes read.</returns>
  1091. </member>
  1092. <member name="M:DiscUtils.Streams.StreamBuffer.Write(System.Int64,System.Byte[],System.Int32,System.Int32)">
  1093. <summary>
  1094. Writes a byte array into the buffer.
  1095. </summary>
  1096. <param name="pos">The start offset within the buffer.</param>
  1097. <param name="buffer">The source byte array.</param>
  1098. <param name="offset">The start offset within the source byte array.</param>
  1099. <param name="count">The number of bytes to write.</param>
  1100. </member>
  1101. <member name="M:DiscUtils.Streams.StreamBuffer.Flush">
  1102. <summary>
  1103. Flushes all data to the underlying storage.
  1104. </summary>
  1105. </member>
  1106. <member name="M:DiscUtils.Streams.StreamBuffer.SetCapacity(System.Int64)">
  1107. <summary>
  1108. Sets the capacity of the buffer, truncating if appropriate.
  1109. </summary>
  1110. <param name="value">The desired capacity of the buffer.</param>
  1111. </member>
  1112. <member name="M:DiscUtils.Streams.StreamBuffer.GetExtentsInRange(System.Int64,System.Int64)">
  1113. <summary>
  1114. Gets the parts of a buffer that are stored, within a specified range.
  1115. </summary>
  1116. <param name="start">The offset of the first byte of interest.</param>
  1117. <param name="count">The number of bytes of interest.</param>
  1118. <returns>An enumeration of stream extents, indicating stored bytes.</returns>
  1119. </member>
  1120. <member name="T:DiscUtils.Streams.StreamExtent">
  1121. <summary>
  1122. Represents a range of bytes in a stream.
  1123. </summary>
  1124. <remarks>This is normally used to represent regions of a SparseStream that
  1125. are actually stored in the underlying storage medium (rather than implied
  1126. zero bytes). Extents are stored as a zero-based byte offset (from the
  1127. beginning of the stream), and a byte length.</remarks>
  1128. </member>
  1129. <member name="M:DiscUtils.Streams.StreamExtent.#ctor(System.Int64,System.Int64)">
  1130. <summary>
  1131. Initializes a new instance of the StreamExtent class.
  1132. </summary>
  1133. <param name="start">The start of the extent.</param>
  1134. <param name="length">The length of the extent.</param>
  1135. </member>
  1136. <member name="P:DiscUtils.Streams.StreamExtent.Length">
  1137. <summary>
  1138. Gets the start of the extent (in bytes).
  1139. </summary>
  1140. </member>
  1141. <member name="P:DiscUtils.Streams.StreamExtent.Start">
  1142. <summary>
  1143. Gets the start of the extent (in bytes).
  1144. </summary>
  1145. </member>
  1146. <member name="M:DiscUtils.Streams.StreamExtent.CompareTo(DiscUtils.Streams.StreamExtent)">
  1147. <summary>
  1148. Compares this stream extent to another.
  1149. </summary>
  1150. <param name="other">The extent to compare.</param>
  1151. <returns>Value greater than zero if this extent starts after
  1152. <c>other</c>, zero if they start at the same position, else
  1153. a value less than zero.</returns>
  1154. </member>
  1155. <member name="M:DiscUtils.Streams.StreamExtent.Equals(DiscUtils.Streams.StreamExtent)">
  1156. <summary>
  1157. Indicates if this StreamExtent is equal to another.
  1158. </summary>
  1159. <param name="other">The extent to compare.</param>
  1160. <returns><c>true</c> if the extents are equal, else <c>false</c>.</returns>
  1161. </member>
  1162. <member name="M:DiscUtils.Streams.StreamExtent.Union(System.Collections.Generic.IEnumerable{DiscUtils.Streams.StreamExtent},DiscUtils.Streams.StreamExtent)">
  1163. <summary>
  1164. Calculates the union of a list of extents with another extent.
  1165. </summary>
  1166. <param name="extents">The list of extents.</param>
  1167. <param name="other">The other extent.</param>
  1168. <returns>The union of the extents.</returns>
  1169. </member>
  1170. <member name="M:DiscUtils.Streams.StreamExtent.Union(System.Collections.Generic.IEnumerable{DiscUtils.Streams.StreamExtent}[])">
  1171. <summary>
  1172. Calculates the union of the extents of multiple streams.
  1173. </summary>
  1174. <param name="streams">The stream extents.</param>
  1175. <returns>The union of the extents from multiple streams.</returns>
  1176. <remarks>A typical use of this method is to calculate the combined set of
  1177. stored extents from a number of overlayed sparse streams.</remarks>
  1178. </member>
  1179. <member name="M:DiscUtils.Streams.StreamExtent.Intersect(System.Collections.Generic.IEnumerable{DiscUtils.Streams.StreamExtent},DiscUtils.Streams.StreamExtent)">
  1180. <summary>
  1181. Calculates the intersection of the extents of a stream with another extent.
  1182. </summary>
  1183. <param name="extents">The stream extents.</param>
  1184. <param name="other">The extent to intersect.</param>
  1185. <returns>The intersection of the extents.</returns>
  1186. </member>
  1187. <member name="M:DiscUtils.Streams.StreamExtent.Intersect(System.Collections.Generic.IEnumerable{DiscUtils.Streams.StreamExtent}[])">
  1188. <summary>
  1189. Calculates the intersection of the extents of multiple streams.
  1190. </summary>
  1191. <param name="streams">The stream extents.</param>
  1192. <returns>The intersection of the extents from multiple streams.</returns>
  1193. <remarks>A typical use of this method is to calculate the extents in a
  1194. region of a stream..</remarks>
  1195. </member>
  1196. <member name="M:DiscUtils.Streams.StreamExtent.Subtract(System.Collections.Generic.IEnumerable{DiscUtils.Streams.StreamExtent},DiscUtils.Streams.StreamExtent)">
  1197. <summary>
  1198. Calculates the subtraction of the extents of a stream by another extent.
  1199. </summary>
  1200. <param name="extents">The stream extents.</param>
  1201. <param name="other">The extent to subtract.</param>
  1202. <returns>The subtraction of <c>other</c> from <c>extents</c>.</returns>
  1203. </member>
  1204. <member name="M:DiscUtils.Streams.StreamExtent.Subtract(System.Collections.Generic.IEnumerable{DiscUtils.Streams.StreamExtent},System.Collections.Generic.IEnumerable{DiscUtils.Streams.StreamExtent})">
  1205. <summary>
  1206. Calculates the subtraction of the extents of a stream by another stream.
  1207. </summary>
  1208. <param name="a">The stream extents to subtract from.</param>
  1209. <param name="b">The stream extents to subtract.</param>
  1210. <returns>The subtraction of the extents of b from a.</returns>
  1211. </member>
  1212. <member name="M:DiscUtils.Streams.StreamExtent.Invert(System.Collections.Generic.IEnumerable{DiscUtils.Streams.StreamExtent})">
  1213. <summary>
  1214. Calculates the inverse of the extents of a stream.
  1215. </summary>
  1216. <param name="extents">The stream extents to inverse.</param>
  1217. <returns>The inverted extents.</returns>
  1218. <remarks>
  1219. This method assumes a logical stream addressable from <c>0</c> to <c>long.MaxValue</c>, and is undefined
  1220. should any stream extent start at less than 0. To constrain the extents to a specific range, use the
  1221. <c>Intersect</c> method.
  1222. </remarks>
  1223. </member>
  1224. <member name="M:DiscUtils.Streams.StreamExtent.Offset(System.Collections.Generic.IEnumerable{DiscUtils.Streams.StreamExtent},System.Int64)">
  1225. <summary>
  1226. Offsets the extents of a stream.
  1227. </summary>
  1228. <param name="stream">The stream extents.</param>
  1229. <param name="delta">The amount to offset the extents by.</param>
  1230. <returns>The stream extents, offset by delta.</returns>
  1231. </member>
  1232. <member name="M:DiscUtils.Streams.StreamExtent.BlockCount(System.Collections.Generic.IEnumerable{DiscUtils.Streams.StreamExtent},System.Int64)">
  1233. <summary>
  1234. Returns the number of blocks containing stream data.
  1235. </summary>
  1236. <param name="stream">The stream extents.</param>
  1237. <param name="blockSize">The size of each block.</param>
  1238. <returns>The number of blocks containing stream data.</returns>
  1239. <remarks>This method logically divides the stream into blocks of a specified
  1240. size, then indicates how many of those blocks contain actual stream data.</remarks>
  1241. </member>
  1242. <member name="M:DiscUtils.Streams.StreamExtent.Blocks(System.Collections.Generic.IEnumerable{DiscUtils.Streams.StreamExtent},System.Int64)">
  1243. <summary>
  1244. Returns all of the blocks containing stream data.
  1245. </summary>
  1246. <param name="stream">The stream extents.</param>
  1247. <param name="blockSize">The size of each block.</param>
  1248. <returns>Ranges of blocks, as block indexes.</returns>
  1249. <remarks>This method logically divides the stream into blocks of a specified
  1250. size, then indicates ranges of blocks that contain stream data.</remarks>
  1251. </member>
  1252. <member name="M:DiscUtils.Streams.StreamExtent.op_Equality(DiscUtils.Streams.StreamExtent,DiscUtils.Streams.StreamExtent)">
  1253. <summary>
  1254. The equality operator.
  1255. </summary>
  1256. <param name="a">The first extent to compare.</param>
  1257. <param name="b">The second extent to compare.</param>
  1258. <returns>Whether the two extents are equal.</returns>
  1259. </member>
  1260. <member name="M:DiscUtils.Streams.StreamExtent.op_Inequality(DiscUtils.Streams.StreamExtent,DiscUtils.Streams.StreamExtent)">
  1261. <summary>
  1262. The inequality operator.
  1263. </summary>
  1264. <param name="a">The first extent to compare.</param>
  1265. <param name="b">The second extent to compare.</param>
  1266. <returns>Whether the two extents are different.</returns>
  1267. </member>
  1268. <member name="M:DiscUtils.Streams.StreamExtent.op_LessThan(DiscUtils.Streams.StreamExtent,DiscUtils.Streams.StreamExtent)">
  1269. <summary>
  1270. The less-than operator.
  1271. </summary>
  1272. <param name="a">The first extent to compare.</param>
  1273. <param name="b">The second extent to compare.</param>
  1274. <returns>Whether a is less than b.</returns>
  1275. </member>
  1276. <member name="M:DiscUtils.Streams.StreamExtent.op_GreaterThan(DiscUtils.Streams.StreamExtent,DiscUtils.Streams.StreamExtent)">
  1277. <summary>
  1278. The greater-than operator.
  1279. </summary>
  1280. <param name="a">The first extent to compare.</param>
  1281. <param name="b">The second extent to compare.</param>
  1282. <returns>Whether a is greater than b.</returns>
  1283. </member>
  1284. <member name="M:DiscUtils.Streams.StreamExtent.ToString">
  1285. <summary>
  1286. Returns a string representation of the extent as [start:+length].
  1287. </summary>
  1288. <returns>The string representation.</returns>
  1289. </member>
  1290. <member name="M:DiscUtils.Streams.StreamExtent.Equals(System.Object)">
  1291. <summary>
  1292. Indicates if this stream extent is equal to another object.
  1293. </summary>
  1294. <param name="obj">The object to test.</param>
  1295. <returns><c>true</c> if <c>obj</c> is equivalent, else <c>false</c>.</returns>
  1296. </member>
  1297. <member name="M:DiscUtils.Streams.StreamExtent.GetHashCode">
  1298. <summary>
  1299. Gets a hash code for this extent.
  1300. </summary>
  1301. <returns>The extent's hash code.</returns>
  1302. </member>
  1303. <member name="T:DiscUtils.Streams.StreamPump">
  1304. <summary>
  1305. Utility class for pumping the contents of one stream into another.
  1306. </summary>
  1307. <remarks>
  1308. This class is aware of sparse streams, and will avoid copying data that is not
  1309. valid in the source stream. This functionality should normally only be used
  1310. when the destination stream is known not to contain any existing data.
  1311. </remarks>
  1312. </member>
  1313. <member name="M:DiscUtils.Streams.StreamPump.#ctor">
  1314. <summary>
  1315. Initializes a new instance of the StreamPump class.
  1316. </summary>
  1317. </member>
  1318. <member name="M:DiscUtils.Streams.StreamPump.#ctor(System.IO.Stream,System.IO.Stream,System.Int32)">
  1319. <summary>
  1320. Initializes a new instance of the StreamPump class.
  1321. </summary>
  1322. <param name="inStream">The stream to read from.</param>
  1323. <param name="outStream">The stream to write to.</param>
  1324. <param name="sparseChunkSize">The size of each sparse chunk.</param>
  1325. </member>
  1326. <member name="P:DiscUtils.Streams.StreamPump.BufferSize">
  1327. <summary>
  1328. Gets or sets the amount of data to read at a time from <c>InputStream</c>.
  1329. </summary>
  1330. </member>
  1331. <member name="P:DiscUtils.Streams.StreamPump.BytesRead">
  1332. <summary>
  1333. Gets the number of bytes read from <c>InputStream</c>.
  1334. </summary>
  1335. </member>
  1336. <member name="P:DiscUtils.Streams.StreamPump.BytesWritten">
  1337. <summary>
  1338. Gets the number of bytes written to <c>OutputStream</c>.
  1339. </summary>
  1340. </member>
  1341. <member name="P:DiscUtils.Streams.StreamPump.InputStream">
  1342. <summary>
  1343. Gets or sets the stream that will be read from.
  1344. </summary>
  1345. </member>
  1346. <member name="P:DiscUtils.Streams.StreamPump.OutputStream">
  1347. <summary>
  1348. Gets or sets the stream that will be written to.
  1349. </summary>
  1350. </member>
  1351. <member name="P:DiscUtils.Streams.StreamPump.SparseChunkSize">
  1352. <summary>
  1353. Gets or sets, for sparse transfers, the size of each chunk.
  1354. </summary>
  1355. <remarks>
  1356. A chunk is transfered if any byte in the chunk is valid, otherwise it is not.
  1357. This value should normally be set to reflect the underlying storage granularity
  1358. of <c>OutputStream</c>.
  1359. </remarks>
  1360. </member>
  1361. <member name="P:DiscUtils.Streams.StreamPump.SparseCopy">
  1362. <summary>
  1363. Gets or sets a value indicating whether to enable the sparse copy behaviour (default true).
  1364. </summary>
  1365. </member>
  1366. <member name="E:DiscUtils.Streams.StreamPump.ProgressEvent">
  1367. <summary>
  1368. Event raised periodically through the pump operation.
  1369. </summary>
  1370. <remarks>
  1371. This event is signalled synchronously, so to avoid slowing the pumping activity
  1372. implementations should return quickly.
  1373. </remarks>
  1374. </member>
  1375. <member name="M:DiscUtils.Streams.StreamPump.Run">
  1376. <summary>
  1377. Performs the pump activity, blocking until complete.
  1378. </summary>
  1379. </member>
  1380. <member name="T:DiscUtils.Streams.ThreadSafeStream">
  1381. <summary>
  1382. Provides a thread-safe wrapping around a sparse stream.
  1383. </summary>
  1384. <remarks>
  1385. <para>Streams are inherently not thread-safe (because read/write is not atomic w.r.t. Position).
  1386. This method enables multiple 'views' of a stream to be created (each with their own Position), and ensures
  1387. only a single operation is executing on the wrapped stream at any time.</para>
  1388. <para>This example shows the pattern of use:</para>
  1389. <example>
  1390. <code>
  1391. SparseStream baseStream = ...;
  1392. ThreadSafeStream tss = new ThreadSafeStream(baseStream);
  1393. for(int i = 0; i &lt; 10; ++i)
  1394. {
  1395. SparseStream streamForThread = tss.OpenView();
  1396. }
  1397. </code>
  1398. </example>
  1399. <para>This results in 11 streams that can be used in different streams - <c>tss</c> and ten 'views' created from <c>tss</c>.</para>
  1400. <para>Note, the stream length cannot be changed.</para>
  1401. </remarks>
  1402. </member>
  1403. <member name="M:DiscUtils.Streams.ThreadSafeStream.#ctor(DiscUtils.Streams.SparseStream)">
  1404. <summary>
  1405. Initializes a new instance of the ThreadSafeStream class.
  1406. </summary>
  1407. <param name="toWrap">The stream to wrap.</param>
  1408. <remarks>Do not directly modify <c>toWrap</c> after wrapping it, unless the thread-safe views
  1409. will no longer be used.</remarks>
  1410. </member>
  1411. <member name="M:DiscUtils.Streams.ThreadSafeStream.#ctor(DiscUtils.Streams.SparseStream,DiscUtils.Streams.Ownership)">
  1412. <summary>
  1413. Initializes a new instance of the ThreadSafeStream class.
  1414. </summary>
  1415. <param name="toWrap">The stream to wrap.</param>
  1416. <param name="ownership">Whether to transfer ownership of <c>toWrap</c> to the new instance.</param>
  1417. <remarks>Do not directly modify <c>toWrap</c> after wrapping it, unless the thread-safe views
  1418. will no longer be used.</remarks>
  1419. </member>
  1420. <member name="P:DiscUtils.Streams.ThreadSafeStream.CanRead">
  1421. <summary>
  1422. Gets a value indicating if this stream supports reads.
  1423. </summary>
  1424. </member>
  1425. <member name="P:DiscUtils.Streams.ThreadSafeStream.CanSeek">
  1426. <summary>
  1427. Gets a value indicating if this stream supports seeking (always true).
  1428. </summary>
  1429. </member>
  1430. <member name="P:DiscUtils.Streams.ThreadSafeStream.CanWrite">
  1431. <summary>
  1432. Gets a value indicating if this stream supports writes (currently, always false).
  1433. </summary>
  1434. </member>
  1435. <member name="P:DiscUtils.Streams.ThreadSafeStream.Extents">
  1436. <summary>
  1437. Gets the parts of the stream that are stored.
  1438. </summary>
  1439. <remarks>This may be an empty enumeration if all bytes are zero.</remarks>
  1440. </member>
  1441. <member name="P:DiscUtils.Streams.ThreadSafeStream.Length">
  1442. <summary>
  1443. Gets the length of the stream.
  1444. </summary>
  1445. </member>
  1446. <member name="P:DiscUtils.Streams.ThreadSafeStream.Position">
  1447. <summary>
  1448. Gets the current stream position - each 'view' has it's own Position.
  1449. </summary>
  1450. </member>
  1451. <member name="M:DiscUtils.Streams.ThreadSafeStream.OpenView">
  1452. <summary>
  1453. Opens a new thread-safe view on the stream.
  1454. </summary>
  1455. <returns>The new view.</returns>
  1456. </member>
  1457. <member name="M:DiscUtils.Streams.ThreadSafeStream.GetExtentsInRange(System.Int64,System.Int64)">
  1458. <summary>
  1459. Gets the parts of a stream that are stored, within a specified range.
  1460. </summary>
  1461. <param name="start">The offset of the first byte of interest.</param>
  1462. <param name="count">The number of bytes of interest.</param>
  1463. <returns>An enumeration of stream extents, indicating stored bytes.</returns>
  1464. </member>
  1465. <member name="M:DiscUtils.Streams.ThreadSafeStream.Flush">
  1466. <summary>
  1467. Causes the stream to flush all changes.
  1468. </summary>
  1469. </member>
  1470. <member name="M:DiscUtils.Streams.ThreadSafeStream.Read(System.Byte[],System.Int32,System.Int32)">
  1471. <summary>
  1472. Reads data from the stream.
  1473. </summary>
  1474. <param name="buffer">The buffer to fill.</param>
  1475. <param name="offset">The first byte in buffer to fill.</param>
  1476. <param name="count">The requested number of bytes to read.</param>
  1477. <returns>The actual number of bytes read.</returns>
  1478. </member>
  1479. <member name="M:DiscUtils.Streams.ThreadSafeStream.Seek(System.Int64,System.IO.SeekOrigin)">
  1480. <summary>
  1481. Changes the current stream position (each view has it's own Position).
  1482. </summary>
  1483. <param name="offset">The relative location to move to.</param>
  1484. <param name="origin">The origin of the location.</param>
  1485. <returns>The new location as an absolute position.</returns>
  1486. </member>
  1487. <member name="M:DiscUtils.Streams.ThreadSafeStream.SetLength(System.Int64)">
  1488. <summary>
  1489. Sets the length of the stream (not supported).
  1490. </summary>
  1491. <param name="value">The new length.</param>
  1492. </member>
  1493. <member name="M:DiscUtils.Streams.ThreadSafeStream.Write(System.Byte[],System.Int32,System.Int32)">
  1494. <summary>
  1495. Writes data to the stream (not currently supported).
  1496. </summary>
  1497. <param name="buffer">The data to write.</param>
  1498. <param name="offset">The first byte to write.</param>
  1499. <param name="count">The number of bytes to write.</param>
  1500. </member>
  1501. <member name="M:DiscUtils.Streams.ThreadSafeStream.Dispose(System.Boolean)">
  1502. <summary>
  1503. Disposes of this instance, invalidating any remaining views.
  1504. </summary>
  1505. <param name="disposing"><c>true</c> if disposing, lese <c>false</c>.</param>
  1506. </member>
  1507. <member name="T:DiscUtils.Streams.BitCounter">
  1508. <summary>
  1509. Helper to count the number of bits set in a byte or byte[]
  1510. </summary>
  1511. </member>
  1512. <member name="M:DiscUtils.Streams.BitCounter.Count(System.Byte)">
  1513. <summary>
  1514. count the number of bits set in <paramref name="value"/>
  1515. </summary>
  1516. <returns>the number of bits set in <paramref name="value"/></returns>
  1517. </member>
  1518. <member name="M:DiscUtils.Streams.BitCounter.Count(System.Byte[],System.Int32,System.Int32)">
  1519. <summary>
  1520. count the number of bits set in each entry of <paramref name="values"/>
  1521. </summary>
  1522. <param name="values">the <see cref="T:System.Array"/> to process</param>
  1523. <param name="offset">the values offset to start from</param>
  1524. <param name="count">the number of bytes to count</param>
  1525. <returns></returns>
  1526. </member>
  1527. <member name="M:DiscUtils.Streams.EndianUtilities.StringToBytes(System.String,System.Byte[],System.Int32,System.Int32)">
  1528. <summary>
  1529. Primitive conversion from Unicode to ASCII that preserves special characters.
  1530. </summary>
  1531. <param name="value">The string to convert.</param>
  1532. <param name="dest">The buffer to fill.</param>
  1533. <param name="offset">The start of the string in the buffer.</param>
  1534. <param name="count">The number of characters to convert.</param>
  1535. <remarks>The built-in ASCIIEncoding converts characters of codepoint > 127 to ?,
  1536. this preserves those code points by removing the top 16 bits of each character.</remarks>
  1537. </member>
  1538. <member name="M:DiscUtils.Streams.EndianUtilities.BytesToString(System.Byte[],System.Int32,System.Int32)">
  1539. <summary>
  1540. Primitive conversion from ASCII to Unicode that preserves special characters.
  1541. </summary>
  1542. <param name="data">The data to convert.</param>
  1543. <param name="offset">The first byte to convert.</param>
  1544. <param name="count">The number of bytes to convert.</param>
  1545. <returns>The string.</returns>
  1546. <remarks>The built-in ASCIIEncoding converts characters of codepoint > 127 to ?,
  1547. this preserves those code points.</remarks>
  1548. </member>
  1549. <member name="M:DiscUtils.Streams.EndianUtilities.BytesToZString(System.Byte[],System.Int32,System.Int32)">
  1550. <summary>
  1551. Primitive conversion from ASCII to Unicode that stops at a null-terminator.
  1552. </summary>
  1553. <param name="data">The data to convert.</param>
  1554. <param name="offset">The first byte to convert.</param>
  1555. <param name="count">The number of bytes to convert.</param>
  1556. <returns>The string.</returns>
  1557. <remarks>The built-in ASCIIEncoding converts characters of codepoint > 127 to ?,
  1558. this preserves those code points.</remarks>
  1559. </member>
  1560. <member name="M:DiscUtils.Streams.MathUtilities.RoundUp(System.Int64,System.Int64)">
  1561. <summary>
  1562. Round up a value to a multiple of a unit size.
  1563. </summary>
  1564. <param name="value">The value to round up.</param>
  1565. <param name="unit">The unit (the returned value will be a multiple of this number).</param>
  1566. <returns>The rounded-up value.</returns>
  1567. </member>
  1568. <member name="M:DiscUtils.Streams.MathUtilities.RoundUp(System.Int32,System.Int32)">
  1569. <summary>
  1570. Round up a value to a multiple of a unit size.
  1571. </summary>
  1572. <param name="value">The value to round up.</param>
  1573. <param name="unit">The unit (the returned value will be a multiple of this number).</param>
  1574. <returns>The rounded-up value.</returns>
  1575. </member>
  1576. <member name="M:DiscUtils.Streams.MathUtilities.RoundDown(System.Int64,System.Int64)">
  1577. <summary>
  1578. Round down a value to a multiple of a unit size.
  1579. </summary>
  1580. <param name="value">The value to round down.</param>
  1581. <param name="unit">The unit (the returned value will be a multiple of this number).</param>
  1582. <returns>The rounded-down value.</returns>
  1583. </member>
  1584. <member name="M:DiscUtils.Streams.MathUtilities.Ceil(System.Int32,System.Int32)">
  1585. <summary>
  1586. Calculates the CEIL function.
  1587. </summary>
  1588. <param name="numerator">The value to divide.</param>
  1589. <param name="denominator">The value to divide by.</param>
  1590. <returns>The value of CEIL(numerator/denominator).</returns>
  1591. </member>
  1592. <member name="M:DiscUtils.Streams.MathUtilities.Ceil(System.UInt32,System.UInt32)">
  1593. <summary>
  1594. Calculates the CEIL function.
  1595. </summary>
  1596. <param name="numerator">The value to divide.</param>
  1597. <param name="denominator">The value to divide by.</param>
  1598. <returns>The value of CEIL(numerator/denominator).</returns>
  1599. </member>
  1600. <member name="M:DiscUtils.Streams.MathUtilities.Ceil(System.Int64,System.Int64)">
  1601. <summary>
  1602. Calculates the CEIL function.
  1603. </summary>
  1604. <param name="numerator">The value to divide.</param>
  1605. <param name="denominator">The value to divide by.</param>
  1606. <returns>The value of CEIL(numerator/denominator).</returns>
  1607. </member>
  1608. <member name="T:DiscUtils.Streams.Ownership">
  1609. <summary>
  1610. Enumeration used to indicate transfer of disposable objects.
  1611. </summary>
  1612. </member>
  1613. <member name="F:DiscUtils.Streams.Ownership.None">
  1614. <summary>
  1615. Indicates there is no transfer of ownership.
  1616. </summary>
  1617. </member>
  1618. <member name="F:DiscUtils.Streams.Ownership.Dispose">
  1619. <summary>
  1620. Indicates ownership of the stream is transfered, the owner should dispose of the stream when appropriate.
  1621. </summary>
  1622. </member>
  1623. <member name="T:DiscUtils.Streams.Range`2">
  1624. <summary>
  1625. Represents a range of values.
  1626. </summary>
  1627. <typeparam name="TOffset">The type of the offset element.</typeparam>
  1628. <typeparam name="TCount">The type of the size element.</typeparam>
  1629. </member>
  1630. <member name="M:DiscUtils.Streams.Range`2.#ctor(`0,`1)">
  1631. <summary>
  1632. Initializes a new instance of the Range class.
  1633. </summary>
  1634. <param name="offset">The offset (i.e. start) of the range.</param>
  1635. <param name="count">The size of the range.</param>
  1636. </member>
  1637. <member name="P:DiscUtils.Streams.Range`2.Count">
  1638. <summary>
  1639. Gets the size of the range.
  1640. </summary>
  1641. </member>
  1642. <member name="P:DiscUtils.Streams.Range`2.Offset">
  1643. <summary>
  1644. Gets the offset (i.e. start) of the range.
  1645. </summary>
  1646. </member>
  1647. <member name="M:DiscUtils.Streams.Range`2.Equals(DiscUtils.Streams.Range{`0,`1})">
  1648. <summary>
  1649. Compares this range to another.
  1650. </summary>
  1651. <param name="other">The range to compare.</param>
  1652. <returns><c>true</c> if the ranges are equivalent, else <c>false</c>.</returns>
  1653. </member>
  1654. <member name="M:DiscUtils.Streams.Range`2.Chunked``1(System.Collections.Generic.IEnumerable{DiscUtils.Streams.Range{``0,``0}},``0)">
  1655. <summary>
  1656. Merges sets of ranges into chunks.
  1657. </summary>
  1658. <param name="ranges">The ranges to merge.</param>
  1659. <param name="chunkSize">The size of each chunk.</param>
  1660. <returns>Ranges combined into larger chunks.</returns>
  1661. <typeparam name="T">The type of the offset and count in the ranges.</typeparam>
  1662. </member>
  1663. <member name="M:DiscUtils.Streams.Range`2.ToString">
  1664. <summary>
  1665. Returns a string representation of the extent as [start:+length].
  1666. </summary>
  1667. <returns>The string representation.</returns>
  1668. </member>
  1669. <member name="M:DiscUtils.Streams.StreamUtilities.AssertBufferParameters(System.Byte[],System.Int32,System.Int32)">
  1670. <summary>
  1671. Validates standard buffer, offset, count parameters to a method.
  1672. </summary>
  1673. <param name="buffer">The byte array to read from / write to.</param>
  1674. <param name="offset">The starting offset in <c>buffer</c>.</param>
  1675. <param name="count">The number of bytes to read / write.</param>
  1676. </member>
  1677. <member name="M:DiscUtils.Streams.StreamUtilities.ReadExact(System.IO.Stream,System.Byte[],System.Int32,System.Int32)">
  1678. <summary>
  1679. Read bytes until buffer filled or throw EndOfStreamException.
  1680. </summary>
  1681. <param name="stream">The stream to read.</param>
  1682. <param name="buffer">The buffer to populate.</param>
  1683. <param name="offset">Offset in the buffer to start.</param>
  1684. <param name="count">The number of bytes to read.</param>
  1685. </member>
  1686. <member name="M:DiscUtils.Streams.StreamUtilities.ReadExact(System.IO.Stream,System.Int32)">
  1687. <summary>
  1688. Read bytes until buffer filled or throw EndOfStreamException.
  1689. </summary>
  1690. <param name="stream">The stream to read.</param>
  1691. <param name="count">The number of bytes to read.</param>
  1692. <returns>The data read from the stream.</returns>
  1693. </member>
  1694. <member name="M:DiscUtils.Streams.StreamUtilities.ReadExact(DiscUtils.Streams.IBuffer,System.Int64,System.Byte[],System.Int32,System.Int32)">
  1695. <summary>
  1696. Read bytes until buffer filled or throw EndOfStreamException.
  1697. </summary>
  1698. <param name="buffer">The stream to read.</param>
  1699. <param name="pos">The position in buffer to read from.</param>
  1700. <param name="data">The buffer to populate.</param>
  1701. <param name="offset">Offset in the buffer to start.</param>
  1702. <param name="count">The number of bytes to read.</param>
  1703. </member>
  1704. <member name="M:DiscUtils.Streams.StreamUtilities.ReadExact(DiscUtils.Streams.IBuffer,System.Int64,System.Int32)">
  1705. <summary>
  1706. Read bytes until buffer filled or throw EndOfStreamException.
  1707. </summary>
  1708. <param name="buffer">The buffer to read.</param>
  1709. <param name="pos">The position in buffer to read from.</param>
  1710. <param name="count">The number of bytes to read.</param>
  1711. <returns>The data read from the stream.</returns>
  1712. </member>
  1713. <member name="M:DiscUtils.Streams.StreamUtilities.ReadMaximum(System.IO.Stream,System.Byte[],System.Int32,System.Int32)">
  1714. <summary>
  1715. Read bytes until buffer filled or EOF.
  1716. </summary>
  1717. <param name="stream">The stream to read.</param>
  1718. <param name="buffer">The buffer to populate.</param>
  1719. <param name="offset">Offset in the buffer to start.</param>
  1720. <param name="count">The number of bytes to read.</param>
  1721. <returns>The number of bytes actually read.</returns>
  1722. </member>
  1723. <member name="M:DiscUtils.Streams.StreamUtilities.ReadMaximum(DiscUtils.Streams.IBuffer,System.Int64,System.Byte[],System.Int32,System.Int32)">
  1724. <summary>
  1725. Read bytes until buffer filled or EOF.
  1726. </summary>
  1727. <param name="buffer">The stream to read.</param>
  1728. <param name="pos">The position in buffer to read from.</param>
  1729. <param name="data">The buffer to populate.</param>
  1730. <param name="offset">Offset in the buffer to start.</param>
  1731. <param name="count">The number of bytes to read.</param>
  1732. <returns>The number of bytes actually read.</returns>
  1733. </member>
  1734. <member name="M:DiscUtils.Streams.StreamUtilities.ReadAll(DiscUtils.Streams.IBuffer)">
  1735. <summary>
  1736. Read bytes until buffer filled or throw EndOfStreamException.
  1737. </summary>
  1738. <param name="buffer">The buffer to read.</param>
  1739. <returns>The data read from the stream.</returns>
  1740. </member>
  1741. <member name="M:DiscUtils.Streams.StreamUtilities.ReadSector(System.IO.Stream)">
  1742. <summary>
  1743. Reads a disk sector (512 bytes).
  1744. </summary>
  1745. <param name="stream">The stream to read.</param>
  1746. <returns>The sector data as a byte array.</returns>
  1747. </member>
  1748. <member name="M:DiscUtils.Streams.StreamUtilities.ReadStruct``1(System.IO.Stream)">
  1749. <summary>
  1750. Reads a structure from a stream.
  1751. </summary>
  1752. <typeparam name="T">The type of the structure.</typeparam>
  1753. <param name="stream">The stream to read.</param>
  1754. <returns>The structure.</returns>
  1755. </member>
  1756. <member name="M:DiscUtils.Streams.StreamUtilities.ReadStruct``1(System.IO.Stream,System.Int32)">
  1757. <summary>
  1758. Reads a structure from a stream.
  1759. </summary>
  1760. <typeparam name="T">The type of the structure.</typeparam>
  1761. <param name="stream">The stream to read.</param>
  1762. <param name="length">The number of bytes to read.</param>
  1763. <returns>The structure.</returns>
  1764. </member>
  1765. <member name="M:DiscUtils.Streams.StreamUtilities.WriteStruct``1(System.IO.Stream,``0)">
  1766. <summary>
  1767. Writes a structure to a stream.
  1768. </summary>
  1769. <typeparam name="T">The type of the structure.</typeparam>
  1770. <param name="stream">The stream to write to.</param>
  1771. <param name="obj">The structure to write.</param>
  1772. </member>
  1773. <member name="M:DiscUtils.Streams.StreamUtilities.PumpStreams(System.IO.Stream,System.IO.Stream)">
  1774. <summary>
  1775. Copies the contents of one stream to another.
  1776. </summary>
  1777. <param name="source">The stream to copy from.</param>
  1778. <param name="dest">The destination stream.</param>
  1779. <remarks>Copying starts at the current stream positions.</remarks>
  1780. </member>
  1781. <member name="T:DiscUtils.Streams.WrappingMappedStream`1">
  1782. <summary>
  1783. Base class for streams that wrap another stream.
  1784. </summary>
  1785. <typeparam name="T">The type of stream to wrap.</typeparam>
  1786. <remarks>
  1787. Provides the default implementation of methods &amp; properties, so
  1788. wrapping streams need only override the methods they need to intercept.
  1789. </remarks>
  1790. </member>
  1791. <member name="T:DiscUtils.Streams.WrappingStream">
  1792. <summary>
  1793. Base class for streams that wrap another stream.
  1794. </summary>
  1795. <remarks>
  1796. Provides the default implementation of methods &amp; properties, so
  1797. wrapping streams need only override the methods they need to intercept.
  1798. </remarks>
  1799. </member>
  1800. <member name="T:DiscUtils.Streams.ZeroStream">
  1801. <summary>
  1802. A stream that returns Zero's.
  1803. </summary>
  1804. </member>
  1805. </members>
  1806. </doc>