libwreport
2.4
|
BUFR bulletin implementation. More...
#include <bulletin.h>
Public Member Functions | |
void | clear () |
Reset the bulletin. | |
virtual const char * | encoding_name () const throw () |
Type of source/target encoding. | |
virtual void | load_tables () |
Load a new set of tables to use for encoding this message. | |
virtual void | decode_header (const std::string &raw, const char *fname="(memory)", size_t offset=0) |
Parse only the header of an encoded message. | |
virtual void | decode (const std::string &raw, const char *fname="(memory)", size_t offset=0) |
Parse an encoded message. | |
virtual void | encode (std::string &buf) const |
Encode the message. | |
virtual void | print_details (FILE *out) const |
Print format-specific details. | |
virtual unsigned | diff_details (const Bulletin &msg) const |
Diff format-specific details. | |
bulletin::BufrInput & | reset_raw_details (const std::string &buf) |
Create or reset the raw_details structure for this bulletin. | |
Static Public Member Functions | |
static bool | read (FILE *in, std::string &buf, const char *fname=0, long *offset=0) |
Read an encoded BUFR message from a stream. | |
static void | write (const std::string &buf, FILE *out, const char *fname=0) |
Write an encoded BUFR message to a stream. | |
static std::auto_ptr < BufrBulletin > | create () |
To prevent breaking ABI if new members are added to bulletins, direct construction is discouraged in favour of an allocator function. | |
Data Fields | |
int | centre |
BUFR-specific encoding options. | |
int | subcentre |
Centre-specific subcentre code. | |
int | master_table |
Version number of master tables used. | |
int | local_table |
Version number of local tables used to augment the master table. | |
int | compression |
1 if the BUFR message uses compression, else 0 | |
int | update_sequence_number |
Update sequence number from octet 7 in section 1. | |
int | optional_section_length |
0 if the BUFR message does not contain an optional section, else its length in bytes | |
char * | optional_section |
Raw contents of the optional section. | |
bulletin::BufrInput * | raw_details |
Raw details about the message that has been decoded. | |
const BufrCodecOptions * | codec_options |
Options used to customise encoding or decoding. |
BUFR bulletin implementation.
virtual void wreport::BufrBulletin::decode | ( | const std::string & | buf, |
const char * | fname = "(memory)" , |
||
size_t | offset = 0 |
||
) | [virtual] |
Parse an encoded message.
buf | The buffer to decode |
fname | The file name to use for error messages |
offset | The offset inside the file of the start of the bulletin, used for error messages |
Implements wreport::Bulletin.
virtual void wreport::BufrBulletin::decode_header | ( | const std::string & | buf, |
const char * | fname = "(memory)" , |
||
size_t | offset = 0 |
||
) | [virtual] |
Parse only the header of an encoded message.
buf | The buffer to decode |
fname | The file name to use for error messages |
offset | The offset inside the file of the start of the bulletin, used for error messages |
Implements wreport::Bulletin.
static bool wreport::BufrBulletin::read | ( | FILE * | in, |
std::string & | buf, | ||
const char * | fname = 0 , |
||
long * | offset = 0 |
||
) | [static] |
Read an encoded BUFR message from a stream.
in | The stream to read from |
buf | The buffer where the data will be written |
fname | File name to use in error messages |
offset | The offset in the file of the beginning of the BUFR data |
bulletin::BufrInput& wreport::BufrBulletin::reset_raw_details | ( | const std::string & | buf | ) |
Create or reset the raw_details structure for this bulletin.
This is only invoked during decoding.
static void wreport::BufrBulletin::write | ( | const std::string & | buf, |
FILE * | out, | ||
const char * | fname = 0 |
||
) | [static] |
Write an encoded BUFR message to a stream.
buf | The buffer with the data to write |
out | The stream to write to |
fname | File name to use in error messages |
BUFR-specific encoding options.
Common Code table C-1 identifying the originating centre
Options used to customise encoding or decoding.
It is NULL by default, in which case default options are used.
To configure it, set it to point to a BufrCodecOptions structure with the parameters you need. The caller is responsible for the memory management of the BufrCodecOptions structure.
Raw details about the message that has been decoded.
It is only filled in by a decoding operation: in all other cases it is NULL.