\swoole_buffer

class swoole_buffer

Summary

Methods
Properties
Constants
__construct()
substr()
write()
read()
append()
expand()
recycle()
clear()
$capacity
$length
No constants found
No protected methods found
No protected properties found
N/A
No private methods found
No private properties found
N/A

Properties

$capacity

$capacity : integer

buffer 的容量大小

Type

integer

$length

$length : integer

buffer 中已使用的字节长度

Type

integer

Methods

__construct()

__construct(integer  $size = 128) 

__construct swoole_buffer 构造函数,创建一个内存对象

Parameters

integer $size

[optional] 默认为 128 字节,指定缓冲区内存的初始尺寸。当申请的内存容量不够时 swoole 底层会自动扩容。

substr()

substr(integer  $offset, integer  $length = -1, boolean  $remove = false) : string|false

substr 从缓冲区中取出内容。

Parameters

integer $offset

表示偏移量,如果为负数,表示倒数计算偏移量,从 buffer 末尾倒数偏移 $offset 字节做为起始偏移量

integer $length

[optional] 表示读取数据的长度,默认为从 $offset 到整个缓存区末尾

boolean $remove

[optional] 表示从缓冲区的头部将此数据移除。只有 $offset = 0 时此参数才有效。 $remove 后内存并没有释放,只是底层进行了指针偏移。当销毁此对象时才会真正释放内存

Returns

string|false —

成功返回取出的字符串,失败返回 false

write()

write(integer  $offset, string  $data) : integer|false

write 向缓存区的 $offset 起始的内存位置写入数据 $data read/write 函数可以直接读写内存。所以使用务必要谨慎,否则可能会破坏现有数据。

Parameters

integer $offset

偏移量,要写入的起始位置

string $data

要写入的数据

Returns

integer|false —

成功返回写入的数据长度,失败返回 false

read()

read(integer  $offset, integer  $length) : integer|false

read 从缓冲区 $offset 位置开始,读取长度 $length 的数据

Parameters

integer $offset

偏移量

integer $length

要读取的数据长度

Returns

integer|false —

成功返回读取到的数据的长度,失败返回 false

append()

append(string  $data) : integer|false

append 将数据 $data 追加到缓存区末尾。

Parameters

string $data

要写入的数据

Returns

integer|false —

成功返回缓冲区数据总长度,失败返回 false

expand()

expand(integer  $new_size) : boolean

expand 将缓冲区扩容至新的大小 $new_size

Parameters

integer $new_size

新的缓冲区大小,必须大于当前缓冲区的大小

Returns

boolean —

成功返回 true,失败返回 false

recycle()

recycle() : void

recycle 回收缓冲中已经废弃的内存

 此方法能够在不清空缓冲区和使用 swoole_buffer->clear() 的情况下,
 回收通过 substr() 移除但仍存在的部分内存空间。
 只有当 substr 方法的第三个参数 $remove = true 时,recycle 才生效。

clear()

clear() : void

clear 清理缓存区数据 执行此操作后,缓存区将重置。swoole_buffer对象就可以用来处理新的请求了。