Add TODO memos

- Point to ignore self originating event
- Point to dispatch local topology event
- Note about 2 mode of removeLink to handle potentially outdated Outgoing Link
- Reading Link from DB requires pre-condition check

Change-Id: Ib24b35af118b239410615595d4f2bf6bcda175c6
diff --git a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphDatastore.java b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphDatastore.java
index d34ac46..126d299 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphDatastore.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphDatastore.java
@@ -164,7 +164,7 @@
 
 	public void addLink(LinkEvent linkEvent) {
 		log.debug("Adding link {}", linkEvent);
-		
+
 		RCLink rcLink = new RCLink(linkEvent.getSrc().getDpid(), linkEvent.getSrc().getNumber(),
 				linkEvent.getDst().getDpid(), linkEvent.getDst().getNumber());
 
@@ -219,6 +219,7 @@
 				//rcDstPort.read();
 				rcLink.read();
 			} catch (ObjectDoesntExistException e) {
+			    // XXX Note: This error might be harmless, if triggered by out-dated remove Link event
 				log.error("Remove link failed {}", linkEvent, e);
 				return;
 			}
diff --git a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphImpl.java b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphImpl.java
index 921907e..176e793 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphImpl.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphImpl.java
@@ -119,6 +119,7 @@
 	 */
 	private void processEvents(Collection<EventEntry<TopologyEvent>> events) {
 	    for (EventEntry<TopologyEvent> event : events) {
+		// TODO ignore event triggered by myself
 		TopologyEvent topologyEvent = event.eventData();
 		switch (event.eventType()) {
 		case ENTRY_ADD:
@@ -285,6 +286,9 @@
 
 	@Override
 	public void removeLinkEvent(LinkEvent linkEvent) {
+	    // TODO may need to distinguish internal event, which checks
+	    // ownership of dst-dpid of this link, and only write to DB
+	    // if it is owner of the dpid
 		if (prepareForRemoveLinkEvent(linkEvent)) {
 			datastore.removeLink(linkEvent);
 			removeLink(linkEvent);
@@ -421,6 +425,8 @@
 		    log.debug("Removing Link {} on Port {}", link, portEvt);
 		    LinkEvent linkEvent = new LinkEvent(link.getSourceSwitchDpid(), link.getSourcePortNumber(), link.getDestinationSwitchDpid(), link.getDestinationPortNumber());
 		    // calling Discovery API to wipe from DB, etc.
+		    // XXX call internal remove Link, which will check
+		    // ownership and modify only if it is the owner
 		    removeLinkEvent(linkEvent);
 		}
 		return true;
@@ -559,6 +565,7 @@
 		putSwitch(switchEvent);
 	    }
 	    // TODO handle invariant violation
+	    // TODO trigger instance local topology event handler
 	}
 
 	@Override
@@ -567,6 +574,7 @@
 		removeSwitch(switchEvent);
 	    }
 	    // TODO handle invariant violation
+	    // TODO trigger instance local topology event handler
 	}
 
 	@Override
@@ -575,6 +583,7 @@
 		putPort(portEvent);
 	    }
 	    // TODO handle invariant violation
+	    // TODO trigger instance local topology event handler
 	}
 
 	@Override
@@ -583,6 +592,7 @@
 		removePort(portEvent);
 	    }
 	    // TODO handle invariant violation
+	    // TODO trigger instance local topology event handler
 	}
 
 	@Override
@@ -591,6 +601,7 @@
 		putLink(linkEvent);
 	    }
 	    // TODO handle invariant violation
+	    // TODO trigger instance local topology event handler
 	}
 
 	@Override
@@ -599,6 +610,7 @@
 		removeLink(linkEvent);
 	    }
 	    // TODO handle invariant violation
+	    // TODO trigger instance local topology event handler
 	}
 
 	@Override
@@ -607,6 +619,7 @@
 		putDevice(deviceEvent);
 	    }
 	    // TODO handle invariant violation
+	    // TODO trigger instance local topology event handler
 	}
 
 	@Override
@@ -615,6 +628,7 @@
 		removeDevice(deviceEvent);
 	    }
 	    // TODO handle invariant violation
+	    // TODO trigger instance local topology event handler
 	}
 
 	/* ************************************************
@@ -675,7 +689,7 @@
 		PortEvent portEvt = new PortEvent(port.getDpid(), port.getNumber());
 		portsToRemove.add(portEvt);
 	    }
-	    for (PortEvent portEvt : portsToRemove ) {
+	    for (PortEvent portEvt : portsToRemove) {
 		// XXX calling removePortEvent() may trigger duplicate event, once at prepare phase, second time here
 		// If event can be squashed, ignored etc. at receiver side it shouldn't be a problem, but if not
 		// need to re-visit this issue.
@@ -1062,7 +1076,8 @@
 
 	@Deprecated
 	public void loadWholeTopologyFromDB() {
-	    // XXX clear everything first?
+	    // XXX May need to clear whole topology first, depending on
+	    // how we initially subscribe to replication events
 
 	    for (RCSwitch sw : RCSwitch.getAllSwitches()) {
 		if ( sw.getStatus() != RCSwitch.STATUS.ACTIVE ) {
@@ -1087,6 +1102,7 @@
 	    //	}
 
 	    for (RCLink l : RCLink.getAllLinks()) {
+		// TODO check if src/dst switch/port exist before triggering event
 		putLinkReplicationEvent( new LinkEvent(l.getSrc().dpid, l.getSrc().number, l.getDst().dpid, l.getDst().number));
 	    }
 	}