static inline void PackUnsignedInt(char* buffer, unsigned int value);\r
// packs an unsigned short into the specified buffer\r
static inline void PackUnsignedShort(char* buffer, unsigned short value);\r
+ \r
// unpacks a buffer into a signed int\r
static inline signed int UnpackSignedInt(char* buffer);\r
- // unpacks a buffer into a unsigned int\r
+ // unpacks a buffer into an unsigned int\r
static inline unsigned int UnpackUnsignedInt(char* buffer);\r
- // unpacks a buffer into a unsigned short\r
+ // unpacks a buffer into a signed short\r
+ static inline signed short UnpackSignedShort(char* buffer);\r
+ // unpacks a buffer into an unsigned short\r
static inline unsigned short UnpackUnsignedShort(char* buffer);\r
+ // unpacks a buffer into a double\r
+ static inline double UnpackDouble(char* buffer);\r
+ // unpacks a buffer into a float\r
+ static inline float UnpackFloat(char* buffer); \r
+ \r
+ // unpacks a buffer into a signed int\r
+ static inline signed int UnpackSignedInt(const char* buffer);\r
+ // unpacks a buffer into an unsigned int\r
+ static inline unsigned int UnpackUnsignedInt(const char* buffer);\r
+ // unpacks a buffer into a signed short\r
+ static inline signed short UnpackSignedShort(const char* buffer);\r
+ // unpacks a buffer into an unsigned short\r
+ static inline unsigned short UnpackUnsignedShort(const char* buffer);\r
+ // unpacks a buffer into a double\r
+ static inline double UnpackDouble(const char* buffer);\r
+ // unpacks a buffer into a float\r
+ static inline float UnpackFloat(const char* buffer); \r
};\r
\r
// -------------------------------------------------------------\r
return un.value;\r
}\r
\r
+// 'unpacks' a buffer into a signed short\r
+inline\r
+signed short BgzfData::UnpackSignedShort(char* buffer) {\r
+ union { signed short value; unsigned char valueBuffer[sizeof(signed short)]; } un;\r
+ un.value = 0;\r
+ un.valueBuffer[0] = buffer[0];\r
+ un.valueBuffer[1] = buffer[1];\r
+ return un.value;\r
+}\r
+\r
// 'unpacks' a buffer into an unsigned short\r
inline\r
unsigned short BgzfData::UnpackUnsignedShort(char* buffer) {\r
return un.value;\r
}\r
\r
+// 'unpacks' a buffer into a double\r
+inline\r
+double BgzfData::UnpackDouble(char* buffer) {\r
+ union { double value; unsigned char valueBuffer[sizeof(double)]; } un;\r
+ un.value = 0;\r
+ un.valueBuffer[0] = buffer[0];\r
+ un.valueBuffer[1] = buffer[1];\r
+ un.valueBuffer[2] = buffer[2];\r
+ un.valueBuffer[3] = buffer[3];\r
+ un.valueBuffer[4] = buffer[4];\r
+ un.valueBuffer[5] = buffer[5];\r
+ un.valueBuffer[6] = buffer[6];\r
+ un.valueBuffer[7] = buffer[7];\r
+ return un.value;\r
+}\r
+\r
+// 'unpacks' a buffer into a float\r
+inline\r
+float BgzfData::UnpackFloat(char* buffer) {\r
+ union { float value; unsigned char valueBuffer[sizeof(float)]; } un;\r
+ un.value = 0;\r
+ un.valueBuffer[0] = buffer[0];\r
+ un.valueBuffer[1] = buffer[1];\r
+ un.valueBuffer[2] = buffer[2];\r
+ un.valueBuffer[3] = buffer[3];\r
+ return un.value;\r
+}\r
+\r
+// ---------\r
+\r
+// 'unpacks' a buffer into a signed int\r
+inline\r
+signed int BgzfData::UnpackSignedInt(const char* buffer) {\r
+ union { signed int value; unsigned char valueBuffer[sizeof(signed int)]; } un;\r
+ un.value = 0;\r
+ un.valueBuffer[0] = buffer[0];\r
+ un.valueBuffer[1] = buffer[1];\r
+ un.valueBuffer[2] = buffer[2];\r
+ un.valueBuffer[3] = buffer[3];\r
+ return un.value;\r
+}\r
+\r
+// 'unpacks' a buffer into an unsigned int\r
+inline\r
+unsigned int BgzfData::UnpackUnsignedInt(const char* buffer) {\r
+ union { unsigned int value; unsigned char valueBuffer[sizeof(unsigned int)]; } un;\r
+ un.value = 0;\r
+ un.valueBuffer[0] = buffer[0];\r
+ un.valueBuffer[1] = buffer[1];\r
+ un.valueBuffer[2] = buffer[2];\r
+ un.valueBuffer[3] = buffer[3];\r
+ return un.value;\r
+}\r
+\r
+// 'unpacks' a buffer into a signed short\r
+inline\r
+signed short BgzfData::UnpackSignedShort(const char* buffer) {\r
+ union { signed short value; unsigned char valueBuffer[sizeof(signed short)]; } un;\r
+ un.value = 0;\r
+ un.valueBuffer[0] = buffer[0];\r
+ un.valueBuffer[1] = buffer[1];\r
+ return un.value;\r
+}\r
+\r
+// 'unpacks' a buffer into an unsigned short\r
+inline\r
+unsigned short BgzfData::UnpackUnsignedShort(const char* buffer) {\r
+ union { unsigned short value; unsigned char valueBuffer[sizeof(unsigned short)]; } un;\r
+ un.value = 0;\r
+ un.valueBuffer[0] = buffer[0];\r
+ un.valueBuffer[1] = buffer[1];\r
+ return un.value;\r
+}\r
+\r
+// 'unpacks' a buffer into a double\r
+inline\r
+double BgzfData::UnpackDouble(const char* buffer) {\r
+ union { double value; unsigned char valueBuffer[sizeof(double)]; } un;\r
+ un.value = 0;\r
+ un.valueBuffer[0] = buffer[0];\r
+ un.valueBuffer[1] = buffer[1];\r
+ un.valueBuffer[2] = buffer[2];\r
+ un.valueBuffer[3] = buffer[3];\r
+ un.valueBuffer[4] = buffer[4];\r
+ un.valueBuffer[5] = buffer[5];\r
+ un.valueBuffer[6] = buffer[6];\r
+ un.valueBuffer[7] = buffer[7];\r
+ return un.value;\r
+}\r
+\r
+// 'unpacks' a buffer into a float\r
+inline\r
+float BgzfData::UnpackFloat(const char* buffer) {\r
+ union { float value; unsigned char valueBuffer[sizeof(float)]; } un;\r
+ un.value = 0;\r
+ un.valueBuffer[0] = buffer[0];\r
+ un.valueBuffer[1] = buffer[1];\r
+ un.valueBuffer[2] = buffer[2];\r
+ un.valueBuffer[3] = buffer[3];\r
+ return un.value;\r
+}\r
+\r
} // namespace BamTools\r
\r
#endif // BGZF_H\r