I'm not sure why this ever existed, but it doesn't appear to be used.
(If an introducer called a client's set_encoding_parameters method it would
keep the provided parameters in an instance attribute but would not actually
use them.)
for ann_v1 in announcements])
return self.original.got_announcements(anns_v1, lp)
- def remote_set_encoding_parameters(self, parameters):
- self.original.remote_set_encoding_parameters(parameters)
-
class RIStubClient(RemoteInterface): # for_v1
"""Each client publishes a service announcement for a dummy object called
the StubClient. This object doesn't actually offer any services, but the
# after startup.
self._inbound_announcements = {}
- self.encoding_parameters = None
-
# hooks for unit tests
self._debug_counts = {
"inbound_message": 0,
if service_name2 == service_name:
eventually(cb, key_s, ann, *args, **kwargs)
- def remote_set_encoding_parameters(self, parameters):
- self.encoding_parameters = parameters
-
def connected_to_introducer(self):
return bool(self._publisher)
"""I accept announcements from the publisher."""
return None
- def set_encoding_parameters(parameters=(int, int, int)):
- """Advise the client of the recommended k-of-n encoding parameters
- for this grid. 'parameters' is a tuple of (k, desired, n), where 'n'
- is the total number of shares that will be created for any given
- file, while 'k' is the number of shares that must be retrieved to
- recover that file, and 'desired' is the minimum number of shares that
- must be placed before the uploader will consider its job a success.
- n/k is the expansion ratio, while k determines the robustness.
-
- Introducers should specify 'n' according to the expected size of the
- grid (there is no point to producing more shares than there are
- peers), and k according to the desired reliability-vs-overhead goals.
-
- Note that setting k=1 is equivalent to simple replication.
- """
- return None
-
SubscriberInfo = DictOf(str, Any())
class RIIntroducerPublisherAndSubscriberService_v2(RemoteInterface):
"""I accept announcements from the publisher."""
return None
- def set_encoding_parameters(parameters=(int, int, int)):
- """Advise the client of the recommended k-of-n encoding parameters
- for this grid. 'parameters' is a tuple of (k, desired, n), where 'n'
- is the total number of shares that will be created for any given
- file, while 'k' is the number of shares that must be retrieved to
- recover that file, and 'desired' is the minimum number of shares that
- must be placed before the uploader will consider its job a success.
- n/k is the expansion ratio, while k determines the robustness.
-
- Introducers should specify 'n' according to the expected size of the
- grid (there is no point to producing more shares than there are
- peers), and k according to the desired reliability-vs-overhead goals.
-
- Note that setting k=1 is equivalent to simple replication.
- """
- return None
-
# When Foolscap can handle multiple interfaces (Foolscap#17), the
# full-powered introducer will implement both RIIntroducerPublisher and
# RIIntroducerSubscriberService. Until then, we define
# for clients who subscribe after startup.
self._current_announcements = {}
- self.encoding_parameters = None
-
# hooks for unit tests
self._debug_counts = {
"inbound_message": 0,
if service_name2 == service_name:
eventually(cb, nodeid, ann_d, *args, **kwargs)
- def remote_set_encoding_parameters(self, parameters):
- self.encoding_parameters = parameters
-
def connected_to_introducer(self):
return bool(self._publisher)
def wrap_announce_v2(self, announcements):
anns_v1 = [convert_announcement_v2_to_v1(ann) for ann in announcements]
return self.original.callRemote("announce", set(anns_v1))
- def wrap_set_encoding_parameters(self, parameters):
- # note: unused
- return self.original.callRemote("set_encoding_parameters", parameters)
def notifyOnDisconnect(self, *args, **kwargs):
return self.original.notifyOnDisconnect(*args, **kwargs)