diff options
Diffstat (limited to 'java/org/gnu/emacs/EmacsHandleObject.java')
-rw-r--r-- | java/org/gnu/emacs/EmacsHandleObject.java | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/java/org/gnu/emacs/EmacsHandleObject.java b/java/org/gnu/emacs/EmacsHandleObject.java new file mode 100644 index 00000000000..8534f08519c --- /dev/null +++ b/java/org/gnu/emacs/EmacsHandleObject.java @@ -0,0 +1,59 @@ +/* Communication module for Android terminals. -*- c-file-style: "GNU" -*- + +Copyright (C) 2023-2024 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or (at +your option) any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */ + +package org.gnu.emacs; + +import java.lang.IllegalStateException; + +/* This defines something that is a so-called ``handle''. Handles + must be created by C code, and will remain existing until + destroyHandle is called. C code then refers to the handle by a + number which maps into the Java object representing the handle. + + All handle operations must be done from the Emacs thread. */ + +public abstract class EmacsHandleObject +{ + /* Whether or not this handle has been destroyed. */ + volatile boolean destroyed; + + /* The handle associated with this object. */ + public short handle; + + public + EmacsHandleObject (short handle) + { + this.handle = handle; + } + + public void + destroyHandle () throws IllegalStateException + { + synchronized (this) + { + destroyed = true; + } + } + + public boolean + isDestroyed () + { + return destroyed; + } +}; |