Changes between Version 2 and Version 3 of Ada/Repository.Dictionary
- Timestamp:
- 03/26/08 14:46:43 (2 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ada/Repository.Dictionary
v2 v3 5 5 6 6 Получение идентификатора по имени, если для даного имени еще невыделен идентификатор, то он создается 7 7 {{{ 8 8 procedure Get_ID 9 9 (This : in out Gela_Dictionary; 10 10 Value : in Code_Point_Array; 11 11 Result : out ID); 12 12 }}} 13 13 Особенности реализации: для получения идентификатора используется хеширующий алгоритм crc16, что гарантирует "статисчность" идентификатора для указанной строки. Кроме того реализована проверка на дублирование идентификаторов для разных строк, во избежание БОльших неприятностей ;) 14 14 15 15 Извлечение имени по идентификатору 16 16 {{{ 17 17 function Get_Name 18 18 (This : in Gela_Dictionary; 19 19 Value : in ID) 20 20 return Code_Point_Array; 21 21 }}} 22 22 23 23 Отметка использования идентификатора. Поскольку словарик автоматически следит за сборкой мусора, все идентификаторы, к ктороым небыло доступа посредством Get_ID/Get_Name уничтожаются при закрытии, то возникла необходимость введения данной процедуры, для "маркирования" нужных идентификаторов, как существующих, чтоб они остались в репозитарии. 24 24 {{{ 25 25 procedure Marck 26 26 (This : in Gela_Dictionary; 27 27 Value : in ID); 28 }}} 28 29 29 30 Очистка кеша. 31 {{{ 30 32 procedure Clear 31 33 (This : in out Gela_Dictionary); 34 }}} 32 35 33 36 Количество идентификаторов в кеше. 37 {{{ 34 38 function Count 35 39 (This : in Gela_Dictionary) 36 40 return Natural; 41 }}} 37 42 38 В пакете Gela.Repository.Dictionary.Fileреализовано сохранение репозитария-словаря в файле.43 В пакете '''Gela.Repository.Dictionary.File''' реализовано сохранение репозитария-словаря в файле. 39 44 Особенности реализации: Реализована проверка валидности данных с использованием sha512, т.е. если файл будет поврежден по каким либо причинам, неккоректные данные читатся небудут. Файл в таком случае будет проигнорирован и кеш будет пустым.