- 浏览: 160513 次
- 性别:
- 来自: 保山腾冲
文章分类
最新评论
-
TNTDoctor:
谢谢,标记一下,有空来看看
(转)Haskell与范畴论 -
t173625478:
文章一般般,不够透彻,以至于误解了很多函数式特性的由来和作用。 ...
(转)函数式编程另类指南 -
liyiwen007:
学习了!
很受益!
用AGG实现高质量图形输出(二) -
hqs7636:
感谢!!!!!!!
《learn to tango with D》译文 -
rocex:
多谢,刚好用到。
《learn to tango with D》译文
(提交后发觉内容不在了很多,故加了一个附件)
tango.io.Buffer (r4792)
License:
BSD style: see license.txt
Version:
Mar 2004: Initial release Dec 2006: Outback release
Authors:
Kris
缓冲器也可以通过应用一个迭代器被标记化(tokenized)。当你处理文字输入和/或内容比典型的转换器支持的更适合流动格式(fluid format)时,这是很方便的。迭代器记号被直接映射到缓冲器内容(切割),让他们在实践中非常有效。象其他缓冲器客户端一样,多重迭代器可以映射到一个公共的缓冲器并且被序列化访问。
缓冲器有时是内存模式(memory-only),在一个客户端已经消耗所有的内容使它没有什么事情可做的情况下。别的缓冲器被它们自己绑定到一个外部设备叫做管道(conduit)。在这种情况下,一个消费者最终会导致一个缓冲器通过它的关联管道重载(reload)并且前一个缓冲器内容会丢失。
类似的途径途径施加到填入一个缓冲器的客户端,借此所有的缓冲器内容在继续之前被冲刷到绑定的管道。另一个变体是存储映像(memory-mapped)缓冲器,借此缓冲器内容被直接映射到虚拟内存通过OS陈列。这可以作为一个内容的数组访问大文件。
直接的缓冲器操作典型地包括添加,如下面的例子:
1 2 3 4 5 6 7 |
// 创建一个小的缓冲器。 auto buf = new Buffer (256); auto foo = "to write some D"; // 直接添加一些文字到这个缓冲器。 buf.append ("now is the time for all good men ").append(foo); |
另外,你可以用一个格式器支添加缓冲器。
1 2 |
auto output = new TextOutput (new Buffer(256)); output.format ("now is the time for {} good men {}", 3, foo); |
一个slice()方法会返回缓冲器中的所有有效内容。你希望添加的超越规格界限(specified limit)时,使用GrowBuffer 代替。
一个普遍用法是与一个管道合在一起,如FileConduit(文件管道)。每一个管道为它的关联缓冲器陈列一个优先尺寸(preferred-size),在缓冲器构建期间使用:
1 2 |
auto file = new File ("name"); auto buf = new Buffer (file); |
不过,这通常被更高级的构造如通过流包装的构造隐藏。例如:
1
|
auto input = new DataInput (new File ("name"));
|
在结果流和文件间的确是一个缓冲器,但显式缓冲器构造通常产不必要的。
一个迭代器用类似方式构造,构造的地方,你提供给它一个输入流进行操作。在tango.io.stream包中,有各种迭代器可以使用,它们为utf8、utf16、utf32进行模板化。这个例子使用一个行迭代器(line-iterator)衍生到扫描的文本文件:
1 2 3 4 |
auto lines = new TextInput (new File ("name")); foreach (line; lines) Cout(line).newline; lines.close; |
对于Tango中的许多用途,缓冲器是很有用的,但有时要避开它们(当可能有更适当的途径时)。对于这样的情况,管道派生物(如File)支持基于数组的I/O,通过一对read()和write()方法。
参数:
conduit |
到缓冲器的管道。 |
备注:
参数:
stream |
一个输入流。 |
capacity |
渴望得到的缓冲器容积。 |
备注:
参数:
stream |
一个输出流。 |
capacity |
渴望得到的缓冲器容积。 |
备注:
参数:
capacity |
可用到的字节数。 |
备注:
参数:
data |
缓冲区内的支持数组 |
Remarks:
Params:
data |
缓冲器内的支持数组。 |
readable |
最初安排可读的字节数。 |
备注:
参数:
stream |
一个输入流。 |
size |
期望得到的缓冲器尺寸的提示。默认为管道定义的尺寸。 |
备注:
参数:
stream |
一个输出流。 |
size |
期望得到的缓冲器尺寸的提示。默认为管道定义的尺寸。 |
备注:
参数:
data |
缓冲器内部的支持数组。所有内容被认为是有效的。 |
返回:
缓冲器实例。
备注:
参数:
data |
缓冲器内部支持数组。 |
readable |
被认为有效的数据的字节数。 |
返回:
缓冲器实例。
备注:
返回:
缓冲器的一个void[]切片。
备注:
返回缓冲器的一个void[]切片,从当前位置直到有效内容的限度。内容留在缓冲器中为将来提取。
参数:
size |
要访问的字节数。 |
eat |
要不要消耗内容。 |
返回:
备注:
要注意的是切片不能比缓冲器的尺寸大——在你只是简单地想要复制的内容地方用 fill(void[])方法代替,或用conduit.read()直接从附加管道提取。也要注意如果你需要保留切片,在缓冲器被压缩或重构前对它使用.dup。
例子:
1 2 3 4 5 |
// 用一些内容创建一个缓冲器。 auto buffer = new Buffer ("hello world"); // 消耗一切未读内容。 auto slice = buffer.slice (buffer.readable); |
参数:
dst |
目的内容。 |
bytes |
dst的尺寸。 |
返回:
备注:
参数:
src |
到 _append 的内容。如果所有内容已经写就返回一个连锁引用,否则抛出一个IOException异常指出eof 或 eob。 |
备注:
参数:
src |
到 _append的内容。 |
length |
在 src 中的字节数。如果如果所有内容已经写就返回一个连锁引用,否则抛出一个IOException异常指出eof 或 eob。 |
备注:
参数:
other |
有可用内容的缓冲器。 |
返回:
如果如果所有内容已经写就返回一个连锁引用,否则抛出一个IOException异常指出eof 或 eob。
备注:
参数:
raw |
要消耗的内容。这是逐字地消耗,并且用原始的二进制格式——没有隐式转换被执行。 |
备注:
例子:
1 2 3 |
auto path = new FilePath (somepath); path.produce (&buffer.consume); |
参数:
size |
要移动的字节数。 |
返回:
备注:
也可以通过'size'字节让它成负的来翻转读位置。这可以用于支持预取(lookahead)操作。注意在缓冲器中可用的内容不足时负的size会失败(不能跳过超越开头)。
Params:
scan |
要包含当前内容的委托。 |
返回:
备注:
每个模式被预期剥离定界符。一个文件尾(end-of-file)情况会引起尾部内容被放到记号中。请求在超过Eof会导致空匹配(长度为零)。
注意额外的迭代器和/或reader实例在绑定到一个公共缓冲器时会用密集连锁的步伐操作。
备注:
备注:
返回在缓冲器中还剩下的可读字节计数。这将作为limit() - position() 简单地计算。
备注:
参数:
dg |
对提供的缓冲器访问到的回调函数。 |
返回:
备注:
委托将会在它写了有效内容时返回适当的字节数,错误发生时返回IConduit.Eof。
参数:
dg |
对提供的缓冲器访问到的回调函数。 |
返回:
Remarks:
如果委托消耗了数据,它会返回消耗掉的字节数,如果要指示一个错误就返回IConduit.Eof。
返回:
备注:
限度是设置到数据剩余的总数。位置总是被重置到零。
返回:
备注:
返回:
备注:
过早到达Eof时抛出一个IOException(IO异常)。
备注:
返回:
备注:
返回:
备注:
Returns:
备注:
参数:
conduit |
要绑定的管道。 |
备注:
缓冲区不需要一个外部管道来操作,但它可以方便地关联一个。例如,方法fill() & drain()用它来在必要时导入/导出(import/export)内容。
参数:
boutput |
要绑定的流。 |
备注:
缓冲区不需要一个外部流来操作,但它可以方便地关联一个。例如,方法fill() & drain()用它来在必要时导入/导出(import/export)内容。
参数:
binput |
要绑定的流。 |
备注:
缓冲区不需要一个外部流来操作,但它可以方便地关联一个。例如,方法fill() & drain()用它们来在必要时导入/导出(import/export)内容。
备注:
参数:
src |
内容的源。 |
size |
在src上的内容的长度。 |
备注:
返回:
备注:
- tango.io.Buffer.rar (44.9 KB)
- 下载次数: 0
发表评论
-
tango.text.convert.Utf 翻译
2009-07-23 16:59 822tango.text.convert.Utf(r4809 ... -
tango.io.device.Conduit 翻译
2009-07-23 13:56 810tango.io.device.Conduit (r48 ... -
tango.core.Exception 翻译
2009-07-20 19:29 881tango.core.Exception(r4796) ... -
tango.io.device.File 翻译
2009-07-20 19:27 1096tango.io.device.File (r4796) ... -
tango.io.Console 翻译
2009-07-19 14:03 956tango.io.Console (r4795) Li ... -
tango.io.digest.Digest 翻译
2009-07-19 14:00 876tango.io.digest.Digest(r4795 ... -
tango.io.digest.Crc32 翻译
2009-07-19 13:59 853tango.io.digest.Crc32 (r4795 ... -
tango.io.UnicodeFile 翻译
2009-07-19 13:58 788tango.io.UnicodeFile (r4795) ... -
tango.text.Search 翻译
2009-07-18 20:28 1003tango.text.Search License: ... -
tango.sys.win32.CodePage 翻译
2009-07-18 20:26 896tango.sys.win32.CodePage(r47 ... -
tango.sys.Environment 翻译
2009-07-18 20:25 874tango.sys.Environment Lice ... -
tango.text.convert.Integer 翻译
2009-07-18 20:24 908tango.text.convert.Integer(r ... -
tango.text.convert.DateTime 翻译
2009-07-18 20:22 772tango.text.convert.DateTime ... -
tango.text.convert.TimeStamp 翻译
2009-07-18 20:19 913tango.text.convert.TimeStamp ... -
tango.text.Ascii 翻译
2009-07-17 23:12 922tango.text.Ascii(r4792) Li ... -
tango.text.convert.Layout 翻译
2009-07-17 23:10 971tango.text.convert.Layout ... -
tango.io.File 翻译
2009-07-17 21:35 780tango.io.File License: BS ... -
tango.text.Util 翻译
2009-07-17 11:50 966tango.text.Util(r4774) Lice ... -
tango.text.Text 翻译
2009-07-16 10:20 980tango.text.Text(r4774) Lice ... -
tango.io.FileScan 翻译
2009-07-11 23:20 866tango.io.FileScan (r4774) ...
相关推荐
Tango Control System是一种用于控制和监控实验室仪器、望远镜、粒子加速器等复杂设备的控制系统。该系统被广泛应用于科研与工业领域,特别是在物联网及系统集成方面扮演着重要角色。 在搭建Tango Control System时...
### Windows安装TANGO教程知识点详解 #### 一、前言 本教程旨在详细介绍如何在Windows 10操作系统上搭建TANGO环境。TANGO是一种广泛应用于分布式控制系统的框架,尤其适用于科学仪器与工业自动化领域的应用。本文将...
探戈标签Clojure 库,用于根据来自 tango.info 网站的数据自动标记探戈歌曲。执照版权所有 :copyright: 2014 Bruno Alfirević 根据 Eclipse 公共许可证分发 1.0 版或(由您选择)任何更高版本。
谈客视频电话 Tango v3.13.128111 更新时间:2015-01-14 版本:3.13.128111 软件语言:多语言 软件类别:网络语音 软件大小:26.18 MB 适用固件:2.1及更高固件 内置广告:没有广告 适用平台:Android Tango为您...
例如,`tango.io.File`类提供了对文件的基本操作,而`tango.container.List`类则实现了动态列表。这些类通常设计为易于使用且灵活,同时支持模板(templates),使你能以类型安全的方式处理各种数据。 在实际编程中...
Tango视频电话3.13.127894 Tango Video Calls 大小:26.18MB 更新时间:2015-01-12 Tango为您带来免费的高品质视频通话,在3G和Wi-Fi网络上都运行如飞!全世界数百万用户都在使用妙趣横生又简单易用的Tango视频...
tango, 微型&可以插入网络框架 Tango 软件包探戈是一个微型&可以插入的网页框架。当前版本:v0.5.0 版本的历史记录。正在启动要安装 Tango:go get github.com/lunny/tango
身份验证 authz是的授权中间件,它基于 。 安装 ...简单的例子 package main import ( ... tg := tango .... HandlerFunc ( func ( ctx * tango. Context ) { sess := sessions . Session ( ctx . Req ()
标题"PyPI 官网下载 | django-tango-0.3.1.tar.gz"表明这是一个从Python Package Index (PyPI)官方源下载的软件包,名为"django-tango",版本号为0.3.1,其格式是tar.gz。PyPI是Python社区中最主要的第三方软件库...
如果要在乳胶文档中使用这些探戈颜色,请将tango.sty放在某个可以找到乳胶的地方。 例如,在texmf目录中。 Python 您有两种使用颜色的方法。 如果只需要HTML模型,则可以导入TANGO_HTML_COLORS ,这是探戈颜色的...
现在,这意味着基本上所有用户模块(tango.math.BigNum除外,别名为std.bigint,直到另行通知)和大多数tango.core模块都已移植。 doc / examples文件夹中的示例也应该起作用。 我在Linux上进行移植,因此这是经过...
agent.sources.redisSource.type = com.tango.logstash.flume.redis.source.RedisSource agent.sources.redisSource.host = localhost agent.sources.redisSource.key = logstash agent.sources.redisSource.batch_...
资源分类:Python库 所属语言:Python 资源全名:tango-comments-0.4.3.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
《Python库:tango-articles-0.12.1.tar.gz详解》 在Python的世界里,库扮演着至关重要的角色,它们为开发者提供了丰富的功能,简化了代码编写过程。今天我们将聚焦于一个名为“tango-articles”的库,其版本为...
Tango Tango 是一个微内核易扩展的Go语言Web框架,他兼有Beego的效率和Martini的中间件设计。 最近更新 ... tango.JSON } func (Action) Get() interface{} { if true { return map[string]string{
将探戈存储git clone git@github.com:kwight/tango.git到您的wp-content/themes/文件夹中: git clone git@github.com:kwight/tango.git cd进入新的Tango主题,然后运行npm install 。 运行npm run build来创建...
“TANGO的最爱”可能意味着这个主题是对Tango设计风格的一种致敬或特别优化,是Tango风格的忠实体现,因此深受Tango风格爱好者的喜欢。 【标签解析】 “tango”标签直接关联了设计风格,指明了主题的视觉特征。...
TangoSDK_Eisa_Unity5.unitypackage
语言:English,中文 (简体) 自动提取bugly页面的日志数据,并以可读性更高的UI形式展现 自动提取bugly页面的日志数据,并自动弹窗显示;支持多种显示日志方式:1. 自动弹窗提醒;可通过设置,取消自动弹窗提醒(默认...
《Tango:电路设计软件的历史与应用》 Tango,这款被誉为古老的电路板设计软件,是电子工程领域中的一颗璀璨明星。它以其强大的功能和在DOS操作系统下的独特运行方式,为电路设计者提供了丰富的工具,使得在早期的...