annotate src/samer/units/VecToStream.java @ 8:5e3cbbf173aa tip

Reorganise some more
author samer
date Fri, 05 Apr 2019 22:41:58 +0100
parents bf79fb79ee13
children
rev   line source
samer@0 1 //
samer@0 2 // VecToStream.java
samer@0 3 //
samer@0 4 //
samer@0 5 // Created by Samer Abdallah on Mon Jun 10 2002.
samer@0 6 // Copyright (c) 2002 __MyCompanyName__. All rights reserved.
samer@0 7 //
samer@0 8
samer@0 9 package samer.units;
samer@0 10
samer@0 11 import samer.core.*;
samer@0 12 import samer.tools.*;
samer@0 13 import samer.maths.*;
samer@0 14 import java.io.*;
samer@0 15
samer@0 16 /** Write sequence of vectors to stream in binary format. */
samer@0 17
samer@0 18 public class VecToStream extends AnonymousTask {
samer@0 19 Vec x; // the vector itself
samer@0 20 OutputStream out; // stream to write to
samer@0 21 DataOutputStream objout;
samer@0 22 Task task;
samer@0 23
samer@0 24 public VecToStream(Vec x, OutputStream out) throws Exception
samer@0 25 {
samer@0 26 this.x=x;
samer@0 27 this.out=out;
samer@0 28 objout=new DataOutputStream(out);
samer@0 29
samer@0 30 double [] a=x.array();
samer@0 31 //if (a!=null) task=new ArrayObjectWriter(a);
samer@0 32 //else
samer@0 33 task=new IteratorFloatWriter();
samer@0 34 }
samer@0 35
samer@0 36 public void dispose() {
samer@0 37 try {
samer@0 38 objout.flush();
samer@0 39 objout.close();
samer@0 40 } catch (Exception ex) {}
samer@0 41
samer@0 42 // close out?
samer@0 43 }
samer@0 44
samer@0 45 public Task getTask() { return task; }
samer@0 46
samer@0 47 public void run() throws Exception { task.run(); /* autoflush? */ }
samer@0 48 public void stopping() {
samer@0 49 try { objout.flush(); }
samer@0 50 catch (Exception ex) {}
samer@0 51 }
samer@0 52
samer@0 53 class ArrayObjectWriter extends AnonymousTask {
samer@0 54 double [] array;
samer@0 55 public ArrayObjectWriter(double [] a) { array=a; }
samer@0 56 public void run() throws Exception {
samer@0 57 // objout.writeObject(array);
samer@0 58 }
samer@0 59 }
samer@0 60
samer@0 61 class IteratorFloatWriter extends AnonymousTask {
samer@0 62 public void run() throws Exception {
samer@0 63 Vec.Iterator i=x.iterator();
samer@0 64 while (i.more()) {
samer@0 65 objout.writeFloat((float)i.next());
samer@0 66 }
samer@0 67 }
samer@0 68 }
samer@0 69 }