+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
import time
import ciso8601
import calendar
self.use_count = 0
self.ref_count = 0
self.dead = False
- self.cache_priority = None
self.cache_size = 0
self.cache_uuid = None
- # Mark the value as stale
+ # Can the kernel cache attributes?
+ self.allow_attr_cache = True
+
def invalidate(self):
+ """Indicate that object contents should be refreshed from source."""
self._stale = True
+ def kernel_invalidate(self):
+ """Indicate that an invalidation for this object should be sent to the kernel."""
+ pass
+
# Test if the entries dict is stale.
def stale(self):
if self._stale:
def persisted(self):
return False
- def clear(self, force=False):
+ def clear(self):
pass
def in_use(self):
self.ref_count -= n
return self.ref_count
+ def has_ref(self, only_children):
+ """Determine if there are any kernel references to this
+ object or its children.
+
+ If only_children is True, ignore refcount of self and only consider
+ children.
+ """
+ if only_children:
+ return False
+ else:
+ return self.ref_count > 0
+
def objsize(self):
return 0
def finalize(self):
pass
+
+ def child_event(self, ev):
+ pass
+
+ def time_to_next_poll(self):
+ if self._poll:
+ t = (self._last_update + self._poll_time) - self._atime
+ if t < 0:
+ return 0
+ else:
+ return t
+ else:
+ return self._poll_time