def do_post(self, node, max_friend_file_version): requires = VectorVersionList() requires.add('%s_friends' % self.other_user_id, max_friend_file_version) node.multiple_append( key = '%s_wall' % self.other_user_id, value = self.value, requires = requires, all_completed_callback=self.all_posts_completed )
def got_append(self, contact, obj): key = self.resolve_key(obj.key, obj.raw_key) if key not in self.data: self.data[key] = { 'data': [], 'requires': VectorVersionList(), 'version': VectorVersion(), } self.data[key]['data'].append(obj.value) self.data[key]['requires'].merge( VectorVersionList.from_tuples(obj.requires)) self.data[key]['version'].increment(obj.user_id) contact.send( AppendResponse(request_id=obj.request_id, version=self.data[key]['version'].to_tuples()))
def got_append(self, contact, obj): key = self.resolve_key(obj.key, obj.raw_key) if key not in self.data: self.data[key] = { 'data': [], 'requires': VectorVersionList(), 'version': VectorVersion(), } self.data[key]['data'].append(obj.value) self.data[key]['requires'].merge(VectorVersionList.from_tuples(obj.requires)) self.data[key]['version'].increment(obj.user_id) contact.send( AppendResponse( request_id = obj.request_id, version = self.data[key]['version'].to_tuples() ) )
def value_from_wire(self, data): return (None if data == None else { 'data': data['data'], 'requires': VectorVersionList.from_tuples(data['requires']), 'version': VectorVersion.from_tuples(data['version']), })