From 8e231245650b803c146ff9fa9404d70ba99df77d Mon Sep 17 00:00:00 2001
From: angloth <angus.lothian@hotmail.com>
Date: Tue, 25 Feb 2020 16:04:35 +0100
Subject: [PATCH] Move signalID to SFG class

---
 b_asic/basic_operation.py   |  2 +-
 b_asic/signal.py            | 13 +------------
 b_asic/signal_flow_graph.py | 11 +++++++----
 b_asic/simulation.py        |  1 -
 4 files changed, 9 insertions(+), 18 deletions(-)

diff --git a/b_asic/basic_operation.py b/b_asic/basic_operation.py
index 6810a9a7..42689a74 100644
--- a/b_asic/basic_operation.py
+++ b/b_asic/basic_operation.py
@@ -23,7 +23,7 @@ class BasicOperation(Operation):
 	_output_ports: List[OutputPort]
 	_parameters: Dict[str, Optional[Any]]
 
-	def __init__(self, identifier: OperationId):
+	def __init__(self):
 		"""
 		Construct a BasicOperation.
 		"""
diff --git a/b_asic/signal.py b/b_asic/signal.py
index 4fac563f..6ef55c8d 100644
--- a/b_asic/signal.py
+++ b/b_asic/signal.py
@@ -6,9 +6,6 @@ TODO: More info.
 from b_asic.operation import Operation
 from typing import NewType
 
-SignalId = NewType("SignalId", int)
-
-
 class SignalSource:
 	"""
 	Handle to a signal source.
@@ -50,22 +47,14 @@ class Signal:
 	A connection between two operations consisting of a source and destination handle.
 	TODO: More info.
 	"""
-	_identifier: SignalId
 	source: SignalSource
 	destination: SignalDestination
 
-	def __init__(self, identifier: SignalId, source: SignalSource, destination: SignalDestination):
+	def __init__(self, source: SignalSource, destination: SignalDestination):
 		"""
 		Construct a Signal.
 		"""
-		self._identifier = identifier
 		self.source = source
 		self.destination = destination
 
-	def identifier(self) -> SignalId:
-		"""
-		Get the unique identifier.
-		"""
-		return self._identifier
-
 	# TODO: More stuff.
diff --git a/b_asic/signal_flow_graph.py b/b_asic/signal_flow_graph.py
index 3c709ab3..3f804f0e 100644
--- a/b_asic/signal_flow_graph.py
+++ b/b_asic/signal_flow_graph.py
@@ -5,12 +5,14 @@ TODO: More info.
 
 from b_asic.operation import Operation
 from b_asic.basic_operation import BasicOperation
-from b_asic.signal import SignalSource, SignalDestination
+from b_asic.signal import Signal, SignalSource, SignalDestination
 from b_asic.simulation import SimulationState, OperationState
 from typing import List, Dict
 
 # Types
 OperationId = NewType("OperationId", int)
+SignalId = NewType("SignalId", int)
+
 
 
 class SFG(BasicOperation):
@@ -20,8 +22,9 @@ class SFG(BasicOperation):
 	"""
 
 	_operations: Dict[OperationID, Operation]
+	_signals: Dict[SignalID, Signal]
 
-	def __init__(self, identifier: OperationId, input_destinations: List[SignalDestination], output_sources: List[SignalSource]):
+	def __init__(self, input_destinations: List[SignalDestination], output_sources: List[SignalSource]):
 		"""
 		Construct a SFG.
 		"""
@@ -29,6 +32,7 @@ class SFG(BasicOperation):
 		# TODO: Allocate input/output ports with appropriate IDs.
 		
 		self._operations = dict # Map Operation ID to Operation objects
+		self._signals = dict # Map Signal ID to Signal objects	
 
 		# TODO: Traverse the graph between the inputs/outputs and add to self._operations.
 		# TODO: Connect ports with signals with appropriate IDs.
@@ -37,6 +41,5 @@ class SFG(BasicOperation):
 		return [] # TODO: Implement
 
 	def split(self) -> List[Operation]:
-		return self._operations
+		return self
 
-	# TODO: More stuff.
diff --git a/b_asic/simulation.py b/b_asic/simulation.py
index e219445b..5f9dffb6 100644
--- a/b_asic/simulation.py
+++ b/b_asic/simulation.py
@@ -3,7 +3,6 @@ B-ASIC Simulation Module.
 TODO: More info.
 """
 
-from b_asic.operation import OperationId
 from numbers import Number
 from typing import List, Dict
 
-- 
GitLab