Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-03 08:20:43

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