ocarina-backends-replication_properties.ads 5.76 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
------------------------------------------------------------------------------
--                                                                          --
--                           OCARINA COMPONENTS                             --
--                                                                          --
--                 OCARINA.BACKENDS.REPLICATION_PROPERTIES                  --
--                                                                          --
--                                 S p e c                                  --
--                                                                          --
--                     Copyright (C) 2016 ESA & ISAE.                       --
--                                                                          --
-- Ocarina  is free software; you can redistribute it and/or modify under   --
-- terms of the  GNU General Public License as published  by the Free Soft- --
-- ware  Foundation;  either version 3,  or (at your option) any later ver- --
-- sion. Ocarina is distributed in the hope that it will be useful, but     --
-- WITHOUT ANY WARRANTY; without even the implied warranty of               --
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.                     --
--                                                                          --
-- As a special exception under Section 7 of GPL version 3, you are granted --
-- additional permissions described in the GCC Runtime Library Exception,   --
-- version 3.1, as published by the Free Software Foundation.               --
--                                                                          --
-- You should have received a copy of the GNU General Public License and    --
-- a copy of the GCC Runtime Library Exception along with this program;     --
-- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
-- <http://www.gnu.org/licenses/>.                                          --
--                                                                          --
--                 Ocarina is maintained by the TASTE project               --
--                      (taste-users@lists.tuxfamily.org)                   --
--                                                                          --
------------------------------------------------------------------------------

package Ocarina.Backends.Replication_Properties is

   procedure Init;
   --  Initialize some internal parts of the package

   ----------------------------
   -- Replication_Properties --
   ----------------------------

   type Replication_Types is
     (Replication_Active,
      Replication_Passive,
      Replication_None); --  Unspecified

   function Get_Replication_Description (C : Node_Id) return Name_Id;
   --  Returns the value of the Description property.

   function Get_Replication_Description
     (Property_Node    : Node_Id;
      Applies_To_Node  : Node_Id)
      return String;
   --  returns the value of the description property when its is
   --  applied to the Applies_To_Node node.

   function Get_Replication_Replica_Number
      (Property_Node   : Node_Id;
       Applies_To_Node : Node_Id)
      return Unsigned_Long_Long;
   --  Returns the value of the Replica_Number property when its is
   --  applied to the Applies_To_Node node.

   function Get_Replication_Replica_Number (C : Node_Id)
      return Unsigned_Long_Long;
   --  Returns the value of the Replica_Number property.

   function Get_Replication_Min_Nbr_Replica (C : Node_Id)
      return Unsigned_Long_Long;
   --  Returns the value of the Min_Nbr_Replica property.

   function Get_Replication_Max_Nbr_Replica (C : Node_Id)
      return Unsigned_Long_Long;
   --  Returns the value of the Max_Nbr_Replica property.

   function Get_Replication_Replica_Identifiers (C : Node_Id)
      return List_Id;
   --  Returns the value of the Replica_Identifiers property.

   function Get_Replication_Replica_Identifiers
   (Property_Node   : Node_Id;
    Applies_To_Node : Node_Id)
   return List_Id;
   --  Returns the value of the Replica_Identifiers property
   --  when its is applied to the Applies_To_Node node.

   function Get_Replication_Replica_Type (C : Node_Id)
      return Replication_Types;
   --  Returns the value of the Replica_Type property.

   function Get_Replication_Replica_Type
   (Property_Node   : Node_Id;
    Applies_To_Node : Node_Id)
   return Replication_Types;
   --  Returns the value of the Replica_Type property
   --  when its is applied to the Applies_To_Node node

   function Get_Replication_Consensus_Algorithm
     (C       : Node_Id;
      In_Mode : Name_Id := No_Name)
     return Name_Id;
   --  Return the consensus algorithm of the given replicated component.
   --  Return No_Name in case the property is not defined for the replicated
   --  component.
   --  If In_Mode is a valid mode name for the replicated component, return the
   --  property association declared in the context of this mode.

   procedure Get_Replication_Consensus_Algorithm
   (Property_Node   : Node_Id;
    Consensus_Node_List : in out Node_List);
   --  updates the consensus algorithm list of the given replicated component.
   --  the list contains the diffrent types of the consensus algorithm
   --  (source_Text, reference or classifier), the feature to each is applied
   --  and the subprogram description.

   function Get_Replication_Consensus_Algorithm
     (C       : Node_Id;
      In_Mode : Name_Id := No_Name)
     return Node_Id;
   --  Same as above, but returns the whole property association

   function Is_Defined_Consensus_Algorithm_Property
     (C       : Node_Id;
      In_Mode : Name_Id := No_Name)
     return Boolean;
   --  Returns True IF the property describing the consensus algorithm
   --  is defined for the replicated component.

end Ocarina.Backends.Replication_Properties;