aboutsummaryrefslogtreecommitdiff
path: root/body/fltk-environment.adb
diff options
context:
space:
mode:
Diffstat (limited to 'body/fltk-environment.adb')
-rw-r--r--body/fltk-environment.adb135
1 files changed, 88 insertions, 47 deletions
diff --git a/body/fltk-environment.adb b/body/fltk-environment.adb
index 22cf676..c510e26 100644
--- a/body/fltk-environment.adb
+++ b/body/fltk-environment.adb
@@ -43,6 +43,8 @@ package body FLTK.Environment is
-- Functions From C --
------------------------
+ -- Static --
+
function fl_preferences_new_uuid
return Interfaces.C.Strings.chars_ptr;
pragma Import (C, fl_preferences_new_uuid, "fl_preferences_new_uuid");
@@ -51,6 +53,8 @@ package body FLTK.Environment is
+ -- Allocation --
+
function new_fl_pref_database_path
(P, V, A : in Interfaces.C.char_array)
return Storage.Integer_Address;
@@ -77,6 +81,8 @@ package body FLTK.Environment is
+ -- More Allocation --
+
function new_fl_pref_group_copy
(D : in Storage.Integer_Address)
return Storage.Integer_Address;
@@ -111,15 +117,17 @@ package body FLTK.Environment is
+ -- Disk Activity --
+
procedure fl_preferences_flush
(E : in Storage.Integer_Address);
pragma Import (C, fl_preferences_flush, "fl_preferences_flush");
pragma Inline (fl_preferences_flush);
function fl_preferences_getuserdatapath
- (E : in Storage.Integer_Address;
- P : in Interfaces.C.char_array;
- L : in Interfaces.C.int)
+ (E : in Storage.Integer_Address;
+ P : out Interfaces.C.char_array;
+ L : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_preferences_getuserdatapath, "fl_preferences_getuserdatapath");
pragma Inline (fl_preferences_getuserdatapath);
@@ -127,6 +135,8 @@ package body FLTK.Environment is
+ -- Deletion --
+
function fl_preferences_deleteentry
(E : in Storage.Integer_Address;
K : in Interfaces.C.char_array)
@@ -162,6 +172,8 @@ package body FLTK.Environment is
+ -- Key Values --
+
function fl_preferences_entries
(E : in Storage.Integer_Address)
return Interfaces.C.int;
@@ -192,6 +204,8 @@ package body FLTK.Environment is
+ -- Groups --
+
function fl_preferences_groups
(P : in Storage.Integer_Address)
return Interfaces.C.int;
@@ -215,6 +229,8 @@ package body FLTK.Environment is
+ -- Names --
+
function fl_preferences_name
(P : in Storage.Integer_Address)
return Interfaces.C.Strings.chars_ptr;
@@ -230,6 +246,8 @@ package body FLTK.Environment is
+ -- Retrieval --
+
function fl_preferences_get_int
(E : in Storage.Integer_Address;
K : in Interfaces.C.char_array;
@@ -267,11 +285,11 @@ package body FLTK.Environment is
pragma Inline (fl_preferences_get_str);
function fl_preferences_get_str_limit
- (E : in Storage.Integer_Address;
- K : in Interfaces.C.char_array;
- V : in Interfaces.C.char_array;
- D : in Interfaces.C.char_array;
- M : in Interfaces.C.int)
+ (E : in Storage.Integer_Address;
+ K : in Interfaces.C.char_array;
+ V : out Interfaces.C.char_array;
+ D : in Interfaces.C.char_array;
+ M : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_preferences_get_str_limit, "fl_preferences_get_str_limit");
pragma Inline (fl_preferences_get_str_limit);
@@ -303,6 +321,8 @@ package body FLTK.Environment is
+ -- Storage --
+
function fl_preferences_set_int
(E : in Storage.Integer_Address;
K : in Interfaces.C.char_array;
@@ -392,15 +412,15 @@ package body FLTK.Environment is
return User;
end if;
exception
- when Chk.Assertion_Error => raise Internal_FLTK_Error;
+ when Chk.Assertion_Error => raise Constraint_Error;
end To_Scope;
- -----------------------------------
- -- Controlled Type Subprograms --
- -----------------------------------
+ -------------------
+ -- Destructors --
+ -------------------
procedure Finalize
(This : in out Database) is
@@ -427,20 +447,9 @@ package body FLTK.Environment is
- -----------------------
- -- Preferences API --
- -----------------------
-
- function New_UUID
- return String
- is
- Text : Interfaces.C.Strings.chars_ptr := fl_preferences_new_uuid;
- begin
- return Interfaces.C.Strings.Value (Text);
- end New_UUID;
-
-
-
+ --------------------
+ -- Constructors --
+ --------------------
package body Forge is
@@ -534,6 +543,25 @@ package body FLTK.Environment is
+ -----------------------
+ -- API Subprograms --
+ -----------------------
+
+ -- Static --
+
+ function New_UUID
+ return String
+ is
+ Text : constant Interfaces.C.Strings.chars_ptr := fl_preferences_new_uuid;
+ begin
+ return Interfaces.C.Strings.Value (Text);
+ end New_UUID;
+
+
+
+
+ -- Disk Activity --
+
procedure Flush
(This : in Database) is
begin
@@ -561,6 +589,8 @@ package body FLTK.Environment is
+ -- Deletion --
+
procedure Delete_Entry
(This : in out Pref_Group;
Key : in String) is
@@ -610,6 +640,8 @@ package body FLTK.Environment is
+ -- Key Values --
+
function Number_Of_Entries
(This : in Pref_Group)
return Natural is
@@ -623,7 +655,7 @@ package body FLTK.Environment is
Index : in Positive)
return String
is
- Key : Interfaces.C.Strings.chars_ptr :=
+ Key : constant Interfaces.C.Strings.chars_ptr :=
fl_preferences_entry (This.Void_Ptr, Interfaces.C.int (Index) - 1);
begin
-- no need for dealloc?
@@ -655,6 +687,8 @@ package body FLTK.Environment is
+ -- Groups --
+
function Number_Of_Groups
(This : in Pref_Group)
return Natural is
@@ -668,7 +702,7 @@ package body FLTK.Environment is
Index : in Positive)
return String
is
- Name : Interfaces.C.Strings.chars_ptr :=
+ Name : constant Interfaces.C.Strings.chars_ptr :=
fl_preferences_group (This.Void_Ptr, Interfaces.C.int (Index) - 1);
begin
-- no need for dealloc?
@@ -691,11 +725,13 @@ package body FLTK.Environment is
+ -- Names --
+
function At_Name
(This : in Pref_Group)
return String
is
- Text : Interfaces.C.Strings.chars_ptr := fl_preferences_name (This.Void_Ptr);
+ Text : constant Interfaces.C.Strings.chars_ptr := fl_preferences_name (This.Void_Ptr);
begin
if Text = Interfaces.C.Strings.Null_Ptr then
return "";
@@ -709,7 +745,7 @@ package body FLTK.Environment is
(This : in Pref_Group)
return String
is
- Text : Interfaces.C.Strings.chars_ptr := fl_preferences_path (This.Void_Ptr);
+ Text : constant Interfaces.C.Strings.chars_ptr := fl_preferences_path (This.Void_Ptr);
begin
if Text = Interfaces.C.Strings.Null_Ptr then
return "";
@@ -721,6 +757,8 @@ package body FLTK.Environment is
+ -- Retrieval --
+
function Get
(This : in Pref_Group;
Key : in String)
@@ -745,9 +783,9 @@ package body FLTK.Environment is
Default : in Integer)
return Integer
is
- Value, X : Interfaces.C.int;
+ Value, Ignore : Interfaces.C.int;
begin
- X := fl_preferences_get_int
+ Ignore := fl_preferences_get_int
(This.Void_Ptr,
Interfaces.C.To_C (Key),
Value,
@@ -781,9 +819,9 @@ package body FLTK.Environment is
return Float
is
Value : Interfaces.C.C_float;
- X : Interfaces.C.int;
+ Ignore : Interfaces.C.int;
begin
- X := fl_preferences_get_float
+ Ignore := fl_preferences_get_float
(This.Void_Ptr,
Interfaces.C.To_C (Key),
Value,
@@ -817,9 +855,9 @@ package body FLTK.Environment is
return Long_Float
is
Value : Interfaces.C.double;
- X : Interfaces.C.int;
+ Ignore : Interfaces.C.int;
begin
- X := fl_preferences_get_double
+ Ignore := fl_preferences_get_double
(This.Void_Ptr,
Interfaces.C.To_C (Key),
Value,
@@ -834,7 +872,7 @@ package body FLTK.Environment is
return String
is
Text : Interfaces.C.Strings.chars_ptr;
- Check : Interfaces.C.int := fl_preferences_get_str
+ Check : constant Interfaces.C.int := fl_preferences_get_str
(This.Void_Ptr,
Interfaces.C.To_C (Key),
Text,
@@ -846,7 +884,7 @@ package body FLTK.Environment is
if Text = Interfaces.C.Strings.Null_Ptr then
return "";
end if;
- return Str : String := Interfaces.C.Strings.Value (Text) do
+ return Str : constant String := Interfaces.C.Strings.Value (Text) do
Interfaces.C.Strings.Free (Text);
end return;
end Get;
@@ -859,7 +897,7 @@ package body FLTK.Environment is
return String
is
Text : Interfaces.C.Strings.chars_ptr;
- X : Interfaces.C.int := fl_preferences_get_str
+ Ignore : Interfaces.C.int := fl_preferences_get_str
(This.Void_Ptr,
Interfaces.C.To_C (Key),
Text,
@@ -868,7 +906,7 @@ package body FLTK.Environment is
if Text = Interfaces.C.Strings.Null_Ptr then
return Default;
end if;
- return Str : String := Interfaces.C.Strings.Value (Text) do
+ return Str : constant String := Interfaces.C.Strings.Value (Text) do
Interfaces.C.Strings.Free (Text);
end return;
end Get;
@@ -882,7 +920,7 @@ package body FLTK.Environment is
return String
is
Text : Interfaces.C.char_array := (1 .. Interfaces.C.size_t (Max_Length + 1) => ' ');
- Check : Interfaces.C.int := fl_preferences_get_str_limit
+ Check : constant Interfaces.C.int := fl_preferences_get_str_limit
(This.Void_Ptr,
Interfaces.C.To_C (Key),
Text,
@@ -904,7 +942,7 @@ package body FLTK.Environment is
is
Thing : Storage.Integer_Address;
Dummy : Interfaces.C.int := 42;
- Check : Interfaces.C.int := fl_preferences_get_void
+ Check : constant Interfaces.C.int := fl_preferences_get_void
(This.Void_Ptr,
Interfaces.C.To_C (Key),
Thing,
@@ -916,12 +954,12 @@ package body FLTK.Environment is
raise Preference_Error;
end if;
declare
- Length : Natural := This.Value_Size (Key) * Natural (c_pointer_size);
+ Length : constant Natural := This.Value_Size (Key) * Natural (c_pointer_size);
Actual : Binary_Data (1 .. Length);
for Actual'Address use Storage.To_Address (Thing);
pragma Import (Ada, Actual);
begin
- return Result : Binary_Data := Actual do
+ return Result : constant Binary_Data := Actual do
free_fl_preferences_void_data (Thing);
end return;
end;
@@ -941,12 +979,12 @@ package body FLTK.Environment is
Thing,
Storage.To_Integer (Default'Address),
Default'Length / Interfaces.C.int (c_pointer_size));
- Length : Natural := This.Value_Size (Key) * Natural (c_pointer_size);
+ Length : constant Natural := This.Value_Size (Key) * Natural (c_pointer_size);
Actual : Binary_Data (1 .. Length);
for Actual'Address use Storage.To_Address (Thing);
pragma Import (Ada, Actual);
begin
- return Result : Binary_Data := Actual do
+ return Result : constant Binary_Data := Actual do
free_fl_preferences_void_data (Thing);
end return;
end Get;
@@ -967,7 +1005,7 @@ package body FLTK.Environment is
Storage.To_Integer (Default'Address),
Default'Length / Interfaces.C.int (c_pointer_size),
Interfaces.C.int (Max_Length) / Interfaces.C.int (c_pointer_size));
- Length : Natural := This.Value_Size (Key) * Natural (c_pointer_size);
+ Length : constant Natural := This.Value_Size (Key) * Natural (c_pointer_size);
begin
return Actual (1 .. Length);
end Get;
@@ -975,6 +1013,8 @@ package body FLTK.Environment is
+ -- Storage --
+
procedure Set
(This : in out Pref_Group;
Key : in String;
@@ -1087,3 +1127,4 @@ package body FLTK.Environment is
end FLTK.Environment;
+