rubywmq 2.0.0.pre3 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +121 -106
 - data/ext/Makefile +185 -0
 - data/ext/decode_rfh.o +0 -0
 - data/ext/wmq.o +0 -0
 - data/ext/wmq.so +0 -0
 - data/ext/wmq_message.o +0 -0
 - data/ext/wmq_mq_load.o +0 -0
 - data/ext/wmq_queue.o +0 -0
 - data/ext/wmq_queue_manager.o +0 -0
 - data/ext/wmq_reason.c +5301 -0
 - data/ext/wmq_reason.o +0 -0
 - data/ext/wmq_structs.c +1609 -0
 - data/ext/wmq_structs.o +0 -0
 - data/lib/wmq/version.rb +1 -1
 - data/nbproject/private/config.properties +0 -0
 - data/nbproject/private/private.properties +1 -0
 - data/nbproject/private/private.xml +4 -0
 - data/nbproject/private/rake-d.txt +5 -0
 - data/nbproject/project.properties +11 -0
 - data/nbproject/project.xml +17 -0
 - data/rubywmq-2.0.0.pre3.gem +0 -0
 - metadata +58 -53
 
    
        data/ext/wmq_structs.c
    ADDED
    
    | 
         @@ -0,0 +1,1609 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
             
     | 
| 
      
 2 
     | 
    
         
            +
            /* --------------------------------------------------------------------------
         
     | 
| 
      
 3 
     | 
    
         
            +
             *  Copyright 2006 J. Reid Morrison. Dimension Solutions, Inc.
         
     | 
| 
      
 4 
     | 
    
         
            +
             *
         
     | 
| 
      
 5 
     | 
    
         
            +
             *  Licensed under the Apache License, Version 2.0 (the "License");
         
     | 
| 
      
 6 
     | 
    
         
            +
             *  you may not use this file except in compliance with the License.
         
     | 
| 
      
 7 
     | 
    
         
            +
             *  You may obtain a copy of the License at
         
     | 
| 
      
 8 
     | 
    
         
            +
             *
         
     | 
| 
      
 9 
     | 
    
         
            +
             *      http://www.apache.org/licenses/LICENSE-2.0
         
     | 
| 
      
 10 
     | 
    
         
            +
             *
         
     | 
| 
      
 11 
     | 
    
         
            +
             *  Unless required by applicable law or agreed to in writing, software
         
     | 
| 
      
 12 
     | 
    
         
            +
             *  distributed under the License is distributed on an "AS IS" BASIS,
         
     | 
| 
      
 13 
     | 
    
         
            +
             *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         
     | 
| 
      
 14 
     | 
    
         
            +
             *  See the License for the specific language governing permissions and
         
     | 
| 
      
 15 
     | 
    
         
            +
             *  limitations under the License.
         
     | 
| 
      
 16 
     | 
    
         
            +
             * --------------------------------------------------------------------------
         
     | 
| 
      
 17 
     | 
    
         
            +
             *
         
     | 
| 
      
 18 
     | 
    
         
            +
             *  WARNING: DO NOT MODIFY THIS FILE
         
     | 
| 
      
 19 
     | 
    
         
            +
             *
         
     | 
| 
      
 20 
     | 
    
         
            +
             *  This file was generated by generate_structs.rb.
         
     | 
| 
      
 21 
     | 
    
         
            +
             *
         
     | 
| 
      
 22 
     | 
    
         
            +
             * --------------------------------------------------------------------------*/
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            #include "wmq.h"
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
            /* --------------------------------------------------------------------------
         
     | 
| 
      
 27 
     | 
    
         
            +
             *  Static's to hold Symbols
         
     | 
| 
      
 28 
     | 
    
         
            +
             * --------------------------------------------------------------------------*/
         
     | 
| 
      
 29 
     | 
    
         
            +
            static ID ID_abend_code;
         
     | 
| 
      
 30 
     | 
    
         
            +
            static ID ID_accounting_token;
         
     | 
| 
      
 31 
     | 
    
         
            +
            static ID ID_ads_descriptor;
         
     | 
| 
      
 32 
     | 
    
         
            +
            static ID ID_appl_id;
         
     | 
| 
      
 33 
     | 
    
         
            +
            static ID ID_appl_identity_data;
         
     | 
| 
      
 34 
     | 
    
         
            +
            static ID ID_appl_origin_data;
         
     | 
| 
      
 35 
     | 
    
         
            +
            static ID ID_appl_type;
         
     | 
| 
      
 36 
     | 
    
         
            +
            static ID ID_attention_id;
         
     | 
| 
      
 37 
     | 
    
         
            +
            static ID ID_authenticator;
         
     | 
| 
      
 38 
     | 
    
         
            +
            static ID ID_backout_count;
         
     | 
| 
      
 39 
     | 
    
         
            +
            static ID ID_cancel_code;
         
     | 
| 
      
 40 
     | 
    
         
            +
            static ID ID_cics;
         
     | 
| 
      
 41 
     | 
    
         
            +
            static ID ID_coded_char_set_id;
         
     | 
| 
      
 42 
     | 
    
         
            +
            static ID ID_commit_mode;
         
     | 
| 
      
 43 
     | 
    
         
            +
            static ID ID_comp_code;
         
     | 
| 
      
 44 
     | 
    
         
            +
            static ID ID_conversational_task;
         
     | 
| 
      
 45 
     | 
    
         
            +
            static ID ID_correl_id;
         
     | 
| 
      
 46 
     | 
    
         
            +
            static ID ID_cursor_position;
         
     | 
| 
      
 47 
     | 
    
         
            +
            static ID ID_data_set;
         
     | 
| 
      
 48 
     | 
    
         
            +
            static ID ID_data_logical_length;
         
     | 
| 
      
 49 
     | 
    
         
            +
            static ID ID_data_logical_offset;
         
     | 
| 
      
 50 
     | 
    
         
            +
            static ID ID_data_logical_offset2;
         
     | 
| 
      
 51 
     | 
    
         
            +
            static ID ID_dead_letter_header;
         
     | 
| 
      
 52 
     | 
    
         
            +
            static ID ID_descriptor_set;
         
     | 
| 
      
 53 
     | 
    
         
            +
            static ID ID_dest_env_length;
         
     | 
| 
      
 54 
     | 
    
         
            +
            static ID ID_dest_env_offset;
         
     | 
| 
      
 55 
     | 
    
         
            +
            static ID ID_dest_name_length;
         
     | 
| 
      
 56 
     | 
    
         
            +
            static ID ID_dest_name_offset;
         
     | 
| 
      
 57 
     | 
    
         
            +
            static ID ID_dest_q_mgr_name;
         
     | 
| 
      
 58 
     | 
    
         
            +
            static ID ID_dest_q_name;
         
     | 
| 
      
 59 
     | 
    
         
            +
            static ID ID_dist_header;
         
     | 
| 
      
 60 
     | 
    
         
            +
            static ID ID_encoding;
         
     | 
| 
      
 61 
     | 
    
         
            +
            static ID ID_env_data;
         
     | 
| 
      
 62 
     | 
    
         
            +
            static ID ID_error_offset;
         
     | 
| 
      
 63 
     | 
    
         
            +
            static ID ID_expiry;
         
     | 
| 
      
 64 
     | 
    
         
            +
            static ID ID_facility;
         
     | 
| 
      
 65 
     | 
    
         
            +
            static ID ID_facility_keep_time;
         
     | 
| 
      
 66 
     | 
    
         
            +
            static ID ID_facility_like;
         
     | 
| 
      
 67 
     | 
    
         
            +
            static ID ID_feedback;
         
     | 
| 
      
 68 
     | 
    
         
            +
            static ID ID_flags;
         
     | 
| 
      
 69 
     | 
    
         
            +
            static ID ID_format;
         
     | 
| 
      
 70 
     | 
    
         
            +
            static ID ID_function;
         
     | 
| 
      
 71 
     | 
    
         
            +
            static ID ID_get_wait_interval;
         
     | 
| 
      
 72 
     | 
    
         
            +
            static ID ID_group_id;
         
     | 
| 
      
 73 
     | 
    
         
            +
            static ID ID_header_type;
         
     | 
| 
      
 74 
     | 
    
         
            +
            static ID ID_headers_set;
         
     | 
| 
      
 75 
     | 
    
         
            +
            static ID ID_ims;
         
     | 
| 
      
 76 
     | 
    
         
            +
            static ID ID_input_item;
         
     | 
| 
      
 77 
     | 
    
         
            +
            static ID ID_l_term_override;
         
     | 
| 
      
 78 
     | 
    
         
            +
            static ID ID_link_type;
         
     | 
| 
      
 79 
     | 
    
         
            +
            static ID ID_mfs_map_name;
         
     | 
| 
      
 80 
     | 
    
         
            +
            static ID ID_msg_desc;
         
     | 
| 
      
 81 
     | 
    
         
            +
            static ID ID_msg_flags;
         
     | 
| 
      
 82 
     | 
    
         
            +
            static ID ID_msg_id;
         
     | 
| 
      
 83 
     | 
    
         
            +
            static ID ID_msg_seq_number;
         
     | 
| 
      
 84 
     | 
    
         
            +
            static ID ID_msg_token;
         
     | 
| 
      
 85 
     | 
    
         
            +
            static ID ID_msg_type;
         
     | 
| 
      
 86 
     | 
    
         
            +
            static ID ID_name_value;
         
     | 
| 
      
 87 
     | 
    
         
            +
            static ID ID_name_value_ccsid;
         
     | 
| 
      
 88 
     | 
    
         
            +
            static ID ID_next_transaction_id;
         
     | 
| 
      
 89 
     | 
    
         
            +
            static ID ID_object_instance_id;
         
     | 
| 
      
 90 
     | 
    
         
            +
            static ID ID_object_rec_offset;
         
     | 
| 
      
 91 
     | 
    
         
            +
            static ID ID_object_type;
         
     | 
| 
      
 92 
     | 
    
         
            +
            static ID ID_offset;
         
     | 
| 
      
 93 
     | 
    
         
            +
            static ID ID_original_length;
         
     | 
| 
      
 94 
     | 
    
         
            +
            static ID ID_output_data_length;
         
     | 
| 
      
 95 
     | 
    
         
            +
            static ID ID_persistence;
         
     | 
| 
      
 96 
     | 
    
         
            +
            static ID ID_priority;
         
     | 
| 
      
 97 
     | 
    
         
            +
            static ID ID_process_name;
         
     | 
| 
      
 98 
     | 
    
         
            +
            static ID ID_put_appl_name;
         
     | 
| 
      
 99 
     | 
    
         
            +
            static ID ID_put_appl_type;
         
     | 
| 
      
 100 
     | 
    
         
            +
            static ID ID_put_date;
         
     | 
| 
      
 101 
     | 
    
         
            +
            static ID ID_put_msg_rec_fields;
         
     | 
| 
      
 102 
     | 
    
         
            +
            static ID ID_put_msg_rec_offset;
         
     | 
| 
      
 103 
     | 
    
         
            +
            static ID ID_put_time;
         
     | 
| 
      
 104 
     | 
    
         
            +
            static ID ID_q_mgr_name;
         
     | 
| 
      
 105 
     | 
    
         
            +
            static ID ID_q_name;
         
     | 
| 
      
 106 
     | 
    
         
            +
            static ID ID_reason;
         
     | 
| 
      
 107 
     | 
    
         
            +
            static ID ID_recs_present;
         
     | 
| 
      
 108 
     | 
    
         
            +
            static ID ID_ref_msg_header;
         
     | 
| 
      
 109 
     | 
    
         
            +
            static ID ID_remote_q_mgr_name;
         
     | 
| 
      
 110 
     | 
    
         
            +
            static ID ID_remote_q_name;
         
     | 
| 
      
 111 
     | 
    
         
            +
            static ID ID_remote_sys_id;
         
     | 
| 
      
 112 
     | 
    
         
            +
            static ID ID_remote_trans_id;
         
     | 
| 
      
 113 
     | 
    
         
            +
            static ID ID_reply_to_format;
         
     | 
| 
      
 114 
     | 
    
         
            +
            static ID ID_reply_to_q;
         
     | 
| 
      
 115 
     | 
    
         
            +
            static ID ID_reply_to_q_mgr;
         
     | 
| 
      
 116 
     | 
    
         
            +
            static ID ID_report;
         
     | 
| 
      
 117 
     | 
    
         
            +
            static ID ID_reserved;
         
     | 
| 
      
 118 
     | 
    
         
            +
            static ID ID_reserved1;
         
     | 
| 
      
 119 
     | 
    
         
            +
            static ID ID_reserved2;
         
     | 
| 
      
 120 
     | 
    
         
            +
            static ID ID_reserved3;
         
     | 
| 
      
 121 
     | 
    
         
            +
            static ID ID_reserved4;
         
     | 
| 
      
 122 
     | 
    
         
            +
            static ID ID_return_code;
         
     | 
| 
      
 123 
     | 
    
         
            +
            static ID ID_rf_header;
         
     | 
| 
      
 124 
     | 
    
         
            +
            static ID ID_rf_header_2;
         
     | 
| 
      
 125 
     | 
    
         
            +
            static ID ID_security_scope;
         
     | 
| 
      
 126 
     | 
    
         
            +
            static ID ID_service_name;
         
     | 
| 
      
 127 
     | 
    
         
            +
            static ID ID_service_step;
         
     | 
| 
      
 128 
     | 
    
         
            +
            static ID ID_src_env_length;
         
     | 
| 
      
 129 
     | 
    
         
            +
            static ID ID_src_env_offset;
         
     | 
| 
      
 130 
     | 
    
         
            +
            static ID ID_src_name_length;
         
     | 
| 
      
 131 
     | 
    
         
            +
            static ID ID_src_name_offset;
         
     | 
| 
      
 132 
     | 
    
         
            +
            static ID ID_start_code;
         
     | 
| 
      
 133 
     | 
    
         
            +
            static ID ID_task_end_status;
         
     | 
| 
      
 134 
     | 
    
         
            +
            static ID ID_to_s;
         
     | 
| 
      
 135 
     | 
    
         
            +
            static ID ID_tran_instance_id;
         
     | 
| 
      
 136 
     | 
    
         
            +
            static ID ID_tran_state;
         
     | 
| 
      
 137 
     | 
    
         
            +
            static ID ID_transaction_id;
         
     | 
| 
      
 138 
     | 
    
         
            +
            static ID ID_trigger;
         
     | 
| 
      
 139 
     | 
    
         
            +
            static ID ID_trigger_data;
         
     | 
| 
      
 140 
     | 
    
         
            +
            static ID ID_uow_control;
         
     | 
| 
      
 141 
     | 
    
         
            +
            static ID ID_user_data;
         
     | 
| 
      
 142 
     | 
    
         
            +
            static ID ID_user_identifier;
         
     | 
| 
      
 143 
     | 
    
         
            +
            static ID ID_work_info_header;
         
     | 
| 
      
 144 
     | 
    
         
            +
            static ID ID_xmit_q_header;
         
     | 
| 
      
 145 
     | 
    
         
            +
            static ID ID_xml;
         
     | 
| 
      
 146 
     | 
    
         
            +
             
     | 
| 
      
 147 
     | 
    
         
            +
            /* --------------------------------------------------------------------------
         
     | 
| 
      
 148 
     | 
    
         
            +
             *  Initialize Symbols
         
     | 
| 
      
 149 
     | 
    
         
            +
             * --------------------------------------------------------------------------*/
         
     | 
| 
      
 150 
     | 
    
         
            +
            void wmq_structs_id_init()
         
     | 
| 
      
 151 
     | 
    
         
            +
            {
         
     | 
| 
      
 152 
     | 
    
         
            +
                ID_abend_code           = rb_intern("abend_code");
         
     | 
| 
      
 153 
     | 
    
         
            +
                ID_accounting_token     = rb_intern("accounting_token");
         
     | 
| 
      
 154 
     | 
    
         
            +
                ID_ads_descriptor       = rb_intern("ads_descriptor");
         
     | 
| 
      
 155 
     | 
    
         
            +
                ID_appl_id              = rb_intern("appl_id");
         
     | 
| 
      
 156 
     | 
    
         
            +
                ID_appl_identity_data   = rb_intern("appl_identity_data");
         
     | 
| 
      
 157 
     | 
    
         
            +
                ID_appl_origin_data     = rb_intern("appl_origin_data");
         
     | 
| 
      
 158 
     | 
    
         
            +
                ID_appl_type            = rb_intern("appl_type");
         
     | 
| 
      
 159 
     | 
    
         
            +
                ID_attention_id         = rb_intern("attention_id");
         
     | 
| 
      
 160 
     | 
    
         
            +
                ID_authenticator        = rb_intern("authenticator");
         
     | 
| 
      
 161 
     | 
    
         
            +
                ID_backout_count        = rb_intern("backout_count");
         
     | 
| 
      
 162 
     | 
    
         
            +
                ID_cancel_code          = rb_intern("cancel_code");
         
     | 
| 
      
 163 
     | 
    
         
            +
                ID_cics                 = rb_intern("cics");
         
     | 
| 
      
 164 
     | 
    
         
            +
                ID_coded_char_set_id    = rb_intern("coded_char_set_id");
         
     | 
| 
      
 165 
     | 
    
         
            +
                ID_commit_mode          = rb_intern("commit_mode");
         
     | 
| 
      
 166 
     | 
    
         
            +
                ID_comp_code            = rb_intern("comp_code");
         
     | 
| 
      
 167 
     | 
    
         
            +
                ID_conversational_task  = rb_intern("conversational_task");
         
     | 
| 
      
 168 
     | 
    
         
            +
                ID_correl_id            = rb_intern("correl_id");
         
     | 
| 
      
 169 
     | 
    
         
            +
                ID_cursor_position      = rb_intern("cursor_position");
         
     | 
| 
      
 170 
     | 
    
         
            +
                ID_data_set             = rb_intern("data=");
         
     | 
| 
      
 171 
     | 
    
         
            +
                ID_data_logical_length  = rb_intern("data_logical_length");
         
     | 
| 
      
 172 
     | 
    
         
            +
                ID_data_logical_offset  = rb_intern("data_logical_offset");
         
     | 
| 
      
 173 
     | 
    
         
            +
                ID_data_logical_offset2 = rb_intern("data_logical_offset2");
         
     | 
| 
      
 174 
     | 
    
         
            +
                ID_dead_letter_header   = rb_intern("dead_letter_header");
         
     | 
| 
      
 175 
     | 
    
         
            +
                ID_descriptor_set       = rb_intern("descriptor=");
         
     | 
| 
      
 176 
     | 
    
         
            +
                ID_dest_env_length      = rb_intern("dest_env_length");
         
     | 
| 
      
 177 
     | 
    
         
            +
                ID_dest_env_offset      = rb_intern("dest_env_offset");
         
     | 
| 
      
 178 
     | 
    
         
            +
                ID_dest_name_length     = rb_intern("dest_name_length");
         
     | 
| 
      
 179 
     | 
    
         
            +
                ID_dest_name_offset     = rb_intern("dest_name_offset");
         
     | 
| 
      
 180 
     | 
    
         
            +
                ID_dest_q_mgr_name      = rb_intern("dest_q_mgr_name");
         
     | 
| 
      
 181 
     | 
    
         
            +
                ID_dest_q_name          = rb_intern("dest_q_name");
         
     | 
| 
      
 182 
     | 
    
         
            +
                ID_dist_header          = rb_intern("dist_header");
         
     | 
| 
      
 183 
     | 
    
         
            +
                ID_encoding             = rb_intern("encoding");
         
     | 
| 
      
 184 
     | 
    
         
            +
                ID_env_data             = rb_intern("env_data");
         
     | 
| 
      
 185 
     | 
    
         
            +
                ID_error_offset         = rb_intern("error_offset");
         
     | 
| 
      
 186 
     | 
    
         
            +
                ID_expiry               = rb_intern("expiry");
         
     | 
| 
      
 187 
     | 
    
         
            +
                ID_facility             = rb_intern("facility");
         
     | 
| 
      
 188 
     | 
    
         
            +
                ID_facility_keep_time   = rb_intern("facility_keep_time");
         
     | 
| 
      
 189 
     | 
    
         
            +
                ID_facility_like        = rb_intern("facility_like");
         
     | 
| 
      
 190 
     | 
    
         
            +
                ID_feedback             = rb_intern("feedback");
         
     | 
| 
      
 191 
     | 
    
         
            +
                ID_flags                = rb_intern("flags");
         
     | 
| 
      
 192 
     | 
    
         
            +
                ID_format               = rb_intern("format");
         
     | 
| 
      
 193 
     | 
    
         
            +
                ID_function             = rb_intern("function");
         
     | 
| 
      
 194 
     | 
    
         
            +
                ID_get_wait_interval    = rb_intern("get_wait_interval");
         
     | 
| 
      
 195 
     | 
    
         
            +
                ID_group_id             = rb_intern("group_id");
         
     | 
| 
      
 196 
     | 
    
         
            +
                ID_header_type          = rb_intern("header_type");
         
     | 
| 
      
 197 
     | 
    
         
            +
                ID_headers_set          = rb_intern("headers=");
         
     | 
| 
      
 198 
     | 
    
         
            +
                ID_ims                  = rb_intern("ims");
         
     | 
| 
      
 199 
     | 
    
         
            +
                ID_input_item           = rb_intern("input_item");
         
     | 
| 
      
 200 
     | 
    
         
            +
                ID_l_term_override      = rb_intern("l_term_override");
         
     | 
| 
      
 201 
     | 
    
         
            +
                ID_link_type            = rb_intern("link_type");
         
     | 
| 
      
 202 
     | 
    
         
            +
                ID_mfs_map_name         = rb_intern("mfs_map_name");
         
     | 
| 
      
 203 
     | 
    
         
            +
                ID_msg_desc             = rb_intern("msg_desc");
         
     | 
| 
      
 204 
     | 
    
         
            +
                ID_msg_flags            = rb_intern("msg_flags");
         
     | 
| 
      
 205 
     | 
    
         
            +
                ID_msg_id               = rb_intern("msg_id");
         
     | 
| 
      
 206 
     | 
    
         
            +
                ID_msg_seq_number       = rb_intern("msg_seq_number");
         
     | 
| 
      
 207 
     | 
    
         
            +
                ID_msg_token            = rb_intern("msg_token");
         
     | 
| 
      
 208 
     | 
    
         
            +
                ID_msg_type             = rb_intern("msg_type");
         
     | 
| 
      
 209 
     | 
    
         
            +
                ID_name_value           = rb_intern("name_value");
         
     | 
| 
      
 210 
     | 
    
         
            +
                ID_name_value_ccsid     = rb_intern("name_value_ccsid");
         
     | 
| 
      
 211 
     | 
    
         
            +
                ID_next_transaction_id  = rb_intern("next_transaction_id");
         
     | 
| 
      
 212 
     | 
    
         
            +
                ID_object_instance_id   = rb_intern("object_instance_id");
         
     | 
| 
      
 213 
     | 
    
         
            +
                ID_object_rec_offset    = rb_intern("object_rec_offset");
         
     | 
| 
      
 214 
     | 
    
         
            +
                ID_object_type          = rb_intern("object_type");
         
     | 
| 
      
 215 
     | 
    
         
            +
                ID_offset               = rb_intern("offset");
         
     | 
| 
      
 216 
     | 
    
         
            +
                ID_original_length      = rb_intern("original_length");
         
     | 
| 
      
 217 
     | 
    
         
            +
                ID_output_data_length   = rb_intern("output_data_length");
         
     | 
| 
      
 218 
     | 
    
         
            +
                ID_persistence          = rb_intern("persistence");
         
     | 
| 
      
 219 
     | 
    
         
            +
                ID_priority             = rb_intern("priority");
         
     | 
| 
      
 220 
     | 
    
         
            +
                ID_process_name         = rb_intern("process_name");
         
     | 
| 
      
 221 
     | 
    
         
            +
                ID_put_appl_name        = rb_intern("put_appl_name");
         
     | 
| 
      
 222 
     | 
    
         
            +
                ID_put_appl_type        = rb_intern("put_appl_type");
         
     | 
| 
      
 223 
     | 
    
         
            +
                ID_put_date             = rb_intern("put_date");
         
     | 
| 
      
 224 
     | 
    
         
            +
                ID_put_msg_rec_fields   = rb_intern("put_msg_rec_fields");
         
     | 
| 
      
 225 
     | 
    
         
            +
                ID_put_msg_rec_offset   = rb_intern("put_msg_rec_offset");
         
     | 
| 
      
 226 
     | 
    
         
            +
                ID_put_time             = rb_intern("put_time");
         
     | 
| 
      
 227 
     | 
    
         
            +
                ID_q_mgr_name           = rb_intern("q_mgr_name");
         
     | 
| 
      
 228 
     | 
    
         
            +
                ID_q_name               = rb_intern("q_name");
         
     | 
| 
      
 229 
     | 
    
         
            +
                ID_reason               = rb_intern("reason");
         
     | 
| 
      
 230 
     | 
    
         
            +
                ID_recs_present         = rb_intern("recs_present");
         
     | 
| 
      
 231 
     | 
    
         
            +
                ID_ref_msg_header       = rb_intern("ref_msg_header");
         
     | 
| 
      
 232 
     | 
    
         
            +
                ID_remote_q_mgr_name    = rb_intern("remote_q_mgr_name");
         
     | 
| 
      
 233 
     | 
    
         
            +
                ID_remote_q_name        = rb_intern("remote_q_name");
         
     | 
| 
      
 234 
     | 
    
         
            +
                ID_remote_sys_id        = rb_intern("remote_sys_id");
         
     | 
| 
      
 235 
     | 
    
         
            +
                ID_remote_trans_id      = rb_intern("remote_trans_id");
         
     | 
| 
      
 236 
     | 
    
         
            +
                ID_reply_to_format      = rb_intern("reply_to_format");
         
     | 
| 
      
 237 
     | 
    
         
            +
                ID_reply_to_q           = rb_intern("reply_to_q");
         
     | 
| 
      
 238 
     | 
    
         
            +
                ID_reply_to_q_mgr       = rb_intern("reply_to_q_mgr");
         
     | 
| 
      
 239 
     | 
    
         
            +
                ID_report               = rb_intern("report");
         
     | 
| 
      
 240 
     | 
    
         
            +
                ID_reserved             = rb_intern("reserved");
         
     | 
| 
      
 241 
     | 
    
         
            +
                ID_reserved1            = rb_intern("reserved1");
         
     | 
| 
      
 242 
     | 
    
         
            +
                ID_reserved2            = rb_intern("reserved2");
         
     | 
| 
      
 243 
     | 
    
         
            +
                ID_reserved3            = rb_intern("reserved3");
         
     | 
| 
      
 244 
     | 
    
         
            +
                ID_reserved4            = rb_intern("reserved4");
         
     | 
| 
      
 245 
     | 
    
         
            +
                ID_return_code          = rb_intern("return_code");
         
     | 
| 
      
 246 
     | 
    
         
            +
                ID_rf_header            = rb_intern("rf_header");
         
     | 
| 
      
 247 
     | 
    
         
            +
                ID_rf_header_2          = rb_intern("rf_header_2");
         
     | 
| 
      
 248 
     | 
    
         
            +
                ID_security_scope       = rb_intern("security_scope");
         
     | 
| 
      
 249 
     | 
    
         
            +
                ID_service_name         = rb_intern("service_name");
         
     | 
| 
      
 250 
     | 
    
         
            +
                ID_service_step         = rb_intern("service_step");
         
     | 
| 
      
 251 
     | 
    
         
            +
                ID_src_env_length       = rb_intern("src_env_length");
         
     | 
| 
      
 252 
     | 
    
         
            +
                ID_src_env_offset       = rb_intern("src_env_offset");
         
     | 
| 
      
 253 
     | 
    
         
            +
                ID_src_name_length      = rb_intern("src_name_length");
         
     | 
| 
      
 254 
     | 
    
         
            +
                ID_src_name_offset      = rb_intern("src_name_offset");
         
     | 
| 
      
 255 
     | 
    
         
            +
                ID_start_code           = rb_intern("start_code");
         
     | 
| 
      
 256 
     | 
    
         
            +
                ID_task_end_status      = rb_intern("task_end_status");
         
     | 
| 
      
 257 
     | 
    
         
            +
                ID_to_s                 = rb_intern("to_s");
         
     | 
| 
      
 258 
     | 
    
         
            +
                ID_tran_instance_id     = rb_intern("tran_instance_id");
         
     | 
| 
      
 259 
     | 
    
         
            +
                ID_tran_state           = rb_intern("tran_state");
         
     | 
| 
      
 260 
     | 
    
         
            +
                ID_transaction_id       = rb_intern("transaction_id");
         
     | 
| 
      
 261 
     | 
    
         
            +
                ID_trigger              = rb_intern("trigger");
         
     | 
| 
      
 262 
     | 
    
         
            +
                ID_trigger_data         = rb_intern("trigger_data");
         
     | 
| 
      
 263 
     | 
    
         
            +
                ID_uow_control          = rb_intern("uow_control");
         
     | 
| 
      
 264 
     | 
    
         
            +
                ID_user_data            = rb_intern("user_data");
         
     | 
| 
      
 265 
     | 
    
         
            +
                ID_user_identifier      = rb_intern("user_identifier");
         
     | 
| 
      
 266 
     | 
    
         
            +
                ID_work_info_header     = rb_intern("work_info_header");
         
     | 
| 
      
 267 
     | 
    
         
            +
                ID_xmit_q_header        = rb_intern("xmit_q_header");
         
     | 
| 
      
 268 
     | 
    
         
            +
                ID_xml                  = rb_intern("xml");
         
     | 
| 
      
 269 
     | 
    
         
            +
            }
         
     | 
| 
      
 270 
     | 
    
         
            +
             
     | 
| 
      
 271 
     | 
    
         
            +
            /* --------------------------------------------------------------------------
         
     | 
| 
      
 272 
     | 
    
         
            +
             *  Convert between MQMD and Hash
         
     | 
| 
      
 273 
     | 
    
         
            +
             * --------------------------------------------------------------------------*/
         
     | 
| 
      
 274 
     | 
    
         
            +
            void Message_from_mqmd(VALUE hash, MQMD* pmqmd)
         
     | 
| 
      
 275 
     | 
    
         
            +
            {
         
     | 
| 
      
 276 
     | 
    
         
            +
                VALUE  str;
         
     | 
| 
      
 277 
     | 
    
         
            +
                size_t size;
         
     | 
| 
      
 278 
     | 
    
         
            +
                size_t length; 
         
     | 
| 
      
 279 
     | 
    
         
            +
                size_t i;
         
     | 
| 
      
 280 
     | 
    
         
            +
                char*  pChar;
         
     | 
| 
      
 281 
     | 
    
         
            +
                    
         
     | 
| 
      
 282 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, report,                        pmqmd->Report)
         
     | 
| 
      
 283 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, msg_type,                      pmqmd->MsgType)
         
     | 
| 
      
 284 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, expiry,                        pmqmd->Expiry)
         
     | 
| 
      
 285 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, feedback,                      pmqmd->Feedback)
         
     | 
| 
      
 286 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, encoding,                      pmqmd->Encoding)
         
     | 
| 
      
 287 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, coded_char_set_id,             pmqmd->CodedCharSetId)
         
     | 
| 
      
 288 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, format,                        pmqmd->Format)
         
     | 
| 
      
 289 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, priority,                      pmqmd->Priority)
         
     | 
| 
      
 290 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, persistence,                   pmqmd->Persistence)
         
     | 
| 
      
 291 
     | 
    
         
            +
                WMQ_MQBYTES2HASH(hash, msg_id,                        pmqmd->MsgId)
         
     | 
| 
      
 292 
     | 
    
         
            +
                WMQ_MQBYTES2HASH(hash, correl_id,                     pmqmd->CorrelId)
         
     | 
| 
      
 293 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, backout_count,                 pmqmd->BackoutCount)
         
     | 
| 
      
 294 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, reply_to_q,                    pmqmd->ReplyToQ)
         
     | 
| 
      
 295 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, reply_to_q_mgr,                pmqmd->ReplyToQMgr)
         
     | 
| 
      
 296 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, user_identifier,               pmqmd->UserIdentifier)
         
     | 
| 
      
 297 
     | 
    
         
            +
                WMQ_MQBYTES2HASH(hash, accounting_token,              pmqmd->AccountingToken)
         
     | 
| 
      
 298 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, appl_identity_data,            pmqmd->ApplIdentityData)
         
     | 
| 
      
 299 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, put_appl_type,                 pmqmd->PutApplType)
         
     | 
| 
      
 300 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, put_appl_name,                 pmqmd->PutApplName)
         
     | 
| 
      
 301 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, put_date,                      pmqmd->PutDate)
         
     | 
| 
      
 302 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, put_time,                      pmqmd->PutTime)
         
     | 
| 
      
 303 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, appl_origin_data,              pmqmd->ApplOriginData)
         
     | 
| 
      
 304 
     | 
    
         
            +
                WMQ_MQBYTES2HASH(hash, group_id,                      pmqmd->GroupId)
         
     | 
| 
      
 305 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, msg_seq_number,                pmqmd->MsgSeqNumber)
         
     | 
| 
      
 306 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, offset,                        pmqmd->Offset)
         
     | 
| 
      
 307 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, msg_flags,                     pmqmd->MsgFlags)
         
     | 
| 
      
 308 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, original_length,               pmqmd->OriginalLength)
         
     | 
| 
      
 309 
     | 
    
         
            +
            }
         
     | 
| 
      
 310 
     | 
    
         
            +
             
     | 
| 
      
 311 
     | 
    
         
            +
            static int Message_to_mqmd_each (VALUE key, VALUE value, MQMD* pmqmd)
         
     | 
| 
      
 312 
     | 
    
         
            +
            {
         
     | 
| 
      
 313 
     | 
    
         
            +
                VALUE str;
         
     | 
| 
      
 314 
     | 
    
         
            +
                size_t size;
         
     | 
| 
      
 315 
     | 
    
         
            +
                size_t length; 
         
     | 
| 
      
 316 
     | 
    
         
            +
                VALUE  val;
         
     | 
| 
      
 317 
     | 
    
         
            +
                ID     id = rb_to_id(key);
         
     | 
| 
      
 318 
     | 
    
         
            +
                
         
     | 
| 
      
 319 
     | 
    
         
            +
                if(id == ID_report)                { WMQ_STR2MQLONG  (value,pmqmd->Report) }
         
     | 
| 
      
 320 
     | 
    
         
            +
                else if(id == ID_msg_type)              { WMQ_STR2MQLONG  (value,pmqmd->MsgType) }
         
     | 
| 
      
 321 
     | 
    
         
            +
                else if(id == ID_expiry)                { WMQ_STR2MQLONG  (value,pmqmd->Expiry) }
         
     | 
| 
      
 322 
     | 
    
         
            +
                else if(id == ID_feedback)              { WMQ_STR2MQLONG  (value,pmqmd->Feedback) }
         
     | 
| 
      
 323 
     | 
    
         
            +
                else if(id == ID_encoding)              { WMQ_STR2MQLONG  (value,pmqmd->Encoding) }
         
     | 
| 
      
 324 
     | 
    
         
            +
                else if(id == ID_coded_char_set_id)     { WMQ_STR2MQLONG  (value,pmqmd->CodedCharSetId) }
         
     | 
| 
      
 325 
     | 
    
         
            +
                else if(id == ID_format)                { WMQ_STR2MQCHARS (value,pmqmd->Format) }
         
     | 
| 
      
 326 
     | 
    
         
            +
                else if(id == ID_priority)              { WMQ_STR2MQLONG  (value,pmqmd->Priority) }
         
     | 
| 
      
 327 
     | 
    
         
            +
                else if(id == ID_persistence)           { WMQ_STR2MQLONG  (value,pmqmd->Persistence) }
         
     | 
| 
      
 328 
     | 
    
         
            +
                else if(id == ID_msg_id)                { WMQ_STR2MQBYTES (value,pmqmd->MsgId) }
         
     | 
| 
      
 329 
     | 
    
         
            +
                else if(id == ID_correl_id)             { WMQ_STR2MQBYTES (value,pmqmd->CorrelId) }
         
     | 
| 
      
 330 
     | 
    
         
            +
                else if(id == ID_backout_count)         { WMQ_STR2MQLONG  (value,pmqmd->BackoutCount) }
         
     | 
| 
      
 331 
     | 
    
         
            +
                else if(id == ID_reply_to_q)            { WMQ_STR2MQCHARS (value,pmqmd->ReplyToQ) }
         
     | 
| 
      
 332 
     | 
    
         
            +
                else if(id == ID_reply_to_q_mgr)        { WMQ_STR2MQCHARS (value,pmqmd->ReplyToQMgr) }
         
     | 
| 
      
 333 
     | 
    
         
            +
                else if(id == ID_user_identifier)       { WMQ_STR2MQCHARS (value,pmqmd->UserIdentifier) }
         
     | 
| 
      
 334 
     | 
    
         
            +
                else if(id == ID_accounting_token)      { WMQ_STR2MQBYTES (value,pmqmd->AccountingToken) }
         
     | 
| 
      
 335 
     | 
    
         
            +
                else if(id == ID_appl_identity_data)    { WMQ_STR2MQCHARS (value,pmqmd->ApplIdentityData) }
         
     | 
| 
      
 336 
     | 
    
         
            +
                else if(id == ID_put_appl_type)         { WMQ_STR2MQLONG  (value,pmqmd->PutApplType) }
         
     | 
| 
      
 337 
     | 
    
         
            +
                else if(id == ID_put_appl_name)         { WMQ_STR2MQCHARS (value,pmqmd->PutApplName) }
         
     | 
| 
      
 338 
     | 
    
         
            +
                else if(id == ID_put_date)              { WMQ_STR2MQCHARS (value,pmqmd->PutDate) }
         
     | 
| 
      
 339 
     | 
    
         
            +
                else if(id == ID_put_time)              { WMQ_STR2MQCHARS (value,pmqmd->PutTime) }
         
     | 
| 
      
 340 
     | 
    
         
            +
                else if(id == ID_appl_origin_data)      { WMQ_STR2MQCHARS (value,pmqmd->ApplOriginData) }
         
     | 
| 
      
 341 
     | 
    
         
            +
                else if(id == ID_group_id)              { WMQ_STR2MQBYTES (value,pmqmd->GroupId) }
         
     | 
| 
      
 342 
     | 
    
         
            +
                else if(id == ID_msg_seq_number)        { WMQ_STR2MQLONG  (value,pmqmd->MsgSeqNumber) }
         
     | 
| 
      
 343 
     | 
    
         
            +
                else if(id == ID_offset)                { WMQ_STR2MQLONG  (value,pmqmd->Offset) }
         
     | 
| 
      
 344 
     | 
    
         
            +
                else if(id == ID_msg_flags)             { WMQ_STR2MQLONG  (value,pmqmd->MsgFlags) }
         
     | 
| 
      
 345 
     | 
    
         
            +
                else if(id == ID_original_length)       { WMQ_STR2MQLONG  (value,pmqmd->OriginalLength) }
         
     | 
| 
      
 346 
     | 
    
         
            +
                else
         
     | 
| 
      
 347 
     | 
    
         
            +
                {
         
     | 
| 
      
 348 
     | 
    
         
            +
                    val = rb_funcall(key, ID_to_s, 0);
         
     | 
| 
      
 349 
     | 
    
         
            +
                    rb_raise(rb_eArgError, "WMQ::Message#to_mqmd Unknown symbol :%s supplied", RSTRING_PTR(val));
         
     | 
| 
      
 350 
     | 
    
         
            +
                }
         
     | 
| 
      
 351 
     | 
    
         
            +
             
     | 
| 
      
 352 
     | 
    
         
            +
                return 0;
         
     | 
| 
      
 353 
     | 
    
         
            +
            }
         
     | 
| 
      
 354 
     | 
    
         
            +
             
     | 
| 
      
 355 
     | 
    
         
            +
            void Message_to_mqmd(VALUE hash, MQMD* pmqmd)
         
     | 
| 
      
 356 
     | 
    
         
            +
            {
         
     | 
| 
      
 357 
     | 
    
         
            +
                rb_hash_foreach(hash, Message_to_mqmd_each, (VALUE)pmqmd);
         
     | 
| 
      
 358 
     | 
    
         
            +
            }
         
     | 
| 
      
 359 
     | 
    
         
            +
             
     | 
| 
      
 360 
     | 
    
         
            +
            /* --------------------------------------------------------------------------
         
     | 
| 
      
 361 
     | 
    
         
            +
             *  Convert between MQMD1 and Hash
         
     | 
| 
      
 362 
     | 
    
         
            +
             * --------------------------------------------------------------------------*/
         
     | 
| 
      
 363 
     | 
    
         
            +
            void Message_from_mqmd1(VALUE hash, MQMD1* pmqmd1)
         
     | 
| 
      
 364 
     | 
    
         
            +
            {
         
     | 
| 
      
 365 
     | 
    
         
            +
                VALUE  str;
         
     | 
| 
      
 366 
     | 
    
         
            +
                size_t size;
         
     | 
| 
      
 367 
     | 
    
         
            +
                size_t length; 
         
     | 
| 
      
 368 
     | 
    
         
            +
                size_t i;
         
     | 
| 
      
 369 
     | 
    
         
            +
                char*  pChar;
         
     | 
| 
      
 370 
     | 
    
         
            +
                    
         
     | 
| 
      
 371 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, report,                        pmqmd1->Report)
         
     | 
| 
      
 372 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, msg_type,                      pmqmd1->MsgType)
         
     | 
| 
      
 373 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, expiry,                        pmqmd1->Expiry)
         
     | 
| 
      
 374 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, feedback,                      pmqmd1->Feedback)
         
     | 
| 
      
 375 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, encoding,                      pmqmd1->Encoding)
         
     | 
| 
      
 376 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, coded_char_set_id,             pmqmd1->CodedCharSetId)
         
     | 
| 
      
 377 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, format,                        pmqmd1->Format)
         
     | 
| 
      
 378 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, priority,                      pmqmd1->Priority)
         
     | 
| 
      
 379 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, persistence,                   pmqmd1->Persistence)
         
     | 
| 
      
 380 
     | 
    
         
            +
                WMQ_MQBYTES2HASH(hash, msg_id,                        pmqmd1->MsgId)
         
     | 
| 
      
 381 
     | 
    
         
            +
                WMQ_MQBYTES2HASH(hash, correl_id,                     pmqmd1->CorrelId)
         
     | 
| 
      
 382 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, backout_count,                 pmqmd1->BackoutCount)
         
     | 
| 
      
 383 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, reply_to_q,                    pmqmd1->ReplyToQ)
         
     | 
| 
      
 384 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, reply_to_q_mgr,                pmqmd1->ReplyToQMgr)
         
     | 
| 
      
 385 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, user_identifier,               pmqmd1->UserIdentifier)
         
     | 
| 
      
 386 
     | 
    
         
            +
                WMQ_MQBYTES2HASH(hash, accounting_token,              pmqmd1->AccountingToken)
         
     | 
| 
      
 387 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, appl_identity_data,            pmqmd1->ApplIdentityData)
         
     | 
| 
      
 388 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, put_appl_type,                 pmqmd1->PutApplType)
         
     | 
| 
      
 389 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, put_appl_name,                 pmqmd1->PutApplName)
         
     | 
| 
      
 390 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, put_date,                      pmqmd1->PutDate)
         
     | 
| 
      
 391 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, put_time,                      pmqmd1->PutTime)
         
     | 
| 
      
 392 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, appl_origin_data,              pmqmd1->ApplOriginData)
         
     | 
| 
      
 393 
     | 
    
         
            +
            }
         
     | 
| 
      
 394 
     | 
    
         
            +
             
     | 
| 
      
 395 
     | 
    
         
            +
            static int Message_to_mqmd1_each (VALUE key, VALUE value, MQMD1* pmqmd1)
         
     | 
| 
      
 396 
     | 
    
         
            +
            {
         
     | 
| 
      
 397 
     | 
    
         
            +
                VALUE str;
         
     | 
| 
      
 398 
     | 
    
         
            +
                size_t size;
         
     | 
| 
      
 399 
     | 
    
         
            +
                size_t length; 
         
     | 
| 
      
 400 
     | 
    
         
            +
                VALUE  val;
         
     | 
| 
      
 401 
     | 
    
         
            +
                ID     id = rb_to_id(key);
         
     | 
| 
      
 402 
     | 
    
         
            +
                
         
     | 
| 
      
 403 
     | 
    
         
            +
                if(id == ID_report)                { WMQ_STR2MQLONG  (value,pmqmd1->Report) }
         
     | 
| 
      
 404 
     | 
    
         
            +
                else if(id == ID_msg_type)              { WMQ_STR2MQLONG  (value,pmqmd1->MsgType) }
         
     | 
| 
      
 405 
     | 
    
         
            +
                else if(id == ID_expiry)                { WMQ_STR2MQLONG  (value,pmqmd1->Expiry) }
         
     | 
| 
      
 406 
     | 
    
         
            +
                else if(id == ID_feedback)              { WMQ_STR2MQLONG  (value,pmqmd1->Feedback) }
         
     | 
| 
      
 407 
     | 
    
         
            +
                else if(id == ID_encoding)              { WMQ_STR2MQLONG  (value,pmqmd1->Encoding) }
         
     | 
| 
      
 408 
     | 
    
         
            +
                else if(id == ID_coded_char_set_id)     { WMQ_STR2MQLONG  (value,pmqmd1->CodedCharSetId) }
         
     | 
| 
      
 409 
     | 
    
         
            +
                else if(id == ID_format)                { WMQ_STR2MQCHARS (value,pmqmd1->Format) }
         
     | 
| 
      
 410 
     | 
    
         
            +
                else if(id == ID_priority)              { WMQ_STR2MQLONG  (value,pmqmd1->Priority) }
         
     | 
| 
      
 411 
     | 
    
         
            +
                else if(id == ID_persistence)           { WMQ_STR2MQLONG  (value,pmqmd1->Persistence) }
         
     | 
| 
      
 412 
     | 
    
         
            +
                else if(id == ID_msg_id)                { WMQ_STR2MQBYTES (value,pmqmd1->MsgId) }
         
     | 
| 
      
 413 
     | 
    
         
            +
                else if(id == ID_correl_id)             { WMQ_STR2MQBYTES (value,pmqmd1->CorrelId) }
         
     | 
| 
      
 414 
     | 
    
         
            +
                else if(id == ID_backout_count)         { WMQ_STR2MQLONG  (value,pmqmd1->BackoutCount) }
         
     | 
| 
      
 415 
     | 
    
         
            +
                else if(id == ID_reply_to_q)            { WMQ_STR2MQCHARS (value,pmqmd1->ReplyToQ) }
         
     | 
| 
      
 416 
     | 
    
         
            +
                else if(id == ID_reply_to_q_mgr)        { WMQ_STR2MQCHARS (value,pmqmd1->ReplyToQMgr) }
         
     | 
| 
      
 417 
     | 
    
         
            +
                else if(id == ID_user_identifier)       { WMQ_STR2MQCHARS (value,pmqmd1->UserIdentifier) }
         
     | 
| 
      
 418 
     | 
    
         
            +
                else if(id == ID_accounting_token)      { WMQ_STR2MQBYTES (value,pmqmd1->AccountingToken) }
         
     | 
| 
      
 419 
     | 
    
         
            +
                else if(id == ID_appl_identity_data)    { WMQ_STR2MQCHARS (value,pmqmd1->ApplIdentityData) }
         
     | 
| 
      
 420 
     | 
    
         
            +
                else if(id == ID_put_appl_type)         { WMQ_STR2MQLONG  (value,pmqmd1->PutApplType) }
         
     | 
| 
      
 421 
     | 
    
         
            +
                else if(id == ID_put_appl_name)         { WMQ_STR2MQCHARS (value,pmqmd1->PutApplName) }
         
     | 
| 
      
 422 
     | 
    
         
            +
                else if(id == ID_put_date)              { WMQ_STR2MQCHARS (value,pmqmd1->PutDate) }
         
     | 
| 
      
 423 
     | 
    
         
            +
                else if(id == ID_put_time)              { WMQ_STR2MQCHARS (value,pmqmd1->PutTime) }
         
     | 
| 
      
 424 
     | 
    
         
            +
                else if(id == ID_appl_origin_data)      { WMQ_STR2MQCHARS (value,pmqmd1->ApplOriginData) }
         
     | 
| 
      
 425 
     | 
    
         
            +
                else if(id == ID_remote_q_name) {}
         
     | 
| 
      
 426 
     | 
    
         
            +
                else if(id == ID_remote_q_mgr_name) {}
         
     | 
| 
      
 427 
     | 
    
         
            +
                else
         
     | 
| 
      
 428 
     | 
    
         
            +
                {
         
     | 
| 
      
 429 
     | 
    
         
            +
                    val = rb_funcall(key, ID_to_s, 0);
         
     | 
| 
      
 430 
     | 
    
         
            +
                    rb_raise(rb_eArgError, "WMQ::Message#to_mqmd1 Unknown symbol :%s supplied", RSTRING_PTR(val));
         
     | 
| 
      
 431 
     | 
    
         
            +
                }
         
     | 
| 
      
 432 
     | 
    
         
            +
             
     | 
| 
      
 433 
     | 
    
         
            +
                return 0;
         
     | 
| 
      
 434 
     | 
    
         
            +
            }
         
     | 
| 
      
 435 
     | 
    
         
            +
             
     | 
| 
      
 436 
     | 
    
         
            +
            void Message_to_mqmd1(VALUE hash, MQMD1* pmqmd1)
         
     | 
| 
      
 437 
     | 
    
         
            +
            {
         
     | 
| 
      
 438 
     | 
    
         
            +
                rb_hash_foreach(hash, Message_to_mqmd1_each, (VALUE)pmqmd1);
         
     | 
| 
      
 439 
     | 
    
         
            +
            }
         
     | 
| 
      
 440 
     | 
    
         
            +
             
     | 
| 
      
 441 
     | 
    
         
            +
            /* --------------------------------------------------------------------------
         
     | 
| 
      
 442 
     | 
    
         
            +
             *  Convert between MQRFH2 and Hash
         
     | 
| 
      
 443 
     | 
    
         
            +
             * --------------------------------------------------------------------------*/
         
     | 
| 
      
 444 
     | 
    
         
            +
            void Message_from_mqrfh2(VALUE hash, MQRFH2* pmqrfh2)
         
     | 
| 
      
 445 
     | 
    
         
            +
            {
         
     | 
| 
      
 446 
     | 
    
         
            +
                VALUE  str;
         
     | 
| 
      
 447 
     | 
    
         
            +
                size_t size;
         
     | 
| 
      
 448 
     | 
    
         
            +
                size_t length; 
         
     | 
| 
      
 449 
     | 
    
         
            +
                size_t i;
         
     | 
| 
      
 450 
     | 
    
         
            +
                char*  pChar;
         
     | 
| 
      
 451 
     | 
    
         
            +
                    
         
     | 
| 
      
 452 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, encoding,                      pmqrfh2->Encoding)
         
     | 
| 
      
 453 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, coded_char_set_id,             pmqrfh2->CodedCharSetId)
         
     | 
| 
      
 454 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, flags,                         pmqrfh2->Flags)
         
     | 
| 
      
 455 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, name_value_ccsid,              pmqrfh2->NameValueCCSID)
         
     | 
| 
      
 456 
     | 
    
         
            +
            }
         
     | 
| 
      
 457 
     | 
    
         
            +
             
     | 
| 
      
 458 
     | 
    
         
            +
            static int Message_to_mqrfh2_each (VALUE key, VALUE value, MQRFH2* pmqrfh2)
         
     | 
| 
      
 459 
     | 
    
         
            +
            {
         
     | 
| 
      
 460 
     | 
    
         
            +
                VALUE str;
         
     | 
| 
      
 461 
     | 
    
         
            +
                size_t size;
         
     | 
| 
      
 462 
     | 
    
         
            +
                size_t length; 
         
     | 
| 
      
 463 
     | 
    
         
            +
                VALUE  val;
         
     | 
| 
      
 464 
     | 
    
         
            +
                ID     id = rb_to_id(key);
         
     | 
| 
      
 465 
     | 
    
         
            +
                
         
     | 
| 
      
 466 
     | 
    
         
            +
                if(id == ID_encoding)              { WMQ_STR2MQLONG  (value,pmqrfh2->Encoding) }
         
     | 
| 
      
 467 
     | 
    
         
            +
                else if(id == ID_coded_char_set_id)     { WMQ_STR2MQLONG  (value,pmqrfh2->CodedCharSetId) }
         
     | 
| 
      
 468 
     | 
    
         
            +
                else if(id == ID_flags)                 { WMQ_STR2MQLONG  (value,pmqrfh2->Flags) }
         
     | 
| 
      
 469 
     | 
    
         
            +
                else if(id == ID_name_value_ccsid)      { WMQ_STR2MQLONG  (value,pmqrfh2->NameValueCCSID) }
         
     | 
| 
      
 470 
     | 
    
         
            +
                else if(id == ID_xml) {}
         
     | 
| 
      
 471 
     | 
    
         
            +
                else if(id != ID_header_type)
         
     | 
| 
      
 472 
     | 
    
         
            +
                {
         
     | 
| 
      
 473 
     | 
    
         
            +
                    val = rb_funcall(key, ID_to_s, 0);
         
     | 
| 
      
 474 
     | 
    
         
            +
                    rb_raise(rb_eArgError, "WMQ::Message#to_mqrfh2 Unknown symbol :%s supplied", RSTRING_PTR(val));
         
     | 
| 
      
 475 
     | 
    
         
            +
                }
         
     | 
| 
      
 476 
     | 
    
         
            +
             
     | 
| 
      
 477 
     | 
    
         
            +
                return 0;
         
     | 
| 
      
 478 
     | 
    
         
            +
            }
         
     | 
| 
      
 479 
     | 
    
         
            +
             
     | 
| 
      
 480 
     | 
    
         
            +
            void Message_to_mqrfh2(VALUE hash, MQRFH2* pmqrfh2)
         
     | 
| 
      
 481 
     | 
    
         
            +
            {
         
     | 
| 
      
 482 
     | 
    
         
            +
                rb_hash_foreach(hash, Message_to_mqrfh2_each, (VALUE)pmqrfh2);
         
     | 
| 
      
 483 
     | 
    
         
            +
            }
         
     | 
| 
      
 484 
     | 
    
         
            +
             
     | 
| 
      
 485 
     | 
    
         
            +
            /* --------------------------------------------------------------------------
         
     | 
| 
      
 486 
     | 
    
         
            +
             *  Convert between MQRFH and Hash
         
     | 
| 
      
 487 
     | 
    
         
            +
             * --------------------------------------------------------------------------*/
         
     | 
| 
      
 488 
     | 
    
         
            +
            void Message_from_mqrfh(VALUE hash, MQRFH* pmqrfh)
         
     | 
| 
      
 489 
     | 
    
         
            +
            {
         
     | 
| 
      
 490 
     | 
    
         
            +
                VALUE  str;
         
     | 
| 
      
 491 
     | 
    
         
            +
                size_t size;
         
     | 
| 
      
 492 
     | 
    
         
            +
                size_t length; 
         
     | 
| 
      
 493 
     | 
    
         
            +
                size_t i;
         
     | 
| 
      
 494 
     | 
    
         
            +
                char*  pChar;
         
     | 
| 
      
 495 
     | 
    
         
            +
                    
         
     | 
| 
      
 496 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, encoding,                      pmqrfh->Encoding)
         
     | 
| 
      
 497 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, coded_char_set_id,             pmqrfh->CodedCharSetId)
         
     | 
| 
      
 498 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, flags,                         pmqrfh->Flags)
         
     | 
| 
      
 499 
     | 
    
         
            +
            }
         
     | 
| 
      
 500 
     | 
    
         
            +
             
     | 
| 
      
 501 
     | 
    
         
            +
            static int Message_to_mqrfh_each (VALUE key, VALUE value, MQRFH* pmqrfh)
         
     | 
| 
      
 502 
     | 
    
         
            +
            {
         
     | 
| 
      
 503 
     | 
    
         
            +
                VALUE str;
         
     | 
| 
      
 504 
     | 
    
         
            +
                size_t size;
         
     | 
| 
      
 505 
     | 
    
         
            +
                size_t length; 
         
     | 
| 
      
 506 
     | 
    
         
            +
                VALUE  val;
         
     | 
| 
      
 507 
     | 
    
         
            +
                ID     id = rb_to_id(key);
         
     | 
| 
      
 508 
     | 
    
         
            +
                
         
     | 
| 
      
 509 
     | 
    
         
            +
                if(id == ID_encoding)              { WMQ_STR2MQLONG  (value,pmqrfh->Encoding) }
         
     | 
| 
      
 510 
     | 
    
         
            +
                else if(id == ID_coded_char_set_id)     { WMQ_STR2MQLONG  (value,pmqrfh->CodedCharSetId) }
         
     | 
| 
      
 511 
     | 
    
         
            +
                else if(id == ID_flags)                 { WMQ_STR2MQLONG  (value,pmqrfh->Flags) }
         
     | 
| 
      
 512 
     | 
    
         
            +
                else if(id == ID_name_value) {}
         
     | 
| 
      
 513 
     | 
    
         
            +
                else if(id != ID_header_type)
         
     | 
| 
      
 514 
     | 
    
         
            +
                {
         
     | 
| 
      
 515 
     | 
    
         
            +
                    val = rb_funcall(key, ID_to_s, 0);
         
     | 
| 
      
 516 
     | 
    
         
            +
                    rb_raise(rb_eArgError, "WMQ::Message#to_mqrfh Unknown symbol :%s supplied", RSTRING_PTR(val));
         
     | 
| 
      
 517 
     | 
    
         
            +
                }
         
     | 
| 
      
 518 
     | 
    
         
            +
             
     | 
| 
      
 519 
     | 
    
         
            +
                return 0;
         
     | 
| 
      
 520 
     | 
    
         
            +
            }
         
     | 
| 
      
 521 
     | 
    
         
            +
             
     | 
| 
      
 522 
     | 
    
         
            +
            void Message_to_mqrfh(VALUE hash, MQRFH* pmqrfh)
         
     | 
| 
      
 523 
     | 
    
         
            +
            {
         
     | 
| 
      
 524 
     | 
    
         
            +
                rb_hash_foreach(hash, Message_to_mqrfh_each, (VALUE)pmqrfh);
         
     | 
| 
      
 525 
     | 
    
         
            +
            }
         
     | 
| 
      
 526 
     | 
    
         
            +
             
     | 
| 
      
 527 
     | 
    
         
            +
            /* --------------------------------------------------------------------------
         
     | 
| 
      
 528 
     | 
    
         
            +
             *  Convert between MQDLH and Hash
         
     | 
| 
      
 529 
     | 
    
         
            +
             * --------------------------------------------------------------------------*/
         
     | 
| 
      
 530 
     | 
    
         
            +
            void Message_from_mqdlh(VALUE hash, MQDLH* pmqdlh)
         
     | 
| 
      
 531 
     | 
    
         
            +
            {
         
     | 
| 
      
 532 
     | 
    
         
            +
                VALUE  str;
         
     | 
| 
      
 533 
     | 
    
         
            +
                size_t size;
         
     | 
| 
      
 534 
     | 
    
         
            +
                size_t length; 
         
     | 
| 
      
 535 
     | 
    
         
            +
                size_t i;
         
     | 
| 
      
 536 
     | 
    
         
            +
                char*  pChar;
         
     | 
| 
      
 537 
     | 
    
         
            +
                    
         
     | 
| 
      
 538 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, reason,                        pmqdlh->Reason)
         
     | 
| 
      
 539 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, dest_q_name,                   pmqdlh->DestQName)
         
     | 
| 
      
 540 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, dest_q_mgr_name,               pmqdlh->DestQMgrName)
         
     | 
| 
      
 541 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, encoding,                      pmqdlh->Encoding)
         
     | 
| 
      
 542 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, coded_char_set_id,             pmqdlh->CodedCharSetId)
         
     | 
| 
      
 543 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, put_appl_type,                 pmqdlh->PutApplType)
         
     | 
| 
      
 544 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, put_appl_name,                 pmqdlh->PutApplName)
         
     | 
| 
      
 545 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, put_date,                      pmqdlh->PutDate)
         
     | 
| 
      
 546 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, put_time,                      pmqdlh->PutTime)
         
     | 
| 
      
 547 
     | 
    
         
            +
            }
         
     | 
| 
      
 548 
     | 
    
         
            +
             
     | 
| 
      
 549 
     | 
    
         
            +
            static int Message_to_mqdlh_each (VALUE key, VALUE value, MQDLH* pmqdlh)
         
     | 
| 
      
 550 
     | 
    
         
            +
            {
         
     | 
| 
      
 551 
     | 
    
         
            +
                VALUE str;
         
     | 
| 
      
 552 
     | 
    
         
            +
                size_t size;
         
     | 
| 
      
 553 
     | 
    
         
            +
                size_t length; 
         
     | 
| 
      
 554 
     | 
    
         
            +
                VALUE  val;
         
     | 
| 
      
 555 
     | 
    
         
            +
                ID     id = rb_to_id(key);
         
     | 
| 
      
 556 
     | 
    
         
            +
                
         
     | 
| 
      
 557 
     | 
    
         
            +
                if(id == ID_reason)                { WMQ_STR2MQLONG  (value,pmqdlh->Reason) }
         
     | 
| 
      
 558 
     | 
    
         
            +
                else if(id == ID_dest_q_name)           { WMQ_STR2MQCHARS (value,pmqdlh->DestQName) }
         
     | 
| 
      
 559 
     | 
    
         
            +
                else if(id == ID_dest_q_mgr_name)       { WMQ_STR2MQCHARS (value,pmqdlh->DestQMgrName) }
         
     | 
| 
      
 560 
     | 
    
         
            +
                else if(id == ID_encoding)              { WMQ_STR2MQLONG  (value,pmqdlh->Encoding) }
         
     | 
| 
      
 561 
     | 
    
         
            +
                else if(id == ID_coded_char_set_id)     { WMQ_STR2MQLONG  (value,pmqdlh->CodedCharSetId) }
         
     | 
| 
      
 562 
     | 
    
         
            +
                else if(id == ID_put_appl_type)         { WMQ_STR2MQLONG  (value,pmqdlh->PutApplType) }
         
     | 
| 
      
 563 
     | 
    
         
            +
                else if(id == ID_put_appl_name)         { WMQ_STR2MQCHARS (value,pmqdlh->PutApplName) }
         
     | 
| 
      
 564 
     | 
    
         
            +
                else if(id == ID_put_date)              { WMQ_STR2MQCHARS (value,pmqdlh->PutDate) }
         
     | 
| 
      
 565 
     | 
    
         
            +
                else if(id == ID_put_time)              { WMQ_STR2MQCHARS (value,pmqdlh->PutTime) }
         
     | 
| 
      
 566 
     | 
    
         
            +
                else if(id != ID_header_type)
         
     | 
| 
      
 567 
     | 
    
         
            +
                {
         
     | 
| 
      
 568 
     | 
    
         
            +
                    val = rb_funcall(key, ID_to_s, 0);
         
     | 
| 
      
 569 
     | 
    
         
            +
                    rb_raise(rb_eArgError, "WMQ::Message#to_mqdlh Unknown symbol :%s supplied", RSTRING_PTR(val));
         
     | 
| 
      
 570 
     | 
    
         
            +
                }
         
     | 
| 
      
 571 
     | 
    
         
            +
             
     | 
| 
      
 572 
     | 
    
         
            +
                return 0;
         
     | 
| 
      
 573 
     | 
    
         
            +
            }
         
     | 
| 
      
 574 
     | 
    
         
            +
             
     | 
| 
      
 575 
     | 
    
         
            +
            void Message_to_mqdlh(VALUE hash, MQDLH* pmqdlh)
         
     | 
| 
      
 576 
     | 
    
         
            +
            {
         
     | 
| 
      
 577 
     | 
    
         
            +
                rb_hash_foreach(hash, Message_to_mqdlh_each, (VALUE)pmqdlh);
         
     | 
| 
      
 578 
     | 
    
         
            +
            }
         
     | 
| 
      
 579 
     | 
    
         
            +
             
     | 
| 
      
 580 
     | 
    
         
            +
            /* --------------------------------------------------------------------------
         
     | 
| 
      
 581 
     | 
    
         
            +
             *  Convert between MQCIH and Hash
         
     | 
| 
      
 582 
     | 
    
         
            +
             * --------------------------------------------------------------------------*/
         
     | 
| 
      
 583 
     | 
    
         
            +
            void Message_from_mqcih(VALUE hash, MQCIH* pmqcih)
         
     | 
| 
      
 584 
     | 
    
         
            +
            {
         
     | 
| 
      
 585 
     | 
    
         
            +
                VALUE  str;
         
     | 
| 
      
 586 
     | 
    
         
            +
                size_t size;
         
     | 
| 
      
 587 
     | 
    
         
            +
                size_t length; 
         
     | 
| 
      
 588 
     | 
    
         
            +
                size_t i;
         
     | 
| 
      
 589 
     | 
    
         
            +
                char*  pChar;
         
     | 
| 
      
 590 
     | 
    
         
            +
                    
         
     | 
| 
      
 591 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, encoding,                      pmqcih->Encoding)
         
     | 
| 
      
 592 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, coded_char_set_id,             pmqcih->CodedCharSetId)
         
     | 
| 
      
 593 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, flags,                         pmqcih->Flags)
         
     | 
| 
      
 594 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, return_code,                   pmqcih->ReturnCode)
         
     | 
| 
      
 595 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, comp_code,                     pmqcih->CompCode)
         
     | 
| 
      
 596 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, reason,                        pmqcih->Reason)
         
     | 
| 
      
 597 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, uow_control,                   pmqcih->UOWControl)
         
     | 
| 
      
 598 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, get_wait_interval,             pmqcih->GetWaitInterval)
         
     | 
| 
      
 599 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, link_type,                     pmqcih->LinkType)
         
     | 
| 
      
 600 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, output_data_length,            pmqcih->OutputDataLength)
         
     | 
| 
      
 601 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, facility_keep_time,            pmqcih->FacilityKeepTime)
         
     | 
| 
      
 602 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, ads_descriptor,                pmqcih->ADSDescriptor)
         
     | 
| 
      
 603 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, conversational_task,           pmqcih->ConversationalTask)
         
     | 
| 
      
 604 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, task_end_status,               pmqcih->TaskEndStatus)
         
     | 
| 
      
 605 
     | 
    
         
            +
                WMQ_MQBYTES2HASH(hash, facility,                      pmqcih->Facility)
         
     | 
| 
      
 606 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, function,                      pmqcih->Function)
         
     | 
| 
      
 607 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, abend_code,                    pmqcih->AbendCode)
         
     | 
| 
      
 608 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, authenticator,                 pmqcih->Authenticator)
         
     | 
| 
      
 609 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, reserved1,                     pmqcih->Reserved1)
         
     | 
| 
      
 610 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, reply_to_format,               pmqcih->ReplyToFormat)
         
     | 
| 
      
 611 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, remote_sys_id,                 pmqcih->RemoteSysId)
         
     | 
| 
      
 612 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, remote_trans_id,               pmqcih->RemoteTransId)
         
     | 
| 
      
 613 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, transaction_id,                pmqcih->TransactionId)
         
     | 
| 
      
 614 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, facility_like,                 pmqcih->FacilityLike)
         
     | 
| 
      
 615 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, attention_id,                  pmqcih->AttentionId)
         
     | 
| 
      
 616 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, start_code,                    pmqcih->StartCode)
         
     | 
| 
      
 617 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, cancel_code,                   pmqcih->CancelCode)
         
     | 
| 
      
 618 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, next_transaction_id,           pmqcih->NextTransactionId)
         
     | 
| 
      
 619 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, reserved2,                     pmqcih->Reserved2)
         
     | 
| 
      
 620 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, reserved3,                     pmqcih->Reserved3)
         
     | 
| 
      
 621 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, cursor_position,               pmqcih->CursorPosition)
         
     | 
| 
      
 622 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, error_offset,                  pmqcih->ErrorOffset)
         
     | 
| 
      
 623 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, input_item,                    pmqcih->InputItem)
         
     | 
| 
      
 624 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, reserved4,                     pmqcih->Reserved4)
         
     | 
| 
      
 625 
     | 
    
         
            +
            }
         
     | 
| 
      
 626 
     | 
    
         
            +
             
     | 
| 
      
 627 
     | 
    
         
            +
            static int Message_to_mqcih_each (VALUE key, VALUE value, MQCIH* pmqcih)
         
     | 
| 
      
 628 
     | 
    
         
            +
            {
         
     | 
| 
      
 629 
     | 
    
         
            +
                VALUE str;
         
     | 
| 
      
 630 
     | 
    
         
            +
                size_t size;
         
     | 
| 
      
 631 
     | 
    
         
            +
                size_t length; 
         
     | 
| 
      
 632 
     | 
    
         
            +
                VALUE  val;
         
     | 
| 
      
 633 
     | 
    
         
            +
                ID     id = rb_to_id(key);
         
     | 
| 
      
 634 
     | 
    
         
            +
                
         
     | 
| 
      
 635 
     | 
    
         
            +
                if(id == ID_encoding)              { WMQ_STR2MQLONG  (value,pmqcih->Encoding) }
         
     | 
| 
      
 636 
     | 
    
         
            +
                else if(id == ID_coded_char_set_id)     { WMQ_STR2MQLONG  (value,pmqcih->CodedCharSetId) }
         
     | 
| 
      
 637 
     | 
    
         
            +
                else if(id == ID_flags)                 { WMQ_STR2MQLONG  (value,pmqcih->Flags) }
         
     | 
| 
      
 638 
     | 
    
         
            +
                else if(id == ID_return_code)           { WMQ_STR2MQLONG  (value,pmqcih->ReturnCode) }
         
     | 
| 
      
 639 
     | 
    
         
            +
                else if(id == ID_comp_code)             { WMQ_STR2MQLONG  (value,pmqcih->CompCode) }
         
     | 
| 
      
 640 
     | 
    
         
            +
                else if(id == ID_reason)                { WMQ_STR2MQLONG  (value,pmqcih->Reason) }
         
     | 
| 
      
 641 
     | 
    
         
            +
                else if(id == ID_uow_control)           { WMQ_STR2MQLONG  (value,pmqcih->UOWControl) }
         
     | 
| 
      
 642 
     | 
    
         
            +
                else if(id == ID_get_wait_interval)     { WMQ_STR2MQLONG  (value,pmqcih->GetWaitInterval) }
         
     | 
| 
      
 643 
     | 
    
         
            +
                else if(id == ID_link_type)             { WMQ_STR2MQLONG  (value,pmqcih->LinkType) }
         
     | 
| 
      
 644 
     | 
    
         
            +
                else if(id == ID_output_data_length)    { WMQ_STR2MQLONG  (value,pmqcih->OutputDataLength) }
         
     | 
| 
      
 645 
     | 
    
         
            +
                else if(id == ID_facility_keep_time)    { WMQ_STR2MQLONG  (value,pmqcih->FacilityKeepTime) }
         
     | 
| 
      
 646 
     | 
    
         
            +
                else if(id == ID_ads_descriptor)        { WMQ_STR2MQLONG  (value,pmqcih->ADSDescriptor) }
         
     | 
| 
      
 647 
     | 
    
         
            +
                else if(id == ID_conversational_task)   { WMQ_STR2MQLONG  (value,pmqcih->ConversationalTask) }
         
     | 
| 
      
 648 
     | 
    
         
            +
                else if(id == ID_task_end_status)       { WMQ_STR2MQLONG  (value,pmqcih->TaskEndStatus) }
         
     | 
| 
      
 649 
     | 
    
         
            +
                else if(id == ID_facility)              { WMQ_STR2MQBYTES (value,pmqcih->Facility) }
         
     | 
| 
      
 650 
     | 
    
         
            +
                else if(id == ID_function)              { WMQ_STR2MQCHARS (value,pmqcih->Function) }
         
     | 
| 
      
 651 
     | 
    
         
            +
                else if(id == ID_abend_code)            { WMQ_STR2MQCHARS (value,pmqcih->AbendCode) }
         
     | 
| 
      
 652 
     | 
    
         
            +
                else if(id == ID_authenticator)         { WMQ_STR2MQCHARS (value,pmqcih->Authenticator) }
         
     | 
| 
      
 653 
     | 
    
         
            +
                else if(id == ID_reserved1)             { WMQ_STR2MQCHARS (value,pmqcih->Reserved1) }
         
     | 
| 
      
 654 
     | 
    
         
            +
                else if(id == ID_reply_to_format)       { WMQ_STR2MQCHARS (value,pmqcih->ReplyToFormat) }
         
     | 
| 
      
 655 
     | 
    
         
            +
                else if(id == ID_remote_sys_id)         { WMQ_STR2MQCHARS (value,pmqcih->RemoteSysId) }
         
     | 
| 
      
 656 
     | 
    
         
            +
                else if(id == ID_remote_trans_id)       { WMQ_STR2MQCHARS (value,pmqcih->RemoteTransId) }
         
     | 
| 
      
 657 
     | 
    
         
            +
                else if(id == ID_transaction_id)        { WMQ_STR2MQCHARS (value,pmqcih->TransactionId) }
         
     | 
| 
      
 658 
     | 
    
         
            +
                else if(id == ID_facility_like)         { WMQ_STR2MQCHARS (value,pmqcih->FacilityLike) }
         
     | 
| 
      
 659 
     | 
    
         
            +
                else if(id == ID_attention_id)          { WMQ_STR2MQCHARS (value,pmqcih->AttentionId) }
         
     | 
| 
      
 660 
     | 
    
         
            +
                else if(id == ID_start_code)            { WMQ_STR2MQCHARS (value,pmqcih->StartCode) }
         
     | 
| 
      
 661 
     | 
    
         
            +
                else if(id == ID_cancel_code)           { WMQ_STR2MQCHARS (value,pmqcih->CancelCode) }
         
     | 
| 
      
 662 
     | 
    
         
            +
                else if(id == ID_next_transaction_id)   { WMQ_STR2MQCHARS (value,pmqcih->NextTransactionId) }
         
     | 
| 
      
 663 
     | 
    
         
            +
                else if(id == ID_reserved2)             { WMQ_STR2MQCHARS (value,pmqcih->Reserved2) }
         
     | 
| 
      
 664 
     | 
    
         
            +
                else if(id == ID_reserved3)             { WMQ_STR2MQCHARS (value,pmqcih->Reserved3) }
         
     | 
| 
      
 665 
     | 
    
         
            +
                else if(id == ID_cursor_position)       { WMQ_STR2MQLONG  (value,pmqcih->CursorPosition) }
         
     | 
| 
      
 666 
     | 
    
         
            +
                else if(id == ID_error_offset)          { WMQ_STR2MQLONG  (value,pmqcih->ErrorOffset) }
         
     | 
| 
      
 667 
     | 
    
         
            +
                else if(id == ID_input_item)            { WMQ_STR2MQLONG  (value,pmqcih->InputItem) }
         
     | 
| 
      
 668 
     | 
    
         
            +
                else if(id == ID_reserved4)             { WMQ_STR2MQLONG  (value,pmqcih->Reserved4) }
         
     | 
| 
      
 669 
     | 
    
         
            +
                else if(id != ID_header_type)
         
     | 
| 
      
 670 
     | 
    
         
            +
                {
         
     | 
| 
      
 671 
     | 
    
         
            +
                    val = rb_funcall(key, ID_to_s, 0);
         
     | 
| 
      
 672 
     | 
    
         
            +
                    rb_raise(rb_eArgError, "WMQ::Message#to_mqcih Unknown symbol :%s supplied", RSTRING_PTR(val));
         
     | 
| 
      
 673 
     | 
    
         
            +
                }
         
     | 
| 
      
 674 
     | 
    
         
            +
             
     | 
| 
      
 675 
     | 
    
         
            +
                return 0;
         
     | 
| 
      
 676 
     | 
    
         
            +
            }
         
     | 
| 
      
 677 
     | 
    
         
            +
             
     | 
| 
      
 678 
     | 
    
         
            +
            void Message_to_mqcih(VALUE hash, MQCIH* pmqcih)
         
     | 
| 
      
 679 
     | 
    
         
            +
            {
         
     | 
| 
      
 680 
     | 
    
         
            +
                rb_hash_foreach(hash, Message_to_mqcih_each, (VALUE)pmqcih);
         
     | 
| 
      
 681 
     | 
    
         
            +
            }
         
     | 
| 
      
 682 
     | 
    
         
            +
             
     | 
| 
      
 683 
     | 
    
         
            +
            /* --------------------------------------------------------------------------
         
     | 
| 
      
 684 
     | 
    
         
            +
             *  Convert between MQDH and Hash
         
     | 
| 
      
 685 
     | 
    
         
            +
             * --------------------------------------------------------------------------*/
         
     | 
| 
      
 686 
     | 
    
         
            +
            void Message_from_mqdh(VALUE hash, MQDH* pmqdh)
         
     | 
| 
      
 687 
     | 
    
         
            +
            {
         
     | 
| 
      
 688 
     | 
    
         
            +
                VALUE  str;
         
     | 
| 
      
 689 
     | 
    
         
            +
                size_t size;
         
     | 
| 
      
 690 
     | 
    
         
            +
                size_t length; 
         
     | 
| 
      
 691 
     | 
    
         
            +
                size_t i;
         
     | 
| 
      
 692 
     | 
    
         
            +
                char*  pChar;
         
     | 
| 
      
 693 
     | 
    
         
            +
                    
         
     | 
| 
      
 694 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, encoding,                      pmqdh->Encoding)
         
     | 
| 
      
 695 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, coded_char_set_id,             pmqdh->CodedCharSetId)
         
     | 
| 
      
 696 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, flags,                         pmqdh->Flags)
         
     | 
| 
      
 697 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, put_msg_rec_fields,            pmqdh->PutMsgRecFields)
         
     | 
| 
      
 698 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, recs_present,                  pmqdh->RecsPresent)
         
     | 
| 
      
 699 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, object_rec_offset,             pmqdh->ObjectRecOffset)
         
     | 
| 
      
 700 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, put_msg_rec_offset,            pmqdh->PutMsgRecOffset)
         
     | 
| 
      
 701 
     | 
    
         
            +
            }
         
     | 
| 
      
 702 
     | 
    
         
            +
             
     | 
| 
      
 703 
     | 
    
         
            +
            static int Message_to_mqdh_each (VALUE key, VALUE value, MQDH* pmqdh)
         
     | 
| 
      
 704 
     | 
    
         
            +
            {
         
     | 
| 
      
 705 
     | 
    
         
            +
                VALUE str;
         
     | 
| 
      
 706 
     | 
    
         
            +
                size_t size;
         
     | 
| 
      
 707 
     | 
    
         
            +
                size_t length; 
         
     | 
| 
      
 708 
     | 
    
         
            +
                VALUE  val;
         
     | 
| 
      
 709 
     | 
    
         
            +
                ID     id = rb_to_id(key);
         
     | 
| 
      
 710 
     | 
    
         
            +
                
         
     | 
| 
      
 711 
     | 
    
         
            +
                if(id == ID_encoding)              { WMQ_STR2MQLONG  (value,pmqdh->Encoding) }
         
     | 
| 
      
 712 
     | 
    
         
            +
                else if(id == ID_coded_char_set_id)     { WMQ_STR2MQLONG  (value,pmqdh->CodedCharSetId) }
         
     | 
| 
      
 713 
     | 
    
         
            +
                else if(id == ID_flags)                 { WMQ_STR2MQLONG  (value,pmqdh->Flags) }
         
     | 
| 
      
 714 
     | 
    
         
            +
                else if(id == ID_put_msg_rec_fields)    { WMQ_STR2MQLONG  (value,pmqdh->PutMsgRecFields) }
         
     | 
| 
      
 715 
     | 
    
         
            +
                else if(id == ID_recs_present)          { WMQ_STR2MQLONG  (value,pmqdh->RecsPresent) }
         
     | 
| 
      
 716 
     | 
    
         
            +
                else if(id == ID_object_rec_offset)     { WMQ_STR2MQLONG  (value,pmqdh->ObjectRecOffset) }
         
     | 
| 
      
 717 
     | 
    
         
            +
                else if(id == ID_put_msg_rec_offset)    { WMQ_STR2MQLONG  (value,pmqdh->PutMsgRecOffset) }
         
     | 
| 
      
 718 
     | 
    
         
            +
                else if(id != ID_header_type)
         
     | 
| 
      
 719 
     | 
    
         
            +
                {
         
     | 
| 
      
 720 
     | 
    
         
            +
                    val = rb_funcall(key, ID_to_s, 0);
         
     | 
| 
      
 721 
     | 
    
         
            +
                    rb_raise(rb_eArgError, "WMQ::Message#to_mqdh Unknown symbol :%s supplied", RSTRING_PTR(val));
         
     | 
| 
      
 722 
     | 
    
         
            +
                }
         
     | 
| 
      
 723 
     | 
    
         
            +
             
     | 
| 
      
 724 
     | 
    
         
            +
                return 0;
         
     | 
| 
      
 725 
     | 
    
         
            +
            }
         
     | 
| 
      
 726 
     | 
    
         
            +
             
     | 
| 
      
 727 
     | 
    
         
            +
            void Message_to_mqdh(VALUE hash, MQDH* pmqdh)
         
     | 
| 
      
 728 
     | 
    
         
            +
            {
         
     | 
| 
      
 729 
     | 
    
         
            +
                rb_hash_foreach(hash, Message_to_mqdh_each, (VALUE)pmqdh);
         
     | 
| 
      
 730 
     | 
    
         
            +
            }
         
     | 
| 
      
 731 
     | 
    
         
            +
             
     | 
| 
      
 732 
     | 
    
         
            +
            /* --------------------------------------------------------------------------
         
     | 
| 
      
 733 
     | 
    
         
            +
             *  Convert between MQIIH and Hash
         
     | 
| 
      
 734 
     | 
    
         
            +
             * --------------------------------------------------------------------------*/
         
     | 
| 
      
 735 
     | 
    
         
            +
            void Message_from_mqiih(VALUE hash, MQIIH* pmqiih)
         
     | 
| 
      
 736 
     | 
    
         
            +
            {
         
     | 
| 
      
 737 
     | 
    
         
            +
                VALUE  str;
         
     | 
| 
      
 738 
     | 
    
         
            +
                size_t size;
         
     | 
| 
      
 739 
     | 
    
         
            +
                size_t length; 
         
     | 
| 
      
 740 
     | 
    
         
            +
                size_t i;
         
     | 
| 
      
 741 
     | 
    
         
            +
                char*  pChar;
         
     | 
| 
      
 742 
     | 
    
         
            +
                    
         
     | 
| 
      
 743 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, encoding,                      pmqiih->Encoding)
         
     | 
| 
      
 744 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, coded_char_set_id,             pmqiih->CodedCharSetId)
         
     | 
| 
      
 745 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, flags,                         pmqiih->Flags)
         
     | 
| 
      
 746 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, l_term_override,               pmqiih->LTermOverride)
         
     | 
| 
      
 747 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, mfs_map_name,                  pmqiih->MFSMapName)
         
     | 
| 
      
 748 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, reply_to_format,               pmqiih->ReplyToFormat)
         
     | 
| 
      
 749 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, authenticator,                 pmqiih->Authenticator)
         
     | 
| 
      
 750 
     | 
    
         
            +
                WMQ_MQBYTES2HASH(hash, tran_instance_id,              pmqiih->TranInstanceId)
         
     | 
| 
      
 751 
     | 
    
         
            +
                WMQ_MQCHAR2HASH (hash, tran_state,                    pmqiih->TranState)
         
     | 
| 
      
 752 
     | 
    
         
            +
                WMQ_MQCHAR2HASH (hash, commit_mode,                   pmqiih->CommitMode)
         
     | 
| 
      
 753 
     | 
    
         
            +
                WMQ_MQCHAR2HASH (hash, security_scope,                pmqiih->SecurityScope)
         
     | 
| 
      
 754 
     | 
    
         
            +
                WMQ_MQCHAR2HASH (hash, reserved,                      pmqiih->Reserved)
         
     | 
| 
      
 755 
     | 
    
         
            +
            }
         
     | 
| 
      
 756 
     | 
    
         
            +
             
     | 
| 
      
 757 
     | 
    
         
            +
            static int Message_to_mqiih_each (VALUE key, VALUE value, MQIIH* pmqiih)
         
     | 
| 
      
 758 
     | 
    
         
            +
            {
         
     | 
| 
      
 759 
     | 
    
         
            +
                VALUE str;
         
     | 
| 
      
 760 
     | 
    
         
            +
                size_t size;
         
     | 
| 
      
 761 
     | 
    
         
            +
                size_t length; 
         
     | 
| 
      
 762 
     | 
    
         
            +
                VALUE  val;
         
     | 
| 
      
 763 
     | 
    
         
            +
                ID     id = rb_to_id(key);
         
     | 
| 
      
 764 
     | 
    
         
            +
                
         
     | 
| 
      
 765 
     | 
    
         
            +
                if(id == ID_encoding)              { WMQ_STR2MQLONG  (value,pmqiih->Encoding) }
         
     | 
| 
      
 766 
     | 
    
         
            +
                else if(id == ID_coded_char_set_id)     { WMQ_STR2MQLONG  (value,pmqiih->CodedCharSetId) }
         
     | 
| 
      
 767 
     | 
    
         
            +
                else if(id == ID_flags)                 { WMQ_STR2MQLONG  (value,pmqiih->Flags) }
         
     | 
| 
      
 768 
     | 
    
         
            +
                else if(id == ID_l_term_override)       { WMQ_STR2MQCHARS (value,pmqiih->LTermOverride) }
         
     | 
| 
      
 769 
     | 
    
         
            +
                else if(id == ID_mfs_map_name)          { WMQ_STR2MQCHARS (value,pmqiih->MFSMapName) }
         
     | 
| 
      
 770 
     | 
    
         
            +
                else if(id == ID_reply_to_format)       { WMQ_STR2MQCHARS (value,pmqiih->ReplyToFormat) }
         
     | 
| 
      
 771 
     | 
    
         
            +
                else if(id == ID_authenticator)         { WMQ_STR2MQCHARS (value,pmqiih->Authenticator) }
         
     | 
| 
      
 772 
     | 
    
         
            +
                else if(id == ID_tran_instance_id)      { WMQ_STR2MQBYTES (value,pmqiih->TranInstanceId) }
         
     | 
| 
      
 773 
     | 
    
         
            +
                else if(id == ID_tran_state)            { WMQ_STR2MQCHAR  (value,pmqiih->TranState) }
         
     | 
| 
      
 774 
     | 
    
         
            +
                else if(id == ID_commit_mode)           { WMQ_STR2MQCHAR  (value,pmqiih->CommitMode) }
         
     | 
| 
      
 775 
     | 
    
         
            +
                else if(id == ID_security_scope)        { WMQ_STR2MQCHAR  (value,pmqiih->SecurityScope) }
         
     | 
| 
      
 776 
     | 
    
         
            +
                else if(id == ID_reserved)              { WMQ_STR2MQCHAR  (value,pmqiih->Reserved) }
         
     | 
| 
      
 777 
     | 
    
         
            +
                else if(id != ID_header_type)
         
     | 
| 
      
 778 
     | 
    
         
            +
                {
         
     | 
| 
      
 779 
     | 
    
         
            +
                    val = rb_funcall(key, ID_to_s, 0);
         
     | 
| 
      
 780 
     | 
    
         
            +
                    rb_raise(rb_eArgError, "WMQ::Message#to_mqiih Unknown symbol :%s supplied", RSTRING_PTR(val));
         
     | 
| 
      
 781 
     | 
    
         
            +
                }
         
     | 
| 
      
 782 
     | 
    
         
            +
             
     | 
| 
      
 783 
     | 
    
         
            +
                return 0;
         
     | 
| 
      
 784 
     | 
    
         
            +
            }
         
     | 
| 
      
 785 
     | 
    
         
            +
             
     | 
| 
      
 786 
     | 
    
         
            +
            void Message_to_mqiih(VALUE hash, MQIIH* pmqiih)
         
     | 
| 
      
 787 
     | 
    
         
            +
            {
         
     | 
| 
      
 788 
     | 
    
         
            +
                rb_hash_foreach(hash, Message_to_mqiih_each, (VALUE)pmqiih);
         
     | 
| 
      
 789 
     | 
    
         
            +
            }
         
     | 
| 
      
 790 
     | 
    
         
            +
             
     | 
| 
      
 791 
     | 
    
         
            +
            /* --------------------------------------------------------------------------
         
     | 
| 
      
 792 
     | 
    
         
            +
             *  Convert between MQRMH and Hash
         
     | 
| 
      
 793 
     | 
    
         
            +
             * --------------------------------------------------------------------------*/
         
     | 
| 
      
 794 
     | 
    
         
            +
            void Message_from_mqrmh(VALUE hash, MQRMH* pmqrmh)
         
     | 
| 
      
 795 
     | 
    
         
            +
            {
         
     | 
| 
      
 796 
     | 
    
         
            +
                VALUE  str;
         
     | 
| 
      
 797 
     | 
    
         
            +
                size_t size;
         
     | 
| 
      
 798 
     | 
    
         
            +
                size_t length; 
         
     | 
| 
      
 799 
     | 
    
         
            +
                size_t i;
         
     | 
| 
      
 800 
     | 
    
         
            +
                char*  pChar;
         
     | 
| 
      
 801 
     | 
    
         
            +
                    
         
     | 
| 
      
 802 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, encoding,                      pmqrmh->Encoding)
         
     | 
| 
      
 803 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, coded_char_set_id,             pmqrmh->CodedCharSetId)
         
     | 
| 
      
 804 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, flags,                         pmqrmh->Flags)
         
     | 
| 
      
 805 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, object_type,                   pmqrmh->ObjectType)
         
     | 
| 
      
 806 
     | 
    
         
            +
                WMQ_MQBYTES2HASH(hash, object_instance_id,            pmqrmh->ObjectInstanceId)
         
     | 
| 
      
 807 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, src_env_length,                pmqrmh->SrcEnvLength)
         
     | 
| 
      
 808 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, src_env_offset,                pmqrmh->SrcEnvOffset)
         
     | 
| 
      
 809 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, src_name_length,               pmqrmh->SrcNameLength)
         
     | 
| 
      
 810 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, src_name_offset,               pmqrmh->SrcNameOffset)
         
     | 
| 
      
 811 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, dest_env_length,               pmqrmh->DestEnvLength)
         
     | 
| 
      
 812 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, dest_env_offset,               pmqrmh->DestEnvOffset)
         
     | 
| 
      
 813 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, dest_name_length,              pmqrmh->DestNameLength)
         
     | 
| 
      
 814 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, dest_name_offset,              pmqrmh->DestNameOffset)
         
     | 
| 
      
 815 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, data_logical_length,           pmqrmh->DataLogicalLength)
         
     | 
| 
      
 816 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, data_logical_offset,           pmqrmh->DataLogicalOffset)
         
     | 
| 
      
 817 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, data_logical_offset2,          pmqrmh->DataLogicalOffset2)
         
     | 
| 
      
 818 
     | 
    
         
            +
            }
         
     | 
| 
      
 819 
     | 
    
         
            +
             
     | 
| 
      
 820 
     | 
    
         
            +
            static int Message_to_mqrmh_each (VALUE key, VALUE value, MQRMH* pmqrmh)
         
     | 
| 
      
 821 
     | 
    
         
            +
            {
         
     | 
| 
      
 822 
     | 
    
         
            +
                VALUE str;
         
     | 
| 
      
 823 
     | 
    
         
            +
                size_t size;
         
     | 
| 
      
 824 
     | 
    
         
            +
                size_t length; 
         
     | 
| 
      
 825 
     | 
    
         
            +
                VALUE  val;
         
     | 
| 
      
 826 
     | 
    
         
            +
                ID     id = rb_to_id(key);
         
     | 
| 
      
 827 
     | 
    
         
            +
                
         
     | 
| 
      
 828 
     | 
    
         
            +
                if(id == ID_encoding)              { WMQ_STR2MQLONG  (value,pmqrmh->Encoding) }
         
     | 
| 
      
 829 
     | 
    
         
            +
                else if(id == ID_coded_char_set_id)     { WMQ_STR2MQLONG  (value,pmqrmh->CodedCharSetId) }
         
     | 
| 
      
 830 
     | 
    
         
            +
                else if(id == ID_flags)                 { WMQ_STR2MQLONG  (value,pmqrmh->Flags) }
         
     | 
| 
      
 831 
     | 
    
         
            +
                else if(id == ID_object_type)           { WMQ_STR2MQCHARS (value,pmqrmh->ObjectType) }
         
     | 
| 
      
 832 
     | 
    
         
            +
                else if(id == ID_object_instance_id)    { WMQ_STR2MQBYTES (value,pmqrmh->ObjectInstanceId) }
         
     | 
| 
      
 833 
     | 
    
         
            +
                else if(id == ID_src_env_length)        { WMQ_STR2MQLONG  (value,pmqrmh->SrcEnvLength) }
         
     | 
| 
      
 834 
     | 
    
         
            +
                else if(id == ID_src_env_offset)        { WMQ_STR2MQLONG  (value,pmqrmh->SrcEnvOffset) }
         
     | 
| 
      
 835 
     | 
    
         
            +
                else if(id == ID_src_name_length)       { WMQ_STR2MQLONG  (value,pmqrmh->SrcNameLength) }
         
     | 
| 
      
 836 
     | 
    
         
            +
                else if(id == ID_src_name_offset)       { WMQ_STR2MQLONG  (value,pmqrmh->SrcNameOffset) }
         
     | 
| 
      
 837 
     | 
    
         
            +
                else if(id == ID_dest_env_length)       { WMQ_STR2MQLONG  (value,pmqrmh->DestEnvLength) }
         
     | 
| 
      
 838 
     | 
    
         
            +
                else if(id == ID_dest_env_offset)       { WMQ_STR2MQLONG  (value,pmqrmh->DestEnvOffset) }
         
     | 
| 
      
 839 
     | 
    
         
            +
                else if(id == ID_dest_name_length)      { WMQ_STR2MQLONG  (value,pmqrmh->DestNameLength) }
         
     | 
| 
      
 840 
     | 
    
         
            +
                else if(id == ID_dest_name_offset)      { WMQ_STR2MQLONG  (value,pmqrmh->DestNameOffset) }
         
     | 
| 
      
 841 
     | 
    
         
            +
                else if(id == ID_data_logical_length)   { WMQ_STR2MQLONG  (value,pmqrmh->DataLogicalLength) }
         
     | 
| 
      
 842 
     | 
    
         
            +
                else if(id == ID_data_logical_offset)   { WMQ_STR2MQLONG  (value,pmqrmh->DataLogicalOffset) }
         
     | 
| 
      
 843 
     | 
    
         
            +
                else if(id == ID_data_logical_offset2)  { WMQ_STR2MQLONG  (value,pmqrmh->DataLogicalOffset2) }
         
     | 
| 
      
 844 
     | 
    
         
            +
                else if(id != ID_header_type)
         
     | 
| 
      
 845 
     | 
    
         
            +
                {
         
     | 
| 
      
 846 
     | 
    
         
            +
                    val = rb_funcall(key, ID_to_s, 0);
         
     | 
| 
      
 847 
     | 
    
         
            +
                    rb_raise(rb_eArgError, "WMQ::Message#to_mqrmh Unknown symbol :%s supplied", RSTRING_PTR(val));
         
     | 
| 
      
 848 
     | 
    
         
            +
                }
         
     | 
| 
      
 849 
     | 
    
         
            +
             
     | 
| 
      
 850 
     | 
    
         
            +
                return 0;
         
     | 
| 
      
 851 
     | 
    
         
            +
            }
         
     | 
| 
      
 852 
     | 
    
         
            +
             
     | 
| 
      
 853 
     | 
    
         
            +
            void Message_to_mqrmh(VALUE hash, MQRMH* pmqrmh)
         
     | 
| 
      
 854 
     | 
    
         
            +
            {
         
     | 
| 
      
 855 
     | 
    
         
            +
                rb_hash_foreach(hash, Message_to_mqrmh_each, (VALUE)pmqrmh);
         
     | 
| 
      
 856 
     | 
    
         
            +
            }
         
     | 
| 
      
 857 
     | 
    
         
            +
             
     | 
| 
      
 858 
     | 
    
         
            +
            /* --------------------------------------------------------------------------
         
     | 
| 
      
 859 
     | 
    
         
            +
             *  Convert between MQTM and Hash
         
     | 
| 
      
 860 
     | 
    
         
            +
             * --------------------------------------------------------------------------*/
         
     | 
| 
      
 861 
     | 
    
         
            +
            void Message_from_mqtm(VALUE hash, MQTM* pmqtm)
         
     | 
| 
      
 862 
     | 
    
         
            +
            {
         
     | 
| 
      
 863 
     | 
    
         
            +
                VALUE  str;
         
     | 
| 
      
 864 
     | 
    
         
            +
                size_t size;
         
     | 
| 
      
 865 
     | 
    
         
            +
                size_t length; 
         
     | 
| 
      
 866 
     | 
    
         
            +
                size_t i;
         
     | 
| 
      
 867 
     | 
    
         
            +
                char*  pChar;
         
     | 
| 
      
 868 
     | 
    
         
            +
                    
         
     | 
| 
      
 869 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, q_name,                        pmqtm->QName)
         
     | 
| 
      
 870 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, process_name,                  pmqtm->ProcessName)
         
     | 
| 
      
 871 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, trigger_data,                  pmqtm->TriggerData)
         
     | 
| 
      
 872 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, appl_type,                     pmqtm->ApplType)
         
     | 
| 
      
 873 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, appl_id,                       pmqtm->ApplId)
         
     | 
| 
      
 874 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, env_data,                      pmqtm->EnvData)
         
     | 
| 
      
 875 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, user_data,                     pmqtm->UserData)
         
     | 
| 
      
 876 
     | 
    
         
            +
            }
         
     | 
| 
      
 877 
     | 
    
         
            +
             
     | 
| 
      
 878 
     | 
    
         
            +
            static int Message_to_mqtm_each (VALUE key, VALUE value, MQTM* pmqtm)
         
     | 
| 
      
 879 
     | 
    
         
            +
            {
         
     | 
| 
      
 880 
     | 
    
         
            +
                VALUE str;
         
     | 
| 
      
 881 
     | 
    
         
            +
                size_t size;
         
     | 
| 
      
 882 
     | 
    
         
            +
                size_t length; 
         
     | 
| 
      
 883 
     | 
    
         
            +
                VALUE  val;
         
     | 
| 
      
 884 
     | 
    
         
            +
                ID     id = rb_to_id(key);
         
     | 
| 
      
 885 
     | 
    
         
            +
                
         
     | 
| 
      
 886 
     | 
    
         
            +
                if(id == ID_q_name)                { WMQ_STR2MQCHARS (value,pmqtm->QName) }
         
     | 
| 
      
 887 
     | 
    
         
            +
                else if(id == ID_process_name)          { WMQ_STR2MQCHARS (value,pmqtm->ProcessName) }
         
     | 
| 
      
 888 
     | 
    
         
            +
                else if(id == ID_trigger_data)          { WMQ_STR2MQCHARS (value,pmqtm->TriggerData) }
         
     | 
| 
      
 889 
     | 
    
         
            +
                else if(id == ID_appl_type)             { WMQ_STR2MQLONG  (value,pmqtm->ApplType) }
         
     | 
| 
      
 890 
     | 
    
         
            +
                else if(id == ID_appl_id)               { WMQ_STR2MQCHARS (value,pmqtm->ApplId) }
         
     | 
| 
      
 891 
     | 
    
         
            +
                else if(id == ID_env_data)              { WMQ_STR2MQCHARS (value,pmqtm->EnvData) }
         
     | 
| 
      
 892 
     | 
    
         
            +
                else if(id == ID_user_data)             { WMQ_STR2MQCHARS (value,pmqtm->UserData) }
         
     | 
| 
      
 893 
     | 
    
         
            +
                else if(id != ID_header_type)
         
     | 
| 
      
 894 
     | 
    
         
            +
                {
         
     | 
| 
      
 895 
     | 
    
         
            +
                    val = rb_funcall(key, ID_to_s, 0);
         
     | 
| 
      
 896 
     | 
    
         
            +
                    rb_raise(rb_eArgError, "WMQ::Message#to_mqtm Unknown symbol :%s supplied", RSTRING_PTR(val));
         
     | 
| 
      
 897 
     | 
    
         
            +
                }
         
     | 
| 
      
 898 
     | 
    
         
            +
             
     | 
| 
      
 899 
     | 
    
         
            +
                return 0;
         
     | 
| 
      
 900 
     | 
    
         
            +
            }
         
     | 
| 
      
 901 
     | 
    
         
            +
             
     | 
| 
      
 902 
     | 
    
         
            +
            void Message_to_mqtm(VALUE hash, MQTM* pmqtm)
         
     | 
| 
      
 903 
     | 
    
         
            +
            {
         
     | 
| 
      
 904 
     | 
    
         
            +
                rb_hash_foreach(hash, Message_to_mqtm_each, (VALUE)pmqtm);
         
     | 
| 
      
 905 
     | 
    
         
            +
            }
         
     | 
| 
      
 906 
     | 
    
         
            +
             
     | 
| 
      
 907 
     | 
    
         
            +
            /* --------------------------------------------------------------------------
         
     | 
| 
      
 908 
     | 
    
         
            +
             *  Convert between MQTMC2 and Hash
         
     | 
| 
      
 909 
     | 
    
         
            +
             * --------------------------------------------------------------------------*/
         
     | 
| 
      
 910 
     | 
    
         
            +
            void Message_from_mqtmc2(VALUE hash, MQTMC2* pmqtmc2)
         
     | 
| 
      
 911 
     | 
    
         
            +
            {
         
     | 
| 
      
 912 
     | 
    
         
            +
                VALUE  str;
         
     | 
| 
      
 913 
     | 
    
         
            +
                size_t size;
         
     | 
| 
      
 914 
     | 
    
         
            +
                size_t length; 
         
     | 
| 
      
 915 
     | 
    
         
            +
                size_t i;
         
     | 
| 
      
 916 
     | 
    
         
            +
                char*  pChar;
         
     | 
| 
      
 917 
     | 
    
         
            +
                    
         
     | 
| 
      
 918 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, q_name,                        pmqtmc2->QName)
         
     | 
| 
      
 919 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, process_name,                  pmqtmc2->ProcessName)
         
     | 
| 
      
 920 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, trigger_data,                  pmqtmc2->TriggerData)
         
     | 
| 
      
 921 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, appl_type,                     pmqtmc2->ApplType)
         
     | 
| 
      
 922 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, appl_id,                       pmqtmc2->ApplId)
         
     | 
| 
      
 923 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, env_data,                      pmqtmc2->EnvData)
         
     | 
| 
      
 924 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, user_data,                     pmqtmc2->UserData)
         
     | 
| 
      
 925 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, q_mgr_name,                    pmqtmc2->QMgrName)
         
     | 
| 
      
 926 
     | 
    
         
            +
            }
         
     | 
| 
      
 927 
     | 
    
         
            +
             
     | 
| 
      
 928 
     | 
    
         
            +
            static int Message_to_mqtmc2_each (VALUE key, VALUE value, MQTMC2* pmqtmc2)
         
     | 
| 
      
 929 
     | 
    
         
            +
            {
         
     | 
| 
      
 930 
     | 
    
         
            +
                VALUE str;
         
     | 
| 
      
 931 
     | 
    
         
            +
                size_t size;
         
     | 
| 
      
 932 
     | 
    
         
            +
                size_t length; 
         
     | 
| 
      
 933 
     | 
    
         
            +
                VALUE  val;
         
     | 
| 
      
 934 
     | 
    
         
            +
                ID     id = rb_to_id(key);
         
     | 
| 
      
 935 
     | 
    
         
            +
                
         
     | 
| 
      
 936 
     | 
    
         
            +
                if(id == ID_q_name)                { WMQ_STR2MQCHARS (value,pmqtmc2->QName) }
         
     | 
| 
      
 937 
     | 
    
         
            +
                else if(id == ID_process_name)          { WMQ_STR2MQCHARS (value,pmqtmc2->ProcessName) }
         
     | 
| 
      
 938 
     | 
    
         
            +
                else if(id == ID_trigger_data)          { WMQ_STR2MQCHARS (value,pmqtmc2->TriggerData) }
         
     | 
| 
      
 939 
     | 
    
         
            +
                else if(id == ID_appl_type)             { WMQ_STR2MQCHARS (value,pmqtmc2->ApplType) }
         
     | 
| 
      
 940 
     | 
    
         
            +
                else if(id == ID_appl_id)               { WMQ_STR2MQCHARS (value,pmqtmc2->ApplId) }
         
     | 
| 
      
 941 
     | 
    
         
            +
                else if(id == ID_env_data)              { WMQ_STR2MQCHARS (value,pmqtmc2->EnvData) }
         
     | 
| 
      
 942 
     | 
    
         
            +
                else if(id == ID_user_data)             { WMQ_STR2MQCHARS (value,pmqtmc2->UserData) }
         
     | 
| 
      
 943 
     | 
    
         
            +
                else if(id == ID_q_mgr_name)            { WMQ_STR2MQCHARS (value,pmqtmc2->QMgrName) }
         
     | 
| 
      
 944 
     | 
    
         
            +
                else
         
     | 
| 
      
 945 
     | 
    
         
            +
                {
         
     | 
| 
      
 946 
     | 
    
         
            +
                    val = rb_funcall(key, ID_to_s, 0);
         
     | 
| 
      
 947 
     | 
    
         
            +
                    rb_raise(rb_eArgError, "WMQ::Message#to_mqtmc2 Unknown symbol :%s supplied", RSTRING_PTR(val));
         
     | 
| 
      
 948 
     | 
    
         
            +
                }
         
     | 
| 
      
 949 
     | 
    
         
            +
             
     | 
| 
      
 950 
     | 
    
         
            +
                return 0;
         
     | 
| 
      
 951 
     | 
    
         
            +
            }
         
     | 
| 
      
 952 
     | 
    
         
            +
             
     | 
| 
      
 953 
     | 
    
         
            +
            void Message_to_mqtmc2(VALUE hash, MQTMC2* pmqtmc2)
         
     | 
| 
      
 954 
     | 
    
         
            +
            {
         
     | 
| 
      
 955 
     | 
    
         
            +
                rb_hash_foreach(hash, Message_to_mqtmc2_each, (VALUE)pmqtmc2);
         
     | 
| 
      
 956 
     | 
    
         
            +
            }
         
     | 
| 
      
 957 
     | 
    
         
            +
             
     | 
| 
      
 958 
     | 
    
         
            +
            /* --------------------------------------------------------------------------
         
     | 
| 
      
 959 
     | 
    
         
            +
             *  Convert between MQWIH and Hash
         
     | 
| 
      
 960 
     | 
    
         
            +
             * --------------------------------------------------------------------------*/
         
     | 
| 
      
 961 
     | 
    
         
            +
            void Message_from_mqwih(VALUE hash, MQWIH* pmqwih)
         
     | 
| 
      
 962 
     | 
    
         
            +
            {
         
     | 
| 
      
 963 
     | 
    
         
            +
                VALUE  str;
         
     | 
| 
      
 964 
     | 
    
         
            +
                size_t size;
         
     | 
| 
      
 965 
     | 
    
         
            +
                size_t length; 
         
     | 
| 
      
 966 
     | 
    
         
            +
                size_t i;
         
     | 
| 
      
 967 
     | 
    
         
            +
                char*  pChar;
         
     | 
| 
      
 968 
     | 
    
         
            +
                    
         
     | 
| 
      
 969 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, encoding,                      pmqwih->Encoding)
         
     | 
| 
      
 970 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, coded_char_set_id,             pmqwih->CodedCharSetId)
         
     | 
| 
      
 971 
     | 
    
         
            +
                WMQ_MQLONG2HASH (hash, flags,                         pmqwih->Flags)
         
     | 
| 
      
 972 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, service_name,                  pmqwih->ServiceName)
         
     | 
| 
      
 973 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, service_step,                  pmqwih->ServiceStep)
         
     | 
| 
      
 974 
     | 
    
         
            +
                WMQ_MQBYTES2HASH(hash, msg_token,                     pmqwih->MsgToken)
         
     | 
| 
      
 975 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, reserved,                      pmqwih->Reserved)
         
     | 
| 
      
 976 
     | 
    
         
            +
            }
         
     | 
| 
      
 977 
     | 
    
         
            +
             
     | 
| 
      
 978 
     | 
    
         
            +
            static int Message_to_mqwih_each (VALUE key, VALUE value, MQWIH* pmqwih)
         
     | 
| 
      
 979 
     | 
    
         
            +
            {
         
     | 
| 
      
 980 
     | 
    
         
            +
                VALUE str;
         
     | 
| 
      
 981 
     | 
    
         
            +
                size_t size;
         
     | 
| 
      
 982 
     | 
    
         
            +
                size_t length; 
         
     | 
| 
      
 983 
     | 
    
         
            +
                VALUE  val;
         
     | 
| 
      
 984 
     | 
    
         
            +
                ID     id = rb_to_id(key);
         
     | 
| 
      
 985 
     | 
    
         
            +
                
         
     | 
| 
      
 986 
     | 
    
         
            +
                if(id == ID_encoding)              { WMQ_STR2MQLONG  (value,pmqwih->Encoding) }
         
     | 
| 
      
 987 
     | 
    
         
            +
                else if(id == ID_coded_char_set_id)     { WMQ_STR2MQLONG  (value,pmqwih->CodedCharSetId) }
         
     | 
| 
      
 988 
     | 
    
         
            +
                else if(id == ID_flags)                 { WMQ_STR2MQLONG  (value,pmqwih->Flags) }
         
     | 
| 
      
 989 
     | 
    
         
            +
                else if(id == ID_service_name)          { WMQ_STR2MQCHARS (value,pmqwih->ServiceName) }
         
     | 
| 
      
 990 
     | 
    
         
            +
                else if(id == ID_service_step)          { WMQ_STR2MQCHARS (value,pmqwih->ServiceStep) }
         
     | 
| 
      
 991 
     | 
    
         
            +
                else if(id == ID_msg_token)             { WMQ_STR2MQBYTES (value,pmqwih->MsgToken) }
         
     | 
| 
      
 992 
     | 
    
         
            +
                else if(id == ID_reserved)              { WMQ_STR2MQCHARS (value,pmqwih->Reserved) }
         
     | 
| 
      
 993 
     | 
    
         
            +
                else if(id != ID_header_type)
         
     | 
| 
      
 994 
     | 
    
         
            +
                {
         
     | 
| 
      
 995 
     | 
    
         
            +
                    val = rb_funcall(key, ID_to_s, 0);
         
     | 
| 
      
 996 
     | 
    
         
            +
                    rb_raise(rb_eArgError, "WMQ::Message#to_mqwih Unknown symbol :%s supplied", RSTRING_PTR(val));
         
     | 
| 
      
 997 
     | 
    
         
            +
                }
         
     | 
| 
      
 998 
     | 
    
         
            +
             
     | 
| 
      
 999 
     | 
    
         
            +
                return 0;
         
     | 
| 
      
 1000 
     | 
    
         
            +
            }
         
     | 
| 
      
 1001 
     | 
    
         
            +
             
     | 
| 
      
 1002 
     | 
    
         
            +
            void Message_to_mqwih(VALUE hash, MQWIH* pmqwih)
         
     | 
| 
      
 1003 
     | 
    
         
            +
            {
         
     | 
| 
      
 1004 
     | 
    
         
            +
                rb_hash_foreach(hash, Message_to_mqwih_each, (VALUE)pmqwih);
         
     | 
| 
      
 1005 
     | 
    
         
            +
            }
         
     | 
| 
      
 1006 
     | 
    
         
            +
             
     | 
| 
      
 1007 
     | 
    
         
            +
            /* --------------------------------------------------------------------------
         
     | 
| 
      
 1008 
     | 
    
         
            +
             *  Convert between MQXQH and Hash
         
     | 
| 
      
 1009 
     | 
    
         
            +
             * --------------------------------------------------------------------------*/
         
     | 
| 
      
 1010 
     | 
    
         
            +
            void Message_from_mqxqh(VALUE hash, MQXQH* pmqxqh)
         
     | 
| 
      
 1011 
     | 
    
         
            +
            {
         
     | 
| 
      
 1012 
     | 
    
         
            +
                VALUE  str;
         
     | 
| 
      
 1013 
     | 
    
         
            +
                size_t size;
         
     | 
| 
      
 1014 
     | 
    
         
            +
                size_t length; 
         
     | 
| 
      
 1015 
     | 
    
         
            +
                size_t i;
         
     | 
| 
      
 1016 
     | 
    
         
            +
                char*  pChar;
         
     | 
| 
      
 1017 
     | 
    
         
            +
                    
         
     | 
| 
      
 1018 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, remote_q_name,                 pmqxqh->RemoteQName)
         
     | 
| 
      
 1019 
     | 
    
         
            +
                WMQ_MQCHARS2HASH(hash, remote_q_mgr_name,             pmqxqh->RemoteQMgrName)
         
     | 
| 
      
 1020 
     | 
    
         
            +
                Message_from_mqmd1(hash, &pmqxqh->MsgDesc);
         
     | 
| 
      
 1021 
     | 
    
         
            +
            }
         
     | 
| 
      
 1022 
     | 
    
         
            +
             
     | 
| 
      
 1023 
     | 
    
         
            +
            static int Message_to_mqxqh_each (VALUE key, VALUE value, MQXQH* pmqxqh)
         
     | 
| 
      
 1024 
     | 
    
         
            +
            {
         
     | 
| 
      
 1025 
     | 
    
         
            +
                VALUE str;
         
     | 
| 
      
 1026 
     | 
    
         
            +
                size_t size;
         
     | 
| 
      
 1027 
     | 
    
         
            +
                size_t length; 
         
     | 
| 
      
 1028 
     | 
    
         
            +
                VALUE  val;
         
     | 
| 
      
 1029 
     | 
    
         
            +
                ID     id = rb_to_id(key);
         
     | 
| 
      
 1030 
     | 
    
         
            +
                
         
     | 
| 
      
 1031 
     | 
    
         
            +
                if(id == ID_remote_q_name)         { WMQ_STR2MQCHARS (value,pmqxqh->RemoteQName) }
         
     | 
| 
      
 1032 
     | 
    
         
            +
                else if(id == ID_remote_q_mgr_name)     { WMQ_STR2MQCHARS (value,pmqxqh->RemoteQMgrName) }
         
     | 
| 
      
 1033 
     | 
    
         
            +
                else if(id != ID_header_type) {
         
     | 
| 
      
 1034 
     | 
    
         
            +
                  Message_to_mqmd1_each(key, value, &pmqxqh->MsgDesc); 
         
     | 
| 
      
 1035 
     | 
    
         
            +
               }
         
     | 
| 
      
 1036 
     | 
    
         
            +
                return 0;
         
     | 
| 
      
 1037 
     | 
    
         
            +
            }
         
     | 
| 
      
 1038 
     | 
    
         
            +
             
     | 
| 
      
 1039 
     | 
    
         
            +
            void Message_to_mqxqh(VALUE hash, MQXQH* pmqxqh)
         
     | 
| 
      
 1040 
     | 
    
         
            +
            {
         
     | 
| 
      
 1041 
     | 
    
         
            +
                rb_hash_foreach(hash, Message_to_mqxqh_each, (VALUE)pmqxqh);
         
     | 
| 
      
 1042 
     | 
    
         
            +
            }
         
     | 
| 
      
 1043 
     | 
    
         
            +
             
     | 
| 
      
 1044 
     | 
    
         
            +
             
     | 
| 
      
 1045 
     | 
    
         
            +
            /* --------------------------------------------------------------------------
         
     | 
| 
      
 1046 
     | 
    
         
            +
             *  Extract message data and headers
         
     | 
| 
      
 1047 
     | 
    
         
            +
             * --------------------------------------------------------------------------*/
         
     | 
| 
      
 1048 
     | 
    
         
            +
            void Message_deblock(VALUE self, PMQMD pmqmd, PMQBYTE p_buffer, MQLONG total_length, MQLONG trace_level)
         
     | 
| 
      
 1049 
     | 
    
         
            +
            {
         
     | 
| 
      
 1050 
     | 
    
         
            +
                PMQCHAR p_format   = pmqmd->Format;               /* Start with format in MQMD     */
         
     | 
| 
      
 1051 
     | 
    
         
            +
                PMQBYTE p_data     = p_buffer;                    /* Pointer to start of data      */
         
     | 
| 
      
 1052 
     | 
    
         
            +
                MQLONG  data_length= total_length;                /* length of data portion        */
         
     | 
| 
      
 1053 
     | 
    
         
            +
                VALUE   headers    = rb_ary_new();
         
     | 
| 
      
 1054 
     | 
    
         
            +
                VALUE   descriptor = rb_hash_new();
         
     | 
| 
      
 1055 
     | 
    
         
            +
                MQLONG  size       = 0;
         
     | 
| 
      
 1056 
     | 
    
         
            +
             
     | 
| 
      
 1057 
     | 
    
         
            +
                while (p_format)
         
     | 
| 
      
 1058 
     | 
    
         
            +
                {
         
     | 
| 
      
 1059 
     | 
    
         
            +
                    /* MQRFH2: rf_header_2 */
         
     | 
| 
      
 1060 
     | 
    
         
            +
                    if(strncmp(p_format, MQFMT_RF_HEADER_2, MQ_FORMAT_LENGTH) == 0)
         
     | 
| 
      
 1061 
     | 
    
         
            +
                    {
         
     | 
| 
      
 1062 
     | 
    
         
            +
                        VALUE hash = rb_hash_new();
         
     | 
| 
      
 1063 
     | 
    
         
            +
                        PMQRFH2 p_header = (PMQRFH2)p_data;
         
     | 
| 
      
 1064 
     | 
    
         
            +
                        
         
     | 
| 
      
 1065 
     | 
    
         
            +
                        if(trace_level>2)
         
     | 
| 
      
 1066 
     | 
    
         
            +
                            printf("WMQ::Message#deblock Found rf_header_2\n");
         
     | 
| 
      
 1067 
     | 
    
         
            +
                            
         
     | 
| 
      
 1068 
     | 
    
         
            +
                        if(memcmp(p_header->StrucId, MQRFH_STRUC_ID, sizeof(p_header->StrucId)) != 0)
         
     | 
| 
      
 1069 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1070 
     | 
    
         
            +
                            if(trace_level>1)
         
     | 
| 
      
 1071 
     | 
    
         
            +
                                printf("WMQ::Message#deblock MQFMT_RF_HEADER_2 received, but message does not contain MQRFH2\n");
         
     | 
| 
      
 1072 
     | 
    
         
            +
                            break;    /* Bad Message received, do not deblock headers */
         
     | 
| 
      
 1073 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1074 
     | 
    
         
            +
                        else
         
     | 
| 
      
 1075 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1076 
     | 
    
         
            +
                            Message_from_mqrfh2(hash, p_header);
         
     | 
| 
      
 1077 
     | 
    
         
            +
                            rb_hash_aset(hash, ID2SYM(ID_header_type), ID2SYM(ID_rf_header_2));
         
     | 
| 
      
 1078 
     | 
    
         
            +
                            rb_ary_push(headers, hash);
         
     | 
| 
      
 1079 
     | 
    
         
            +
                            size        = Message_deblock_rf_header_2 (hash, p_data, data_length);
         
     | 
| 
      
 1080 
     | 
    
         
            +
                            if (!size) break; /* Poison Message */
         
     | 
| 
      
 1081 
     | 
    
         
            +
                            p_data      += size;
         
     | 
| 
      
 1082 
     | 
    
         
            +
                            data_length -= size;
         
     | 
| 
      
 1083 
     | 
    
         
            +
                            p_format    = p_header->Format;
         
     | 
| 
      
 1084 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1085 
     | 
    
         
            +
                    }
         
     | 
| 
      
 1086 
     | 
    
         
            +
                    else
         
     | 
| 
      
 1087 
     | 
    
         
            +
                    /* MQRFH: rf_header */
         
     | 
| 
      
 1088 
     | 
    
         
            +
                    if(strncmp(p_format, MQFMT_RF_HEADER, MQ_FORMAT_LENGTH) == 0)
         
     | 
| 
      
 1089 
     | 
    
         
            +
                    {
         
     | 
| 
      
 1090 
     | 
    
         
            +
                        VALUE hash = rb_hash_new();
         
     | 
| 
      
 1091 
     | 
    
         
            +
                        PMQRFH p_header = (PMQRFH)p_data;
         
     | 
| 
      
 1092 
     | 
    
         
            +
                        
         
     | 
| 
      
 1093 
     | 
    
         
            +
                        if(trace_level>2)
         
     | 
| 
      
 1094 
     | 
    
         
            +
                            printf("WMQ::Message#deblock Found rf_header\n");
         
     | 
| 
      
 1095 
     | 
    
         
            +
                            
         
     | 
| 
      
 1096 
     | 
    
         
            +
                        if(memcmp(p_header->StrucId, MQRFH_STRUC_ID, sizeof(p_header->StrucId)) != 0)
         
     | 
| 
      
 1097 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1098 
     | 
    
         
            +
                            if(trace_level>1)
         
     | 
| 
      
 1099 
     | 
    
         
            +
                                printf("WMQ::Message#deblock MQFMT_RF_HEADER received, but message does not contain MQRFH\n");
         
     | 
| 
      
 1100 
     | 
    
         
            +
                            break;    /* Bad Message received, do not deblock headers */
         
     | 
| 
      
 1101 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1102 
     | 
    
         
            +
                        else
         
     | 
| 
      
 1103 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1104 
     | 
    
         
            +
                            Message_from_mqrfh(hash, p_header);
         
     | 
| 
      
 1105 
     | 
    
         
            +
                            rb_hash_aset(hash, ID2SYM(ID_header_type), ID2SYM(ID_rf_header));
         
     | 
| 
      
 1106 
     | 
    
         
            +
                            rb_ary_push(headers, hash);
         
     | 
| 
      
 1107 
     | 
    
         
            +
                            size        = Message_deblock_rf_header (hash, p_data, data_length);
         
     | 
| 
      
 1108 
     | 
    
         
            +
                            if (!size) break; /* Poison Message */
         
     | 
| 
      
 1109 
     | 
    
         
            +
                            p_data      += size;
         
     | 
| 
      
 1110 
     | 
    
         
            +
                            data_length -= size;
         
     | 
| 
      
 1111 
     | 
    
         
            +
                            p_format    = p_header->Format;
         
     | 
| 
      
 1112 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1113 
     | 
    
         
            +
                    }
         
     | 
| 
      
 1114 
     | 
    
         
            +
                    else
         
     | 
| 
      
 1115 
     | 
    
         
            +
                    /* MQDLH: dead_letter_header */
         
     | 
| 
      
 1116 
     | 
    
         
            +
                    if(strncmp(p_format, MQFMT_DEAD_LETTER_HEADER, MQ_FORMAT_LENGTH) == 0)
         
     | 
| 
      
 1117 
     | 
    
         
            +
                    {
         
     | 
| 
      
 1118 
     | 
    
         
            +
                        VALUE hash = rb_hash_new();
         
     | 
| 
      
 1119 
     | 
    
         
            +
                        PMQDLH p_header = (PMQDLH)p_data;
         
     | 
| 
      
 1120 
     | 
    
         
            +
                        
         
     | 
| 
      
 1121 
     | 
    
         
            +
                        if(trace_level>2)
         
     | 
| 
      
 1122 
     | 
    
         
            +
                            printf("WMQ::Message#deblock Found dead_letter_header\n");
         
     | 
| 
      
 1123 
     | 
    
         
            +
                            
         
     | 
| 
      
 1124 
     | 
    
         
            +
                        if(memcmp(p_header->StrucId, MQDLH_STRUC_ID, sizeof(p_header->StrucId)) != 0)
         
     | 
| 
      
 1125 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1126 
     | 
    
         
            +
                            if(trace_level>1)
         
     | 
| 
      
 1127 
     | 
    
         
            +
                                printf("WMQ::Message#deblock MQFMT_DEAD_LETTER_HEADER received, but message does not contain MQDLH\n");
         
     | 
| 
      
 1128 
     | 
    
         
            +
                            break;    /* Bad Message received, do not deblock headers */
         
     | 
| 
      
 1129 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1130 
     | 
    
         
            +
                        else
         
     | 
| 
      
 1131 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1132 
     | 
    
         
            +
                            Message_from_mqdlh(hash, p_header);
         
     | 
| 
      
 1133 
     | 
    
         
            +
                            rb_hash_aset(hash, ID2SYM(ID_header_type), ID2SYM(ID_dead_letter_header));
         
     | 
| 
      
 1134 
     | 
    
         
            +
                            rb_ary_push(headers, hash);
         
     | 
| 
      
 1135 
     | 
    
         
            +
                            size        = sizeof(MQDLH);
         
     | 
| 
      
 1136 
     | 
    
         
            +
                            p_data      += size;
         
     | 
| 
      
 1137 
     | 
    
         
            +
                            data_length -= size;
         
     | 
| 
      
 1138 
     | 
    
         
            +
                            p_format    = p_header->Format;
         
     | 
| 
      
 1139 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1140 
     | 
    
         
            +
                    }
         
     | 
| 
      
 1141 
     | 
    
         
            +
                    else
         
     | 
| 
      
 1142 
     | 
    
         
            +
                    /* MQCIH: cics */
         
     | 
| 
      
 1143 
     | 
    
         
            +
                    if(strncmp(p_format, MQFMT_CICS, MQ_FORMAT_LENGTH) == 0)
         
     | 
| 
      
 1144 
     | 
    
         
            +
                    {
         
     | 
| 
      
 1145 
     | 
    
         
            +
                        VALUE hash = rb_hash_new();
         
     | 
| 
      
 1146 
     | 
    
         
            +
                        PMQCIH p_header = (PMQCIH)p_data;
         
     | 
| 
      
 1147 
     | 
    
         
            +
                        
         
     | 
| 
      
 1148 
     | 
    
         
            +
                        if(trace_level>2)
         
     | 
| 
      
 1149 
     | 
    
         
            +
                            printf("WMQ::Message#deblock Found cics\n");
         
     | 
| 
      
 1150 
     | 
    
         
            +
                            
         
     | 
| 
      
 1151 
     | 
    
         
            +
                        if(memcmp(p_header->StrucId, MQCIH_STRUC_ID, sizeof(p_header->StrucId)) != 0)
         
     | 
| 
      
 1152 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1153 
     | 
    
         
            +
                            if(trace_level>1)
         
     | 
| 
      
 1154 
     | 
    
         
            +
                                printf("WMQ::Message#deblock MQFMT_CICS received, but message does not contain MQCIH\n");
         
     | 
| 
      
 1155 
     | 
    
         
            +
                            break;    /* Bad Message received, do not deblock headers */
         
     | 
| 
      
 1156 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1157 
     | 
    
         
            +
                        else
         
     | 
| 
      
 1158 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1159 
     | 
    
         
            +
                            Message_from_mqcih(hash, p_header);
         
     | 
| 
      
 1160 
     | 
    
         
            +
                            rb_hash_aset(hash, ID2SYM(ID_header_type), ID2SYM(ID_cics));
         
     | 
| 
      
 1161 
     | 
    
         
            +
                            rb_ary_push(headers, hash);
         
     | 
| 
      
 1162 
     | 
    
         
            +
                            size        = p_header->StrucLength;
         
     | 
| 
      
 1163 
     | 
    
         
            +
                            p_data      += size;
         
     | 
| 
      
 1164 
     | 
    
         
            +
                            data_length -= size;
         
     | 
| 
      
 1165 
     | 
    
         
            +
                            p_format    = p_header->Format;
         
     | 
| 
      
 1166 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1167 
     | 
    
         
            +
                    }
         
     | 
| 
      
 1168 
     | 
    
         
            +
                    else
         
     | 
| 
      
 1169 
     | 
    
         
            +
                    /* MQDH: dist_header */
         
     | 
| 
      
 1170 
     | 
    
         
            +
                    if(strncmp(p_format, MQFMT_DIST_HEADER, MQ_FORMAT_LENGTH) == 0)
         
     | 
| 
      
 1171 
     | 
    
         
            +
                    {
         
     | 
| 
      
 1172 
     | 
    
         
            +
                        VALUE hash = rb_hash_new();
         
     | 
| 
      
 1173 
     | 
    
         
            +
                        PMQDH p_header = (PMQDH)p_data;
         
     | 
| 
      
 1174 
     | 
    
         
            +
                        
         
     | 
| 
      
 1175 
     | 
    
         
            +
                        if(trace_level>2)
         
     | 
| 
      
 1176 
     | 
    
         
            +
                            printf("WMQ::Message#deblock Found dist_header\n");
         
     | 
| 
      
 1177 
     | 
    
         
            +
                            
         
     | 
| 
      
 1178 
     | 
    
         
            +
                        if(memcmp(p_header->StrucId, MQDH_STRUC_ID, sizeof(p_header->StrucId)) != 0)
         
     | 
| 
      
 1179 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1180 
     | 
    
         
            +
                            if(trace_level>1)
         
     | 
| 
      
 1181 
     | 
    
         
            +
                                printf("WMQ::Message#deblock MQFMT_DIST_HEADER received, but message does not contain MQDH\n");
         
     | 
| 
      
 1182 
     | 
    
         
            +
                            break;    /* Bad Message received, do not deblock headers */
         
     | 
| 
      
 1183 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1184 
     | 
    
         
            +
                        else
         
     | 
| 
      
 1185 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1186 
     | 
    
         
            +
                            Message_from_mqdh(hash, p_header);
         
     | 
| 
      
 1187 
     | 
    
         
            +
                            rb_hash_aset(hash, ID2SYM(ID_header_type), ID2SYM(ID_dist_header));
         
     | 
| 
      
 1188 
     | 
    
         
            +
                            rb_ary_push(headers, hash);
         
     | 
| 
      
 1189 
     | 
    
         
            +
                            size        = p_header->StrucLength;
         
     | 
| 
      
 1190 
     | 
    
         
            +
                            p_data      += size;
         
     | 
| 
      
 1191 
     | 
    
         
            +
                            data_length -= size;
         
     | 
| 
      
 1192 
     | 
    
         
            +
                            p_format    = p_header->Format;
         
     | 
| 
      
 1193 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1194 
     | 
    
         
            +
                    }
         
     | 
| 
      
 1195 
     | 
    
         
            +
                    else
         
     | 
| 
      
 1196 
     | 
    
         
            +
                    /* MQIIH: ims */
         
     | 
| 
      
 1197 
     | 
    
         
            +
                    if(strncmp(p_format, MQFMT_IMS, MQ_FORMAT_LENGTH) == 0)
         
     | 
| 
      
 1198 
     | 
    
         
            +
                    {
         
     | 
| 
      
 1199 
     | 
    
         
            +
                        VALUE hash = rb_hash_new();
         
     | 
| 
      
 1200 
     | 
    
         
            +
                        PMQIIH p_header = (PMQIIH)p_data;
         
     | 
| 
      
 1201 
     | 
    
         
            +
                        
         
     | 
| 
      
 1202 
     | 
    
         
            +
                        if(trace_level>2)
         
     | 
| 
      
 1203 
     | 
    
         
            +
                            printf("WMQ::Message#deblock Found ims\n");
         
     | 
| 
      
 1204 
     | 
    
         
            +
                            
         
     | 
| 
      
 1205 
     | 
    
         
            +
                        if(memcmp(p_header->StrucId, MQIIH_STRUC_ID, sizeof(p_header->StrucId)) != 0)
         
     | 
| 
      
 1206 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1207 
     | 
    
         
            +
                            if(trace_level>1)
         
     | 
| 
      
 1208 
     | 
    
         
            +
                                printf("WMQ::Message#deblock MQFMT_IMS received, but message does not contain MQIIH\n");
         
     | 
| 
      
 1209 
     | 
    
         
            +
                            break;    /* Bad Message received, do not deblock headers */
         
     | 
| 
      
 1210 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1211 
     | 
    
         
            +
                        else
         
     | 
| 
      
 1212 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1213 
     | 
    
         
            +
                            Message_from_mqiih(hash, p_header);
         
     | 
| 
      
 1214 
     | 
    
         
            +
                            rb_hash_aset(hash, ID2SYM(ID_header_type), ID2SYM(ID_ims));
         
     | 
| 
      
 1215 
     | 
    
         
            +
                            rb_ary_push(headers, hash);
         
     | 
| 
      
 1216 
     | 
    
         
            +
                            size        = p_header->StrucLength;
         
     | 
| 
      
 1217 
     | 
    
         
            +
                            p_data      += size;
         
     | 
| 
      
 1218 
     | 
    
         
            +
                            data_length -= size;
         
     | 
| 
      
 1219 
     | 
    
         
            +
                            p_format    = p_header->Format;
         
     | 
| 
      
 1220 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1221 
     | 
    
         
            +
                    }
         
     | 
| 
      
 1222 
     | 
    
         
            +
                    else
         
     | 
| 
      
 1223 
     | 
    
         
            +
                    /* MQRMH: ref_msg_header */
         
     | 
| 
      
 1224 
     | 
    
         
            +
                    if(strncmp(p_format, MQFMT_REF_MSG_HEADER, MQ_FORMAT_LENGTH) == 0)
         
     | 
| 
      
 1225 
     | 
    
         
            +
                    {
         
     | 
| 
      
 1226 
     | 
    
         
            +
                        VALUE hash = rb_hash_new();
         
     | 
| 
      
 1227 
     | 
    
         
            +
                        PMQRMH p_header = (PMQRMH)p_data;
         
     | 
| 
      
 1228 
     | 
    
         
            +
                        
         
     | 
| 
      
 1229 
     | 
    
         
            +
                        if(trace_level>2)
         
     | 
| 
      
 1230 
     | 
    
         
            +
                            printf("WMQ::Message#deblock Found ref_msg_header\n");
         
     | 
| 
      
 1231 
     | 
    
         
            +
                            
         
     | 
| 
      
 1232 
     | 
    
         
            +
                        if(memcmp(p_header->StrucId, MQRMH_STRUC_ID, sizeof(p_header->StrucId)) != 0)
         
     | 
| 
      
 1233 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1234 
     | 
    
         
            +
                            if(trace_level>1)
         
     | 
| 
      
 1235 
     | 
    
         
            +
                                printf("WMQ::Message#deblock MQFMT_REF_MSG_HEADER received, but message does not contain MQRMH\n");
         
     | 
| 
      
 1236 
     | 
    
         
            +
                            break;    /* Bad Message received, do not deblock headers */
         
     | 
| 
      
 1237 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1238 
     | 
    
         
            +
                        else
         
     | 
| 
      
 1239 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1240 
     | 
    
         
            +
                            Message_from_mqrmh(hash, p_header);
         
     | 
| 
      
 1241 
     | 
    
         
            +
                            rb_hash_aset(hash, ID2SYM(ID_header_type), ID2SYM(ID_ref_msg_header));
         
     | 
| 
      
 1242 
     | 
    
         
            +
                            rb_ary_push(headers, hash);
         
     | 
| 
      
 1243 
     | 
    
         
            +
                            size        = p_header->StrucLength;
         
     | 
| 
      
 1244 
     | 
    
         
            +
                            p_data      += size;
         
     | 
| 
      
 1245 
     | 
    
         
            +
                            data_length -= size;
         
     | 
| 
      
 1246 
     | 
    
         
            +
                            p_format    = p_header->Format;
         
     | 
| 
      
 1247 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1248 
     | 
    
         
            +
                    }
         
     | 
| 
      
 1249 
     | 
    
         
            +
                    else
         
     | 
| 
      
 1250 
     | 
    
         
            +
                    /* MQTM: trigger */
         
     | 
| 
      
 1251 
     | 
    
         
            +
                    if(strncmp(p_format, MQFMT_TRIGGER, MQ_FORMAT_LENGTH) == 0)
         
     | 
| 
      
 1252 
     | 
    
         
            +
                    {
         
     | 
| 
      
 1253 
     | 
    
         
            +
                        VALUE hash = rb_hash_new();
         
     | 
| 
      
 1254 
     | 
    
         
            +
                        PMQTM p_header = (PMQTM)p_data;
         
     | 
| 
      
 1255 
     | 
    
         
            +
                        
         
     | 
| 
      
 1256 
     | 
    
         
            +
                        if(trace_level>2)
         
     | 
| 
      
 1257 
     | 
    
         
            +
                            printf("WMQ::Message#deblock Found trigger\n");
         
     | 
| 
      
 1258 
     | 
    
         
            +
                            
         
     | 
| 
      
 1259 
     | 
    
         
            +
                        if(memcmp(p_header->StrucId, MQTM_STRUC_ID, sizeof(p_header->StrucId)) != 0)
         
     | 
| 
      
 1260 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1261 
     | 
    
         
            +
                            if(trace_level>1)
         
     | 
| 
      
 1262 
     | 
    
         
            +
                                printf("WMQ::Message#deblock MQFMT_TRIGGER received, but message does not contain MQTM\n");
         
     | 
| 
      
 1263 
     | 
    
         
            +
                            break;    /* Bad Message received, do not deblock headers */
         
     | 
| 
      
 1264 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1265 
     | 
    
         
            +
                        else
         
     | 
| 
      
 1266 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1267 
     | 
    
         
            +
                            Message_from_mqtm(hash, p_header);
         
     | 
| 
      
 1268 
     | 
    
         
            +
                            rb_hash_aset(hash, ID2SYM(ID_header_type), ID2SYM(ID_trigger));
         
     | 
| 
      
 1269 
     | 
    
         
            +
                            rb_ary_push(headers, hash);
         
     | 
| 
      
 1270 
     | 
    
         
            +
                            size        = sizeof(MQTM);
         
     | 
| 
      
 1271 
     | 
    
         
            +
                            p_data      += size;
         
     | 
| 
      
 1272 
     | 
    
         
            +
                            data_length -= size;
         
     | 
| 
      
 1273 
     | 
    
         
            +
                            break;
         
     | 
| 
      
 1274 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1275 
     | 
    
         
            +
                    }
         
     | 
| 
      
 1276 
     | 
    
         
            +
                    else
         
     | 
| 
      
 1277 
     | 
    
         
            +
                    /* MQWIH: work_info_header */
         
     | 
| 
      
 1278 
     | 
    
         
            +
                    if(strncmp(p_format, MQFMT_WORK_INFO_HEADER, MQ_FORMAT_LENGTH) == 0)
         
     | 
| 
      
 1279 
     | 
    
         
            +
                    {
         
     | 
| 
      
 1280 
     | 
    
         
            +
                        VALUE hash = rb_hash_new();
         
     | 
| 
      
 1281 
     | 
    
         
            +
                        PMQWIH p_header = (PMQWIH)p_data;
         
     | 
| 
      
 1282 
     | 
    
         
            +
                        
         
     | 
| 
      
 1283 
     | 
    
         
            +
                        if(trace_level>2)
         
     | 
| 
      
 1284 
     | 
    
         
            +
                            printf("WMQ::Message#deblock Found work_info_header\n");
         
     | 
| 
      
 1285 
     | 
    
         
            +
                            
         
     | 
| 
      
 1286 
     | 
    
         
            +
                        if(memcmp(p_header->StrucId, MQWIH_STRUC_ID, sizeof(p_header->StrucId)) != 0)
         
     | 
| 
      
 1287 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1288 
     | 
    
         
            +
                            if(trace_level>1)
         
     | 
| 
      
 1289 
     | 
    
         
            +
                                printf("WMQ::Message#deblock MQFMT_WORK_INFO_HEADER received, but message does not contain MQWIH\n");
         
     | 
| 
      
 1290 
     | 
    
         
            +
                            break;    /* Bad Message received, do not deblock headers */
         
     | 
| 
      
 1291 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1292 
     | 
    
         
            +
                        else
         
     | 
| 
      
 1293 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1294 
     | 
    
         
            +
                            Message_from_mqwih(hash, p_header);
         
     | 
| 
      
 1295 
     | 
    
         
            +
                            rb_hash_aset(hash, ID2SYM(ID_header_type), ID2SYM(ID_work_info_header));
         
     | 
| 
      
 1296 
     | 
    
         
            +
                            rb_ary_push(headers, hash);
         
     | 
| 
      
 1297 
     | 
    
         
            +
                            size        = p_header->StrucLength;
         
     | 
| 
      
 1298 
     | 
    
         
            +
                            p_data      += size;
         
     | 
| 
      
 1299 
     | 
    
         
            +
                            data_length -= size;
         
     | 
| 
      
 1300 
     | 
    
         
            +
                            p_format    = p_header->Format;
         
     | 
| 
      
 1301 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1302 
     | 
    
         
            +
                    }
         
     | 
| 
      
 1303 
     | 
    
         
            +
                    else
         
     | 
| 
      
 1304 
     | 
    
         
            +
                    /* MQXQH: xmit_q_header */
         
     | 
| 
      
 1305 
     | 
    
         
            +
                    if(strncmp(p_format, MQFMT_XMIT_Q_HEADER, MQ_FORMAT_LENGTH) == 0)
         
     | 
| 
      
 1306 
     | 
    
         
            +
                    {
         
     | 
| 
      
 1307 
     | 
    
         
            +
                        VALUE hash = rb_hash_new();
         
     | 
| 
      
 1308 
     | 
    
         
            +
                        PMQXQH p_header = (PMQXQH)p_data;
         
     | 
| 
      
 1309 
     | 
    
         
            +
                        
         
     | 
| 
      
 1310 
     | 
    
         
            +
                        if(trace_level>2)
         
     | 
| 
      
 1311 
     | 
    
         
            +
                            printf("WMQ::Message#deblock Found xmit_q_header\n");
         
     | 
| 
      
 1312 
     | 
    
         
            +
                            
         
     | 
| 
      
 1313 
     | 
    
         
            +
                        if(memcmp(p_header->StrucId, MQXQH_STRUC_ID, sizeof(p_header->StrucId)) != 0)
         
     | 
| 
      
 1314 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1315 
     | 
    
         
            +
                            if(trace_level>1)
         
     | 
| 
      
 1316 
     | 
    
         
            +
                                printf("WMQ::Message#deblock MQFMT_XMIT_Q_HEADER received, but message does not contain MQXQH\n");
         
     | 
| 
      
 1317 
     | 
    
         
            +
                            break;    /* Bad Message received, do not deblock headers */
         
     | 
| 
      
 1318 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1319 
     | 
    
         
            +
                        else
         
     | 
| 
      
 1320 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1321 
     | 
    
         
            +
                            Message_from_mqxqh(hash, p_header);
         
     | 
| 
      
 1322 
     | 
    
         
            +
                            rb_hash_aset(hash, ID2SYM(ID_header_type), ID2SYM(ID_xmit_q_header));
         
     | 
| 
      
 1323 
     | 
    
         
            +
                            rb_ary_push(headers, hash);
         
     | 
| 
      
 1324 
     | 
    
         
            +
                            size        = sizeof(MQXQH);
         
     | 
| 
      
 1325 
     | 
    
         
            +
                            p_data      += size;
         
     | 
| 
      
 1326 
     | 
    
         
            +
                            data_length -= size;
         
     | 
| 
      
 1327 
     | 
    
         
            +
                            p_format    = p_header->MsgDesc.Format;
         
     | 
| 
      
 1328 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1329 
     | 
    
         
            +
                    }
         
     | 
| 
      
 1330 
     | 
    
         
            +
                    else
         
     | 
| 
      
 1331 
     | 
    
         
            +
                    {
         
     | 
| 
      
 1332 
     | 
    
         
            +
                        break;
         
     | 
| 
      
 1333 
     | 
    
         
            +
                    }
         
     | 
| 
      
 1334 
     | 
    
         
            +
                }
         
     | 
| 
      
 1335 
     | 
    
         
            +
                /* Copy the last recognised header found to the Descriptor */
         
     | 
| 
      
 1336 
     | 
    
         
            +
                if(p_format && p_format != pmqmd->Format)
         
     | 
| 
      
 1337 
     | 
    
         
            +
                {
         
     | 
| 
      
 1338 
     | 
    
         
            +
                    strncpy(pmqmd->Format, p_format, MQ_FORMAT_LENGTH);
         
     | 
| 
      
 1339 
     | 
    
         
            +
                }
         
     | 
| 
      
 1340 
     | 
    
         
            +
                
         
     | 
| 
      
 1341 
     | 
    
         
            +
                Message_from_mqmd(descriptor, pmqmd);
         
     | 
| 
      
 1342 
     | 
    
         
            +
                rb_funcall(self, ID_descriptor_set, 1, descriptor);
         
     | 
| 
      
 1343 
     | 
    
         
            +
                rb_funcall(self, ID_headers_set, 1, headers);
         
     | 
| 
      
 1344 
     | 
    
         
            +
                rb_funcall(self, ID_data_set, 1, rb_str_new(p_data, data_length));
         
     | 
| 
      
 1345 
     | 
    
         
            +
            }
         
     | 
| 
      
 1346 
     | 
    
         
            +
             
     | 
| 
      
 1347 
     | 
    
         
            +
            void Message_build_set_format(ID header_type, PMQBYTE p_format)
         
     | 
| 
      
 1348 
     | 
    
         
            +
            {
         
     | 
| 
      
 1349 
     | 
    
         
            +
                if(header_type == ID_rf_header_2) { memcpy(p_format, MQFMT_RF_HEADER_2, MQ_FORMAT_LENGTH); return;}
         
     | 
| 
      
 1350 
     | 
    
         
            +
                if(header_type == ID_rf_header) { memcpy(p_format, MQFMT_RF_HEADER, MQ_FORMAT_LENGTH); return;}
         
     | 
| 
      
 1351 
     | 
    
         
            +
                if(header_type == ID_dead_letter_header) { memcpy(p_format, MQFMT_DEAD_LETTER_HEADER, MQ_FORMAT_LENGTH); return;}
         
     | 
| 
      
 1352 
     | 
    
         
            +
                if(header_type == ID_cics) { memcpy(p_format, MQFMT_CICS, MQ_FORMAT_LENGTH); return;}
         
     | 
| 
      
 1353 
     | 
    
         
            +
                if(header_type == ID_dist_header) { memcpy(p_format, MQFMT_DIST_HEADER, MQ_FORMAT_LENGTH); return;}
         
     | 
| 
      
 1354 
     | 
    
         
            +
                if(header_type == ID_ims) { memcpy(p_format, MQFMT_IMS, MQ_FORMAT_LENGTH); return;}
         
     | 
| 
      
 1355 
     | 
    
         
            +
                if(header_type == ID_ref_msg_header) { memcpy(p_format, MQFMT_REF_MSG_HEADER, MQ_FORMAT_LENGTH); return;}
         
     | 
| 
      
 1356 
     | 
    
         
            +
                if(header_type == ID_trigger) { memcpy(p_format, MQFMT_TRIGGER, MQ_FORMAT_LENGTH); return;}
         
     | 
| 
      
 1357 
     | 
    
         
            +
                if(header_type == ID_work_info_header) { memcpy(p_format, MQFMT_WORK_INFO_HEADER, MQ_FORMAT_LENGTH); return;}
         
     | 
| 
      
 1358 
     | 
    
         
            +
                if(header_type == ID_xmit_q_header) { memcpy(p_format, MQFMT_XMIT_Q_HEADER, MQ_FORMAT_LENGTH); return;}
         
     | 
| 
      
 1359 
     | 
    
         
            +
             
     | 
| 
      
 1360 
     | 
    
         
            +
                rb_raise(rb_eArgError, "Invalid/Unknown header_type supplied in WMQ::Message#headers array");
         
     | 
| 
      
 1361 
     | 
    
         
            +
            }
         
     | 
| 
      
 1362 
     | 
    
         
            +
             
     | 
| 
      
 1363 
     | 
    
         
            +
            /* --------------------------------------------------------------------------
         
     | 
| 
      
 1364 
     | 
    
         
            +
             *  Build message headers
         
     | 
| 
      
 1365 
     | 
    
         
            +
             * --------------------------------------------------------------------------*/
         
     | 
| 
      
 1366 
     | 
    
         
            +
            int Message_build_header (VALUE hash, struct Message_build_header_arg* parg)
         
     | 
| 
      
 1367 
     | 
    
         
            +
            {
         
     | 
| 
      
 1368 
     | 
    
         
            +
                VALUE   val = rb_hash_aref(hash, ID2SYM(ID_header_type));
         
     | 
| 
      
 1369 
     | 
    
         
            +
                PMQBYTE p_data = 0;
         
     | 
| 
      
 1370 
     | 
    
         
            +
             
     | 
| 
      
 1371 
     | 
    
         
            +
                if (!NIL_P(val) && (TYPE(val) == T_SYMBOL))
         
     | 
| 
      
 1372 
     | 
    
         
            +
                {
         
     | 
| 
      
 1373 
     | 
    
         
            +
                    ID header_id = rb_to_id(val);
         
     | 
| 
      
 1374 
     | 
    
         
            +
                    if (header_id == ID_rf_header_2)  /* Build MQRFH2 */
         
     | 
| 
      
 1375 
     | 
    
         
            +
                    { 
         
     | 
| 
      
 1376 
     | 
    
         
            +
                        Message_build_rf_header_2 (hash, parg);
         
     | 
| 
      
 1377 
     | 
    
         
            +
                    }
         
     | 
| 
      
 1378 
     | 
    
         
            +
                    else
         
     | 
| 
      
 1379 
     | 
    
         
            +
                    if (header_id == ID_rf_header)  /* Build MQRFH */
         
     | 
| 
      
 1380 
     | 
    
         
            +
                    { 
         
     | 
| 
      
 1381 
     | 
    
         
            +
                        Message_build_rf_header (hash, parg);
         
     | 
| 
      
 1382 
     | 
    
         
            +
                    }
         
     | 
| 
      
 1383 
     | 
    
         
            +
                    else
         
     | 
| 
      
 1384 
     | 
    
         
            +
                    if (header_id == ID_dead_letter_header)  /* Build MQDLH */
         
     | 
| 
      
 1385 
     | 
    
         
            +
                    { 
         
     | 
| 
      
 1386 
     | 
    
         
            +
                        static MQDLH MQDLH_DEF = {MQDLH_DEFAULT};
         
     | 
| 
      
 1387 
     | 
    
         
            +
                        MQDLH_DEF.CodedCharSetId = MQCCSI_INHERIT;
         
     | 
| 
      
 1388 
     | 
    
         
            +
             
     | 
| 
      
 1389 
     | 
    
         
            +
                        if(parg->trace_level>2)
         
     | 
| 
      
 1390 
     | 
    
         
            +
                            printf ("WMQ::Message#build_header Found dead_letter_header\n");
         
     | 
| 
      
 1391 
     | 
    
         
            +
                            
         
     | 
| 
      
 1392 
     | 
    
         
            +
                        p_data = Message_autogrow_data_buffer(parg, sizeof(MQDLH));
         
     | 
| 
      
 1393 
     | 
    
         
            +
             
     | 
| 
      
 1394 
     | 
    
         
            +
                        memcpy(p_data, &MQDLH_DEF, sizeof(MQDLH));
         
     | 
| 
      
 1395 
     | 
    
         
            +
                        Message_to_mqdlh(hash, (PMQDLH)p_data);
         
     | 
| 
      
 1396 
     | 
    
         
            +
             
     | 
| 
      
 1397 
     | 
    
         
            +
                        if(parg->next_header_id)
         
     | 
| 
      
 1398 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1399 
     | 
    
         
            +
                            Message_build_set_format(parg->next_header_id, ((PMQDLH)p_data)->Format);
         
     | 
| 
      
 1400 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1401 
     | 
    
         
            +
                        else
         
     | 
| 
      
 1402 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1403 
     | 
    
         
            +
                            memcpy(((PMQDLH)p_data)->Format, parg->data_format, MQ_FORMAT_LENGTH);
         
     | 
| 
      
 1404 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1405 
     | 
    
         
            +
             
     | 
| 
      
 1406 
     | 
    
         
            +
                        *(parg->p_data_offset) += sizeof(MQDLH);
         
     | 
| 
      
 1407 
     | 
    
         
            +
             
     | 
| 
      
 1408 
     | 
    
         
            +
                        if(parg->trace_level>2)
         
     | 
| 
      
 1409 
     | 
    
         
            +
                            printf ("WMQ::Message#build_header data offset:%ld\n", (long)(*(parg->p_data_offset)));
         
     | 
| 
      
 1410 
     | 
    
         
            +
                    }
         
     | 
| 
      
 1411 
     | 
    
         
            +
                    else
         
     | 
| 
      
 1412 
     | 
    
         
            +
                    if (header_id == ID_cics)  /* Build MQCIH */
         
     | 
| 
      
 1413 
     | 
    
         
            +
                    { 
         
     | 
| 
      
 1414 
     | 
    
         
            +
                        static MQCIH MQCIH_DEF = {MQCIH_DEFAULT};
         
     | 
| 
      
 1415 
     | 
    
         
            +
                        
         
     | 
| 
      
 1416 
     | 
    
         
            +
             
     | 
| 
      
 1417 
     | 
    
         
            +
                        if(parg->trace_level>2)
         
     | 
| 
      
 1418 
     | 
    
         
            +
                            printf ("WMQ::Message#build_header Found cics\n");
         
     | 
| 
      
 1419 
     | 
    
         
            +
                            
         
     | 
| 
      
 1420 
     | 
    
         
            +
                        p_data = Message_autogrow_data_buffer(parg, sizeof(MQCIH));
         
     | 
| 
      
 1421 
     | 
    
         
            +
             
     | 
| 
      
 1422 
     | 
    
         
            +
                        memcpy(p_data, &MQCIH_DEF, sizeof(MQCIH));
         
     | 
| 
      
 1423 
     | 
    
         
            +
                        Message_to_mqcih(hash, (PMQCIH)p_data);
         
     | 
| 
      
 1424 
     | 
    
         
            +
             
     | 
| 
      
 1425 
     | 
    
         
            +
                        if(parg->next_header_id)
         
     | 
| 
      
 1426 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1427 
     | 
    
         
            +
                            Message_build_set_format(parg->next_header_id, ((PMQCIH)p_data)->Format);
         
     | 
| 
      
 1428 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1429 
     | 
    
         
            +
                        else
         
     | 
| 
      
 1430 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1431 
     | 
    
         
            +
                            memcpy(((PMQCIH)p_data)->Format, parg->data_format, MQ_FORMAT_LENGTH);
         
     | 
| 
      
 1432 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1433 
     | 
    
         
            +
             
     | 
| 
      
 1434 
     | 
    
         
            +
                        *(parg->p_data_offset) += sizeof(MQCIH);
         
     | 
| 
      
 1435 
     | 
    
         
            +
             
     | 
| 
      
 1436 
     | 
    
         
            +
                        if(parg->trace_level>2)
         
     | 
| 
      
 1437 
     | 
    
         
            +
                            printf ("WMQ::Message#build_header data offset:%ld\n", (long)(*(parg->p_data_offset)));
         
     | 
| 
      
 1438 
     | 
    
         
            +
                    }
         
     | 
| 
      
 1439 
     | 
    
         
            +
                    else
         
     | 
| 
      
 1440 
     | 
    
         
            +
                    if (header_id == ID_dist_header)  /* Build MQDH */
         
     | 
| 
      
 1441 
     | 
    
         
            +
                    { 
         
     | 
| 
      
 1442 
     | 
    
         
            +
                        static MQDH MQDH_DEF = {MQDH_DEFAULT};
         
     | 
| 
      
 1443 
     | 
    
         
            +
                        
         
     | 
| 
      
 1444 
     | 
    
         
            +
             
     | 
| 
      
 1445 
     | 
    
         
            +
                        if(parg->trace_level>2)
         
     | 
| 
      
 1446 
     | 
    
         
            +
                            printf ("WMQ::Message#build_header Found dist_header\n");
         
     | 
| 
      
 1447 
     | 
    
         
            +
                            
         
     | 
| 
      
 1448 
     | 
    
         
            +
                        p_data = Message_autogrow_data_buffer(parg, sizeof(MQDH));
         
     | 
| 
      
 1449 
     | 
    
         
            +
             
     | 
| 
      
 1450 
     | 
    
         
            +
                        memcpy(p_data, &MQDH_DEF, sizeof(MQDH));
         
     | 
| 
      
 1451 
     | 
    
         
            +
                        Message_to_mqdh(hash, (PMQDH)p_data);
         
     | 
| 
      
 1452 
     | 
    
         
            +
             
     | 
| 
      
 1453 
     | 
    
         
            +
                        if(parg->next_header_id)
         
     | 
| 
      
 1454 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1455 
     | 
    
         
            +
                            Message_build_set_format(parg->next_header_id, ((PMQDH)p_data)->Format);
         
     | 
| 
      
 1456 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1457 
     | 
    
         
            +
                        else
         
     | 
| 
      
 1458 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1459 
     | 
    
         
            +
                            memcpy(((PMQDH)p_data)->Format, parg->data_format, MQ_FORMAT_LENGTH);
         
     | 
| 
      
 1460 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1461 
     | 
    
         
            +
             
     | 
| 
      
 1462 
     | 
    
         
            +
                        *(parg->p_data_offset) += sizeof(MQDH);
         
     | 
| 
      
 1463 
     | 
    
         
            +
             
     | 
| 
      
 1464 
     | 
    
         
            +
                        if(parg->trace_level>2)
         
     | 
| 
      
 1465 
     | 
    
         
            +
                            printf ("WMQ::Message#build_header data offset:%ld\n", (long)(*(parg->p_data_offset)));
         
     | 
| 
      
 1466 
     | 
    
         
            +
                    }
         
     | 
| 
      
 1467 
     | 
    
         
            +
                    else
         
     | 
| 
      
 1468 
     | 
    
         
            +
                    if (header_id == ID_ims)  /* Build MQIIH */
         
     | 
| 
      
 1469 
     | 
    
         
            +
                    { 
         
     | 
| 
      
 1470 
     | 
    
         
            +
                        static MQIIH MQIIH_DEF = {MQIIH_DEFAULT};
         
     | 
| 
      
 1471 
     | 
    
         
            +
                        
         
     | 
| 
      
 1472 
     | 
    
         
            +
             
     | 
| 
      
 1473 
     | 
    
         
            +
                        if(parg->trace_level>2)
         
     | 
| 
      
 1474 
     | 
    
         
            +
                            printf ("WMQ::Message#build_header Found ims\n");
         
     | 
| 
      
 1475 
     | 
    
         
            +
                            
         
     | 
| 
      
 1476 
     | 
    
         
            +
                        p_data = Message_autogrow_data_buffer(parg, sizeof(MQIIH));
         
     | 
| 
      
 1477 
     | 
    
         
            +
             
     | 
| 
      
 1478 
     | 
    
         
            +
                        memcpy(p_data, &MQIIH_DEF, sizeof(MQIIH));
         
     | 
| 
      
 1479 
     | 
    
         
            +
                        Message_to_mqiih(hash, (PMQIIH)p_data);
         
     | 
| 
      
 1480 
     | 
    
         
            +
             
     | 
| 
      
 1481 
     | 
    
         
            +
                        if(parg->next_header_id)
         
     | 
| 
      
 1482 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1483 
     | 
    
         
            +
                            Message_build_set_format(parg->next_header_id, ((PMQIIH)p_data)->Format);
         
     | 
| 
      
 1484 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1485 
     | 
    
         
            +
                        else
         
     | 
| 
      
 1486 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1487 
     | 
    
         
            +
                            memcpy(((PMQIIH)p_data)->Format, parg->data_format, MQ_FORMAT_LENGTH);
         
     | 
| 
      
 1488 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1489 
     | 
    
         
            +
             
     | 
| 
      
 1490 
     | 
    
         
            +
                        *(parg->p_data_offset) += sizeof(MQIIH);
         
     | 
| 
      
 1491 
     | 
    
         
            +
             
     | 
| 
      
 1492 
     | 
    
         
            +
                        if(parg->trace_level>2)
         
     | 
| 
      
 1493 
     | 
    
         
            +
                            printf ("WMQ::Message#build_header data offset:%ld\n", (long)(*(parg->p_data_offset)));
         
     | 
| 
      
 1494 
     | 
    
         
            +
                    }
         
     | 
| 
      
 1495 
     | 
    
         
            +
                    else
         
     | 
| 
      
 1496 
     | 
    
         
            +
                    if (header_id == ID_ref_msg_header)  /* Build MQRMH */
         
     | 
| 
      
 1497 
     | 
    
         
            +
                    { 
         
     | 
| 
      
 1498 
     | 
    
         
            +
                        static MQRMH MQRMH_DEF = {MQRMH_DEFAULT};
         
     | 
| 
      
 1499 
     | 
    
         
            +
                        
         
     | 
| 
      
 1500 
     | 
    
         
            +
             
     | 
| 
      
 1501 
     | 
    
         
            +
                        if(parg->trace_level>2)
         
     | 
| 
      
 1502 
     | 
    
         
            +
                            printf ("WMQ::Message#build_header Found ref_msg_header\n");
         
     | 
| 
      
 1503 
     | 
    
         
            +
                            
         
     | 
| 
      
 1504 
     | 
    
         
            +
                        p_data = Message_autogrow_data_buffer(parg, sizeof(MQRMH));
         
     | 
| 
      
 1505 
     | 
    
         
            +
             
     | 
| 
      
 1506 
     | 
    
         
            +
                        memcpy(p_data, &MQRMH_DEF, sizeof(MQRMH));
         
     | 
| 
      
 1507 
     | 
    
         
            +
                        Message_to_mqrmh(hash, (PMQRMH)p_data);
         
     | 
| 
      
 1508 
     | 
    
         
            +
             
     | 
| 
      
 1509 
     | 
    
         
            +
                        if(parg->next_header_id)
         
     | 
| 
      
 1510 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1511 
     | 
    
         
            +
                            Message_build_set_format(parg->next_header_id, ((PMQRMH)p_data)->Format);
         
     | 
| 
      
 1512 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1513 
     | 
    
         
            +
                        else
         
     | 
| 
      
 1514 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1515 
     | 
    
         
            +
                            memcpy(((PMQRMH)p_data)->Format, parg->data_format, MQ_FORMAT_LENGTH);
         
     | 
| 
      
 1516 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1517 
     | 
    
         
            +
             
     | 
| 
      
 1518 
     | 
    
         
            +
                        *(parg->p_data_offset) += sizeof(MQRMH);
         
     | 
| 
      
 1519 
     | 
    
         
            +
             
     | 
| 
      
 1520 
     | 
    
         
            +
                        if(parg->trace_level>2)
         
     | 
| 
      
 1521 
     | 
    
         
            +
                            printf ("WMQ::Message#build_header data offset:%ld\n", (long)(*(parg->p_data_offset)));
         
     | 
| 
      
 1522 
     | 
    
         
            +
                    }
         
     | 
| 
      
 1523 
     | 
    
         
            +
                    else
         
     | 
| 
      
 1524 
     | 
    
         
            +
                    if (header_id == ID_trigger)  /* Build MQTM */
         
     | 
| 
      
 1525 
     | 
    
         
            +
                    { 
         
     | 
| 
      
 1526 
     | 
    
         
            +
                        static MQTM MQTM_DEF = {MQTM_DEFAULT};
         
     | 
| 
      
 1527 
     | 
    
         
            +
                        
         
     | 
| 
      
 1528 
     | 
    
         
            +
             
     | 
| 
      
 1529 
     | 
    
         
            +
                        if(parg->trace_level>2)
         
     | 
| 
      
 1530 
     | 
    
         
            +
                            printf ("WMQ::Message#build_header Found trigger\n");
         
     | 
| 
      
 1531 
     | 
    
         
            +
                            
         
     | 
| 
      
 1532 
     | 
    
         
            +
                        p_data = Message_autogrow_data_buffer(parg, sizeof(MQTM));
         
     | 
| 
      
 1533 
     | 
    
         
            +
             
     | 
| 
      
 1534 
     | 
    
         
            +
                        memcpy(p_data, &MQTM_DEF, sizeof(MQTM));
         
     | 
| 
      
 1535 
     | 
    
         
            +
                        Message_to_mqtm(hash, (PMQTM)p_data);
         
     | 
| 
      
 1536 
     | 
    
         
            +
             
     | 
| 
      
 1537 
     | 
    
         
            +
                        *(parg->p_data_offset) += sizeof(MQTM);
         
     | 
| 
      
 1538 
     | 
    
         
            +
             
     | 
| 
      
 1539 
     | 
    
         
            +
                        if(parg->trace_level>2)
         
     | 
| 
      
 1540 
     | 
    
         
            +
                            printf ("WMQ::Message#build_header data offset:%ld\n", (long)(*(parg->p_data_offset)));
         
     | 
| 
      
 1541 
     | 
    
         
            +
                    }
         
     | 
| 
      
 1542 
     | 
    
         
            +
                    else
         
     | 
| 
      
 1543 
     | 
    
         
            +
                    if (header_id == ID_work_info_header)  /* Build MQWIH */
         
     | 
| 
      
 1544 
     | 
    
         
            +
                    { 
         
     | 
| 
      
 1545 
     | 
    
         
            +
                        static MQWIH MQWIH_DEF = {MQWIH_DEFAULT};
         
     | 
| 
      
 1546 
     | 
    
         
            +
                        
         
     | 
| 
      
 1547 
     | 
    
         
            +
             
     | 
| 
      
 1548 
     | 
    
         
            +
                        if(parg->trace_level>2)
         
     | 
| 
      
 1549 
     | 
    
         
            +
                            printf ("WMQ::Message#build_header Found work_info_header\n");
         
     | 
| 
      
 1550 
     | 
    
         
            +
                            
         
     | 
| 
      
 1551 
     | 
    
         
            +
                        p_data = Message_autogrow_data_buffer(parg, sizeof(MQWIH));
         
     | 
| 
      
 1552 
     | 
    
         
            +
             
     | 
| 
      
 1553 
     | 
    
         
            +
                        memcpy(p_data, &MQWIH_DEF, sizeof(MQWIH));
         
     | 
| 
      
 1554 
     | 
    
         
            +
                        Message_to_mqwih(hash, (PMQWIH)p_data);
         
     | 
| 
      
 1555 
     | 
    
         
            +
             
     | 
| 
      
 1556 
     | 
    
         
            +
                        if(parg->next_header_id)
         
     | 
| 
      
 1557 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1558 
     | 
    
         
            +
                            Message_build_set_format(parg->next_header_id, ((PMQWIH)p_data)->Format);
         
     | 
| 
      
 1559 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1560 
     | 
    
         
            +
                        else
         
     | 
| 
      
 1561 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1562 
     | 
    
         
            +
                            memcpy(((PMQWIH)p_data)->Format, parg->data_format, MQ_FORMAT_LENGTH);
         
     | 
| 
      
 1563 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1564 
     | 
    
         
            +
             
     | 
| 
      
 1565 
     | 
    
         
            +
                        *(parg->p_data_offset) += sizeof(MQWIH);
         
     | 
| 
      
 1566 
     | 
    
         
            +
             
     | 
| 
      
 1567 
     | 
    
         
            +
                        if(parg->trace_level>2)
         
     | 
| 
      
 1568 
     | 
    
         
            +
                            printf ("WMQ::Message#build_header data offset:%ld\n", (long)(*(parg->p_data_offset)));
         
     | 
| 
      
 1569 
     | 
    
         
            +
                    }
         
     | 
| 
      
 1570 
     | 
    
         
            +
                    else
         
     | 
| 
      
 1571 
     | 
    
         
            +
                    if (header_id == ID_xmit_q_header)  /* Build MQXQH */
         
     | 
| 
      
 1572 
     | 
    
         
            +
                    { 
         
     | 
| 
      
 1573 
     | 
    
         
            +
                        static MQXQH MQXQH_DEF = {MQXQH_DEFAULT};
         
     | 
| 
      
 1574 
     | 
    
         
            +
                        
         
     | 
| 
      
 1575 
     | 
    
         
            +
             
     | 
| 
      
 1576 
     | 
    
         
            +
                        if(parg->trace_level>2)
         
     | 
| 
      
 1577 
     | 
    
         
            +
                            printf ("WMQ::Message#build_header Found xmit_q_header\n");
         
     | 
| 
      
 1578 
     | 
    
         
            +
                            
         
     | 
| 
      
 1579 
     | 
    
         
            +
                        p_data = Message_autogrow_data_buffer(parg, sizeof(MQXQH));
         
     | 
| 
      
 1580 
     | 
    
         
            +
             
     | 
| 
      
 1581 
     | 
    
         
            +
                        memcpy(p_data, &MQXQH_DEF, sizeof(MQXQH));
         
     | 
| 
      
 1582 
     | 
    
         
            +
                        Message_to_mqxqh(hash, (PMQXQH)p_data);
         
     | 
| 
      
 1583 
     | 
    
         
            +
             
     | 
| 
      
 1584 
     | 
    
         
            +
                        if(parg->next_header_id)
         
     | 
| 
      
 1585 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1586 
     | 
    
         
            +
                            Message_build_set_format(parg->next_header_id, ((PMQXQH)p_data)->MsgDesc.Format);
         
     | 
| 
      
 1587 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1588 
     | 
    
         
            +
                        else
         
     | 
| 
      
 1589 
     | 
    
         
            +
                        {
         
     | 
| 
      
 1590 
     | 
    
         
            +
                            memcpy(((PMQXQH)p_data)->MsgDesc.Format, parg->data_format, MQ_FORMAT_LENGTH);
         
     | 
| 
      
 1591 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1592 
     | 
    
         
            +
             
     | 
| 
      
 1593 
     | 
    
         
            +
                        *(parg->p_data_offset) += sizeof(MQXQH);
         
     | 
| 
      
 1594 
     | 
    
         
            +
             
     | 
| 
      
 1595 
     | 
    
         
            +
                        if(parg->trace_level>2)
         
     | 
| 
      
 1596 
     | 
    
         
            +
                            printf ("WMQ::Message#build_header data offset:%ld\n", (long)(*(parg->p_data_offset)));
         
     | 
| 
      
 1597 
     | 
    
         
            +
                    }
         
     | 
| 
      
 1598 
     | 
    
         
            +
                    else
         
     | 
| 
      
 1599 
     | 
    
         
            +
                    {
         
     | 
| 
      
 1600 
     | 
    
         
            +
                        rb_raise(rb_eArgError, "Unknown :header_type supplied in WMQ::Message#headers array");
         
     | 
| 
      
 1601 
     | 
    
         
            +
                    }
         
     | 
| 
      
 1602 
     | 
    
         
            +
                }
         
     | 
| 
      
 1603 
     | 
    
         
            +
                else
         
     | 
| 
      
 1604 
     | 
    
         
            +
                {
         
     | 
| 
      
 1605 
     | 
    
         
            +
                    rb_raise(rb_eArgError, "Mandatory parameter :header_type missing from header entry in WMQ::Message#headers array");
         
     | 
| 
      
 1606 
     | 
    
         
            +
                }
         
     | 
| 
      
 1607 
     | 
    
         
            +
             
     | 
| 
      
 1608 
     | 
    
         
            +
                return 0;                                         /* Continue */
         
     | 
| 
      
 1609 
     | 
    
         
            +
            }
         
     |