Class VirtualMachine.ForOpenJ9.Dispatcher.ForJnaWindowsEnvironment
java.lang.Object
net.bytebuddy.agent.VirtualMachine.ForOpenJ9.Dispatcher.ForJnaWindowsEnvironment
- All Implemented Interfaces:
VirtualMachine.ForOpenJ9.Dispatcher
- Enclosing interface:
VirtualMachine.ForOpenJ9.Dispatcher
public static class VirtualMachine.ForOpenJ9.Dispatcher.ForJnaWindowsEnvironment
extends Object
implements VirtualMachine.ForOpenJ9.Dispatcher
A connector implementation for a Windows environment using JNA.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classA handle for an attachment which is represented by a pair of handles.protected static interfaceA library for interacting with Windows.Nested classes/interfaces inherited from interface VirtualMachine.ForOpenJ9.Dispatcher
VirtualMachine.ForOpenJ9.Dispatcher.ForJnaPosixEnvironment, VirtualMachine.ForOpenJ9.Dispatcher.ForJnaWindowsEnvironment -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final StringThe name of the creation mutex.A library to use for interacting with Windows.private static final intIndicates a missing user id what is not supported on Windows. -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new connector for a Windows environment using JNA. -
Method Summary
Modifier and TypeMethodDescriptionvoidchownFileToUser(File file, long userId) Changes the ownership of a file.voiddecrementSemaphore(File directory, String name, boolean global, int count) Decrements a semaphore.intgetOwnerIdOf(File file) Returns the user id of the owner of the supplied file.getTemporaryFolder(String processId) Returns this machine's temporary folder.voidincrementSemaphore(File directory, String name, boolean global, int count) Increments a semaphore.booleanisExistingProcess(int processId) Returnstrueif the supplied process id is a running process.openSemaphore(File directory, String name, boolean global) Opens a semaphore for signaling another process that an attachment is performed.intpid()Returns the process id of this process.voidsetPermissions(File file, int permissions) Sets permissions for the supplied file.intuserId()Returns the user id of this process.
-
Field Details
-
NO_USER_ID
private static final int NO_USER_IDIndicates a missing user id what is not supported on Windows.- See Also:
-
CREATION_MUTEX_NAME
-
library
A library to use for interacting with Windows.
-
-
Constructor Details
-
ForJnaWindowsEnvironment
public ForJnaWindowsEnvironment()Creates a new connector for a Windows environment using JNA.
-
-
Method Details
-
getTemporaryFolder
Returns this machine's temporary folder.- Specified by:
getTemporaryFolderin interfaceVirtualMachine.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:
pidin interfaceVirtualMachine.ForOpenJ9.Dispatcher- Returns:
- The process id of this process.
-
userId
public int userId()Returns the user id of this process.- Specified by:
userIdin interfaceVirtualMachine.ForOpenJ9.Dispatcher- Returns:
- The user id of this process
-
isExistingProcess
public boolean isExistingProcess(int processId) Returnstrueif the supplied process id is a running process.- Specified by:
isExistingProcessin interfaceVirtualMachine.ForOpenJ9.Dispatcher- Parameters:
processId- The process id to evaluate.- Returns:
trueif the supplied process id is currently running.
-
getOwnerIdOf
Returns the user id of the owner of the supplied file.- Specified by:
getOwnerIdOfin interfaceVirtualMachine.ForOpenJ9.Dispatcher- Parameters:
file- The file for which to locate the owner.- Returns:
- The owner id of the supplied file.
-
setPermissions
Sets permissions for the supplied file.- Specified by:
setPermissionsin interfaceVirtualMachine.ForOpenJ9.Dispatcher- Parameters:
file- The file for which to set the permissions.permissions- The permission bits to set.
-
incrementSemaphore
Increments a semaphore.- Specified by:
incrementSemaphorein interfaceVirtualMachine.ForOpenJ9.Dispatcher- Parameters:
directory- The sempahore's control directory.name- The semaphore's name.global-trueif the semaphore is in the global namespace (only applicable on Windows).count- The amount of increments.
-
decrementSemaphore
Decrements a semaphore.- Specified by:
decrementSemaphorein interfaceVirtualMachine.ForOpenJ9.Dispatcher- Parameters:
directory- The sempahore's control directory.name- The semaphore's name.global-trueif the semaphore is in the global namespace (only applicable on Windows).count- The amount of decrements.
-
chownFileToUser
Changes the ownership of a file. Can be called only if this process is owned by root.- Specified by:
chownFileToUserin interfaceVirtualMachine.ForOpenJ9.Dispatcher- Parameters:
file- The path of the file to change ownership of.userId- The user that should own the file.
-
openSemaphore
private VirtualMachine.ForOpenJ9.Dispatcher.ForJnaWindowsEnvironment.AttachmentHandle openSemaphore(File directory, String name, boolean global) Opens a semaphore for signaling another process that an attachment is performed.- Parameters:
directory- The control directory.name- The semaphore's name.global-trueif the semaphore is in the global namespace.- Returns:
- A handle for signaling an attachment to the target process.
-