Class VirtualMachine.ForOpenJ9.Dispatcher.ForJnaPosixEnvironment

java.lang.Object
net.bytebuddy.agent.VirtualMachine.ForOpenJ9.Dispatcher.ForJnaPosixEnvironment
All Implemented Interfaces:
VirtualMachine.ForOpenJ9.Dispatcher
Enclosing interface:
VirtualMachine.ForOpenJ9.Dispatcher

public static class VirtualMachine.ForOpenJ9.Dispatcher.ForJnaPosixEnvironment extends Object implements VirtualMachine.ForOpenJ9.Dispatcher
A connector implementation for a POSIX environment using JNA.
  • Field Details

  • Constructor Details

    • ForJnaPosixEnvironment

      public ForJnaPosixEnvironment(int attempts, long pause, TimeUnit timeUnit)
      Creates a new connector for a POSIX environment using JNA.
      Parameters:
      attempts - The maximum amount of attempts for checking the result of a foreign process.
      pause - The pause between two checks for another process to return.
      timeUnit - The time unit of the pause time.
  • Method Details

    • getTemporaryFolder

      public String getTemporaryFolder(String processId)
      Returns this machine's temporary folder.
      Specified by:
      getTemporaryFolder in interface VirtualMachine.ForOpenJ9.Dispatcher
      Parameters:
      processId - The target process's id.
      Returns:
      The temporary folder.
    • pid

      public int pid()
      Returns the process id of this process.
      Specified by:
      pid in interface VirtualMachine.ForOpenJ9.Dispatcher
      Returns:
      The process id of this process.
    • userId

      public int userId()
      Returns the user id of this process.
      Specified by:
      userId in interface VirtualMachine.ForOpenJ9.Dispatcher
      Returns:
      The user id of this process
    • isExistingProcess

      public boolean isExistingProcess(int processId)
      Returns true if the supplied process id is a running process.
      Specified by:
      isExistingProcess in interface VirtualMachine.ForOpenJ9.Dispatcher
      Parameters:
      processId - The process id to evaluate.
      Returns:
      true if the supplied process id is currently running.
    • getOwnerIdOf

      public int getOwnerIdOf(File file)
      Returns the user id of the owner of the supplied file.
      Specified by:
      getOwnerIdOf in interface VirtualMachine.ForOpenJ9.Dispatcher
      Parameters:
      file - The file for which to locate the owner.
      Returns:
      The owner id of the supplied file.
    • setPermissions

      public void setPermissions(File file, int permissions)
      Sets permissions for the supplied file.
      Specified by:
      setPermissions in interface VirtualMachine.ForOpenJ9.Dispatcher
      Parameters:
      file - The file for which to set the permissions.
      permissions - The permission bits to set.
    • incrementSemaphore

      public void incrementSemaphore(File directory, String name, boolean global, int count)
      Increments a semaphore.
      Specified by:
      incrementSemaphore in interface VirtualMachine.ForOpenJ9.Dispatcher
      Parameters:
      directory - The sempahore's control directory.
      name - The semaphore's name.
      global - true if the semaphore is in the global namespace (only applicable on Windows).
      count - The amount of increments.
    • decrementSemaphore

      public void decrementSemaphore(File directory, String name, boolean global, int count)
      Decrements a semaphore.
      Specified by:
      decrementSemaphore in interface VirtualMachine.ForOpenJ9.Dispatcher
      Parameters:
      directory - The sempahore's control directory.
      name - The semaphore's name.
      global - true if the semaphore is in the global namespace (only applicable on Windows).
      count - The amount of decrements.
    • chownFileToUser

      public void chownFileToUser(File file, long userId)
      Changes the ownership of a file. Can be called only if this process is owned by root.
      Specified by:
      chownFileToUser in interface VirtualMachine.ForOpenJ9.Dispatcher
      Parameters:
      file - The path of the file to change ownership of.
      userId - The user that should own the file.
    • notifySemaphore

      private void notifySemaphore(File directory, String name, int count, short operation, short flags, boolean acceptUnavailable)
      Notifies a POSIX semaphore.
      Parameters:
      directory - The semaphore's directory.
      name - The semaphore's name.
      count - The amount of notifications to send.
      operation - The operation to apply.
      flags - The flags to set.
      acceptUnavailable - true if a EAGAIN code should be accepted.