00001 #include "foundation_AMOS.hh"
00002 #include <iostream>
00003 using namespace AMOS;
00004 using namespace std;
00005
00006 int main (int argc, char ** argv)
00007 {
00008 if ( argc != 2 )
00009 {
00010 cerr << "USAGE: " << argv[0] << " <outfile>" << endl;
00011 exit (-1);
00012 }
00013
00014 const uint8_t u8c = 0x01;
00015 const uint16_t u16c = 0x0123;
00016 const uint32_t u32c = 0x01234567;
00017 const uint64_t u64c = 0x0123456789ABCDEFull;
00018
00019 const int8_t s8c = -u8c;
00020 const int16_t s16c = -u16c;
00021 const int32_t s32c = -u32c;
00022 const int64_t s64c = -u64c;
00023
00024 cout << "BEFORE." << endl
00025 << (unsigned long long)u8c << endl
00026 << (unsigned long long)u16c << endl
00027 << (unsigned long long)u32c << endl
00028 << (unsigned long long)u64c << endl
00029 << (long long)s8c << endl
00030 << (long long)s16c << endl
00031 << (long long)s32c << endl
00032 << (long long)s64c << endl << endl;
00033
00034 uint8_t u8;
00035 uint16_t u16;
00036 uint32_t u32;
00037 uint64_t u64;
00038
00039 int8_t s8;
00040 int16_t s16;
00041 int32_t s32;
00042 int64_t s64;
00043
00044 fstream as;
00045 as . open (argv[1], ios::out | ios::binary | ios::trunc);
00046 writeLE (as, &u8c);
00047 writeLE (as, &u16c);
00048 writeLE (as, &u32c);
00049 writeLE (as, &u64c);
00050 writeLE (as, &s8c);
00051 writeLE (as, &s16c);
00052 writeLE (as, &s32c);
00053 writeLE (as, &s64c);
00054 as . close( );
00055
00056 as . open (argv[1], ios::in | ios::binary);
00057 readLE (as, &u8);
00058 readLE (as, &u16);
00059 readLE (as, &u32);
00060 readLE (as, &u64);
00061 readLE (as, &s8);
00062 readLE (as, &s16);
00063 readLE (as, &s32);
00064 readLE (as, &s64);
00065 as . close( );
00066
00067 cout << "AFTER." << endl
00068 << (unsigned long long)u8 << endl
00069 << (unsigned long long)u16 << endl
00070 << (unsigned long long)u32 << endl
00071 << (unsigned long long)u64 << endl
00072 << (long long)s8 << endl
00073 << (long long)s16 << endl
00074 << (long long)s32 << endl
00075 << (long long)s64 << endl << endl;
00076
00077 if ( u8c == u8 && u16c == u16 && u32c == u32 && u64c == u64 &&
00078 s8c == s8 && s16c == s16 && s32c == s32 && s64c == s64 )
00079 {
00080 cout << "SUCCESS!" << endl;
00081 return 0;
00082 }
00083 else
00084 {
00085 cout << "FAILURE!" << endl;
00086 return -1;
00087 }
00088 }