1. -- 
  2. --  Uwe R. Zimmer, Australia, September 2016 
  3. -- 
  4.  
  5. with Topologies; use Topologies; 
  6.  
  7. package Routers_Configuration_Structures is 
  8.  
  9.    type Preconfigured_Topologies is (Line, Ring, Star, Fully_Connected, Tree, Mesh, Torus, Hypercube, Cube_Connected_Cycles, Butterfly, Wrap_Around_Butterfly); 
  10.  
  11.    type Test_Modes is (One_To_All, All_to_One); 
  12.  
  13.    type Command_Line_Options is record 
  14.       Selected_Topology   : Preconfigured_Topologies := Cube_Connected_Cycles; 
  15.       Size                : Positive                 := 20; 
  16.       Degree              : Positive                 := 3; 
  17.       Depths              : Positive                 := 4; 
  18.       Dimension           : Positive                 := 3; 
  19.       Print_Connections   : Boolean                  := True; 
  20.       Print_Distances     : Boolean                  := True; 
  21.       Routers_Settle_Time : Duration                 := 0.1; 
  22.       Comms_Timeout       : Duration                 := 0.1; 
  23.       Test_Mode           : Test_Modes               := One_To_All; 
  24.       Dropouts            : Natural                  := 0; 
  25.    end record; 
  26.  
  27.    function Get_Topology (Command_Line_Parameters : Command_Line_Options) return Topology_Kind'Class; 
  28.  
  29. end Routers_Configuration_Structures;