def __init__(self, params=None):
        self.name = "command chain" 
        self.params = params
        self.cmd = self.name

        self.__loadConf = LoadConf()
        self.__bizDb = MysqlPythonOnce(self.__loadConf.biz_db_host,\
                 self.__loadConf.biz_db_user, \
                 self.__loadConf.biz_db_password,\
                 self.__loadConf.biz_db_database)
    
        self.__src_msgDb = MysqlPythonOnce(self.__loadConf.src_msg_db_host, \
                 self.__loadConf.src_msg_db_user, \
                 self.__loadConf.src_msg_db_password, \
                 self.__loadConf.src_msg_db_database)

        self.__dest_msgDb = MysqlPythonOnce(self.__loadConf.dest_msg_db_host, \
                 self.__loadConf.dest_msg_db_user, \
                 self.__loadConf.dest_msg_db_password, \
                 self.__loadConf.dest_msg_db_database)

        self.__bizDb.open()
        self.__src_msgDb.open()
        self.__dest_msgDb.open()
class CommandChain(CmdBase):

    __commandCollection = []
    __loadConf = None
    __bizDb = None    
    __src_msgDb = None
    __dest_msgDb = None

    def __init__(self, params=None):
        self.name = "command chain" 
        self.params = params
        self.cmd = self.name

        self.__loadConf = LoadConf()
        self.__bizDb = MysqlPythonOnce(self.__loadConf.biz_db_host,\
                 self.__loadConf.biz_db_user, \
                 self.__loadConf.biz_db_password,\
                 self.__loadConf.biz_db_database)
    
        self.__src_msgDb = MysqlPythonOnce(self.__loadConf.src_msg_db_host, \
                 self.__loadConf.src_msg_db_user, \
                 self.__loadConf.src_msg_db_password, \
                 self.__loadConf.src_msg_db_database)

        self.__dest_msgDb = MysqlPythonOnce(self.__loadConf.dest_msg_db_host, \
                 self.__loadConf.dest_msg_db_user, \
                 self.__loadConf.dest_msg_db_password, \
                 self.__loadConf.dest_msg_db_database)

        self.__bizDb.open()
        self.__src_msgDb.open()
        self.__dest_msgDb.open()

    def execute(self):
        try:
            for x in self.__commandCollection:
                x.execute()

            print('DONE.')
        except  ErrorCommandFormat as e:
            print(e.value)
        finally:
            self.__commandCollection.clear()
            self.__bizDb.close()
            self.__src_msgDb.close()
            self.__dest_msgDb.close()

    def loadCmdList(self):
        self.loadCmdList("list.txt")

    def loadCmdList(self, path):
        try: 
            with open(path, "r") as f:
                c = None
                while True:  
                    line = f.readline()  
                    if not line:  
                        break
                    else:  
                        line = str.lower(line)
                        lines = line.split()
                        if len(lines) > 0 and not str.strip(line).startswith("#",0,1):
                            if lines[0] == "send":
                                c = CmdSend(lines, self.__src_msgDb, self.__dest_msgDb)
                                self.__commandCollection.append(c)
                            elif lines[0] == "set":
                                c = CmdSet(lines, self.__bizDb)
                                self.__commandCollection.append(c)
                            elif lines[0] == "wait":
                                c = CmdWait(lines)
                                self.__commandCollection.append(c)
                            elif lines[0] == 'echo':
                                c = CmdEcho(lines)
                                self.__commandCollection.append(c)
        except Exception as e:
            print(e.args)