package body Directed_Graphs is pragma Warnings (Off, "variable ""Busy*"" is not referenced"); pragma Warnings (Off, "variable ""Lock*"" is not referenced"); -- See comment in Ada.Containers.Helpers --------- -- "=" -- --------- overriding function "=" (Left, Right : in Graph) return Boolean is begin return False; end "="; ------------ -- Adjust -- ------------ procedure Adjust (Container : in out Graph) is begin null; end Adjust; ------------ -- Append -- ------------ procedure Append (Container : in out Graph; Position : out Cursor) is begin null; end Append; procedure Append (Container : in out Graph; Label : in Node_Label_Type; Position : out Cursor) is begin null; end Append; ------------------ -- Append_Label -- ------------------ procedure Append_Label (Container : in out Graph; Node : in Node_Type; Label : in Node_Label_Type) is begin null; end Append_Label; procedure Append_Label (Position : in out Cursor; Label : in Node_Label_Type) is begin null; end Append_Label; procedure Append_Label (Container : in out Graph; Edge : in Edge_Type; Label : in Edge_Label_Type) is begin null; end Append_Label; ------------ -- Assign -- ------------ procedure Assign (Target : in out Graph; Source : in Graph) is begin null; end Assign; -------------- -- Children -- -------------- function Children (Container : in Graph; Node : in Node_Type) return Node_Array is begin return N : Node_Array (1 .. 0); end Children; function Children (Position : in Cursor) return Node_Array is begin return N : Node_Array (1 .. 0); end Children; ----------- -- Clear -- ----------- procedure Clear (Container : in out Graph) is begin null; end Clear; ------------------ -- Clear_Labels -- ------------------ procedure Clear_Labels (Container : in out Graph) is begin null; end Clear_Labels; ------------------------------ -- Constant_Label_Reference -- ------------------------------ function Constant_Label_Reference (Container : in Graph; Node : in Node_Type) return Node_Label_Constant_Reference is begin return R : Node_Label_Constant_Reference := (Element => null, Control => (Ada.Finalization.Controlled with null)); end Constant_Label_Reference; function Constant_Label_Reference (Position : in Cursor) return Node_Label_Constant_Reference is begin return R : Node_Label_Constant_Reference := (Element => null, Control => (Ada.Finalization.Controlled with null)); end Constant_Label_Reference; function Constant_Label_Reference (Container : in Graph; Edge : in Edge_Type) return Edge_Label_Constant_Reference is begin return R : Edge_Label_Constant_Reference := (Element => null, Control => (Ada.Finalization.Controlled with null)); end Constant_Label_Reference; -------------- -- Contains -- -------------- function Contains (Container : in Graph; Node : in Node_Type) return Boolean is begin return False; end Contains; function Contains (Container : in Graph; Node : in Node_Type; Label : in Node_Label_Type) return Boolean is begin return False; end Contains; function Contains (Container : in Graph; Edge : in Edge_Type) return Boolean is begin return False; end Contains; function Contains (Container : in Graph; Edge : in Edge_Type; Label : in Edge_Label_Type) return Boolean is begin return False; end Contains; -------------------------- -- Contains_In_Subgraph -- -------------------------- function Contains_In_Subgraph (Position : in Cursor; Node : in Node_Type) return Boolean is begin return False; end Contains_In_Subgraph; function Contains_In_Subgraph (Position : in Cursor; Node : in Node_Type; Label : in Node_Label_Type) return Boolean is begin return False; end Contains_In_Subgraph; function Contains_In_Subgraph (Position : in Cursor; Edge : in Edge_Type) return Boolean is begin return False; end Contains_In_Subgraph; function Contains_In_Subgraph (Position : in Cursor; Edge : in Edge_Type; Label : in Edge_Label_Type) return Boolean is begin return False; end Contains_In_Subgraph; -------------------- -- Contains_Label -- -------------------- function Contains_Label (Container : in Graph; Label : in Node_Label_Type) return Boolean is begin return False; end Contains_Label; function Contains_Label (Container : in Graph; Label : in Edge_Label_Type) return Boolean is begin return False; end Contains_Label; -------------------------------- -- Contains_Label_In_Subgraph -- -------------------------------- function Contains_Label_In_Subgraph (Position : in Cursor; Label : in Node_Label_Type) return Boolean is begin return False; end Contains_Label_In_Subgraph; function Contains_Label_In_Subgraph (Position : in Cursor; Label : in Edge_Label_Type) return Boolean is begin return False; end Contains_Label_In_Subgraph; ------------- -- Context -- ------------- procedure Context (Container : in Graph; Node : in Node_Type; Parents : out Node_Array; Children : out Node_Array) is begin null; end Context; procedure Context (Position : in Cursor; Parents : out Node_Array; Children : out Node_Array) is begin null; end Context; ---------- -- Copy -- ---------- function Copy (Source : in Graph) return Graph is begin return Empty_Graph; end Copy; ------------ -- Degree -- ------------ function Degree (Container : in Graph; Node : in Node_Type) return Ada.Containers.Count_Type is begin return Ada.Containers.Count_Type'First; end Degree; function Degree (Position : in Cursor) return Ada.Containers.Count_Type is begin return Ada.Containers.Count_Type'First; end Degree; ------------ -- Delete -- ------------ procedure Delete (Container : in out Graph; Node : in Node_Type) is begin null; end Delete; procedure Delete (Position : in out Cursor) is begin null; end Delete; procedure Delete (Container : in out Graph; Nodes : in Node_Array) is begin null; end Delete; procedure Delete (Container : in out Graph; Edge : in Edge_Type) is begin null; end Delete; procedure Delete (Container : in out Graph; Edges : in Edge_Array) is begin null; end Delete; ------------------ -- Delete_Label -- ------------------ procedure Delete_Label (Container : in out Graph; Node : in Node_Type) is begin null; end Delete_Label; procedure Delete_Label (Position : in out Cursor) is begin null; end Delete_Label; procedure Delete_Label (Container : in out Graph; Edge : in Edge_Type) is begin null; end Delete_Label; --------------------- -- Delete_Subgraph -- --------------------- procedure Delete_Subgraph (Position : in out Cursor) is begin null; end Delete_Subgraph; ---------------- -- Edge_Count -- ---------------- function Edge_Count (Container : in Graph) return Ada.Containers.Count_Type is begin return Ada.Containers.Count_Type'First; end Edge_Count; ----------- -- Edges -- ----------- function Edges (Container : in Graph) return Edge_Array is begin return E : Edge_Array (1 .. 0); end Edges; -------------- -- Finalize -- -------------- procedure Finalize (Container : in out Graph) is begin null; end Finalize; procedure Finalize (Object : in out Iterator) is begin null; end Finalize; procedure Finalize (Object : in out Subgraph_Iterator) is begin null; end Finalize; ---------- -- Find -- ---------- function Find (Container : in Graph; Label : in Node_Label_Type) return Node_Array is begin return N : Node_Array (1 .. 0); end Find; function Find (Container : in Graph; Label : in Edge_Label_Type) return Edge_Array is begin return E : Edge_Array (1 .. 0); end Find; ---------------------- -- Find_In_Subgraph -- ---------------------- function Find_In_Subgraph (Position : in Cursor; Label : in Node_Label_Type) return Node_Array is begin return N : Node_Array (1 .. 0); end Find_In_Subgraph; function Find_In_Subgraph (Position : in Cursor; Label : in Edge_Label_Type) return Edge_Array is begin return E : Edge_Array (1 .. 0); end Find_In_Subgraph; ----------- -- First -- ----------- function First (Container : in Graph) return Cursor is begin return No_Element; end First; function First (Object : in Iterator) return Cursor is begin return No_Element; end First; function First (Object : in Subgraph_Iterator) return Cursor is begin return No_Element; end First; -------------- -- Has_Edge -- -------------- function Has_Edge (Container : in Graph; Parent, Child : in Node_Type) return Boolean is begin return False; end Has_Edge; function Has_Edge (Parent, Child : in Cursor) return Boolean is begin return False; end Has_Edge; ----------------- -- Has_Element -- ----------------- function Has_Element (Position : in Cursor) return Boolean is begin return False; end Has_Element; --------------- -- Has_Label -- --------------- function Has_Label (Container : in Graph; Node : in Node_Type) return Boolean is begin return False; end Has_Label; function Has_Label (Position : in Cursor) return Boolean is begin return False; end Has_Label; function Has_Label (Container : in Graph; Edge : in Edge_Type) return Boolean is begin return False; end Has_Label; ---------------------- -- Has_Labeled_Edge -- ---------------------- function Has_Labeled_Edge (Container : in Graph; Parent, Child : Node_Type) return Boolean is begin return False; end Has_Labeled_Edge; function Has_Labeled_Edge (Parent, Child : in Cursor) return Boolean is begin return False; end Has_Labeled_Edge; ------------------ -- Has_Neighbor -- ------------------ function Has_Neighbor (Container : in Graph; Left, Right : in Node_Type) return Boolean is begin return False; end Has_Neighbor; function Has_Neighbor (Left, Right : in Cursor) return Boolean is begin return False; end Has_Neighbor; ------------- -- Inbound -- ------------- function Inbound (Container : in Graph; Node : in Node_Type) return Edge_Array is begin return E : Edge_Array (1 .. 0); end Inbound; function Inbound (Position : in Cursor) return Edge_Array is begin return E : Edge_Array (1 .. 0); end Inbound; -------------- -- Indegree -- -------------- function Indegree (Container : in Graph; Node : in Node_Type) return Ada.Containers.Count_Type is begin return Ada.Containers.Count_Type'First; end Indegree; function Indegree (Position : in Cursor) return Ada.Containers.Count_Type is begin return Ada.Containers.Count_Type'First; end Indegree; ------------ -- Insert -- ------------ procedure Insert (Container : in out Graph; Node : in Node_Type) is begin null; end Insert; procedure Insert (Container : in out Graph; Node : in Node_Type; Label : in Node_Label_Type) is begin null; end Insert; procedure Insert (Container : in out Graph; Nodes : in Node_Array) is begin null; end Insert; procedure Insert (Container : in out Graph; Edge : in Edge_Type) is begin null; end Insert; procedure Insert (Container : in out Graph; Edge : in Edge_Type; Label : in Edge_Label_Type) is begin null; end Insert; procedure Insert (Container : in out Graph; Edges : in Edge_Array) is begin null; end Insert; -------------- -- Is_Empty -- -------------- function Is_Empty (Container : in Graph) return Boolean is begin return True; end Is_Empty; ------------- -- Iterate -- ------------- function Iterate (Container : in Graph) return Graph_Iterator_Interfaces.Reversible_Iterator'Class is begin return It : Iterator := (Ada.Finalization.Limited_Controlled with Container => null, Node => Extended_Node_Type'First); end Iterate; ---------------------- -- Iterate_Subgraph -- ---------------------- function Iterate_Subgraph (Container : in Graph; Position : in Cursor) return Graph_Iterator_Interfaces.Forward_Iterator'Class is begin return It : Subgraph_Iterator := (Ada.Finalization.Limited_Controlled with Container => null, Root_Node => Node_Type'First, Visited => Node_Vectors.Empty_Vector, Current => Extended_Node_Type'First); end Iterate_Subgraph; ----------- -- Label -- ----------- function Label (Container : in Graph; Node : in Node_Type) return Node_Label_Type is begin return N : Node_Label_Type; end Label; function Label (Position : in Cursor) return Node_Label_Type is begin return N : Node_Label_Type; end Label; function Label (Container : in Graph; Edge : in Edge_Type) return Edge_Label_Type is begin return E : Edge_Label_Type; end Label; --------------------- -- Label_Reference -- --------------------- function Label_Reference (Container : in Graph; Node : in Node_Type) return Node_Label_Reference is begin return R : Node_Label_Reference := (Element => null, Control => (Ada.Finalization.Controlled with null)); end Label_Reference; function Label_Reference (Position : in Cursor) return Node_Label_Reference is begin return R : Node_Label_Reference := (Element => null, Control => (Ada.Finalization.Controlled with null)); end Label_Reference; function Label_Reference (Container : in Graph; Edge : in Edge_Type) return Edge_Label_Reference is begin return R : Edge_Label_Reference := (Element => null, Control => (Ada.Finalization.Controlled with null)); end Label_Reference; --------------------- -- Labeled_Context -- --------------------- procedure Labeled_Context (Container : in Graph; Node : in Node_Type; Parents : out Node_Array; Children : out Node_Array; Label : out Node_Label_Type) is begin null; end Labeled_Context; procedure Labeled_Context (Position : in Cursor; Parents : out Node_Array; Children : out Node_Array; Label : out Node_Label_Type) is begin null; end Labeled_Context; ---------- -- Last -- ---------- function Last (Container : in Graph) return Cursor is begin return No_Element; end Last; function Last (Object : in Iterator) return Cursor is begin return No_Element; end Last; ---------- -- Move -- ---------- procedure Move (Target, Source : in out Graph) is begin null; end Move; --------------- -- Neighbors -- --------------- function Neighbors (Container : in Graph; Node : in Node_Type) return Node_Array is begin return N : Node_Array (1 .. 0); end Neighbors; function Neighbors (Position : in Cursor) return Node_Array is begin return N : Node_Array (1 .. 0); end Neighbors; ---------- -- Next -- ---------- function Next (Position : in Cursor) return Cursor is begin return No_Element; end Next; procedure Next (Position : in out Cursor) is begin null; end Next; function Next (Object : in Iterator; Position : in Cursor) return Cursor is begin return No_Element; end Next; function Next (Object : in Subgraph_Iterator; Position : in Cursor) return Cursor is begin return No_Element; end Next; ---------------- -- Node_Count -- ---------------- function Node_Count (Container : in Graph) return Ada.Containers.Count_Type is begin return Ada.Containers.Count_Type'First; end Node_Count; ---------------- -- Node_Range -- ---------------- procedure Node_Range (Container : in Graph; Minimum : out Node_Type; Maximum : out Node_Type) is begin null; end Node_Range; ----------- -- Nodes -- ----------- function Nodes (Container : in Graph) return Node_Array is begin return N : Node_Array (1 .. 0); end Nodes; -------------- -- Outbound -- -------------- function Outbound (Container : in Graph; Node : in Node_Type) return Edge_Array is begin return E : Edge_Array (1 .. 0); end Outbound; function Outbound (Position : in Cursor) return Edge_Array is begin return E : Edge_Array (1 .. 0); end Outbound; --------------- -- Outdegree -- --------------- function Outdegree (Container : in Graph; Node : in Node_Type) return Ada.Containers.Count_Type is begin return Ada.Containers.Count_Type'First; end Outdegree; function Outdegree (Position : in Cursor) return Ada.Containers.Count_Type is begin return Ada.Containers.Count_Type'First; end Outdegree; ------------- -- Parents -- ------------- function Parents (Container : in Graph; Node : in Node_Type) return Node_Array is begin return N : Node_Array (1 .. 0); end Parents; function Parents (Position : in Cursor) return Node_Array is begin return N : Node_Array (1 .. 0); end Parents; -------------- -- Previous -- -------------- function Previous (Position : in Cursor) return Cursor is begin return No_Element; end Previous; procedure Previous (Position : in out Cursor) is begin null; end Previous; function Previous (Object : in Iterator; Position : in Cursor) return Cursor is begin return No_Element; end Previous; ---------- -- Read -- ---------- procedure Read (Stream : not null access Streams.Root_Stream_Type'Class; Container : out Graph) is begin null; end Read; procedure Read (Stream : not null access Streams.Root_Stream_Type'Class; Position : out Cursor) is begin null; end Read; procedure Read (Stream : not null access Streams.Root_Stream_Type'Class; Item : out Node_Label_Constant_Reference) is begin null; end Read; procedure Read (Stream : not null access Streams.Root_Stream_Type'Class; Item : out Node_Label_Reference) is begin null; end Read; procedure Read (Stream : not null access Streams.Root_Stream_Type'Class; Item : out Edge_Label_Constant_Reference) is begin null; end Read; procedure Read (Stream : not null access Streams.Root_Stream_Type'Class; Item : out Edge_Label_Reference) is begin null; end Read; ------------------- -- Replace_Label -- ------------------- procedure Replace_Label (Container : in out Graph; Node : in Node_Type; Label : in Node_Label_Type) is begin null; end Replace_Label; procedure Replace_Label (Position : in out Cursor; Label : in Node_Label_Type) is begin null; end Replace_Label; procedure Replace_Label (Container : in out Graph; Edge : in Edge_Type; Label : in Edge_Label_Type) is begin null; end Replace_Label; ---------- -- Swap -- ---------- procedure Swap (Container : in out Graph; Left, Right : in Node_Type) is begin null; end Swap; procedure Swap (Left, Right : in out Cursor) is begin null; end Swap; --------------- -- To_Cursor -- --------------- function To_Cursor (Container : in Graph; Node : in Node_Type) return Cursor is begin return No_Element; end To_Cursor; -------------- -- To_Graph -- -------------- function To_Graph (Nodes : in Node_Array; Edges : in Edge_Array) return Graph is begin return Empty_Graph; end To_Graph; ------------- -- To_Hash -- ------------- function To_Hash (Node : in Node_Type) return Ada.Containers.Hash_Type is begin return Ada.Containers.Hash_Type'First; end To_Hash; function To_Hash (Edge : in Edge_Type) return Ada.Containers.Hash_Type is begin return Ada.Containers.Hash_Type'First; end To_Hash; ------------------ -- Unused_Nodes -- ------------------ function Unused_Nodes (Container : in Graph; Count : in Positive := 1) return Node_Array is begin return N : Node_Array (1 .. 0); end Unused_Nodes; ----------- -- Write -- ----------- procedure Write (Stream : not null access Streams.Root_Stream_Type'Class; Container : in Graph) is begin null; end Write; procedure Write (Stream : not null access Streams.Root_Stream_Type'Class; Position : in Cursor) is begin null; end Write; procedure Write (Stream : not null access Streams.Root_Stream_Type'Class; Item : in Node_Label_Constant_Reference) is begin null; end Write; procedure Write (Stream : not null access Streams.Root_Stream_Type'Class; Item : in Node_Label_Reference) is begin null; end Write; procedure Write (Stream : not null access Streams.Root_Stream_Type'Class; Item : in Edge_Label_Constant_Reference) is begin null; end Write; procedure Write (Stream : not null access Streams.Root_Stream_Type'Class; Item : in Edge_Label_Reference) is begin null; end Write; end Directed_Graphs;