msgqueue_manager.h
Go to the documentation of this file.
/*
* $Id$
*
* Copyright (c) 2002-2014, Universite catholique de Louvain (UCL), Belgium
* Copyright (c) 2002-2014, Professor Benoit Macq
* Copyright (c) 2010-2011, Kaori Hagihara
* Copyright (c) 2011, Lucian Corlaciu, GSoC
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef MSGQUEUE_MANAGER_H_
# define MSGQUEUE_MANAGER_H_
#include "byte_manager.h"
#include "cachemodel_manager.h"
#include "placeholder_manager.h"
#define PRECINCT_MSG 0
#define EXT_PRECINCT_MSG 1
#define TILE_HEADER_MSG 2
#define TILE_MSG 4
#define EXT_TILE_MSG 5
#define MAINHEADER_MSG 6
#define METADATA_MSG 8
typedef struct message_param {
OPJ_BOOL
last_byte;
Byte8_t in_class_id;
Byte8_t class_id;
Byte8_t csn;
Byte8_t bin_offset;
Byte8_t length;
Byte8_t aux;
OPJ_OFF_T res_offset;
placeholder_param_t *phld;
struct message_param *next;
} message_param_t;
typedef struct msgqueue_param {
message_param_t *first;
message_param_t *last;
OPJ_BOOL stateless;
cachemodel_param_t *cachemodel;
} msgqueue_param_t;
msgqueue_param_t * gene_msgqueue(OPJ_BOOL stateless,
cachemodel_param_t *cachemodel);
void delete_msgqueue(msgqueue_param_t **msgqueue);
void delete_message_in_msgqueue(message_param_t **message,
msgqueue_param_t *msgqueue);
void print_msgqueue(msgqueue_param_t *msgqueue);
void enqueue_mainheader(msgqueue_param_t *msgqueue);
void enqueue_tileheader(int tile_id, msgqueue_param_t *msgqueue);
void enqueue_tile(Byte4_t tile_id, int level, msgqueue_param_t *msgqueue);
void enqueue_precinct(int seq_id, int tile_id, int comp_id, int layers,
msgqueue_param_t *msgqueue);
void enqueue_metadata(Byte8_t meta_id, msgqueue_param_t *msgqueue);
void recons_stream_from_msgqueue(msgqueue_param_t *msgqueue, int tmpfd);
void parse_JPIPstream(Byte_t *JPIPstream, Byte8_t streamlen, OPJ_OFF_T offset,
msgqueue_param_t *msgqueue);
void parse_metamsg(msgqueue_param_t *msgqueue, Byte_t *stream,
Byte8_t streamlen, metadatalist_param_t *metadatalist);
Byte8_t comp_precinct_id(int t, int c, int s, int num_components,
int num_tiles);
#endif /* !MSGQUEUE_MANAGER_H_ */
byte_manager.h
Byte8_t
uint64_t Byte8_t
Definition byte_manager.h:40
Byte4_t
uint32_t Byte4_t
Definition byte_manager.h:39
Byte_t
uint8_t Byte_t
Definition byte_manager.h:37
cachemodel_manager.h
cachemodel_param_t
struct cachemodel_param cachemodel_param_t
Cache model parameters.
metadatalist_param_t
struct metadatalist_param metadatalist_param_t
metadata-bin list parameters
enqueue_mainheader
void enqueue_mainheader(msgqueue_param_t *msgqueue)
enqueue main header data-bin into message queue
Definition msgqueue_manager.c:135
enqueue_tileheader
void enqueue_tileheader(int tile_id, msgqueue_param_t *msgqueue)
enqueue tile headers data-bin into message queue
Definition msgqueue_manager.c:165
comp_precinct_id
Byte8_t comp_precinct_id(int t, int c, int s, int num_components, int num_tiles)
compute precinct ID A.3.2.1
Definition msgqueue_manager.c:311
enqueue_tile
void enqueue_tile(Byte4_t tile_id, int level, msgqueue_param_t *msgqueue)
enqueue tile data-bin into message queue
Definition msgqueue_manager.c:198
message_param_t
struct message_param message_param_t
message parameters
parse_JPIPstream
void parse_JPIPstream(Byte_t *JPIPstream, Byte8_t streamlen, OPJ_OFF_T offset, msgqueue_param_t *msgqueue)
parse JPT- JPP- stream to message queue
Definition msgqueue_manager.c:631
gene_msgqueue
msgqueue_param_t * gene_msgqueue(OPJ_BOOL stateless, cachemodel_param_t *cachemodel)
generate message queue
Definition msgqueue_manager.c:59
parse_metamsg
void parse_metamsg(msgqueue_param_t *msgqueue, Byte_t *stream, Byte8_t streamlen, metadatalist_param_t *metadatalist)
parse JPT- JPP- stream to message queue
Definition msgqueue_manager.c:687
enqueue_metadata
void enqueue_metadata(Byte8_t meta_id, msgqueue_param_t *msgqueue)
enqueue Metadata-bin into message queue
Definition msgqueue_manager.c:323
print_msgqueue
void print_msgqueue(msgqueue_param_t *msgqueue)
print message queue
Definition msgqueue_manager.c:97
msgqueue_param_t
struct msgqueue_param msgqueue_param_t
message queue parameters
recons_stream_from_msgqueue
void recons_stream_from_msgqueue(msgqueue_param_t *msgqueue, int tmpfd)
reconstruct JPT/JPP-stream from message queue
Definition msgqueue_manager.c:443
delete_message_in_msgqueue
void delete_message_in_msgqueue(message_param_t **message, msgqueue_param_t *msgqueue)
delete a message in msgqueue
Definition msgqueue_manager.c:795
enqueue_precinct
void enqueue_precinct(int seq_id, int tile_id, int comp_id, int layers, msgqueue_param_t *msgqueue)
enqueue precinct data-bin into message queue
Definition msgqueue_manager.c:256
delete_msgqueue
void delete_msgqueue(msgqueue_param_t **msgqueue)
delete message queue
Definition msgqueue_manager.c:75
OPJ_OFF_T
int64_t OPJ_OFF_T
Definition openjpeg.h:136
OPJ_BOOL
int OPJ_BOOL
Definition openjpeg.h:116
placeholder_manager.h
placeholder_param_t
struct placeholder_param placeholder_param_t
A.3.6.3 Placeholder box format.
message_param
message parameters
Definition msgqueue_manager.h:48
message_param::class_id
Byte8_t class_id
class identifiers
Definition msgqueue_manager.h:52
message_param::in_class_id
Byte8_t in_class_id
in-class identifier A.2.3
Definition msgqueue_manager.h:51
message_param::csn
Byte8_t csn
index of the codestream
Definition msgqueue_manager.h:53
message_param::phld
placeholder_param_t * phld
placeholder pointer in index
Definition msgqueue_manager.h:58
message_param::length
Byte8_t length
message byte length
Definition msgqueue_manager.h:55
message_param::last_byte
OPJ_BOOL last_byte
if message contains the last byte of the data-bin
Definition msgqueue_manager.h:50
message_param::bin_offset
Byte8_t bin_offset
offset of the data in this message from the start of the data-bin
Definition msgqueue_manager.h:54
message_param::res_offset
OPJ_OFF_T res_offset
offset in the resource
Definition msgqueue_manager.h:57
message_param::aux
Byte8_t aux
Definition msgqueue_manager.h:56
message_param::next
struct message_param * next
pointer to the next message
Definition msgqueue_manager.h:59
msgqueue_param
message queue parameters
Definition msgqueue_manager.h:63
msgqueue_param::cachemodel
cachemodel_param_t * cachemodel
reference cachemodel pointer
Definition msgqueue_manager.h:67
msgqueue_param::last
message_param_t * last
last message pointer of the list
Definition msgqueue_manager.h:65
msgqueue_param::first
message_param_t * first
first message pointer of the list
Definition msgqueue_manager.h:64
msgqueue_param::stateless
OPJ_BOOL stateless
if this is a stateless message queue
Definition msgqueue_manager.h:66