Changeset 32 for chess


Ignore:
Timestamp:
02/09/09 10:32:59 (13 years ago)
Author:
BegemoT
Message:
 
Location:
chess
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • chess/build.xml

    r22 r32  
    6868            <include name = "lib/midpapi21.jar" /> 
    6969            <include name = "lib/cldcapi11.jar" /> 
    70             <include name = "../TEMP/j2me/libs/bluecove-2.1.0.jar" /> 
     70        </fileset> 
     71        <fileset dir = "${basedir}"> 
     72            <include name = "libs/bluecove-2.1.0.jar" /> 
    7173        </fileset> 
    7274    </path> 
     
    155157           fork = "true" 
    156158           target = "1.3" 
     159           source = "1.3" 
    157160           executable = "${module.jdk.bin.chess}/javac"> 
    158161      <compilerarg line = "${compiler.args.chess}" /> 
     
    215218  <target name = "preverify" 
    216219          description = "Preverify module &apos;chess&apos;"> 
    217     <exec executable = "${jdk.home.SJWTK_2.5.2_01}/bin/preverify"> 
     220    <exec executable = "${jdk.home.SJWTK_2.5.2_01}/bin/preverify" 
     221          failonerror = "true"> 
    218222      <arg line = "-d ${tmp.dir.chess}" /> 
    219223      <arg line = "-classpath ${jdk.home.SJWTK_2.5.2_01}/lib/midpapi21.jar;${jdk.home.SJWTK_2.5.2_01}/lib/cldcapi11.jar;${basedir}/libs/bluecove-2.1.0.jar" /> 
  • chess/chess.jad

    r29 r32  
    11MIDlet-1: Chess Game, , chess.ui.ChessMIDlet 
    2 MIDlet-Jar-Size: 85700 
     2MIDlet-Jar-Size: 311740 
    33MIDlet-Jar-URL: chess.jar 
    44MIDlet-Name: Chess 
  • chess/src/chess/control/BaseController.java

    r29 r32  
    66import javax.microedition.lcdui.Command; 
    77import javax.microedition.lcdui.Displayable; 
     8import javax.microedition.lcdui.AlertType; 
    89 
    910import chess.game.*; 
     
    159160 
    160161    public void closed() { 
     162        final Throwable e = node.getError(); 
     163        if ( e != null ) { 
     164            final Alert alert = new Alert( "Error", e.getMessage(), null, AlertType.ERROR ); 
     165            app.getMidlet().display.setCurrent( alert ); 
     166        } 
    161167        setStatus( WAITING_CONNECT ); 
    162168    } 
     
    316322                if ( status == WAITING_CONNECT ) { 
    317323                    //fixme: òóò ïîäñòàâà -- ïîõîæå, deadlock 
    318                     node.close(); 
     324                    node.close( true ); 
    319325                    midlet.searchGame(); 
    320326                } 
     
    328334            } else if ( c == ui.surrenderCommand ) { 
    329335                postSurrender(); 
    330                 node.close(); 
     336                node.close( true ); 
    331337                midlet.showStartScreen(); 
    332338            } else if ( c == ui.askForDrawCommand ) { 
  • chess/src/chess/remote/IRemoteNode.java

    r19 r32  
    1717        public void send( final IDatagram data ); 
    1818 
    19     public void close(); 
     19    public void close( final boolean safe ); 
     20 
     21    public Throwable getError(); 
    2022} 
  • chess/src/chess/remote/impl/BTNode.java

    r31 r32  
    3333    private StreamConnection connection = null; 
    3434 
     35    private volatile boolean quitPump = false; 
     36 
    3537    private transient InputStream in; 
    3638    private transient OutputStream out; 
    3739    private transient Thread pump; 
     40 
     41    private Throwable lastError = null; 
    3842 
    3943    /** 
     
    128132                    queueOverloadedLock.wait( 250 ); 
    129133                } catch ( InterruptedException e ) { 
    130                     e.printStackTrace(); 
     134                    //e.printStackTrace(); 
    131135                } 
    132136            } 
     
    145149                listener.connected(); 
    146150            } 
    147 //                      synchronized( connectLock ) { 
    148 //                              connectLock.notifyAll(); 
    149 //                      } 
    150151            final GenericDatagram data = new GenericDatagram(); 
    151             while ( !isClosed() ) { 
     152            while ( !isClosed() && !quitPump ) { 
    152153                synchronized ( this ) { 
    153154                    final int timeout; 
     
    188189        } catch ( Throwable e ) { 
    189190            e.printStackTrace(); 
     191            lastError = e; 
    190192        } finally { 
    191193            pump = null; 
    192             close(); 
    193         } 
    194     } 
    195  
    196     public void close() { 
     194            closeImpl(); 
     195        } 
     196    } 
     197 
     198    public void close( final boolean safe ) { 
    197199        if ( isClosed() ) { 
    198200            return; 
    199201        } 
     202        if ( safe ) { 
     203            askPumpToQuit(); 
     204        } else { 
     205            closeImpl(); 
     206        } 
     207    } 
     208 
     209    public Throwable getError() { 
     210        return null; 
     211    } 
     212 
     213    private void closeImpl() { 
    200214        try { 
    201215            if ( in != null ) { 
     
    259273            } catch ( IOException ex ) { 
    260274                ex.printStackTrace(); 
    261                 throw new RuntimeException( "Can't open input stream:" + ex.getMessage() ); 
     275                throw ex; 
     276                //throw new IOException( "Can't open input stream:" + ex.getMessage() ); 
    262277            } 
    263278        } 
     
    267282            } catch ( IOException ex ) { 
    268283                ex.printStackTrace(); 
    269                 throw new RuntimeException( "Can't open output stream:" + ex.getMessage() ); 
     284                throw ex; 
     285                //throw new IOException( "Can't open output stream:" + ex.getMessage() ); 
    270286            } 
    271287        } 
     
    301317    } 
    302318 
     319    private void askPumpToQuit() { 
     320        synchronized ( this ) { 
     321            quitPump = true; 
     322            notifyAll(); 
     323        } 
     324        //device = null; 
     325    } 
     326 
    303327    private boolean isStartCalled() { 
    304328        return pump != null; 
  • chess/src/chess/remote/impl/BTRemote.java

    r29 r32  
    132132                                                                return; 
    133133                                                        } 
    134                                                         client.close(); 
     134                                                        client.close( true ); 
    135135                                                } 
    136136                                        } catch( InterruptedIOException ex ) { 
  • chess/src/chess/remote/impl/debug/DebugRemote.java

    r29 r32  
    203203                } 
    204204 
    205                 public void close() { 
     205                public void close( final boolean safe ) { 
    206206                        listener.closed(); 
    207207                } 
    208         } 
     208 
     209        public Throwable getError() { 
     210            return null; 
     211        } 
     212    } 
    209213 
    210214        private class ServerRemoteNode implements IRemoteNode { 
     
    316320                } 
    317321 
    318                 public void close() { 
     322                public void close( final boolean safe ) { 
    319323                        listener.closed(); 
    320324                } 
    321         } 
     325 
     326        public Throwable getError() { 
     327            return null; 
     328        } 
     329    } 
    322330 
    323331        private static class QueryDeviceProcess extends TimerTask implements IAsyncProcess { 
Note: See TracChangeset for help on using the changeset viewer.