def __init__(self, id, name, inputState, outputState, inputSymbol): AbstractTransition.__init__(self, "SemiStochastic", id, name, inputState, outputState) # create logger with the given configuration self.log = logging.getLogger('netzob.Common.MMSTD.Transitions.impl.SemiStochasticTransition.py') self.inputSymbol = inputSymbol # Output Symbols : [[Symbol, Probability, Time], [Symbol, Probability, Time]] self.outputSymbols = []
def __init__(self, id, name, inputState, outputState, disconnectionTime): AbstractTransition.__init__(self, CloseChannelTransition.TYPE, id, name, inputState, outputState) # create logger with the given configuration self.log = logging.getLogger( 'netzob.Common.MMSTD.Transitions.impl.CloseChannelTransition.py') self.disconnectionTime = disconnectionTime
def __init__(self, id, name, inputState, outputState, connectionTime, maxNumberOfAttempt): AbstractTransition.__init__(self, OpenChannelTransition.TYPE, id, name, inputState, outputState) # create logger with the given configuration self.log = logging.getLogger( 'netzob.Common.MMSTD.Transitions.impl.OpenChannelTransition.py') self.connectionTime = connectionTime self.maxNumberOfAttempt = maxNumberOfAttempt
def __init__(self, id, name, inputState, outputState, timeBeforeActing, outputSymbol): AbstractTransition.__init__(self, "SimpleTransition", id, name, inputState, outputState) # create logger with the given configuration self.log = logging.getLogger( 'netzob.Common.MMSTD.Transitions.impl.SimpleTransition.py') self.outputSymbol = outputSymbol self.timeBeforeActing = timeBeforeActing
def __init__(self, id, name, inputState, outputState, inputSymbol): AbstractTransition.__init__(self, SemiStochasticTransition.TYPE, id, name, inputState, outputState) # create logger with the given configuration self.log = logging.getLogger( 'netzob.Common.MMSTD.Transitions.impl.SemiStochasticTransition.py') self.inputSymbol = inputSymbol # Output Symbols : [[Symbol, Probability, Time], [Symbol, Probability, Time]] self.outputSymbols = []
def loadFromXML(xmlRoot, vocabulary, namespace, version): if version == "0.1": initialStateID = xmlRoot.get("initialState") states = [] transitions = [] # Retrieve all the states for xmlState in xmlRoot.findall("{" + namespace + "}states/{" + namespace + "}state"): state = AbstractState.loadFromXML(xmlState, namespace, version) if state is not None: states.append(state) # Retrieve all the transitions if xmlRoot.find("{" + namespace + "}transitions") is not None: xmlTransitions = xmlRoot.find("{" + namespace + "}transitions") for xmlTransition in xmlTransitions.findall("{" + namespace + "}transition"): transition = AbstractTransition.loadFromXML( states, vocabulary, xmlTransition, namespace, version) if transition is not None: transitions.append(transition) # First we retrieve the initial state to create the grammar initialState = None for state in states: if state.getID() == initialStateID: initialState = state if initialState is None: logging.warn( "Impossible to retrieve the initial state of the saved grammar" ) return None # Creation of the automata automata = MMSTD(initialState, vocabulary) # Register all the states for state in states: automata.addState(state) for transition in transitions: automata.addTransition(transition) return automata
def loadFromXML(xmlRoot, vocabulary, namespace, version): if version == "0.1": initialStateID = xmlRoot.get("initialState") states = [] transitions = [] # Retrieve all the states for xmlState in xmlRoot.findall("{" + namespace + "}states/{" + namespace + "}state"): state = AbstractState.loadFromXML(xmlState, namespace, version) if state is not None: states.append(state) # Retrieve all the transitions if xmlRoot.find("{" + namespace + "}transitions") is not None: xmlTransitions = xmlRoot.find("{" + namespace + "}transitions") for xmlTransition in xmlTransitions.findall("{" + namespace + "}transition"): transition = AbstractTransition.loadFromXML(states, vocabulary, xmlTransition, namespace, version) if transition is not None: transitions.append(transition) # First we retrieve the initial state to create the grammar initialState = None for state in states: if state.getID() == initialStateID: initialState = state if initialState is None: logging.warn("Impossible to retrieve the initial state of the saved grammar") return None # Creation of the automata automata = MMSTD(initialState, vocabulary) # Register all the states for state in states: automata.addState(state) for transition in transitions: automata.addTransition(transition) return automata
def __init__(self, id, name, inputState, outputState, timeBeforeActing, outputSymbol): AbstractTransition.__init__(self, "SimpleTransition", id, name, inputState, outputState) # create logger with the given configuration self.log = logging.getLogger('netzob.Common.MMSTD.Transitions.impl.SimpleTransition.py') self.outputSymbol = outputSymbol self.timeBeforeActing = timeBeforeActing
def __init__(self, id, name, inputState, outputState, connectionTime, maxNumberOfAttempt): AbstractTransition.__init__(self, OpenChannelTransition.TYPE, id, name, inputState, outputState) # create logger with the given configuration self.log = logging.getLogger('netzob.Common.MMSTD.Transitions.impl.OpenChannelTransition.py') self.connectionTime = connectionTime self.maxNumberOfAttempt = maxNumberOfAttempt
def __init__(self, id, name, inputState, outputState, disconnectionTime): AbstractTransition.__init__(self, CloseChannelTransition.TYPE, id, name, inputState, outputState) # create logger with the given configuration self.log = logging.getLogger('netzob.Common.MMSTD.Transitions.impl.CloseChannelTransition.py') self.disconnectionTime = disconnectionTime