From 47b8658eb86e93cd6dd4569b2acd8d403056c4e7 Mon Sep 17 00:00:00 2001
From: angloth <angus.lothian@hotmail.com>
Date: Wed, 26 Feb 2020 19:02:41 +0100
Subject: [PATCH] Remove identifier from basic operation and operation ID from
 simulation, needs some rework on simulation

---
 b_asic/basic_operation.py   |  7 +------
 b_asic/signal_flow_graph.py | 20 +++++++++++++++-----
 b_asic/simulation.py        |  1 +
 3 files changed, 17 insertions(+), 11 deletions(-)

diff --git a/b_asic/basic_operation.py b/b_asic/basic_operation.py
index 42689a74..14eb1ace 100644
--- a/b_asic/basic_operation.py
+++ b/b_asic/basic_operation.py
@@ -5,7 +5,7 @@ TODO: More info.
 
 from b_asic.port import InputPort, OutputPort
 from b_asic.signal import SignalSource, SignalDestination
-from b_asic.operation import OperationId, Operation
+from b_asic.operation import Operation
 from b_asic.simulation import SimulationState, OperationState
 from abc import ABC, abstractmethod
 from typing import List, Dict, Optional, Any
@@ -18,7 +18,6 @@ class BasicOperation(Operation):
 	TODO: More info.
 	"""
 
-	_identifier: OperationId
 	_input_ports: List[InputPort]
 	_output_ports: List[OutputPort]
 	_parameters: Dict[str, Optional[Any]]
@@ -27,7 +26,6 @@ class BasicOperation(Operation):
 		"""
 		Construct a BasicOperation.
 		"""
-		self._identifier = identifier
 		self._input_ports = []
 		self._output_ports = []
 		self._parameters = {}
@@ -39,9 +37,6 @@ class BasicOperation(Operation):
 		"""
 		pass
 
-	def id(self) -> OperationId:
-		return self._identifier
-
 	def inputs(self) -> List[InputPort]:
 		return self._input_ports.copy()
 
diff --git a/b_asic/signal_flow_graph.py b/b_asic/signal_flow_graph.py
index d4c7b689..0f7bffa9 100644
--- a/b_asic/signal_flow_graph.py
+++ b/b_asic/signal_flow_graph.py
@@ -39,12 +39,22 @@ class SFG(BasicOperation):
 	def add_operation(self, operation: Operation) -> GraphID:
 		"""
 		Adds the entered operation to the SFG's dictionary of graph objects and
-		generates and returns a GraphID for it.
+	 	returns a generated GraphID for it.
 		"""
-		graph_id = self._graph_id_generator.get_next_id("op")
-		self._graph_objects[graph_id] = operation
-		return graph_id
+		return self._add_graph_obj(operation, 'op')
 
-	def _generate_id(self)
+
+	def add_signal(self, signal: Signal) -> GraphID:
+		"""
+		Adds the entered signal to the SFG's dictionary of graph objects and returns
+		a generated GraphID for it.
+		"""
+		return self._add_graph_obj(signal, 's')
+
+
+	def _add_graph_obj(self, obj: Union[Operation, Signal], operation_id_type: str):
+		graph_id = self._graph_id_generator.get_next_id(operation_id_type)
+		self._graph_objects[graph_id] = obj
+		return graph_id 
 
 
diff --git a/b_asic/simulation.py b/b_asic/simulation.py
index 5f9dffb6..a51bf470 100644
--- a/b_asic/simulation.py
+++ b/b_asic/simulation.py
@@ -3,6 +3,7 @@ B-ASIC Simulation Module.
 TODO: More info.
 """
 
+from signal_flow_graph import OperationId
 from numbers import Number
 from typing import List, Dict
 
-- 
GitLab