class Signal (object): def __init__(self,content) : # every signal should have a content attribute self.content = content class Query(Signal) : READDATA = 1 NEWSYNCFIGURE = 2 UPDATESYNCFIGURE = 3 SYNCFIGFORMATRAWDATA = 4 DELETESYNCFIGURE = 5 LISTDATA = 6 GETDATA = 7 def __init__(self,queryType, content) : if queryType in range(1,8) : self.queryType = queryType if queryType == Query.READDATA : if type(content) == dict : self.content = content else : print('parameter 2 of Query constructor is exspected to be of type dict') raise elif queryType == Query.NEWSYNCFIGURE : if type(content) == dict : # same as self.content = content else : print('parameter 2 of Query constructor is exspected to be of type dict') raise elif queryType == Query.UPDATESYNCFIGURE : self.content = content elif queryType == Query.SYNCFIGFORMATRAWDATA : self.content = content elif queryType == Query.DELETESYNCFIGURE : self.content = content elif queryType == Query.LISTDATA : self.content = content elif queryType == Query.GETDATA : self.content = content else : print('unknown query type!') raise class Status(Signal): def __init__(self,value,error) : if (value == True) or (value == False) : self.value = value if (type(error) == str) : self.content = error class Answer(Signal): def __init__(self,value) : self.content = value