HomePhabricator

Add a NativeProcessProtocol Factory class

Description

Add a NativeProcessProtocol Factory class

Summary:
This replaces the static functions used for creating
NativeProcessProtocol instances with a factory pattern, and modernizes
the interface of the new class in the process -- I use llvm::Expected
instead of the Status+value combo. I also move some of the common code
(like the Delegate registration into the base class). The new
arrangement has multiple benefits:

  • it removes the NativeProcess*** dependency from Process/gdb-remote (which for example means that liblldb no longer pulls in this code).
  • it enables unit testing of the GDBRemoteCommunicationServerLLGS class (by providing a mock Native Process).
  • serves as another example on how to use the llvm::Expected class (I couldn't get rid of the Initialize-type functions completely here because of the use of shared_from_this, but that's the next thing on my list here)

Tests still pass on Linux and I've made sure NetBSD compiles after this.

Reviewers: zturner, eugene, krytarowski

Subscribers: srhines, lldb-commits, mgorny

Differential Revision: https://reviews.llvm.org/D33778

Details

Committed
labathJul 7 2017, 4:02 AM
Differential Revision
D33778: Add a NativeProcessProtocol Factory class
Parents
rL307389: [AArch64] Use 16 bytes as preferred function alignment on Cortex-A57.
Branches
Unknown
Tags
Unknown