
import java.io.IOException;

/**
 * Application generates various transactions for accounting
 * and passes them through a generated socket for processing.
 * @author Heinz Kredel.
 */

public class NetzBuchungGenerate {

    private static int anzahl = 100;
    private static ChannelFactory cf = null;
    private static SocketChannel channel = null;
    private final static String finis = "finis";

    private static int kmax;
    private static int umax = 300;

    private static String hostname = "localhost";
    private static int port = 30000;


    public static void main(String[] args) throws InterruptedException {

        final int kmax = 30;
        final int bmax = 1000;

        if ( args.length > 0 ) hostname = args[0];

        cf = new ChannelFactory(port+1); 

        try { channel = cf.getChannel(hostname,port);
        } catch (IOException e) { System.err.println(e); return; }


        System.out.println("Starting ... ");
	for ( int i = 0; i < anzahl; i++ ) {

            int g = (int) (umax * Math.random());
            int a = (int) (kmax * Math.random());
            int b = (int) (kmax * Math.random());

            System.out.println("Ueberweisung " + i + ":" +
                       " Konto a = " + a +
                       " Konto b = " + b +
			       " Betrag g = " + g );

            Object u = (Object) new UeberweisungS(a,b,g); 

            try { channel.send( u ); }
            catch (IOException e) {
                  System.err.println(e); return; }

        }

        try { channel.send( (Object) finis ); }
        catch (IOException e) {
              System.err.println(e); return; }
        System.out.println("... finished " + anzahl + " records.");
        System.exit(1);

    }

}
