1#!/usr/bin/env python 2# -*- coding: utf-8 -*- 3 4# Copyright (c) 2020-2021 Huawei Device Co., Ltd. 5# 6# HDF is dual licensed: you can use it either under the terms of 7# the GPL, or the BSD license, at your option. 8# See the LICENSE file in the root of this repository for complete details. 9 10 11import sys 12 13 14from hdf_tool_exception import HdfToolException 15from command_line.hdf_command_line_server import HdfCommandLineServer 16 17 18class HdfToolDaemonServer(object): 19 def __init__(self, server_type): 20 self.server_type = server_type 21 self.servers = { 22 'command_line': HdfCommandLineServer 23 } 24 self.read_obj = sys.stdin.buffer 25 self.write_obj = sys.stdout.buffer 26 27 def run(self): 28 if self.server_type in self.servers: 29 self.servers.get(self.server_type)(self.read_obj, self.write_obj).run() 30 else: 31 raise HdfToolException('unknown type: %s' % self.server_type) 32