Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(core): Remove KM Core public access to context APIs 🌱 #10384

Closed
Tracked by #9999
mcdurdin opened this issue Jan 15, 2024 · 1 comment · Fixed by #10401
Closed
Tracked by #9999

chore(core): Remove KM Core public access to context APIs 🌱 #10384

mcdurdin opened this issue Jan 15, 2024 · 1 comment · Fixed by #10401
Assignees
Labels
chore core/ Keyman Core
Milestone

Comments

@mcdurdin
Copy link
Member

mcdurdin commented Jan 15, 2024

  • Move the following APIs from keyman_core_api.h to keyman_core_api_context.h:
    • km_core_state_context()
    • km_core_context_set() --> replace with km_core_state_context_set_if_needed()
    • km_core_context_clear() --> replace with km_core_state_context_clear()
    • km_core_context_get()
    • km_core_context_items_from_utf16()
    • km_core_context_items_from_utf8()
    • km_core_context_items_to_utf8()
    • km_core_context_items_to_utf16()
    • km_core_context_items_to_utf32()
    • km_core_context_items_dispose()
    • km_core_context_length()
    • km_core_context_append()
    • km_core_context_shrink()
    • km_core_context_item_list_size()
  • Make available required functions for Keyman Developer Keyboard Debugger in subsetted Keyman Core Context API.
  • Make available required functions for Keyman Engine for Windows IMX in subsetted Keyman Core Context API.
@keymanapp-test-bot keymanapp-test-bot bot added chore core/ Keyman Core labels Jan 15, 2024
@mcdurdin mcdurdin changed the title chore(core): Remove KM Core public access to context APIs chore(core): Remove KM Core public access to context APIs 🌱 Jan 15, 2024
@mcdurdin mcdurdin self-assigned this Jan 15, 2024
@mcdurdin mcdurdin added this to the A17S30 milestone Jan 15, 2024
mcdurdin added a commit that referenced this issue Jan 16, 2024
Relates to #9999.
Fixes #10384.

The context API endpoints should no longer be considered as part of the
standard Core API. The only consumers that have a need to access these
APIs are the IMX integration in Engine for Windows, and the Keyman
Developer Debugger.

These symbols are currently used by Developer:
* `km_core_context` struct
* `km_core_context_type` enum
* `km_core_context_item` struct
* `KM_CORE_CONTEXT_ITEM_END` macro
* `km_core_state_context()`
* `km_core_context_set()`
* `km_core_context_clear()`

These symbols are currently used by Windows IMX:
* `km_core_context` struct
* `km_core_context_type` enum
* `km_core_context_item` struct
* `KM_CORE_CONTEXT_ITEM_END` macro
* `km_core_context_items_dispose()`
* `km_core_context_item_list_size()`
* `km_core_state_get_intermediate_context()`

The following functions and symbols are moving to
keyman_core_api_context.h:
* `km_core_context` struct
* `km_core_context_type` enum
* `km_core_context_item` struct
* `KM_CORE_CONTEXT_ITEM_END` macro
* `km_core_state_context()` function
* `km_core_state_get_intermediate_context()` function
* `km_core_context_set()` function
* `km_core_context_clear()` function
* `km_core_context_get()` function
* `km_core_context_items_from_utf16()` function
* `km_core_context_items_from_utf8()` function
* `km_core_context_items_to_utf8()` function
* `km_core_context_items_to_utf16()` function
* `km_core_context_items_to_utf32()` function
* `km_core_context_items_dispose()` function
* `km_core_context_length()` function
* `km_core_context_append()` function
* `km_core_context_shrink()` function
* `km_core_context_item_list_size()` function
mcdurdin added a commit that referenced this issue Jan 17, 2024
Relates to #9999.
Fixes #10384.

The context API endpoints should no longer be considered as part of the
standard Core API. The only consumers that have a need to access these
APIs are the IMX integration in Engine for Windows, and the Keyman
Developer Debugger.

These symbols are currently used by Developer:
* `km_core_context` struct
* `km_core_context_type` enum
* `km_core_context_item` struct
* `KM_CORE_CONTEXT_ITEM_END` macro
* `km_core_state_context()`
* `km_core_context_set()`
* `km_core_context_clear()`

These symbols are currently used by Windows IMX:
* `km_core_context` struct
* `km_core_context_type` enum
* `km_core_context_item` struct
* `KM_CORE_CONTEXT_ITEM_END` macro
* `km_core_context_items_dispose()`
* `km_core_context_item_list_size()`
* `km_core_state_get_intermediate_context()`

The following functions and symbols are moving to
keyman_core_api_context.h:
* `km_core_context` struct
* `km_core_context_type` enum
* `km_core_context_item` struct
* `KM_CORE_CONTEXT_ITEM_END` macro
* `km_core_state_context()` function
* `km_core_state_get_intermediate_context()` function
* `km_core_context_set()` function
* `km_core_context_clear()` function
* `km_core_context_get()` function
* `km_core_context_items_from_utf16()` function
* `km_core_context_items_from_utf8()` function
* `km_core_context_items_to_utf8()` function
* `km_core_context_items_to_utf16()` function
* `km_core_context_items_to_utf32()` function
* `km_core_context_items_dispose()` function
* `km_core_context_length()` function
* `km_core_context_append()` function
* `km_core_context_shrink()` function
* `km_core_context_item_list_size()` function
@mcdurdin
Copy link
Member Author

Follow up on this is #10431.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
chore core/ Keyman Core
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant