ReliableFileDescriptor
java.lang.Object
|—ohos.rpc.ReliableFileDescriptor
public class ReliableFileDescriptor
extends Object
包装可以从多个线程访问的可靠 FileDescriptor。
此类提供用于创建可靠数据管道和获取包装的 FileDescriptor 或本机文件描述符的方法。
嵌套类摘要
修饰符和类型 | 类 | 描述 |
---|---|---|
static class | ReliableFileDescriptor.AutoCloseFileInputStream | 表示一个文件输入流,其文件描述符在此流关闭时自动关闭。 |
static class | ReliableFileDescriptor.AutoCloseFileOutputStream | 表示一个文件输出流,其文件描述符在此流关闭时自动关闭。 |
构造函数摘要
构造函数 | 描述 |
---|---|
ReliableFileDescriptor(FileDescriptor fd) | 用于创建具有指定 FileDescriptor 的 ReliableFileDescriptor 实例的构造函数。 |
ReliableFileDescriptor(FileDescriptor fd, FileDescriptor commonFd) | 用于创建具有指定 FileDescriptor 和用于检查文件状态的文件描述符的 ReliableFileDescriptor 实例的构造函数。 |
方法总结
修饰符和类型 | 方法 | 描述 |
---|---|---|
void | close() | 关闭此 ReliableFileDescriptor 对象。 |
static ReliableFileDescriptor[] | createPipe2() | 创建两个 ReliableFileDescriptor 对象的数组。 |
static ReliableFileDescriptor[] | createReliablePipe() | 创建两个 ReliableFileDescriptor 对象的数组,每个对象都包含一个套接字文件描述符。 |
static ReliableFileDescriptor | dupFromSocket(Socket socket) | 通过复制指定套接字的文件描述符来创建 ReliableFileDescriptor。 |
FileDescriptor | getFileDescriptor() | 获取包装在此可靠文件描述符中的文件描述符。 |
long | getFileTotalSize() | 获取与此文件描述符匹配的文件的大小。 |
int | getNativeFd() | 获取包装在此 ReliableFileDescriptor 中的本机文件描述符。 |
static ReliableFileDescriptor | takeChargeOfFileDescriptor(int fd) | 通过复制现有文件描述符创建 ReliableFileDescriptor。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造函数详细信息
ReliableFileDescriptor
public ReliableFileDescriptor(FileDescriptor fd)
用于创建具有指定 FileDescriptor 的 ReliableFileDescriptor 实例的构造函数。
参数:
参数名称 | 参数描述 |
---|---|
fd | 指示要包装在 ReliableFileDescriptor 实例中的 FileDescriptor。 |
ReliableFileDescriptor
public ReliableFileDescriptor(FileDescriptor fd, FileDescriptor commonFd)
用于创建具有指定 FileDescriptor 和用于检查文件状态的文件描述符的 ReliableFileDescriptor 实例的构造函数。
参数:
参数名称 | 参数描述 |
---|---|
fd | 指示要包装在 ReliableFileDescriptor 实例中的 FileDescriptor。 |
commonFd | 指示用于检查文件是否关闭的文件描述符。 |
方法详情
getFileDescriptor
public FileDescriptor getFileDescriptor()
获取包装在此 ReliableFileDescriptor 中的 FileDescriptor。
返回:
返回包装在此 ReliableFileDescriptor 中的 FileDescriptor。
getNativeFd
public int getNativeFd()
获取包装在此 ReliableFileDescriptor 中的本机文件描述符。
这个 ReliableFileDescriptor 仍然拥有文件描述符,它必须通过这个 ReliableFileDescriptor 关闭。
返回:
返回包装在此 ReliableFileDescriptor 中的本机文件描述符。 不要使用返回值来关闭文件描述符或将返回值传递给任何假定文件描述符所有权的方法。 否则,文件描述符将被反复关闭。
createPipe2
public static ReliableFileDescriptor[] createPipe2() throws OsHelperErrnoException
创建两个 ReliableFileDescriptor 对象的数组。
该数组用作数据管道。 这两个对象之一用于读取数据,另一个用于写入数据。
返回:
返回创建的数组。
Throws:
Throw名称 | Throw描述 |
---|---|
OsHelperErrnoException | 如果数组创建失败,则抛出此异常。 |
createReliablePipe
public static ReliableFileDescriptor[] createReliablePipe() throws IOException, OsHelperErrnoException
创建两个 ReliableFileDescriptor 对象的数组,每个对象都包含一个套接字文件描述符。
该数组用作数据管道。 这两个对象之一用于读取数据,另一个用于写入数据。
返回:
返回创建的数组。
Throws:
Throw名称 | Throw描述 |
---|---|
OsHelperErrnoException | 如果数组创建失败,则抛出此异常。 |
IOException | 如果用于操作数据管道的套接字对创建失败,则抛出此异常。 |
takeChargeOfFileDescriptor
public static ReliableFileDescriptor takeChargeOfFileDescriptor(int fd) throws IOException, OsHelperErrnoException
通过复制现有文件描述符创建 ReliableFileDescriptor。
创建 ReliableFileDescriptor 后,您必须关闭它和现有的文件描述符。
参数:
参数名称 | 参数描述 |
---|---|
fd | 指示现有文件描述符。 |
返回:
返回创建的 ReliableFileDescriptor。
Throws:
Throw名称 | Throw描述 |
---|---|
OsHelperErrnoException | 如果操作文件描述符失败,则抛出此异常。 |
IOException | 如果 ReliableFileDescriptor 创建失败,则抛出此异常。 |
dupFromSocket
public static ReliableFileDescriptor dupFromSocket(Socket socket) throws IOException, OsHelperErrnoException
通过复制指定套接字的文件描述符来创建 ReliableFileDescriptor。
创建 ReliableFileDescriptor 后,您必须关闭它和套接字。
参数:
参数名称 | 参数描述 |
---|---|
socket | 表示指定的套接字。 |
返回:
返回创建的 ReliableFileDescriptor。
Throws:
Throw名称 | Throw描述 |
---|---|
OsHelperErrnoException | 如果操作文件描述符失败,则抛出此异常。 |
IOException | 如果 ReliableFileDescriptor 创建失败,则抛出此异常。 |
getFileTotalSize
public long getFileTotalSize()
获取与此文件描述符匹配的文件的大小。
返回:
返回匹配此文件描述符的文件大小; 如果此文件描述符与文件不匹配,则返回 -1,例如,文件描述符是通过 Socket 或 Pipe 获得的 ReliableFileDescriptor。
close
public void close()
关闭此 ReliableFileDescriptor 对象。