codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#ifndef NETTYPES_H #define NETTYPES_H namespace netheader { #pragma pack(push,1) // template<typename T> struct le16; template<typename T> struct be32; template<typename T> struct le16; template<typename T> struct be32; typedef le16< signed short> le_int16; typedef le16<unsigned short> le_uint16; typedef be16< signed short> be_int16; typedef be16<unsigned short> be_uint16; typedef le32< signed int> le_int32; typedef le32<unsigned int> le_uint32; typedef be32< signed int> be_int32; typedef be32<unsigned int> be_uint32; typedef signed char int8; typedef unsigned char uint8; // template<typename T> struct le16 { private: unsigned char lsb; unsigned char msb; public: T value() { return (msb << 8) | (lsb << 0); } void setValue(T value) { lsb = (value >> 0); msb = (value >> 8); } }; // template<typename T> struct be16 { private: unsigned char msb; unsigned char lsb; public: T value() { return (msb << 8) | (lsb << 0); } void setValue(T value) { lsb = (value >> 0); msb = (value >> 8); } }; // template<typename T> struct le32 { private: unsigned char llsb; unsigned char lmsb; unsigned char mlsb; unsigned char mmsb; public: T value() { return (mmsb << 24) | (mlsb << 16) | (lmsb << 8) | (llsb << 0); } void setValue(T value) { llsb = (value >> 0); lmsb = (value >> 8); mlsb = (value >> 16); mmsb = (value >> 24); } }; // template<typename T> struct be32 { private: unsigned char mmsb; unsigned char mlsb; unsigned char lmsb; unsigned char llsb; public: T value() { return (mmsb << 24) | (mlsb << 16) | (lmsb << 8) | (llsb << 0); } void setValue(T value) { llsb = (value >> 0); lmsb = (value >> 8); mlsb = (value >> 16); mmsb = (value >> 24); } }; // #pragma pack(pop) } //namespace netheader #endif // NETTYPES_H
Private
[
?
]
Run code
Submit