root/java/org/gnu/emacs/EmacsHandleObject.java

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. destroyHandle
  2. isDestroyed

     1 /* Communication module for Android terminals.  -*- c-file-style: "GNU" -*-
     2 
     3 Copyright (C) 2023 Free Software Foundation, Inc.
     4 
     5 This file is part of GNU Emacs.
     6 
     7 GNU Emacs is free software: you can redistribute it and/or modify
     8 it under the terms of the GNU General Public License as published by
     9 the Free Software Foundation, either version 3 of the License, or (at
    10 your option) any later version.
    11 
    12 GNU Emacs is distributed in the hope that it will be useful,
    13 but WITHOUT ANY WARRANTY; without even the implied warranty of
    14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    15 GNU General Public License for more details.
    16 
    17 You should have received a copy of the GNU General Public License
    18 along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.  */
    19 
    20 package org.gnu.emacs;
    21 
    22 import java.lang.IllegalStateException;
    23 
    24 /* This defines something that is a so-called ``handle''.  Handles
    25    must be created by C code, and will remain existing until
    26    destroyHandle is called.  C code then refers to the handle by a
    27    number which maps into the Java object representing the handle.
    28 
    29    All handle operations must be done from the Emacs thread.  */
    30 
    31 public abstract class EmacsHandleObject
    32 {
    33   /* Whether or not this handle has been destroyed.  */
    34   volatile boolean destroyed;
    35 
    36   /* The handle associated with this object.  */
    37   public short handle;
    38 
    39   public
    40   EmacsHandleObject (short handle)
    41   {
    42     this.handle = handle;
    43   }
    44 
    45   public void
    46   destroyHandle () throws IllegalStateException
    47   {
    48     synchronized (this)
    49       {
    50         destroyed = true;
    51       }
    52   }
    53 
    54   public boolean
    55   isDestroyed ()
    56   {
    57     return destroyed;
    58   }
    59 };

/* [<][>][^][v][top][bottom][index][help] */