1. -- 
  2. --  Uwe R. Zimmer, Australia, September 2016 
  3. -- 
  4.  
  5. package body Routers_Configuration_Structures is 
  6.  
  7.    function Get_Topology (Command_Line_Parameters : Command_Line_Options) return Topology_Kind'Class is 
  8.  
  9.       CLP : Command_Line_Options renames Command_Line_Parameters; 
  10.  
  11.    begin 
  12.       case CLP.Selected_Topology is 
  13.          when Line                  => return Line                  (Size => CLP.Size); 
  14.          when Ring                  => return Ring                  (Size => CLP.Size); 
  15.          when Star                  => return Star                  (Size => CLP.Size); 
  16.          when Fully_Connected       => return Fully_Connected       (Size => CLP.Size); 
  17.          when Tree                  => return Trees                 (Degree => CLP.Degree, Depths => CLP.Depths); 
  18.          when Mesh                  => return Mesh                  (Dimension => CLP.Dimension, Size => CLP.Size); 
  19.          when Torus                 => return Torus                 (Dimension => CLP.Dimension, Size => CLP.Size); 
  20.          when Hypercube             => return Hypercube             (Dimension => CLP.Dimension); 
  21.          when Cube_Connected_Cycles => return Cube_Connected_Cycles (Dimension => CLP.Dimension); 
  22.          when Butterfly             => return Butterfly             (Dimension => CLP.Dimension); 
  23.          when Wrap_Around_Butterfly => return Wrap_Around_Butterfly (Dimension => CLP.Dimension); 
  24.       end case; 
  25.    end Get_Topology; 
  26.  
  27. end Routers_Configuration_Structures;