00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef MSGQUEUE_MANAGER_H_
00033 # define MSGQUEUE_MANAGER_H_
00034
00035 #include "byte_manager.h"
00036 #include "cachemodel_manager.h"
00037 #include "placeholder_manager.h"
00038
00039 #define PRECINCT_MSG 0
00040 #define EXT_PRECINCT_MSG 1
00041 #define TILE_HEADER_MSG 2
00042 #define TILE_MSG 4
00043 #define EXT_TILE_MSG 5
00044 #define MAINHEADER_MSG 6
00045 #define METADATA_MSG 8
00046
00048 typedef struct message_param{
00049 OPJ_BOOL last_byte;
00050 Byte8_t in_class_id;
00051 Byte8_t class_id;
00052 Byte8_t csn;
00053 Byte8_t bin_offset;
00054 Byte8_t length;
00055 Byte8_t aux;
00056 OPJ_OFF_T res_offset;
00057 placeholder_param_t *phld;
00058 struct message_param *next;
00059 } message_param_t;
00060
00062 typedef struct msgqueue_param{
00063 message_param_t *first;
00064 message_param_t *last;
00065 OPJ_BOOL stateless;
00066 cachemodel_param_t *cachemodel;
00067 } msgqueue_param_t;
00068
00076 msgqueue_param_t * gene_msgqueue( OPJ_BOOL stateless, cachemodel_param_t *cachemodel);
00077
00083 void delete_msgqueue( msgqueue_param_t **msgqueue);
00084
00091 void delete_message_in_msgqueue( message_param_t **message, msgqueue_param_t *msgqueue);
00092
00098 void print_msgqueue( msgqueue_param_t *msgqueue);
00099
00100
00106 void enqueue_mainheader( msgqueue_param_t *msgqueue);
00107
00114 void enqueue_tileheader( int tile_id, msgqueue_param_t *msgqueue);
00115
00123 void enqueue_tile( Byte4_t tile_id, int level, msgqueue_param_t *msgqueue);
00124
00134 void enqueue_precinct( int seq_id, int tile_id, int comp_id, int layers, msgqueue_param_t *msgqueue);
00135
00136
00143 void enqueue_metadata( Byte8_t meta_id, msgqueue_param_t *msgqueue);
00144
00145
00152 void recons_stream_from_msgqueue( msgqueue_param_t *msgqueue, int tmpfd);
00153
00154
00163 void parse_JPIPstream( Byte_t *JPIPstream, Byte8_t streamlen, OPJ_OFF_T offset, msgqueue_param_t *msgqueue);
00164
00173 void parse_metamsg( msgqueue_param_t *msgqueue, Byte_t *stream, Byte8_t streamlen, metadatalist_param_t *metadatalist);
00174
00185 Byte8_t comp_precinct_id( int t, int c, int s, int num_components, int num_tiles);
00186
00187 #endif