Home  · Classes  · Annotated Classes  · Modules  · Members  · Namespaces  · Related Pages
Classes | Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
MSNumpressCoder Class Reference

Class to encode and decode data encoded with MSNumpress. More...

#include <OpenMS/FORMAT/MSNumpressCoder.h>

Classes

struct  NumpressConfig
 Configuration class for MSNumpress. More...
 

Public Types

enum  NumpressCompression { NONE, LINEAR, PIC, SLOF }
 

Public Member Functions

 MSNumpressCoder ()
 default constructor More...
 
virtual ~MSNumpressCoder ()
 Destructor. More...
 
void encodeNP (const std::vector< double > &in, String &result, bool zlib_compression, const NumpressConfig &config)
 Encodes a vector of floating point numbers into a Base64 string using numpress. More...
 
void encodeNP (const std::vector< float > &in, String &result, bool zlib_compression, const NumpressConfig &config)
 encodeNP from a float (convert first to double) More...
 
void decodeNP (const String &in, std::vector< double > &out, bool zlib_compression, const NumpressConfig &config)
 Decodes a Base64 string to a vector of floating point numbers using numpress. More...
 

Private Member Functions

void encodeNP_ (const std::vector< double > &in, String &result, const NumpressConfig &config)
 Encode the vector in to the result string using numpress. More...
 
void decodeNP_ (const std::string &in, std::vector< double > &out, const NumpressConfig &config)
 Decode the (not necessary null terminated) string in to the result vector out. More...
 
void decodeNPInternal_ (const unsigned char *in, size_t in_size, std::vector< double > &out, const NumpressConfig &config)
 

Private Attributes

Base64 base64coder_
 

Detailed Description

Class to encode and decode data encoded with MSNumpress.

MSNumpress supports three encoding schemata:

Member Enumeration Documentation

Enumerator
NONE 
LINEAR 
PIC 
SLOF 

Constructor & Destructor Documentation

MSNumpressCoder ( )
inline

default constructor

virtual ~MSNumpressCoder ( )
inlinevirtual

Destructor.

Member Function Documentation

void decodeNP ( const String in,
std::vector< double > &  out,
bool  zlib_compression,
const NumpressConfig config 
)
inline

Decodes a Base64 string to a vector of floating point numbers using numpress.

This code is obtained from the proteowizard implementation ./pwiz/pwiz/data/msdata/BinaryDataEncoder.cpp (adapted by Hannes Roest).

This function will first decode the input base64 string (with optional zlib decompression after decoding) and then apply numpress decoding to the data.

Parameters
inThe base64 encoded string
outThe resulting vector of doubles
zlib_compressionWhether to apply zlib de-compression before numpress de-compression
configThe numpress configuration defining the compression strategy
Exceptions
throwsException::ConversionError if the string cannot be converted
void decodeNP_ ( const std::string &  in,
std::vector< double > &  out,
const NumpressConfig config 
)
private

Decode the (not necessary null terminated) string in to the result vector out.

Note
that the string in should *only* contain the data and _no_ extra null terminating byte (unless of course the last data byte is null)
Exceptions
throwsException::ConversionError if the string cannot be converted
void decodeNPInternal_ ( const unsigned char *  in,
size_t  in_size,
std::vector< double > &  out,
const NumpressConfig config 
)
private
void encodeNP ( const std::vector< double > &  in,
String result,
bool  zlib_compression,
const NumpressConfig config 
)
inline

Encodes a vector of floating point numbers into a Base64 string using numpress.

This code is obtained from the proteowizard implementation ./pwiz/pwiz/data/msdata/BinaryDataEncoder.cpp (adapted by Hannes Roest).

This function will first apply the numpress encoding to the data, then encode the result in base64 (with optional zlib compression before base64 encoding).

Note
In case of error, result string is empty
Parameters
inThe vector of floating point numbers to be encoded
resultThe resulting string
zlib_compressionWhether to apply zlib compression after numpress compression
configThe numpress configuration defining the compression strategy

Referenced by MzMLHandler< MSExperiment<> >::writeBinaryDataArray().

void encodeNP ( const std::vector< float > &  in,
String result,
bool  zlib_compression,
const NumpressConfig config 
)
inline

encodeNP from a float (convert first to double)

void encodeNP_ ( const std::vector< double > &  in,
String result,
const NumpressConfig config 
)
private

Encode the vector in to the result string using numpress.

Note
In case of error, result is given back unmodified

Member Data Documentation

Base64 base64coder_
private

OpenMS / TOPP release 2.0.0 Documentation generated on Sat May 16 2015 16:13:58 using doxygen 1.8.9.1