File indexing completed on 2025-08-03 08:20:32
0001 #include "buffer.h"
0002 #include "gzbuffer.h"
0003 #include "lzobuffer.h"
0004 #include "bz2buffer.h"
0005 #include "prdfBuffer.h"
0006 #include "oncsBuffer.h"
0007
0008
0009 buffer::buffer ()
0010 {
0011
0012 }
0013
0014
0015 buffer::~buffer()
0016 {}
0017
0018
0019 int buffer::makeBuffer( PHDWORD *bp, const int allocatedsize, buffer **bptr)
0020 {
0021 if ( bp[1]== GZBUFFERMARKER || buffer::u4swap(bp[1])== GZBUFFERMARKER )
0022 {
0023 *bptr = new gzbuffer(bp, allocatedsize );
0024 return 0;
0025 }
0026
0027 else if ( bp[1]== LZO1XBUFFERMARKER
0028 || bp[1]== LZO1CBUFFERMARKER
0029 || bp[1]== LZO2ABUFFERMARKER
0030 || buffer::u4swap(bp[1])== LZO1XBUFFERMARKER
0031 || buffer::u4swap(bp[1])== LZO1CBUFFERMARKER
0032 || buffer::u4swap(bp[1])== LZO2ABUFFERMARKER )
0033 {
0034 *bptr = new lzobuffer ( bp, allocatedsize );
0035 return 0;
0036 }
0037
0038 else if ( bp[1]== BZ2BUFFERMARKER || buffer::u4swap(bp[1])== BZ2BUFFERMARKER )
0039 {
0040 *bptr = new bz2buffer ( bp, allocatedsize );
0041 return 0;
0042 }
0043
0044 else if ( bp[1]== ONCSBUFFERMARKER || buffer::u4swap(bp[1])== ONCSBUFFERMARKER )
0045 {
0046 *bptr = new oncsBuffer ( bp, allocatedsize );
0047 return 0;
0048 }
0049
0050 else if ( bp[1]== BUFFERMARKER || buffer::u4swap(bp[1])== BUFFERMARKER )
0051 {
0052 *bptr = new prdfBuffer ( bp, allocatedsize );
0053 return 0;
0054 }
0055
0056 *bptr = 0;
0057 return -1;
0058 }
0059
0060
0061
0062
0063 int buffer::i4swap(const int in)
0064 {
0065 union
0066 {
0067 int i4;
0068 char c[4];
0069 } i,o;
0070
0071 i.i4 = in;
0072 o.c[0] = i.c[3];
0073 o.c[1] = i.c[2];
0074 o.c[2] = i.c[1];
0075 o.c[3] = i.c[0];
0076 return o.i4;
0077 }
0078
0079
0080 unsigned int buffer::u4swap(const unsigned int in)
0081 {
0082 union
0083 {
0084 unsigned int i4;
0085 char c[4];
0086 } i,o;
0087
0088 i.i4 = in;
0089 o.c[0] = i.c[3];
0090 o.c[1] = i.c[2];
0091 o.c[2] = i.c[1];
0092 o.c[3] = i.c[0];
0093 return o.i4;
0094 }
0095
0096
0097
0098 int buffer::i22swap(const int in)
0099 {
0100 union
0101 {
0102 int i4;
0103 char c[4];
0104 } i,o;
0105
0106 i.i4 = in;
0107 o.c[0] = i.c[1];
0108 o.c[1] = i.c[0];
0109 o.c[2] = i.c[3];
0110 o.c[3] = i.c[2];
0111 return o.i4;
0112 }
0113
0114
0115 short buffer::i2swap(const short in)
0116 {
0117 union
0118 {
0119 short i2;
0120 char c[2];
0121 } i,o;
0122
0123 i.i2 = in;
0124 o.c[0] = i.c[1];
0125 o.c[1] = i.c[0];
0126
0127 return o.i2;
0128 }
0129
0130