summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/private/Files/SimpleFS/SimpleFile.php23
-rw-r--r--lib/public/Files/SimpleFS/ISimpleFile.php18
-rw-r--r--tests/lib/Files/SimpleFS/SimpleFileTest.php16
3 files changed, 57 insertions, 0 deletions
diff --git a/lib/private/Files/SimpleFS/SimpleFile.php b/lib/private/Files/SimpleFS/SimpleFile.php
index e9bf0213d07..7b83e9372f7 100644
--- a/lib/private/Files/SimpleFS/SimpleFile.php
+++ b/lib/private/Files/SimpleFS/SimpleFile.php
@@ -146,4 +146,27 @@ class SimpleFile implements ISimpleFile {
public function getMimeType() {
return $this->file->getMimeType();
}
+
+ /**
+ * Open the file as stream for reading, resulting resource can be operated as stream like the result from php's own fopen
+ *
+ * @return resource
+ * @throws \OCP\Files\NotPermittedException
+ * @since 14.0.0
+ */
+ public function read() {
+ return $this->file->fopen('r');
+ }
+
+ /**
+ * Open the file as stream for writing, resulting resource can be operated as stream like the result from php's own fopen
+ *
+ * @return resource
+ * @throws \OCP\Files\NotPermittedException
+ * @since 14.0.0
+ */
+ public function write() {
+ return $this->file->fopen('w');
+ }
+
}
diff --git a/lib/public/Files/SimpleFS/ISimpleFile.php b/lib/public/Files/SimpleFS/ISimpleFile.php
index cd092056cda..a3cd3245cc7 100644
--- a/lib/public/Files/SimpleFS/ISimpleFile.php
+++ b/lib/public/Files/SimpleFS/ISimpleFile.php
@@ -99,4 +99,22 @@ interface ISimpleFile {
* @since 11.0.0
*/
public function getMimeType();
+
+ /**
+ * Open the file as stream for reading, resulting resource can be operated as stream like the result from php's own fopen
+ *
+ * @return resource
+ * @throws \OCP\Files\NotPermittedException
+ * @since 14.0.0
+ */
+ public function read();
+
+ /**
+ * Open the file as stream for writing, resulting resource can be operated as stream like the result from php's own fopen
+ *
+ * @return resource
+ * @throws \OCP\Files\NotPermittedException
+ * @since 14.0.0
+ */
+ public function write();
}
diff --git a/tests/lib/Files/SimpleFS/SimpleFileTest.php b/tests/lib/Files/SimpleFS/SimpleFileTest.php
index ab4970804a4..c1c53b15ecf 100644
--- a/tests/lib/Files/SimpleFS/SimpleFileTest.php
+++ b/tests/lib/Files/SimpleFS/SimpleFileTest.php
@@ -123,4 +123,20 @@ class SimpleFileTest extends \Test\TestCase {
$this->simpleFile->getContent();
}
+
+ public function testRead() {
+ $this->file->expects($this->once())
+ ->method('fopen')
+ ->with('r');
+
+ $this->simpleFile->read();
+ }
+
+ public function testWrite() {
+ $this->file->expects($this->once())
+ ->method('fopen')
+ ->with('w');
+
+ $this->simpleFile->write();
+ }
}