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