|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T V
Length: 7221 (0x1c35)
Types: TextFile
Names: »V«
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS
└─⟦91c658230⟧ »DATA«
└─⟦458657fb6⟧
└─⟦220843204⟧
└─⟦this⟧
with Action;
with Directory;
package Activity_Implementation is
-- An Activity maps a subsystem to a spec view and a non-spec view of
-- that subsystem.
pragma Subsystem (Directory, Closed);
pragma Module_Name (4, 2909);
subtype Activity_Id is Directory.Object;
subtype Subsystem_Id is Directory.Object;
subtype Spec_View_Id is Directory.Object;
subtype Load_View_Id is Directory.Object;
function Null_Activity return Activity_Id renames Directory.Nil;
function Null_Subsystem return Subsystem_Id renames Directory.Nil;
function Null_Spec_View return Spec_View_Id renames Directory.Nil;
function Null_Load_View return Load_View_Id renames Directory.Nil;
type Activity_Handle is limited private;
function Current return Activity_Id;
-- returns Activity currently associated with this job; if no Activity
-- has been associated with this job, then returns Activity currently
-- associated with this sesssion.
procedure Set (Activity : Activity_Id);
-- make Activity the current activity for this job only
procedure Set_Default (Activity : Activity_Id);
-- make Activity the current activity for this job and session
function Nil return Activity_Handle;
function Is_Nil (Handle : Activity_Handle) return Boolean;
procedure Open (Activity : Activity_Id;
Handle : in out Activity_Handle;
Status : out Directory.Error_Status;
Action_Id : Action.Id := Action.Null_Id;
For_Update : Boolean := False;
Prevent_Create : Boolean := False);
procedure Close (Handle : in out Activity_Handle;
Status : out Directory.Error_Status);
-- An open/close protocol is used to deal with the problem of concurrent
-- access to activities. A new version of the activity will be created
-- when an Activity_Id is opened For_Update unless Prevent_Create is
-- set to True
function Default_Handle
(Activity : Activity_Id := Current) return Activity_Handle;
-- for use by loader
function Enclosing_View (Unit : Directory.Ada.Unit) return Directory.Object;
-- returns either a Spec_View_Id or a Load_View_Id.
function Enclosing_Subsystem
(View_Id : Directory.Object) return Subsystem_Id;
-- takes either a Spec_View_Id or a Load_View_Id
procedure Create (New_Activity : String;
Action_Id : Action.Id;
Status : out Directory.Error_Status;
New_Id : out Activity_Id);
type Creation_Mode is (Differential, Exact_Copy, Value_Copy);
procedure Create (New_Activity : String;
From : Activity_Handle;
Status : out Directory.Error_Status;
New_Id : out Activity_Id;
Mode : Creation_Mode := Exact_Copy);
-- Create New_Activity based on the contents of From (and using Action_Id
-- associated with From)
procedure Add_Subsystem (Subsystem : Subsystem_Id;
Load_View : Load_View_Id := Null_Load_View;
Spec_View : Spec_View_Id := Null_Spec_View;
Handle : Activity_Handle);
-- Add a subsystem to the domain of an activity
procedure Remove_Subsystem
(Subsystem : Subsystem_Id; Handle : Activity_Handle);
-- Remove a subsystem from the domain of an activity
function Has_Subsystem (Subsystem : Subsystem_Id; Handle : Activity_Handle)
return Boolean;
-- Test subsystem's membership in domain of an activity.
function Get_Spec_View (Subsystem : Subsystem_Id; Handle : Activity_Handle)
return Spec_View_Id;
function Get_Load_View (Subsystem : Subsystem_Id; Handle : Activity_Handle)
return Load_View_Id;
procedure Set_Spec_View (Spec_View : Spec_View_Id;
Handle : Activity_Handle);
procedure Set_Load_View (Load_View : Load_View_Id;
Handle : Activity_Handle);
function Get_Spec_View_Source
(Subsystem : Subsystem_Id; Handle : Activity_Handle)
return Activity_Id;
function Get_Load_View_Source
(Subsystem : Subsystem_Id; Handle : Activity_Handle)
return Activity_Id;
procedure Set_Spec_View_Source (Subsystem : Subsystem_Id;
Source : Activity_Id;
Handle : Activity_Handle);
procedure Set_Load_View_Source (Subsystem : Subsystem_Id;
Source : Activity_Id;
Handle : Activity_Handle);
procedure Get_Spec_Value (Subsystem : Subsystem_Id;
Indirect : out Boolean;
Value : out Directory.Object;
Handle : Activity_Handle);
procedure Get_Load_Value (Subsystem : Subsystem_Id;
Indirect : out Boolean;
Value : out Directory.Object;
Handle : Activity_Handle);
procedure Get_Values (Subsystem : Subsystem_Id;
Spec_Indirect : out Boolean;
Spec_Value : out Directory.Object;
Load_Indirect : out Boolean;
Load_Value : out Directory.Object;
Handle : Activity_Handle);
procedure Set_Spec_Value (Subsystem : Subsystem_Id;
Indirect : Boolean;
Value : Directory.Object;
Handle : Activity_Handle);
procedure Set_Load_Value (Subsystem : Subsystem_Id;
Indirect : Boolean;
Value : Directory.Object;
Handle : Activity_Handle);
procedure Set_Values (Subsystem : Subsystem_Id;
Spec_Indirect : Boolean;
Spec_Value : Directory.Object;
Load_Indirect : Boolean;
Load_Value : Directory.Object;
Handle : Activity_Handle);
Undefined : exception;
type Handle_Ref is access Activity_Handle;
pragma Segmented_Heap (Handle_Ref);
type Iterator is limited private;
procedure Init (Iter : out Iterator; Handle : Handle_Ref);
procedure Next (Iter : in out Iterator);
function Done (Iter : Iterator) return Boolean;
function Get_Subsystem (Iter : Iterator) return Subsystem_Id;
function Is_Activity (File : Directory.Object) return Boolean;
Default_Handle_Undefined : exception; -- raised by Default_Handle
end Activity_Implementation;