on_open Event

Fires when the OS wants to open a file.

Syntax

class FUSEOpenEventParams(object):
  @property
  def path() -> str: ...
  @property
  def flags() -> int: ...
  @property
  def direct_io() -> bool: ...
  @direct_io.setter
  def direct_io(value) -> None: ...
  @property
  def keep_cache() -> bool: ...
  @keep_cache.setter
  def keep_cache(value) -> None: ...
  @property
  def non_seekable() -> bool: ...
  @non_seekable.setter
  def non_seekable(value) -> None: ...
  @property
  def file_context() -> int: ...
  @file_context.setter
  def file_context(value) -> None: ...
  @property
  def result() -> int: ...
  @result.setter
  def result(value) -> None: ...

# In class FUSE:
@property
def on_open() -> Callable[[FUSEOpenEventParams], None]: ...
@on_open.setter
def on_open(event_hook: Callable[[FUSEOpenEventParams], None]) -> None: ...

Remarks

This event fires when the OS wants to open the existing file specified by Path using the open options reflected in Flags. The set of possible flags and options corresponds to the Flags parameter of Linux open(2) call.

The application may use the FileContext parameter to store a file handle or other information, related to the open file. Windows: the stored information will be shared between all concurrent file open operations performed on this file.

Linux: DirectIO parameter may be set by the application to tell the kernel that buffering or caching should be avoided. KeepCache parameter may be set by the application to tell the kernel that existing file caches (if any) should not be invalidated. NonSeekable parameter may be set by the application to tell the kernel that the file is not seekable.

The ResultCode parameter will always be 0 when the event is fired. If the event cannot be handled in a "successful" manner for some reason (e.g., a resource isn't available, security checks failed, etc.), set it to a negative error code value (e.g. -ENOENT to indicate that the file does not exist) to report an appropriate error. Please refer to the Error Reporting and Handling topic for more information.

Copyright (c) 2022 Callback Technologies, Inc. - All rights reserved.
CBFS FUSE 2020 Python Edition - Version 20.0 [Build 8348]