Source code for spinn_machine.tags.abstract_tag
# Copyright (c) 2017-2019 The University of Manchester
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
[docs]class AbstractTag(object):
""" Common properties of SpiNNaker IP tags and reverse IP tags.
"""
__slots__ = [
# the board address associated with this tag
"_board_address",
# the tag ID associated with this tag
"_tag",
# the port number associated with this tag
"_port"
]
def __init__(self, board_address, tag, port):
self._board_address = board_address
self._tag = tag
self._port = port
@property
def board_address(self):
""" The board address of the tag
"""
return self._board_address
@property
def tag(self):
""" The tag ID of the tag
"""
return self._tag
@property
def port(self):
""" The port of the tag
"""
return self._port
@port.setter
def port(self, port):
""" Set the port; will fail if the port is already set
"""
if self._port is not None:
raise RuntimeError("Port cannot be set more than once")
self._port = port