00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef GDSIO_H
00010 #define GDSIO_H
00011 #ifdef __GNUG__
00012 #pragma interface
00013 #endif
00014
00015 #include <fstream.h>
00016
00017 #include "gdsii.h"
00018 #include "gdserr.h"
00019 #define MAX_G_BYTES 8 // maximum bytes a value can use
00020
00021
00022
00023
00024 typedef unsigned char G_BYTE;
00025
00026
00027 typedef unsigned short int TWO_G_BYTE_UNSIGNED_INTEGER;
00028 typedef unsigned int FOUR_G_BYTE_UNSIGNED_INTEGER;
00029 typedef short int TWO_G_BYTE_SIGNED_INTEGER;
00030 typedef int FOUR_G_BYTE_SIGNED_INTEGER;
00031 typedef float FOUR_G_BYTE_REAL;
00032 typedef double EIGHT_G_BYTE_REAL;
00033
00034 typedef struct _ARRAY { unsigned char array[MAX_G_BYTES]; } _ARRAY;
00035 typedef union a_union_value {
00036 TWO_G_BYTE_SIGNED_INTEGER two_byte_signed_integer;
00037 FOUR_G_BYTE_SIGNED_INTEGER four_byte_signed_integer;
00038 FOUR_G_BYTE_REAL four_byte_real;
00039 EIGHT_G_BYTE_REAL eight_byte_real;
00040
00041 _ARRAY array;
00042
00043 } a_union_value;
00044
00045
00046
00047
00051 class Gdsio : public fstream
00052 {
00053 public:
00055 void gds2double(unsigned char *);
00057 void double2gds(unsigned char *);
00058
00060 Gdsio& operator>>(G_BYTE *);
00062 Gdsio& operator>>(TWO_G_BYTE_UNSIGNED_INTEGER *my_integer);
00064 Gdsio& operator>>(TWO_G_BYTE_SIGNED_INTEGER *);
00066 Gdsio& operator>>(FOUR_G_BYTE_SIGNED_INTEGER *);
00068 Gdsio& operator>>(FOUR_G_BYTE_REAL *);
00070 Gdsio& operator>>(EIGHT_G_BYTE_REAL *);
00071
00073 Gdsio& operator<<(G_BYTE );
00075 Gdsio& operator<<(TWO_G_BYTE_UNSIGNED_INTEGER my_integer);
00077 Gdsio& operator<<(TWO_G_BYTE_SIGNED_INTEGER );
00079 Gdsio& operator<<(FOUR_G_BYTE_SIGNED_INTEGER );
00081 Gdsio& operator<<(FOUR_G_BYTE_REAL );
00083 Gdsio& operator<<(EIGHT_G_BYTE_REAL );
00084 };
00085 #endif
00086
gdsio.h Source File -- Thu Nov 28 21:24:56 2002 -- 28 Nov 2002 -- 1.2.18 -- -- . --