From 0dc84963f115cf155dd033b4bfded0ff3a7fda59 Mon Sep 17 00:00:00 2001
From: Brian Warner <warner@allmydata.com>
Date: Thu, 6 Dec 2007 18:36:58 -0700
Subject: [PATCH] the wait_for_numpeers= argument to client.upload() is
 optional: make both the code and the Interface reflect this

---
 src/allmydata/client.py     |  4 ++--
 src/allmydata/interfaces.py | 15 +++++++++++++--
 2 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/src/allmydata/client.py b/src/allmydata/client.py
index 6a30a208..fe07ec72 100644
--- a/src/allmydata/client.py
+++ b/src/allmydata/client.py
@@ -293,7 +293,7 @@ class Client(node.Node, Referenceable, testutil.PollMixin):
         assert IMutableFileURI.providedBy(u), u
         return MutableFileNode(self).init_from_uri(u)
 
-    def create_empty_dirnode(self, wait_for_numpeers):
+    def create_empty_dirnode(self, wait_for_numpeers=None):
         n = NewDirectoryNode(self)
         d = n.create(wait_for_numpeers=wait_for_numpeers)
         d.addCallback(lambda res: n)
@@ -305,7 +305,7 @@ class Client(node.Node, Referenceable, testutil.PollMixin):
         d.addCallback(lambda res: n)
         return d
 
-    def upload(self, uploadable, wait_for_numpeers):
+    def upload(self, uploadable, wait_for_numpeers=None):
         uploader = self.getServiceNamed("uploader")
         return uploader.upload(uploadable, wait_for_numpeers=wait_for_numpeers)
 
diff --git a/src/allmydata/interfaces.py b/src/allmydata/interfaces.py
index 42699d42..46f720bc 100644
--- a/src/allmydata/interfaces.py
+++ b/src/allmydata/interfaces.py
@@ -1146,19 +1146,30 @@ class IChecker(Interface):
         """
 
 class IClient(Interface):
-    def upload(uploadable, wait_for_numpeers):
+    def upload(uploadable, wait_for_numpeers=None):
         """Upload some data into a CHK, get back the URI string for it.
         @param uploadable: something that implements IUploadable
         @param wait_for_numpeers: don't upload anything until we have at least
                                   this many peers connected
         @return: a Deferred that fires with the (string) URI for this file.
         """
-    def create_empty_dirnode(wait_for_numpeers):
+
+    def create_mutable_file(contents="", wait_for_numpeers=None):
+        """Create a new mutable file with contents, get back the URI string.
+        @param contents: the initial contents to place in the file.
+        @param wait_for_numpeers: don't upload anything until we have at least
+                                  this many peers connected
+        @return: a Deferred that fires with tne (string) SSK URI for the new
+                 file.
+        """
+
+    def create_empty_dirnode(wait_for_numpeers=None):
         """Create a new dirnode, empty and unattached.
         @param wait_for_numpeers: don't create anything until we have at least
                                   this many peers connected.
         @return: a Deferred that fires with the new IDirectoryNode instance.
         """
+
     def create_node_from_uri(uri):
         """Create a new IFilesystemNode instance from the uri, synchronously.
         @param uri: a string or IURI-providing instance. This could be for a
-- 
2.45.2