Changeset 11144


Ignore:
Timestamp:
02/21/07 17:18:01 (15 years ago)
Author:
piso
Message:

Reformatted source.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/j/src/org/armedbear/lisp/Mailbox.java

    r10348 r11144  
    22 * Mailbox.java
    33 *
    4  * Copyright (C) 2004-2005 Peter Graves, Andras Simon
    5  * $Id: Mailbox.java,v 1.7 2005-11-04 13:08:02 piso Exp $
     4 * Copyright (C) 2004-2007 Peter Graves, Andras Simon
     5 * $Id: Mailbox.java,v 1.8 2007-02-21 17:18:01 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    2727public final class Mailbox extends LispObject
    2828{
    29     private LinkedList box = new LinkedList();
     29  private LinkedList box = new LinkedList();
    3030
    31     public LispObject typeOf()
    32     {
    33         return Symbol.MAILBOX;
    34     }
     31  public LispObject typeOf()
     32  {
     33    return Symbol.MAILBOX;
     34  }
    3535
    36     public LispObject classOf()
    37     {
    38         return BuiltInClass.MAILBOX;
    39     }
     36  public LispObject classOf()
     37  {
     38    return BuiltInClass.MAILBOX;
     39  }
    4040
    41     public LispObject typep(LispObject typeSpecifier) throws ConditionThrowable
    42     {
    43         if (typeSpecifier == Symbol.MAILBOX)
    44             return T;
    45         if (typeSpecifier == BuiltInClass.MAILBOX)
    46             return T;
    47         return super.typep(typeSpecifier);
    48     }
     41  public LispObject typep(LispObject typeSpecifier) throws ConditionThrowable
     42  {
     43    if (typeSpecifier == Symbol.MAILBOX)
     44      return T;
     45    if (typeSpecifier == BuiltInClass.MAILBOX)
     46      return T;
     47    return super.typep(typeSpecifier);
     48  }
    4949
    50     private void send (LispObject o)
    51     {
    52         synchronized(this) {
    53             box.add(o);
    54             notifyAll();
    55         }
    56     }
     50  private void send(LispObject o)
     51  {
     52    synchronized(this)
     53      {
     54        box.add(o);
     55        notifyAll();
     56      }
     57  }
    5758
    58     private LispObject read ()
    59     {
    60         while (box.isEmpty())
    61             synchronized(this) {
    62                 try {
    63                     wait();
    64                 } catch(InterruptedException e) {
    65                     throw new RuntimeException(e);
    66                 }
     59  private LispObject read()
     60  {
     61    while (box.isEmpty())
     62      synchronized(this)
     63        {
     64          try
     65            {
     66              wait();
    6767            }
    68         return (LispObject) box.removeFirst();
    69     }
    70 
    71     private LispObject peek ()
    72     {
    73         synchronized(this) {
    74             try {
    75                 return (LispObject) box.getFirst();
    76             } catch(NoSuchElementException e) {
    77                 return NIL;
     68          catch(InterruptedException e)
     69            {
     70              throw new RuntimeException(e);
    7871            }
    7972        }
    80     }
     73    return (LispObject) box.removeFirst();
     74  }
    8175
    82     private LispObject empty ()
    83     {
    84         return box.isEmpty() ? T : NIL;
    85     }
     76  private LispObject peek()
     77  {
     78    synchronized(this)
     79      {
     80        try
     81          {
     82            return (LispObject) box.getFirst();
     83          }
     84        catch(NoSuchElementException e)
     85          {
     86            return NIL;
     87          }
     88      }
     89  }
    8690
    87     public String writeToString()
    88     {
    89         return unreadableString("MAILBOX");
    90     }
     91  private LispObject empty()
     92  {
     93    return box.isEmpty() ? T : NIL;
     94  }
     95
     96  public String writeToString()
     97  {
     98    return unreadableString("MAILBOX");
     99  }
    91100
    92101
    93     // ### make-mailbox
    94     private static final Primitive MAKE_MAILBOX =
    95         new Primitive("make-mailbox", PACKAGE_EXT, true, "")
     102  // ### make-mailbox
     103  private static final Primitive MAKE_MAILBOX =
     104    new Primitive("make-mailbox", PACKAGE_EXT, true, "")
    96105    {
    97         public LispObject execute() throws ConditionThrowable
    98         {
    99             return new Mailbox();
    100         }
     106      public LispObject execute() throws ConditionThrowable
     107      {
     108        return new Mailbox();
     109      }
    101110    };
    102111
    103     // ### mailbox-send mailbox object
    104     private static final Primitive MAILBOX_SEND =
    105         new Primitive("mailbox-send", PACKAGE_EXT, true, "mailbox object")
     112  // ### mailbox-send mailbox object
     113  private static final Primitive MAILBOX_SEND =
     114    new Primitive("mailbox-send", PACKAGE_EXT, true, "mailbox object")
    106115    {
    107         public LispObject execute(LispObject first, LispObject second)
    108             throws ConditionThrowable
    109         {
    110             if (first instanceof Mailbox) {
    111                 Mailbox mbox = (Mailbox) first;
    112                 mbox.send(second);
    113                 return T;
    114             } else
    115                 return signalTypeError(first, Symbol.MAILBOX);
    116         }
     116      public LispObject execute(LispObject first, LispObject second)
     117        throws ConditionThrowable
     118      {
     119        if (first instanceof Mailbox)
     120          {
     121            Mailbox mbox = (Mailbox) first;
     122            mbox.send(second);
     123            return T;
     124          }
     125        else
     126          return signalTypeError(first, Symbol.MAILBOX);
     127      }
    117128    };
    118129
    119     // ### mailbox-read mailbox
    120     private static final Primitive MAILBOX_READ =
    121         new Primitive("mailbox-read", PACKAGE_EXT, true, "mailbox")
     130  // ### mailbox-read mailbox
     131  private static final Primitive MAILBOX_READ =
     132    new Primitive("mailbox-read", PACKAGE_EXT, true, "mailbox")
    122133    {
    123         public LispObject execute(LispObject arg) throws ConditionThrowable
    124         {
    125             if (arg instanceof Mailbox) {
    126                 Mailbox mbox = (Mailbox) arg;
    127                 return mbox.read();
    128             } else
    129                 return signalTypeError(arg, Symbol.MAILBOX);
    130         }
     134      public LispObject execute(LispObject arg) throws ConditionThrowable
     135      {
     136        if (arg instanceof Mailbox)
     137          {
     138            Mailbox mbox = (Mailbox) arg;
     139            return mbox.read();
     140          }
     141        else
     142          return signalTypeError(arg, Symbol.MAILBOX);
     143      }
    131144    };
    132145
    133     // ### mailbox-peek mailbox
    134     private static final Primitive MAILBOX_PEEK =
    135         new Primitive("mailbox-peek", PACKAGE_EXT, true, "mailbox")
     146  // ### mailbox-peek mailbox
     147  private static final Primitive MAILBOX_PEEK =
     148    new Primitive("mailbox-peek", PACKAGE_EXT, true, "mailbox")
    136149    {
    137         public LispObject execute(LispObject arg) throws ConditionThrowable
    138         {
    139             if (arg instanceof Mailbox) {
    140                 Mailbox mbox = (Mailbox) arg;
    141                 return mbox.peek();
    142             } else
    143                 return signalTypeError(arg, Symbol.MAILBOX);
    144         }
     150      public LispObject execute(LispObject arg) throws ConditionThrowable
     151      {
     152        if (arg instanceof Mailbox)
     153          {
     154            Mailbox mbox = (Mailbox) arg;
     155            return mbox.peek();
     156          }
     157        else
     158          return signalTypeError(arg, Symbol.MAILBOX);
     159      }
    145160    };
    146161
    147     // ### mailbox-empty-p mailbox
    148     private static final Primitive MAILBOX_EMPTY_P =
    149         new Primitive("mailbox-empty-p", PACKAGE_EXT, true, "mailbox")
     162  // ### mailbox-empty-p mailbox
     163  private static final Primitive MAILBOX_EMPTY_P =
     164    new Primitive("mailbox-empty-p", PACKAGE_EXT, true, "mailbox")
    150165    {
    151         public LispObject execute(LispObject arg) throws ConditionThrowable
    152         {
    153             if (arg instanceof Mailbox) {
    154                 Mailbox mbox = (Mailbox) arg;
    155                 return mbox.empty();
    156             } else
    157                 return signalTypeError(arg, Symbol.MAILBOX);
    158         }
     166      public LispObject execute(LispObject arg) throws ConditionThrowable
     167      {
     168        if (arg instanceof Mailbox)
     169          {
     170            Mailbox mbox = (Mailbox) arg;
     171            return mbox.empty();
     172          }
     173        else
     174            return signalTypeError(arg, Symbol.MAILBOX);
     175      }
    159176    };
    160177}
Note: See TracChangeset for help on using the changeset viewer.