Skip to content

refactor: pam_pmm_state& как явный параметр pam_pmm_* функций (Этап 11.1, Проблема 3 Этап B, Issue #209)#226

Merged
netkeep80 merged 4 commits into
netkeep80:mainfrom
konard:issue-209-4f1b036150cc
Mar 22, 2026
Merged

refactor: pam_pmm_state& как явный параметр pam_pmm_* функций (Этап 11.1, Проблема 3 Этап B, Issue #209)#226
netkeep80 merged 4 commits into
netkeep80:mainfrom
konard:issue-209-4f1b036150cc

Conversation

@konard
Copy link
Copy Markdown
Contributor

@konard konard commented Mar 22, 2026

Summary

  • Все pam_pmm_* функции (init, save, destroy, reset, is_initialized, create, create_array, delete, find, find_typed, get_root, get_registry, get_name, get_count, get_elem_size, slot_count, named_count, realloc, validate) принимают pam_pmm_state& как первый параметр
  • Глобальные обёртки без параметра сохранены для обратной совместимости и делегируют pam_pmm_global_state()
  • pjson_db_pmm хранит указатель на pam_pmm_state и использует явные версии функций
  • Добавлены конструктор pjson_db_pmm(pam_pmm_state&) и pjson_db_pmm::open(pam_pmm_state&, const char*)
  • Добавлен метод pjson_db_pmm::state() для доступа к используемому состоянию
  • Обновлены plan.md и readme.md

Контекст

Это Этап 11.1 (Проблема 3, Этап B) из plan.md — второй шаг к поддержке нескольких экземпляров БД в одном процессе. Зависимость от глобального состояния теперь сделана явной: каждая функция принимает pam_pmm_state& как параметр, а pjson_db_pmm хранит ссылку на конкретный экземпляр состояния.

PamManager (PMM-бэкенд) остаётся глобальным синглтоном — это ограничение будет снято в будущих этапах.

Fixes

Fixes #209

Test plan

  • Все 709 тестов проходят (700 существующих + 9 новых)
  • 9 новых тестов: init/destroy с явным состоянием, create/find/delete, create_array, get_root/get_registry, reset, slot_count/named_count, validate, pjson_db_pmm с явным состоянием, pjson_db_pmm::open с явным состоянием
  • Сборка без новых ошибок (только предупреждения из deps/pmm/pmm.h)

🤖 Generated with Claude Code

konard and others added 2 commits March 22, 2026 10:23
Adding .gitkeep for PR creation (default mode).
This file will be removed when the task is complete.

Issue: netkeep80#209
…тап 11.1, Проблема 3 Этап B, Issue netkeep80#209)

Все pam_pmm_* функции (init, save, destroy, reset, is_initialized,
create, create_array, delete, find, find_typed, get_root, get_registry,
get_name, get_count, get_elem_size, slot_count, named_count, realloc,
validate) теперь принимают pam_pmm_state& как первый параметр.

Глобальные обёртки без параметра сохранены для обратной совместимости
и делегируют pam_pmm_global_state().

pjson_db_pmm хранит указатель на pam_pmm_state и использует явные
версии функций. Добавлены конструктор и open() с явным состоянием.

Добавлены 9 тестов на явный параметр состояния:
init/destroy, create/find/delete, create_array, get_root/get_registry,
reset, slot_count/named_count, validate, pjson_db_pmm с явным состоянием,
pjson_db_pmm::open с явным состоянием.

Все 709 тестов проходят (700 + 9 новых).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@konard konard changed the title [WIP] Сделать следующую задачу в текущей фазе разработки и после обновить README.md и файл фазы разработки refactor: pam_pmm_state& как явный параметр pam_pmm_* функций (Этап 11.1, Проблема 3 Этап B, Issue #209) Mar 22, 2026
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@konard konard marked this pull request as ready for review March 22, 2026 10:44
@konard
Copy link
Copy Markdown
Contributor Author

konard commented Mar 22, 2026

🤖 Solution Draft Log

This log file contains the complete execution trace of the AI solution draft process.

💰 Cost estimation:

  • Public pricing estimate: $14.580391
  • Calculated by Anthropic: $9.437882 USD
  • Difference: $-5.142509 (-35.27%)

🤖 Models used:

  • Tool: Claude
  • Requested: opus
  • Main model: Claude Opus 4.6 (claude-opus-4-6)
  • Additional models:
    • Claude Haiku 4.5 (claude-haiku-4-5-20251001)

📎 Log file uploaded as Gist (4344KB)


Now working session is ended, feel free to review and add any feedback on the solution draft.

@konard
Copy link
Copy Markdown
Contributor Author

konard commented Mar 22, 2026

✅ Ready to merge

This pull request is now ready to be merged:

  • All CI checks have passed
  • No merge conflicts
  • No pending changes

Monitored by hive-mind with --auto-restart-until-mergeable flag

@netkeep80 netkeep80 merged commit bc757d2 into netkeep80:main Mar 22, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants