13 #if defined(__linux) || defined(__CYGWIN__) || defined(__APPLE_CC__) 
   14 #include <netinet/in.h> 
   19 #include <sys/socket.h> 
   41 lXDR::lXDR(
const char *filename, 
bool open_for_write) : _fileName(0), _fp(0) 
 
   59    FILE *fp = fopen(filename, open_for_write ? 
"wb" : 
"rb");
 
   61    FILE *fp = fopen(filename, open_for_write ? 
"w" : 
"r");
 
   76    int n = strlen(filename);
 
  100       for (i = 0; i < 4; i++) {
 
  101          unsigned char c = dd.b[i];
 
  102          dd.b[i]         = dd.b[7 - i];
 
  122       *l = ((int32_t)ntohl(buf));
 
  147       *((int32_t *) f) = ntohl(*((int32_t *) f));
 
  176    long rl = (length + 3) & 0xFFFFFFFC;
 
  177    char *s = 
new char[rl + 1];
 
  178    if (fread(s, 1, rl, 
_fp) != (
unsigned long) rl) {
 
  191    long *s = 
new long[length];
 
  200    int32_t *buf = 
new int32_t[length];
 
  201    if (fread(buf, 4, length, 
_fp) != (
unsigned long) length) {
 
  207    for (
long i = 0; i < length; i++){
 
  209            s[i] = ((int32_t)ntohl(buf[i]));
 
  223    double *s = 
new double[length];
 
  224    if (fread(s, 8, length, 
_fp) != (
unsigned long) length) {
 
  237    long *st = 
new long[length];
 
  239    if (fread(st, 4, length, 
_fp) != (
unsigned long) length) {
 
  244    double *s = 
new double[length];
 
  247       for (
long i = 0; i < length; i++) {
 
  248          long l = ntohl(st[i]);
 
  252      memcpy( &f, &l, 
sizeof(
float) ) ;
 
  278       double dd = 
htond(*d);
 
  303    long l = ((length + 3) & 0xFFFFFFFC) - length;
 
  311    long *s = (
long *) data;
 
  313       s = 
new long[length];
 
  314       for (
long i = 0; i < length; i++) s[i] = htonl(data[i]);
 
  317    long l = fwrite(s, 4, length, 
_fp);
 
  326    double *s = (
double *) data;
 
  328       s = 
new double[length];
 
  329       for (
long i = 0; i < length; i++) s[i] = 
htond(data[i]);
 
  331    long l = fwrite(s, 8, length, 
_fp);
 
  344    if (pos == -1) 
return(ftell(
_fp));
 
  345    if (fseek(
_fp, pos, SEEK_SET)) {
 
long filePosition(long pos=-1)
 
void setFileName(const char *filename, bool open_for_write=false)
 
double ntohd(double d) const 
 
long writeDoubleArray(const double *data, long length)
 
lXDR(const char *filename=0, bool open_for_write=false)
 
long writeLong(long data)
 
long * readLongArray(long &length)
 
double * readDoubleArray(long &length)
 
long writeDouble(double data)
 
double htond(double d) const 
 
long writeString(const char *data)
 
double * readFloatArray(long &length)
 
long writeLongArray(const long *data, long length)
 
const char * readString(long &length)