---
title: Process Use Case Object Hierarchy
---
classDiagram
  direction LR
  namespace codemelted {
    class CProtocolHandler {
      +id() String
      +is_running() bool
      +get_message() Result
      +post_message(T) Result
      +terminate()
    }
    class CProcessProtocol
    class process_exists
    class process_run
    class process_spawn
  }
  namespace std_process {
    class Command
    class Child
    class ChildStdin
    class ChildStdout
  }
  namespace std_thread {
    class JoinHandle
  }
  CProcessProtocol --> JoinHandle: uses
  CProcessProtocol --> Child: uses
  CProcessProtocol --> ChildStdin: uses
  CProcessProtocol --> ChildStdout: uses
  CProcessProtocol --> CProtocolHandler: implements
  process_exists --> Command: uses
  process_run --> Command: uses
  process_spawn --> CProcessProtocol: creates