use global class

This commit is contained in:
larshp 2017-09-03 08:14:56 +00:00
parent f76050e71a
commit 87000cbf65

View File

@ -2,83 +2,6 @@
*& Include ZABAPGIT_ZLIB *& Include ZABAPGIT_ZLIB
*&---------------------------------------------------------------------* *&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS lcl_zlib_convert DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_zlib_convert DEFINITION FINAL.
PUBLIC SECTION.
CLASS-METHODS:
hex_to_bits
IMPORTING iv_hex TYPE xsequence
RETURNING VALUE(rv_bits) TYPE string,
bits_to_int
IMPORTING iv_bits TYPE clike
RETURNING VALUE(rv_int) TYPE i,
int_to_hex
IMPORTING iv_int TYPE i
RETURNING VALUE(rv_hex) TYPE xstring.
ENDCLASS. "lcl_zlib_convert DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_zlib_convert IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_zlib_convert IMPLEMENTATION.
METHOD hex_to_bits.
DATA: lv_x TYPE x LENGTH 1,
lv_c TYPE c LENGTH 1,
lv_bit TYPE i,
lv_hex TYPE xstring.
lv_hex = iv_hex.
WHILE NOT lv_hex IS INITIAL.
lv_x = lv_hex.
DO 8 TIMES.
lv_bit = sy-index.
GET BIT lv_bit OF lv_x INTO lv_c.
CONCATENATE rv_bits lv_c INTO rv_bits.
ENDDO.
lv_hex = lv_hex+1.
ENDWHILE.
ENDMETHOD. "hex_to_bits
METHOD bits_to_int.
DATA: lv_c TYPE c LENGTH 1,
lv_bits TYPE string.
lv_bits = iv_bits.
WHILE NOT lv_bits IS INITIAL.
lv_c = lv_bits.
rv_int = rv_int * 2.
rv_int = rv_int + lv_c.
lv_bits = lv_bits+1.
ENDWHILE.
ENDMETHOD. "bits_to_int
METHOD int_to_hex.
DATA: lv_x TYPE x.
lv_x = iv_int.
rv_hex = lv_x.
ENDMETHOD. "int_to_hex
ENDCLASS. "lcl_zlib_convert IMPLEMENTATION
*----------------------------------------------------------------------* *----------------------------------------------------------------------*
* CLASS lcl_zlib_stream DEFINITION * CLASS lcl_zlib_stream DEFINITION
*----------------------------------------------------------------------* *----------------------------------------------------------------------*
@ -126,7 +49,7 @@ CLASS lcl_zlib_stream IMPLEMENTATION.
METHOD take_int. METHOD take_int.
rv_int = lcl_zlib_convert=>bits_to_int( take_bits( iv_length ) ). rv_int = zcl_abapgit_zlib_convert=>bits_to_int( take_bits( iv_length ) ).
ENDMETHOD. "take_int ENDMETHOD. "take_int
@ -140,7 +63,7 @@ CLASS lcl_zlib_stream IMPLEMENTATION.
WHILE strlen( rv_bits ) < iv_length. WHILE strlen( rv_bits ) < iv_length.
IF mv_bits IS INITIAL. IF mv_bits IS INITIAL.
lv_x = mv_compressed(1). lv_x = mv_compressed(1).
mv_bits = lcl_zlib_convert=>hex_to_bits( lv_x ). mv_bits = zcl_abapgit_zlib_convert=>hex_to_bits( lv_x ).
mv_compressed = mv_compressed+1. mv_compressed = mv_compressed+1.
ENDIF. ENDIF.
lv_left = iv_length - strlen( rv_bits ). lv_left = iv_length - strlen( rv_bits ).
@ -334,7 +257,7 @@ CLASS lcl_zlib IMPLEMENTATION.
lv_bit = go_stream->take_bits( 1 ). lv_bit = go_stream->take_bits( 1 ).
CONCATENATE lv_bits lv_bit INTO lv_bits. CONCATENATE lv_bits lv_bit INTO lv_bits.
lv_code = lcl_zlib_convert=>bits_to_int( lv_bits ). lv_code = zcl_abapgit_zlib_convert=>bits_to_int( lv_bits ).
lv_count = io_huffman->get_count( lv_len ). lv_count = io_huffman->get_count( lv_len ).
IF lv_code - lv_count < lv_first. IF lv_code - lv_count < lv_first.
@ -686,7 +609,7 @@ CLASS lcl_zlib IMPLEMENTATION.
lv_symbol = decode( go_lencode ). lv_symbol = decode( go_lencode ).
IF lv_symbol < 256. IF lv_symbol < 256.
lv_x = lcl_zlib_convert=>int_to_hex( lv_symbol ). lv_x = zcl_abapgit_zlib_convert=>int_to_hex( lv_symbol ).
CONCATENATE gv_out lv_x INTO gv_out IN BYTE MODE. CONCATENATE gv_out lv_x INTO gv_out IN BYTE MODE.
ELSEIF lv_symbol = 256. ELSEIF lv_symbol = 256.
EXIT. EXIT.