Inheritance diagram for CyclopsSimulator::

| Public Methods | |
| void | run () | 
| CyclopsSimulator () | |
| synchronized void | simulate () | 
| synchronized void | topologyUpdate () | 
| void | startSimulation () | 
| void | tracePackets (String start_name, String end_name) | 
| void | sendPacket () | 
| void | addDummyPackets (int number, int time_to_live) | 
| void | stopSimulation () | 
| void | endSimulation () | 
| void | addNode (Node new_node) | 
| Node | findNode (String node_name) | 
| Node | deleteNode (String node_name) | 
| int | numberOfNodes () | 
| Node | nodeAt (int index) | 
| Line | lineAt (int index) | 
| int | numberOfLines () | 
| void | addLine (Line new_line) | 
| Line | deleteLine (String first_node, String second_node) | 
| synchronized void | paint (Graphics g, FontMetrics metrics, Color node_color, Color line_color, Color left_packet_color, Color right_packet_color, Color traced_packet_color, boolean show_line_capacity, boolean show_all_packets) | 
| Protected Attributes | |
| Vector | node_list = new Vector() | 
| Vector | line_list = new Vector() | 
| Node | start_node = null | 
| String | start_node_name = null | 
| Node | end_node = null | 
| String | end_node_name = null | 
| boolean | trace_flag = false | 
| boolean | running = false | 
| boolean | destroy = false | 
Definition at line 21 of file CyclopsSimulator.java.
| 
 | 
| Empty constructor. Definition at line 94 of file CyclopsSimulator.java. 00095     {
00096     }
 | 
| 
 | 
| Adds dummy packets. Packets with negative ttl will live forever. 
 Definition at line 210 of file CyclopsSimulator.java. Referenced by NetworkSpacePanel::addDummyPackets(). 
 00211     {
00212         int i;
00213         int j;
00214         Node current_node;
00215         Packet packet;
00216         boolean running_flag;
00217 
00218         running_flag = running;
00219         running = false;
00220         /* Add dummy packets. */
00221         for (i=0, j=0; i<number; i++)
00222             {
00223                 packet = new Packet();
00224                 current_node = (Node)node_list.elementAt(j);
00225                 j++;
00226                 if (j >= node_list.size())
00227                     {
00228                         j = 0;
00229                     }
00230                 packet.setTimeToLive(time_to_live);
00231                 current_node.receive(packet);
00232             }
00233         running = running_flag;
00234     }
 | 
| 
 | 
| Adds line to network. 
 Definition at line 374 of file CyclopsSimulator.java. Referenced by NetworkSpacePanel::addLine(). 
 00375     {
00376         line_list.addElement(new_line);
00377     }
 | 
| 
 | 
| Adds node to network. 
 Definition at line 259 of file CyclopsSimulator.java. Referenced by NetworkSpacePanel::addNode(). 
 00260     {
00261         node_list.addElement(new_node);
00262     }
 | 
| 
 | 
| Deletes line from network. 
 
 Definition at line 386 of file CyclopsSimulator.java. Referenced by NetworkSpacePanel::deleteLine(). 
 00387     {
00388         Node first;
00389         Node second;
00390         Line current_line;
00391         int i;
00392 
00393         first = findNode(first_node);
00394         second = findNode(second_node);
00395         if (null == first) return null;
00396         if (null == second) return null;
00397         current_line = null;
00398         for (i=0; i!=line_list.size(); i++)
00399             {
00400                 current_line = (Line)line_list.elementAt(i);
00401                 if (current_line.areEndingNodes(first, second))
00402                     {
00403                         current_line.delete();
00404                         line_list.removeElementAt(i);
00405                         break;
00406                     }
00407             }
00408         return current_line;
00409     }
 | 
| 
 | 
| Deletes node with given name. 
 
 Definition at line 294 of file CyclopsSimulator.java. Referenced by NetworkSpacePanel::deleteNode(). 
 00295     {
00296         int i;
00297         String current_name;
00298         Node current_node = null;
00299         Line current_line;
00300 
00301         for (i=0; i!=node_list.size(); i++)
00302             {
00303                 current_node = (Node)node_list.elementAt(i);
00304                 current_name = current_node.getName();
00305                 if (current_name.equals(node_name))
00306                     {
00307                         current_node.delete();
00308                         node_list.removeElementAt(i);
00309                         break;
00310                     }
00311             }
00312         for (i=0; i!=line_list.size(); i++)
00313             {
00314                 current_line = (Line)line_list.elementAt(i);
00315                 if (current_line.isDisconnected())
00316                     {
00317                         line_list.removeElementAt(i);
00318                         /* Next element becomes current element, so i-- is required. */
00319                         i--;
00320                     }
00321             }
00322         return current_node;
00323     }
 | 
| 
 | 
| Ends simulation. Definition at line 249 of file CyclopsSimulator.java. Referenced by NetworkSpacePanel::endSimulation(). 
 00250     {
00251         destroy = true;
00252     }
 | 
| 
 | 
| Finds node with given name. 
 
 Definition at line 270 of file CyclopsSimulator.java. Referenced by NetworkSpacePanel::addNode(). 
 00271     {
00272         int i;
00273         String current_name;
00274         Node current_node;
00275 
00276         for (i=0; i!=node_list.size(); i++)
00277             {
00278                 current_node = (Node)node_list.elementAt(i);
00279                 current_name = current_node.getName();
00280                 if (current_name.equals(node_name))
00281                     {
00282                         return current_node;
00283                     }
00284             }
00285         return null;
00286     }
 | 
| 
 | 
| Returns line at specified index. Index must be less then number returnd by getNumberOfLines(). 
 
 Definition at line 354 of file CyclopsSimulator.java. 00355     {
00356         return (Line)line_list.elementAt(index);
00357     }
 | 
| 
 | 
| Returns node at specified index. Index must be less then number returnd by getNumberOfNodes(). 
 
 Definition at line 342 of file CyclopsSimulator.java. Referenced by NetworkSpacePanel::mousePressed(). 
 00343     {
00344         return (Node)node_list.elementAt(index);
00345     }
 | 
| 
 | 
| Gets number of lines. 
 Definition at line 364 of file CyclopsSimulator.java. 00365     {
00366         return line_list.size();
00367     }
 | 
| 
 | 
| Gets number of nodes. 
 Definition at line 330 of file CyclopsSimulator.java. Referenced by NetworkSpacePanel::mousePressed(). 
 00331     {
00332         return node_list.size();
00333     }
 | 
| 
 | 
| Paints network on screen. 
 Definition at line 424 of file CyclopsSimulator.java. Referenced by NetworkSpacePanel::update(). 
 00430     {
00431         int i;
00432         Line current_line;
00433         Node current_node;
00434 
00435         for (i=0; i!=line_list.size(); i++)
00436             {
00437                 current_line = (Line)line_list.elementAt(i);
00438                 current_line.paint(g, metrics,
00439                                    line_color, left_packet_color, right_packet_color,
00440                                    traced_packet_color,
00441                                    show_line_capacity, show_all_packets);
00442             }
00443         for (i=0; i!=node_list.size(); i++)
00444             {
00445                 current_node = (Node)node_list.elementAt(i);
00446                 current_node.paint(g, metrics, node_color);
00447             }
00448 
00449     }
 | 
| 
 | 
| Run method. Definition at line 54 of file CyclopsSimulator.java. 00055     {
00056         while (true)
00057             {
00058                 if (running)
00059                     {
00060                         simulate();
00061                         if (trace_flag)
00062                             {
00063                                 sendPacket();
00064                             }
00065                         try
00066                             {
00067                                 Thread.sleep(100);
00068                             }
00069                         catch (InterruptedException exception)
00070                             {
00071                             }
00072                     }
00073                 else
00074                     {
00075                         try
00076                             {
00077                                 Thread.sleep(100);
00078                             }
00079                         catch (InterruptedException exception)
00080                             {
00081                             }
00082                     }
00083                 if (destroy)
00084                     {
00085                         return;
00086                     }
00087             }
00088     }
 | 
| 
 | 
| Sends packet from source to destination. Source and destination are start_node and end_node. Definition at line 186 of file CyclopsSimulator.java. 00187     {
00188         Node temp;
00189 
00190         temp = findNode(start_node_name);
00191         if (temp != null)
00192             {
00193                 temp = findNode(end_node_name);
00194                 if (temp != null)
00195                     {
00196                         Packet traced = new Packet(120, start_node, end_node, 14);
00197                         traced.setDrawingFlag(true);
00198                         start_node.receive(traced);
00199                     }
00200             }
00201     }
 | 
| 
 | 
| Main simulation method. Each simulation cycle is made of two subcycles. First all lines transmits theirs packets and then every node analysises packages and deternimes to which node it shoul be sent. Definition at line 105 of file CyclopsSimulator.java. 00106     {
00107         int i;
00108         Line current_line;
00109         Node current_node;
00110 
00111         for (i=0; i<line_list.size(); i++)
00112             {
00113                 current_line = (Line)line_list.elementAt(i);
00114                 current_line.transmitAll();
00115             }
00116         for (i=0; i<node_list.size(); i++)
00117             {
00118                 current_node = (Node)node_list.elementAt(i);
00119                 current_node.transmitAll();
00120             }
00121         for (i=0; i<node_list.size(); i++)
00122             {
00123                 current_node = (Node)node_list.elementAt(i);
00124                 current_node.updateRoutingTable();
00125             }
00126     }
 | 
| 
 | 
| Starts/resumes simulation. Definition at line 148 of file CyclopsSimulator.java. Referenced by NetworkSpacePanel::startSimulation(). 
 00149     {
00150         running = true;
00151     }
 | 
| 
 | 
| Stops/suspends simulation. Definition at line 240 of file CyclopsSimulator.java. Referenced by NetworkSpacePanel::stopSimulation(). 
 00241     {
00242         running = false;
00243     }
 | 
| 
 | 
| Topology update. Definition at line 132 of file CyclopsSimulator.java. 00133     {
00134         int i;
00135         Node current_node;
00136 
00137         for (i=0; i<node_list.size(); i++)
00138             {
00139                 current_node = (Node)node_list.elementAt(i);
00140                 current_node.updateRoutingTable();
00141             }
00142     }
 | 
| 
 | 
| Trace packets from source to destination. 
 Definition at line 159 of file CyclopsSimulator.java. Referenced by NetworkSpacePanel::tracePackets(). 
 00160     {
00161         Node start_temp;
00162         Node end_temp;
00163 
00164         start_temp = findNode(start_name);
00165         if (start_temp == null)
00166             {
00167                 return;
00168             }
00169         end_temp = findNode(end_name);
00170         if (end_temp == null)
00171             {
00172                 return;
00173             }
00174         start_node = start_temp;
00175         start_node_name = start_name;
00176         end_node = end_temp;
00177         end_node_name = end_name;
00178         trace_flag = true;
00179     }
 | 
| 
 | 
| Flag for destroying thread. Definition at line 49 of file CyclopsSimulator.java. | 
| 
 | 
| Destination node. Definition at line 37 of file CyclopsSimulator.java. | 
| 
 | 
| Destination node name. Definition at line 40 of file CyclopsSimulator.java. | 
| 
 | 
| List of all lines in a network. Definition at line 28 of file CyclopsSimulator.java. | 
| 
 | 
| List of all nodes in a network. Definition at line 25 of file CyclopsSimulator.java. | 
| 
 | 
| Flag for stoping simulation. Definition at line 46 of file CyclopsSimulator.java. | 
| 
 | 
| Source node. Definition at line 31 of file CyclopsSimulator.java. | 
| 
 | 
| Source node name. Definition at line 34 of file CyclopsSimulator.java. | 
| 
 | 
| Flag for packet tracing. Definition at line 43 of file CyclopsSimulator.java. | 
 1.2.7 written by Dimitri van Heesch,
 © 1997-2001
1.2.7 written by Dimitri van Heesch,
 © 1997-2001