예제 #1
0
def buildSubgraph(parent, name, readable_name=None):
    if isinstance(parent, EDSMRootModel):
        parent = parent.states
    subgraph = SubElement(parent,
                          u"{%s}subgraph" % EDSM_NAMESPACE_URI,
                          name=name)
    if readable_name:
        subgraph.readable_name = readable_name
    subgraph.id = uniqueID(parent, str(id(subgraph)))
    states = subgraph.states
    subgraph.entry_state = buildState(states, 'entry')
    subgraph.exit_state  = buildState(states, 'exit')
    return subgraph
예제 #2
0
def buildState(parent, name, readable_name=None,
               inputs=('input',), outputs=('output',)):
    if isinstance(parent, EDSMRootModel):
        parent = parent.states
    state = SubElement(parent,
                       u"{%s}state" % EDSM_NAMESPACE_URI,
                       name=name)
    if readable_name:
        state.readable_name = readable_name
    state.id = uniqueID(parent, str(id(state)))
    if inputs:
        for queue in inputs:
            state.add_input(queue)
    if outputs:
        for queue in outputs:
            state.add_output(queue)
    return state