URP.Call (urp v0.10.0)

Copy Markdown

Binary frame builders for UNO API calls.

Each function constructs the wire-format payload for a specific UNO remote procedure call. URP.Bridge uses these builders instead of assembling binary payloads inline. All public functions return iodata (lists of binaries); the single flattening happens in URP.Protocol.send_frame/2.

The qi_* functions build complete queryInterface frames (header + null context + body type parameter).

Abbreviations

Module attributes use short prefixes borrowed from LibreOffice's own naming conventions (IDL interfaces, binaryurp/source/*.hxx, include/typelib/):

PrefixStands forExample
xi_X-Interface (UNO IDL)@xi_closeable
qi_queryInterfaceqi_loader/1
ctxXComponentContext@oid_ctx, @func_ctx_*
mcfXMultiComponentFactory@func_mcf_create_with_context
msfXMultiServiceFactory@func_msf_create_with_args
naXNameAccess@func_na_get_by_name
nrXNameReplace@func_nr_replace_by_name
cbXChangesBatch@func_cb_commit_changes
sfaXSimpleFileAccess@func_sfa_open_file_read
isXInputStream@func_is_read_bytes
osXOutputStream@func_os_write_bytes
ffFilterFactory service@qi_cache_ff_name_access
tdTypeDetection service@qi_cache_td_name_access
tcTypeClass (typelib enum)@tc_boolean, @tc_string

Summary

Functions

XMultiComponentFactory.createInstanceWithContext (bootstrap — registers type).

XMultiComponentFactory.createInstanceWithContext (cached type).

Build a FilterData property from a keyword list of export options.

XMultiComponentFactory.getAvailableServiceNames.

XNameAccess.getElementNames for FilterFactory.

XNameAccess.getElementNames for TypeDetection.

XComponentContext.getValueByName — returns an Any(XInterface).

Build an InputStream property for streaming document load.

XComponentLoader.loadComponentFromURL.

Build an OutputStream property for streaming document store.

QI for XComponentContext (bootstrap only — reuses type from previous message).

Initial QI during bootstrap (registers XInterface type + TID).

XStorable2.storeToURL.

Functions

create_desktop(smgr_oid)

XMultiComponentFactory.createInstanceWithContext (bootstrap — registers type).

create_instance_with_context(smgr_oid, service_name)

XMultiComponentFactory.createInstanceWithContext (cached type).

filter_data_property(filter_data)

Build a FilterData property from a keyword list of export options.

get_available_service_names(smgr_oid)

XMultiComponentFactory.getAvailableServiceNames.

get_filter_element_names()

XNameAccess.getElementNames for FilterFactory.

get_type_element_names()

XNameAccess.getElementNames for TypeDetection.

get_value_by_name(ctx_oid, path)

XComponentContext.getValueByName — returns an Any(XInterface).

input_stream_property(stream_oid)

Build an InputStream property for streaming document load.

load_component_from_url(url, props)

XComponentLoader.loadComponentFromURL.

output_stream_property(stream_oid)

Build an OutputStream property for streaming document store.

qi_component_ctx(ctx_oid)

QI for XComponentContext (bootstrap only — reuses type from previous message).

qi_initial(tid)

Initial QI during bootstrap (registers XInterface type + TID).

store_to_url(url, props)

XStorable2.storeToURL.