Merge pull request #557 from christian-94/issue553

Don't serialize unnecessary objects #553
This commit is contained in:
Lars Hvam 2017-01-21 08:16:17 +01:00 committed by GitHub
commit 90289099fa
5 changed files with 28 additions and 23 deletions

View File

@ -67,4 +67,4 @@ CLASS lcl_app IMPLEMENTATION.
ro_settings = go_settings. ro_settings = go_settings.
ENDMETHOD. ENDMETHOD.
ENDCLASS. "lcl_app ENDCLASS. "lcl_app

View File

@ -63,8 +63,9 @@ CLASS lcl_file_status IMPLEMENTATION.
rt_results = calculate_status( rt_results = calculate_status(
iv_devclass = io_repo->get_package( ) iv_devclass = io_repo->get_package( )
it_local = io_repo->get_files_local( io_log ) it_local = io_repo->get_files_local( io_log = io_log )
it_remote = io_repo->get_files_remote( ) it_remote = io_repo->get_files_remote( )
it_cur_state = io_repo->get_local_checksums_per_file( ) ). it_cur_state = io_repo->get_local_checksums_per_file( ) ).
@ -295,4 +296,4 @@ CLASS lcl_file_status IMPLEMENTATION.
ENDMETHOD. "build_new_remote ENDMETHOD. "build_new_remote
ENDCLASS. "lcl_file_status IMPLEMENTATION ENDCLASS. "lcl_file_status IMPLEMENTATION

View File

@ -18,6 +18,7 @@ CLASS lcl_repo DEFINITION ABSTRACT FRIENDS lcl_repo_srv.
RAISING lcx_exception, RAISING lcx_exception,
get_files_local get_files_local
IMPORTING io_log TYPE REF TO lcl_log OPTIONAL IMPORTING io_log TYPE REF TO lcl_log OPTIONAL
it_filter TYPE scts_tadir OPTIONAL
RETURNING VALUE(rt_files) TYPE ty_files_item_tt RETURNING VALUE(rt_files) TYPE ty_files_item_tt
RAISING lcx_exception, RAISING lcx_exception,
get_local_checksums get_local_checksums
@ -223,4 +224,4 @@ CLASS lcl_repo_srv DEFINITION FINAL CREATE PRIVATE FRIENDS lcl_app.
IMPORTING iv_package TYPE devclass IMPORTING iv_package TYPE devclass
RAISING lcx_exception. RAISING lcx_exception.
ENDCLASS. "lcl_repo_srv DEFINITION ENDCLASS. "lcl_repo_srv DEFINITION

View File

@ -504,10 +504,13 @@ CLASS lcl_repo IMPLEMENTATION.
DATA: lt_tadir TYPE ty_tadir_tt, DATA: lt_tadir TYPE ty_tadir_tt,
ls_item TYPE ty_item, ls_item TYPE ty_item,
lt_files TYPE ty_files_tt. lt_files TYPE ty_files_tt,
lt_cache TYPE SORTED TABLE OF ty_file_item
WITH NON-UNIQUE KEY item.
DATA: lt_cache TYPE SORTED TABLE OF ty_file_item DATA: lt_filter TYPE SORTED TABLE OF tadir
WITH NON-UNIQUE KEY item. WITH NON-UNIQUE KEY object obj_name,
lv_filter_exist TYPE abap_bool.
FIELD-SYMBOLS: <ls_file> LIKE LINE OF lt_files, FIELD-SYMBOLS: <ls_file> LIKE LINE OF lt_files,
<ls_return> LIKE LINE OF rt_files, <ls_return> LIKE LINE OF rt_files,
@ -533,7 +536,19 @@ CLASS lcl_repo IMPLEMENTATION.
lt_cache = mt_local. lt_cache = mt_local.
lt_tadir = lcl_tadir=>read( get_package( ) ). lt_tadir = lcl_tadir=>read( get_package( ) ).
lt_filter = it_filter.
lv_filter_exist = boolc( lines( lt_filter ) > 0 ) .
LOOP AT lt_tadir ASSIGNING <ls_tadir>. LOOP AT lt_tadir ASSIGNING <ls_tadir>.
IF lv_filter_exist = abap_true.
READ TABLE lt_filter TRANSPORTING NO FIELDS WITH KEY object = <ls_tadir>-object
obj_name = <ls_tadir>-obj_name
BINARY SEARCH.
IF sy-subrc <> 0.
CONTINUE.
ENDIF.
ENDIF.
lcl_progress=>show( iv_key = 'Serialize' lcl_progress=>show( iv_key = 'Serialize'
iv_current = sy-tabix iv_current = sy-tabix
@ -923,4 +938,4 @@ CLASS lcl_repo_srv IMPLEMENTATION.
ENDMETHOD. "switch_repo_type ENDMETHOD. "switch_repo_type
ENDCLASS. "lcl_repo_srv IMPLEMENTATION ENDCLASS. "lcl_repo_srv IMPLEMENTATION

View File

@ -404,25 +404,13 @@ CLASS lcl_zip IMPLEMENTATION.
CREATE OBJECT lo_log. CREATE OBJECT lo_log.
lt_zip = io_repo->get_files_local( lo_log ). lt_zip = io_repo->get_files_local( io_log = lo_log
it_filter = it_filter ).
IF lo_log->count( ) > 0. IF lo_log->count( ) > 0.
lo_log->show( ). lo_log->show( ).
ENDIF. ENDIF.
IF lines( it_filter ) > 0.
LOOP AT lt_zip ASSIGNING <ls_zip>.
lv_index = sy-tabix.
READ TABLE it_filter WITH KEY
object = <ls_zip>-item-obj_type
obj_name = <ls_zip>-item-obj_name
TRANSPORTING NO FIELDS.
IF sy-subrc <> 0.
DELETE lt_zip INDEX lv_index.
ENDIF.
ENDLOOP.
ENDIF.
file_download( iv_package = io_repo->get_package( ) file_download( iv_package = io_repo->get_package( )
iv_xstr = encode_files( lt_zip ) ). iv_xstr = encode_files( lt_zip ) ).
@ -551,4 +539,4 @@ CLASS lcl_zip IMPLEMENTATION.
ENDMETHOD. "export_package ENDMETHOD. "export_package
ENDCLASS. "lcl_zip IMPLEMENTATION ENDCLASS. "lcl_zip IMPLEMENTATION