Changeset 19810
- Timestamp:
- 11/25/15 13:47:15 (9 years ago)
- Location:
- issm/trunk-jpl/src/m
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/io/fileptr.js
r19793 r19810 12 12 this.view =NaN; 13 13 this.ptr =NaN; 14 this.buffersize =NaN; 15 this.mode =''; 14 16 this.options = new pairoptions(Array.prototype.slice.call(arguments)); 15 17 … … 21 23 console.log(sprintf(" ptr: %i\n",this.ptr)); 22 24 console.log(sprintf(" increment: %i\n",this.increment)); 25 console.log(sprintf(" mode: %s\n",this.mode)); 23 26 24 27 } //}}} 25 28 this.setdefaultparameters = function (options) { //{{{ 26 27 this.increment=options.getfieldvalue('increment',80000); //80000 bytes, 10000 doubles. 28 this.buffer=new ArrayBuffer(this.increment); 29 30 this.mode=options.getfieldvalue('mode'); 29 31 this.ptr=0; 30 this.view=new DataView(this.buffer); 32 this.increment=0; 33 this.buffersize=0; 34 if (this.mode=='w'){ 35 this.increment=options.getfieldvalue('increment',80000); //80000 bytes, 10000 doubles. 36 this.buffer=new ArrayBuffer(this.increment); 37 this.view=new DataView(this.buffer); 38 } 39 else if(this.mode == 'r'){ 40 41 /*recover buffer and its size: */ 42 var bufferin= options.getfieldvalue('buffer'); 43 this.buffersize= options.getfieldvalue('buffersize'); 44 45 /*crete a typed array buffer: */ 46 this.buffer=new ArrayBuffer(this.buffersize); 47 this.view=new DataView(this.buffer); 48 for(var i=0;i<this.buffersize;i++) this.view.setUint8(i,bufferin[i]); 49 } 31 50 32 51 } //}}} … … 72 91 else throw Error('fileptr.fwrite error message: wrong type of format'); 73 92 } //}}} 93 this.fread = function (size,format) { //{{{ 94 95 var value; 96 97 if(this.ptr==this.buffersize)return -1; 98 if(format == 'int'){ 99 if(size==1){ 100 value=this.view.getUint32(this.ptr,true); 101 this.ptr+=4; 102 } 103 else{ 104 value = new Uint32Array(size); 105 for(var i=0;i<size;i++){ 106 value[i]=this.view.getUint32(this.ptr,true); 107 this.ptr+=4; 108 } 109 } 110 } 111 else if(format == 'char'){ 112 value = ''; 113 for(var i=0;i<(size-1);i++){ 114 value+= String.fromCharCode(this.view.getUint8(this.ptr,true)); 115 this.ptr+=1; 116 } 117 this.ptr+=1; //pass over the '\0'; 118 119 } 120 else if(format == 'double'){ 121 if(size==1){ 122 value=this.view.getFloat64(this.ptr,true); 123 this.ptr+=8; 124 } 125 else{ 126 value = new Float64Array(size); 127 for(var i=0;i<size;i++){ 128 value[i]=this.view.getFloat64(this.ptr,true); 129 this.ptr+=8; 130 } 131 } 132 } 133 else throw Error('fileptr.fwrite error message: wrong type of format'); 134 135 return value; 136 } //}}} 74 137 this.rawbuffer = function () { //{{{ 75 138 return this.buffer.slice(0,this.ptr); -
issm/trunk-jpl/src/m/solve/marshall.js
r19791 r19810 13 13 14 14 //open file for binary writing 15 fid=new fileptr( );15 fid=new fileptr('mode','w'); 16 16 17 17 //First, write MaximumNumberOfEnum to make sure that the Enums are synchronized
Note:
See TracChangeset
for help on using the changeset viewer.