client-server conversation arch for async scan 60/75660/20
authorKyungwook Tak <k.tak@samsung.com>
Mon, 27 Jun 2016 06:30:53 +0000 (15:30 +0900)
committerkyungwook tak <k.tak@samsung.com>
Mon, 4 Jul 2016 07:23:25 +0000 (00:23 -0700)
commit9a0e9a7454565598f4f6378417863f637764d766
tree281f0636a94b06a5cae96e71b2a52f63dbbb97fc
parentefade4380b460acbab9e0786e1f533a2451e3268
client-server conversation arch for async scan

Async operation process

AS-IS
1) getting scannable file list from server
2) dispatch scan file operation per item in list

TO-BE
1) dispatch async scanning with files/dirs list by client
2) Client receives event only when malware detected by server
   unless file scanned callback is registered.

IPC time is much more lower than before because IPC isn't needed
for file scanned without malware when callback isn't registered.

Memory usage on client side is much less than before because client
doesn't receive a bunch of scannable file list.
Client only receives event when callback call needed or operation completed.

Change-Id: I0c913a2fbdf75c2abe99cdf6d757fdb0f264145d
Signed-off-by: Kyungwook Tak <k.tak@samsung.com>
22 files changed:
src/framework/client/async-logic.cpp
src/framework/client/async-logic.h
src/framework/client/canonicalize.cpp
src/framework/client/canonicalize.h
src/framework/client/content-screening.cpp
src/framework/client/handle.h
src/framework/client/utils.cpp
src/framework/common/async-protocol.h [new file with mode: 0644]
src/framework/common/command-id.h
src/framework/common/cs-context.cpp
src/framework/common/cs-context.h
src/framework/common/dispatcher.h
src/framework/common/serialization.h
src/framework/common/socket.cpp
src/framework/db/manager.cpp
src/framework/db/manager.h
src/framework/service/cs-logic.cpp
src/framework/service/cs-logic.h
src/framework/service/file-system.cpp
src/framework/service/server-service.cpp
test/internals/test-db.cpp
test/test-api-content-screening-async.cpp