Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | s_expressions-generic_caches: implement the new Replayable.Descriptor interface in cursors |
|---|---|
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
14c328e4b41a206e4c527a21a6d67d7a |
| User & Date: | nat 2014-09-08 19:52:03.611 |
Context
|
2014-09-09
| ||
| 18:36 | s_expressions-cache_tests: add a test for the new replayable interface check-in: dd07424307 user: nat tags: trunk | |
|
2014-09-08
| ||
| 19:52 | s_expressions-generic_caches: implement the new Replayable.Descriptor interface in cursors check-in: 14c328e4b4 user: nat tags: trunk | |
|
2014-09-07
| ||
| 20:13 | s_expressions-replayable: new interface for S-expression descriptors that can duplicated check-in: 39fe9aca16 user: nat tags: trunk | |
Changes
Changes to src/natools-s_expressions-generic_caches.adb.
| ︙ | ︙ | |||
418 419 420 421 422 423 424 425 |
end loop;
end if;
Object.Locked
:= Object.Absolute_Level < Lockable.Current_Level (Object.Stack);
end Unlock;
end Natools.S_Expressions.Generic_Caches;
| > > > > > > | 418 419 420 421 422 423 424 425 426 427 428 429 430 431 |
end loop;
end if;
Object.Locked
:= Object.Absolute_Level < Lockable.Current_Level (Object.Stack);
end Unlock;
overriding function Duplicate (Object : Cursor) return Cursor is
begin
return Object;
end Duplicate;
end Natools.S_Expressions.Generic_Caches;
|
Changes to src/natools-s_expressions-generic_caches.ads.
| ︙ | ︙ | |||
26 27 28 29 30 31 32 33 34 35 36 37 38 39 | -- see Natools.S_Expressions.Holders. -- ------------------------------------------------------------------------------ with System.Storage_Pools; with Natools.S_Expressions.Lockable; with Natools.S_Expressions.Printers; private with Ada.Finalization; private with Ada.Unchecked_Deallocation; private with Natools.References; generic Atom_Pool : in out System.Storage_Pools.Root_Storage_Pool'Class; | > | 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | -- see Natools.S_Expressions.Holders. -- ------------------------------------------------------------------------------ with System.Storage_Pools; with Natools.S_Expressions.Lockable; with Natools.S_Expressions.Printers; with Natools.S_Expressions.Replayable; private with Ada.Finalization; private with Ada.Unchecked_Deallocation; private with Natools.References; generic Atom_Pool : in out System.Storage_Pools.Root_Storage_Pool'Class; |
| ︙ | ︙ | |||
51 52 53 54 55 56 57 |
(Output : in out Reference; Data : in Atom);
overriding procedure Close_List (Output : in out Reference);
function Duplicate (Cache : Reference) return Reference;
-- Create a new copy of the S-expression held in Cache and return it
| | > | 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
(Output : in out Reference; Data : in Atom);
overriding procedure Close_List (Output : in out Reference);
function Duplicate (Cache : Reference) return Reference;
-- Create a new copy of the S-expression held in Cache and return it
type Cursor is new Lockable.Descriptor and Replayable.Descriptor
with private;
pragma Preelaborable_Initialization (Cursor);
overriding function Current_Event (Object : in Cursor) return Events.Event;
overriding function Current_Atom (Object : in Cursor) return Atom;
overriding function Current_Level (Object : in Cursor) return Natural;
overriding procedure Query_Atom
(Object : in Cursor;
|
| ︙ | ︙ | |||
75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
overriding procedure Lock
(Object : in out Cursor;
State : out Lockable.Lock_State);
overriding procedure Unlock
(Object : in out Cursor;
State : in out Lockable.Lock_State;
Finish : in Boolean := True);
function First (Cache : Reference'Class) return Cursor;
-- Create a new Cursor pointing at the beginning of Cache
private
type Atom_Access is access Atom;
| > > | 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
overriding procedure Lock
(Object : in out Cursor;
State : out Lockable.Lock_State);
overriding procedure Unlock
(Object : in out Cursor;
State : in out Lockable.Lock_State;
Finish : in Boolean := True);
overriding function Duplicate (Object : Cursor) return Cursor;
function First (Cache : Reference'Class) return Cursor;
-- Create a new Cursor pointing at the beginning of Cache
private
type Atom_Access is access Atom;
|
| ︙ | ︙ | |||
139 140 141 142 143 144 145 |
type Reference is new Printers.Printer with record
Exp : Trees.Reference;
end record;
| | | 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 |
type Reference is new Printers.Printer with record
Exp : Trees.Reference;
end record;
type Cursor is new Lockable.Descriptor and Replayable.Descriptor with record
Exp : Trees.Reference;
Position : Node_Access := null;
Opening : Boolean := False;
Stack : Lockable.Lock_Stack;
Locked : Boolean := False;
end record;
function Absolute_Level (Object : Cursor) return Natural;
end Natools.S_Expressions.Generic_Caches;
|