Registrar Protocols

Standard Replies

standard success reply message

reply: B_REG_SUCCESS

  • [ <additional fields> ]

fields:

  • <additional fields>: Request-specific fields.

standard error reply message

reply: B_REG_ERROR

  • “error”: B_INT32_TYPE

  • [ “error_description”: B_STRING_TYPE ]

  • [ <additional fields> ]

fields:

  • “error”: The error code (a status_t).

  • “error_description”: Optional human readable description.

  • <additional fields>: Request-specific fields.

standard general result reply message

reply: B_REG_RESULT

  • “result”: B_INT32_TYPE

  • [ “result_description”: B_STRING_TYPE ]

  • [ <additional fields> ]

fields:

  • “result”: The result value (a status_t).

  • “result_description”: Optional human readable description.

  • <additional fields>: Request-specific fields.

General Requests

Getting the messengers

for MIME, clipboard and disk device management respectively

target

registrar app looper (preferred handler)

message

  • B_REG_GET_MIME_MESSENGER

  • B_REG_GET_CLIPBOARD_MESSENGER

  • B_REG_GET_DISK_DEVICE_MESSENGER

reply

standard success

  • “messenger”: B_MESSENGER_TYPE

on error

  • B_NO_REPLY (fatal)

  • standard error (fatal)

reply fields:

  • “messenger”: The requested messenger.

Shut down

target

registrar app looper (preferred handler)

message

B_REG_SHUT_DOWN

  • “reboot”: B_BOOL_TYPE

  • “confirm”: B_BOOL_TYPE

  • “synchronously”: B_BOOL_TYPE

reply

standard success

on error

  • B_NO_REPLY (fatal)

  • standard error (fatal)

message fields:

  • “reboot”: If true, the system reboots instead of turning the power off.

  • “confirm”: If true, the user will be asked to confirm to shut down the system.

  • “synchronously”: If true, the request sender gets a reply only, if the shutdown process fails. Otherwise the reply will be sent right before asking the user for confirmation (if desired).

Roster Requests

App registration (BRoster::AddApplication())

target

roster

message

B_REG_ADD_APP

  • “signature”: B_MIME_STRING_TYPE

  • “ref”: B_REF_TYPE

  • “flags”: B_UINT32_TYPE

  • “team”: B_INT32_TYPE

  • “thread”: B_INT32_TYPE

  • “port”: B_INT32_TYPE

  • “full_registration”: B_BOOL_TYPE

reply

standard success

  • [ “token”: B_INT32_TYPE ]

  • [ “other_team”: B_INT32_TYPE ]

on error

  • B_NO_REPLY (fatal)

  • standard error

message fields:

  • “signature”: The application signature.

  • “ref”: An entry_ref to the application executable.

  • “flags”: The application flags.

  • “team”: The application team (team_id).

  • “port”: The app looper port (port_id).

  • “full_registration”: Whether full or pre-registration is requested.

reply fields:

  • “token”: If pre-registration was requested (uint32). Unique token to be passed to BRoster::SetThreadAndTeam().

  • “other_team”: For single/exclusive launch applications that are launched the second time. The team ID of the already running instance (team_id).

error reply fields:

  • “error”:

    • B_BAD_VALUE: A request message field is missing or contains an invalid value.

    • B_ENTRY_NOT_FOUND: The entry_ref doesn’t refer to a file.

    • B_ALREADY_RUNNING: For single/exclusive launch applications that are launched the second time.

    • B_REG_ALREADY_REGISTERED: The team is already registered.

app registration (BRoster::CompleteRegistration())

target

roster

message

B_REG_COMPLETE_REGISTRATION

  • “team”: B_INT32_TYPE

  • “thread”: B_INT32_TYPE

  • “port”: B_INT32_TYPE

reply

standard success

on error

  • B_NO_REPLY (fatal)

  • standard error

message fields:

  • “team”: The application team (team_id).

  • “thread”: The application looper thread (thread_id).

  • “port”: The app looper port (port_id).

error reply fields:

  • “error”:

    • B_BAD_VALUE: A request message field is missing or contains an invalid value.

    • B_REG_APP_NOT_PRE_REGISTERED: The team is unknown to the roster or the application is already fully registered.

app registration check (BRoster::IsAppRegistered())

target

roster

message

B_REG_IS_APP_REGISTERED

  • “ref”: B_REF_TYPE

  • ( “team”: B_INT32_TYPE | “token”: B_INT32_TYPE )

reply

standard success

  • “registered”: B_BOOL_TYPE

  • “pre-registered”: B_BOOL_TYPE

  • [ “app_info”: flattened app_info ]

on error

  • B_NO_REPLY (fatal)

  • standard error

message fields:

  • “ref”: An entry_ref to the application executable.

  • “team”: The application team (team_id).

  • “token”: The application’s preregistration token.

reply fields:

  • “registered”: true, if the app is (pre-)registered, false otherwise.

  • “pre-registered”: true, if the app is pre-registered, false otherwise.

  • “app_info”: Flattened app info, if the app is known (i.e. (pre-)registered).

error reply fields:

  • “error”:

    • B_BAD_VALUE: A request message field is missing or contains an invalid value.

    • B_ENTRY_NOT_FOUND: The entry_ref doesn’t refer to a file.

pre-registrated app unregistration (BRoster::RemovePreRegApp())

target

roster

message

B_REG_REMOVE_PRE_REGISTERED_APP

  • “token”: B_INT32_TYPE

reply

standard success

on error

  • B_NO_REPLY (fatal)

  • standard error

message fields:

  • “token”: The token BRoster::AddApplication() returned (uint32).

error reply fields:

  • “error”:

    • B_BAD_VALUE: A request message field is missing or contains an invalid value.

    • B_REG_APP_NOT_PRE_REGISTERED: The token does not identify a pre-registered application.

app unregistration (BRoster::RemoveApp())

target

roster

message

B_REG_REMOVE_APP

  • “team”: B_INT32_TYPE

reply

standard success

on error

  • B_NO_REPLY (fatal)

  • standard error

message fields:

  • “team”: The application team (team_id).

error reply fields:

  • “error”:

    • B_BAD_VALUE: A request message field is missing or contains an invalid value.

    • B_REG_APP_NOT_REGISTERED: The team is unknown to the roster.

app pre-registration, set thread/team (BRoster::SetThreadAndTeam())

target

roster

message

B_REG_SET_THREAD_AND_TEAM

  • “token”: B_INT32_TYPE

  • “team”: B_INT32_TYPE

  • “thread”: B_INT32_TYPE

reply

standard success

on error

  • B_NO_REPLY (fatal)

  • standard error

message fields:

  • “token”: The token BRoster::AddApplication() returned (uint32).

  • “team”: The application team (team_id).

  • “thread”: The application looper thread (thread_id).

error reply fields:

  • “error”:

    • B_BAD_VALUE: A request message field is missing or contains an invalid value.

    • B_REG_APP_NOT_PRE_REGISTERED: The token does not identify a pre-registered application.

app registration, change app signature (BRoster::SetSignature())

target

roster

message

B_REG_SET_SIGNATURE

  • “team”: B_INT32_TYPE

  • “signature”: B_STRING_TYPE

reply

standard success

on error

  • B_NO_REPLY (fatal)

  • standard error

message fields:

  • “team”: The application team (team_id).

  • “signature”: The application’s new signature.

error reply fields:

  • “error”:

    • B_BAD_VALUE: A request message field is missing or contains an invalid value.

    • B_REG_APP_NOT_REGISTERED: The team does not identify a registered application.

get an app info (BRoster::Get{Running,Active,}AppInfo())

target

roster

message

B_REG_GET_APP_INFO

[ “team”: B_INT32_TYPE
“ref”: B_REF_TYPE
“signature”: B_STRING_TYPE ]

reply

standard success

  • “app_info”: B_REG_APP_INFO_TYPE

on error

  • B_NO_REPLY (fatal)

  • standard error

message fields:

  • “team”: The application team (team_id).

  • “ref”: An entry_ref to the application executable.

  • “signature”: The application signature.

  • If both are omitted the active application is referred to.

reply fields:

  • “app_info”: The requested app_info (flat_app_info).

error reply fields:

  • “error”:

    • B_BAD_VALUE: A request message field is missing or contains an invalid value.

    • B_BAD_TEAM_ID: The supplied team ID does not identify a registered application.

    • B_ERROR:

      • An entry_ref or a signature has been supplied and no such application is currently running.

      • No team ID has been supplied and currently there is no active application.

get an app list (BRoster::GetAppList())

target

roster

message

B_REG_GET_APP_LIST

  • [ “signature”: B_STRING_TYPE ]

reply

standard success

  • “teams”: B_INT32_TYPE[]

on error

  • B_NO_REPLY (fatal)

  • standard error

message fields:

  • “signature”: The application signature.

reply fields:

  • “teams”: The requested list of team IDs (team_id).

error reply fields:

  • “error”:

    • B_BAD_VALUE: A request message field is missing or contains an invalid value.

activate an app (BRoster::ActivateApp())

target

roster

message

B_REG_ACTIVATE_APP

“team”: B_INT32_TYPE

reply

standard success

on error

  • B_NO_REPLY (fatal)

  • standard error

message fields:

  • “team”: The application team (team_id).

error reply fields:

  • “error”:

    • B_BAD_VALUE: A request message field is missing or contains an invalid value.

    • B_BAD_TEAM_ID: The supplied team ID does not identify a registered application.

broadcast a message (BRoster::Broadcast())

target

roster

message

B_REG_BROADCAST

  • “team”: B_INT32_TYPE

  • “message”: B_MESSAGE_TYPE

  • “reply_target”: B_MESSENGER_TYPE

reply

standard success

on error

  • B_NO_REPLY (fatal)

  • standard error

message fields:

  • “team”: The requesting team (team_id).

  • “message”: The message to be broadcast.

  • “reply_target”: The reply target for the message.

error reply fields:

  • “error”:

    • B_BAD_VALUE: A request message field is missing or contains an invalid value.

start roster watching (BRoster::StartWatching())

target

roster

message

B_REG_START_WATCHING

  • “target”: B_MESSENGER_TYPE

  • “events”: B_INT32_TYPE

reply

standard success

on error

  • B_NO_REPLY (fatal)

  • standard error

message fields:

  • “target”: The target the event messages shall be sent to.

  • “events”: Specifies the events the caller is interested in (uint32).

error reply fields:

  • “error”:

    • B_BAD_VALUE: A request message field is missing or contains an invalid value.

stop roster watching (BRoster::StopWatching())

target

roster

message

B_REG_STOP_WATCHING

  • “target”: B_MESSENGER_TYPE

reply

standard success

on error

  • B_NO_REPLY (fatal)

  • standard error

message fields:

  • “target”: The target that shall not longer receive any event messages.

error reply fields:

  • “error”:

    • B_BAD_VALUE: A request message field is missing or contains an invalid value.

MIME Database Requests

install a mime type (BMimeType::Install())

target

mime manager (BRoster::fMimeMess)

message

B_REG_MIME_INSTALL

  • “type”: B_STRING_TYPE

reply

standard general result

message fields:

  • “type”: The mime type

reply fields:

  • “result”:

    • B_OK: success

    • B_FILE_EXISTS: the type is already installed

remove a mime type (BMimeType::Delete())

target

mime manager (BRoster::fMimeMess)

message

B_REG_MIME_DELETE

  • “type”: B_STRING_TYPE

reply

standard general result

message fields:

  • “type”: The mime type

reply fields:

  • “result”:

    • B_OK: success

    • B_ENTRY_NOT_FOUND: the type was not found

    • (other error code): failure

set a specific attribute of a mime type (BMimeType::Set*()), installing if necessary

target

mime manager (BRoster::fMimeMess)

message

B_REG_MIME_SET_PARAM

  • “type”: B_STRING_TYPE

  • “which”: B_INT32_TYPE

  • [ additional fields depending upon the “which” field (see below) ]

reply

standard general result

message fields:

  • “type”: The mime type

  • “which”: Which attribute to set. May be one of the following:

“which”

additional message fields

field comments

B_REG_MIME_ICON

“icon data”: B_RAW_TYPE,

B_CMAP8 bitmap data only

“icon size”: B_INT32_TYPE

B_{MINI,LARGE}_ICON or -1 for flat vector icon data

B_REG_MIME_PREFERRED_APP

“signature”: B_STRING_TYPE

“app verb”: B_INT32_TYPE

B_REG_MIME_ATTR_INFO

“attr info”: B_MESSAGE_TYPE

B_REG_MIME_FILE_EXTENSIONS

“extensions”: B_MESSAGE_TYPE

B_REG_MIME_DESCRIPTION

“long”: B_BOOL_TYPE,

“description”: B_STRING_TYPE

B_REG_MIME_SNIFFER_RULE

“sniffer rule”: B_STRING_TYPE

B_REG_MIME_APP_HINT

“app hint”: B_REF_TYPE

B_REG_MIME_ICON_FOR_TYPE

“file type”: B_STRING_TYPE,

“icon data”: B_RAW_TYPE,

“icon size”: B_INT32_TYPE

B_REG_MIME_SUPPORTED_TYPES

“types”: B_MESSAGE_TYPE

reply fields:

  • “result”:

    • B_OK: success

    • (error code): failure

delete a specific attribute of a mime type (BMimeType::Delete*()),

target

mime manager (BRoster::fMimeMess)

message

B_REG_MIME_DELETE_PARAM

  • “type”: B_STRING_TYPE

  • “which”: B_INT32_TYPE

  • [ additional fields depending upon the “which” field (see below) ]

reply

standard general result

message fields:

  • “type”: The mime type

  • “which”: Which attribute to delete. May be one of the following:

“which”

additional message fields

field comments

B_REG_MIME_ICON:

“icon size”: B_INT32_TYPE

B_{MINI,LARGE}_ICON or -1 for vector icon data

B_REG_MIME_PREFERRED_APP

“app verb”: B_INT32_TYPE

B_REG_MIME_ATTR_INFO

B_REG_MIME_FILE_EXTENSIONS

B_REG_MIME_DESCRIPTION

“long”: B_BOOL_TYPE

B_REG_MIME_SNIFFER_RULE

B_REG_MIME_APP_HINT

B_REG_MIME_ICON_FOR_TYPE

“file type”: B_STRING_TYPE,

“icon size”: B_INT32_TYPE

B_REG_MIME_SUPPORTED_TYPES

reply fields:

  • “result”:

    • B_OK: success

    • B_ENTRY_NOT_FOUND: no such attribute exists, or the type is not installed

    • (other error code): failure

subscribe a BMessenger to the MIME monitor service (BMimeType::StartWatching())

target

mime manager (BRoster::fMimeMess)

message

B_REG_MIME_START_WATCHING

“target”: B_MESSENGER_TYPE

reply

standard general result

message fields:

  • “target”: The BMessenger subscribing to the monitor service

reply fields:

  • “result”:

    • B_OK: success

    • (error code): failure

unsubscribe a BMessenger from the MIME monitor service (BMimeType::StopWatching())

target

mime manager (BRoster::fMimeMess)

message

B_REG_MIME_STOP_WATCHING

“target”: B_MESSENGER_TYPE

reply

standard general result

message fields:

  • “target”: The BMessenger unsubscribing from the monitor service

reply fields:

  • “result”:

    • B_OK: success

    • B_ENTRY_NOT_FOUND: the given BMessenger was not subscribed to the service

    • (other error code): failure

perform an update_mime_info() call

target

mime manager (BRoster::fMimeMess)

message

B_REG_MIME_UPDATE_MIME_INFO

  • “entry”: B_REF_TYPE

  • “recursive”: B_BOOLEAN_TYPE

  • “synchronous”: B_BOOLEAN_TYPE

  • “force”: B_INT32_TYPE

reply

standard general result

message fields:

  • “entry”: The base entry to update.

  • “recursive”: If true and “entry” is a directory, update all entries below “entry” in the hierarchy.

  • “synchronous”: If true, the call will block until the operation is completed. If false, the call will return immediately and the operation will run asynchronously in another thread.

  • “force”: Specifies how to handle entries for which a BEOS:TYPE attribute already exists. Valid values are B_UPDATE_MIME_INFO_{NO_FORCE, FORCE_KEEP_TYPE, FORCE_UPDATE_ALL}.

reply fields:

  • “result”:

    • B_OK: The asynchronous update_mime_info() call has been successfully

      started (and may still be running).

    • (error code): failure

perform a create_app_meta_mime() call

target

mime manager (BRoster::fMimeMess)

message

B_REG_MIME_CREATE_APP_META_MIME

  • “entry”: B_REF_TYPE

  • “recursive”: B_BOOLEAN_TYPE

  • “synchronous”: B_BOOLEAN_TYPE

  • “force”: B_INT32_TYPE

reply

standard general result

message fields:

  • “entry”: The base entry to update.

  • “recursive”: If true and “entry” is a directory, update all entries below “entry” in the hierarchy.

  • “synchronous”: If true, the call will block until the operation is completed. If false, the call will return immediately and the operation will run asynchronously in another thread.

  • “force”: If != 0, also update entries for which meta app information already exists.

reply fields:

  • “result”:

    • B_OK: The asynchronous update_mime_info() call has been successfully

      started (and may still be running).

    • (error code): failure

notify the thread manager to perform a clean up run

target

thread manager/mime manager (MIMEManager::fThreadManager/BRoster::fMimeMess)

message

B_REG_MIME_UPDATE_THREAD_FINISHED

reply

none (message should be sent asynchronously)

Message Runner Requests

message runner registration (BMessageRunner::InitData())

target

roster

message

B_REG_REGISTER_MESSAGE_RUNNER

  • “team”: B_INT32_TYPE

  • “target”: B_MESSENGER_TYPE

  • “message”: B_MESSAGE_TYPE

  • “interval”: B_INT64_TYPE

  • “count”: B_INT32_TYPE

  • “reply_target”: B_MESSENGER_TYPE

reply

standard success

  • “token”: B_INT32_TYPE

on error:

  • B_NO_REPLY (fatal)

  • standard error

message fields:

  • “team”: ID of the team owning the BMessageRunner (team_id).

  • “target”: The message target.

  • “message”: The message to be sent to the target.

  • “interval”: Period of time before the first message is sent and between messages (if more than one shall be sent) in microseconds.

  • “count”: Specifies how many times the message shall be sent. A value less than 0 for an unlimited number of repetitions.

  • “reply_target”: Target replies to the delivered message(s) shall be sent to.

reply fields:

  • “token”: Unique token identifying the message runner.

error reply fields:

  • “error”:

    • B_BAD_VALUE: A request message field is missing or contains an invalid value.

message runner unregistration (BMessageRunner::~BMessageRunner())

target

roster

message:

B_REG_UNREGISTER_MESSAGE_RUNNER

  • “token”: B_INT32_TYPE

reply

standard success

on error:

  • B_NO_REPLY (fatal)

  • standard error

message fields:

  • “token”: Unique token identifying the message runner. Returned by the B_REG_REGISTER_MESSAGE_RUNNER request.

error reply fields:

  • “error”:

    • B_BAD_VALUE: A request message field is missing or contains an invalid value.

set message runner parameters (BMessageRunner::SetParams())

target

roster

message

B_REG_SET_MESSAGE_RUNNER_PARAMS

  • “token”: B_INT32_TYPE

  • [ “interval”: B_INT64_TYPE ]

  • [ “count”: B_INT32_TYPE ]

reply

standard success

on error:

  • B_NO_REPLY (fatal)

  • standard error

message fields:

  • “token”: Unique token identifying the message runner. Returned by the B_REG_REGISTER_MESSAGE_RUNNER request.

  • “interval”: Period of time before the first message is sent and between messages (if more than one shall be sent) in microseconds.

  • “count”: Specifies how many times the message shall be sent. A value less than 0 for an unlimited number of repetitions.

error reply fields:

  • “error”:

    • B_BAD_VALUE: A request message field is missing or contains an invalid value.

get message runner info (BMessageRunner::InitData())

target

roster

message:

B_REG_GET_MESSAGE_RUNNER_INFO

  • “token”: B_INT32_TYPE

reply

standard success

  • “interval”: B_INT64_TYPE

  • “count”: B_INT32_TYPE

on error:

  • B_NO_REPLY (fatal)

  • standard error

message fields:

  • “token”: Unique token identifying the message runner. Returned by the B_REG_REGISTER_MESSAGE_RUNNER request.

reply fields:

  • “interval”: Period of time before the first message is sent and between messages (if more than one shall be sent) in microseconds.

  • “count”: Specifies how many times the message still has to be sent. A value less than 0 for an unlimited number of repetitions.

error reply fields:

  • “error”:

    • B_BAD_VALUE: A request message field is missing or contains an invalid value.

Clipboard Handler Requests

add new clipboard to system (BClipboard::BClipboard())

target

clipboard handler

message

B_REG_ADD_CLIPBOARD

  • “name”: B_STRING_TYPE

reply

standard general result

message fields:

  • “name”: Name used to identify the particular clipboard to add

reply fields:

  • “result”:

    • B_OK: success

    • B_BAD_VALUE: name field was not specified in message

get clipboard write count (BClipboard::GetSystemCount())

target

clipboard handler

message

B_REG_GET_CLIPBOARD_COUNT

  • “name”: B_STRING_TYPE

reply

standard general result

  • “count”: B_INT32_TYPE

message fields:

  • “name”: Name used to identify the particular clipboard

reply fields:

  • “result”:

    • B_OK: success

    • B_BAD_VALUE: no name / no valid name specified in message

  • “count”:

    • number of times this clipboard has been written to

start watching clipboard (BClipboard::StartWatching())

target

clipboard handler

message

B_REG_CLIPBOARD_START_WATCHING

  • “name”: B_STRING_TYPE

  • “target”: B_MESSENGER_TYPE

reply

standard general result

message fields:

  • “name”: Name used to identify the particular clipboard

  • “target”: Messenger pointing to the target to notify

reply fields:

  • “result”:

    • B_OK: success

    • B_BAD_VALUE: no name / no valid name specified in message

      no target specified

stop watching clipboard (BClipboard::StopWatching())

target

clipboard handler

message

B_REG_CLIPBOARD_STOP_WATCHING

  • “name”: B_STRING_TYPE

  • “target”: B_MESSENGER_TYPE

reply

standard general result

message fields:

  • “name”: Name used to identify the particular clipboard

  • “target”: Messenger pointing to the target to remove from the notify list

reply fields:

  • “result”:

    • B_OK: success

    • B_BAD_VALUE: no name / no valid name specified in message / no target specified

download clipboard data (BClipboard::DownloadFromSystem())

target

clipboard handler

message

B_REG_DOWNLOAD_CLIPBOARD

“name”: B_STRING_TYPE

reply

standard general result

  • “data”: B_MESSAGE_TYPE

  • “data source”: B_MESSENGER_TYPE

  • “count”: B_INT32_TYPE

message fields:

  • “name”: Name used to identify the particular clipboard

reply fields:

  • “result”:

    • B_OK: success

    • B_BAD_VALUE: no name / no valid name specified in message no target specified

  • “data”: message with Data fields containing the contents of the clipboard

  • “data source”: messenger to the be_app_messenger of the application which last wrote data

  • “count”: number of times this clipboard has been written to

upload clipboard data (BClipboard::UploadToSystem())

target

clipboard handler

message

B_REG_UPLOAD_CLIPBOARD

“name”: B_STRING_TYPE “data”: B_MESSAGE_TYPE “data source”: B_MESSENGER_TYPE

reply

standard general result

  • “count”: B_INT32_TYPE

message fields:

  • “name”: Name used to identify the particular clipboard

  • “data”: message with Data fields containing the contents of the clipboard

  • “data source”: messenger to the be_app_messenger of the application which last wrote data

reply fields:

  • “result”:

    • B_OK: success

    • B_BAD_VALUE: no name / no valid name specified in message / no target specified

  • “count”:

    • number of times this clipboard has been written to

Disk Device Requests

get next disk device

target

disk device manager

message

B_REG_NEXT_DISK_DEVICE

  • “cookie”: B_INT32_TYPE

reply

standard general result

  • “device”: B_MESSAGE_TYPE

  • “cookie”: B_INT32_TYPE

message fields:

  • “cookie”: An iteration cookie. Initially 0.

reply fields:

  • “device”: Archived BDiskDevice info.

  • “cookie”: Next value for the iteration cookie.

  • “result”:

    • B_BAD_VALUE: A request message field is missing or contains an invalid value.

    • B_ENTRY_NOT_FOUND: Iteration finished.

get disk device

target

disk device manager

message

B_REG_GET_DISK_DEVICE

  • “device_id”: B_INT32_TYPE

  • “session_id”: B_INT32_TYPE
  • “partition_id”: B_INT32_TYPE

reply

standard general result

  • “device”: B_MESSAGE_TYPE

message fields:

  • “device_id”: ID of the device to be retrieved.

  • “session_id”: ID of session whose device shall be retrieved.

  • “partition_id”: ID of partition whose device shall be retrieved.

reply fields:

  • “device”: Archived BDiskDevice info.

  • “result”:

    • B_BAD_VALUE: A request message field is missing or contains an invalid value.

    • B_ENTRY_NOT_FOUND: A device/session/partition with that ID could not

      be found.

update disk device

target

disk device manager

message

B_REG_UPDATE_DISK_DEVICE

  • “device_id”: B_INT32_TYPE

  • “session_id”: B_INT32_TYPE
  • “partition_id”: B_INT32_TYPE
  • “change_counter”: B_INT32_TYPE

  • “update_policy”: B_INT32_TYPE

reply

standard general result

  • “up_to_date”: B_BOOLEAN_TYPE

  • [ “device”: B_MESSAGE_TYPE ]

message fields:

  • “device_id”: ID of the device to be retrieved.

  • “session_id”: ID of session whose device shall be retrieved.

  • “partition_id”: ID of partition whose device shall be retrieved.

  • “change_counter”: Change counter of the object (or device in case of B_REG_DEVICE_UPDATE_DEVICE_CHANGED update policy) in question.

  • “update_policy”: (uint32)

    • B_REG_DEVICE_UPDATE_CHECK: Check only, if the object is up to date.

    • B_REG_DEVICE_UPDATE_CHANGED: Update only, if the object has changed.

    • B_REG_DEVICE_UPDATE_DEVICE_CHANGED: Update, if the device has changed, even if the partition/session has not.

    The latter two have the same semantics, if the object is a device.

reply fields:

  • “up_to_date”: true, if the object (and for B_REG_DEVICE_UPDATE_DEVICE_CHANGED also the device) is already up to date, false otherwise.

  • “device”: Archived BDiskDevice info.

  • “result”:

    • B_BAD_VALUE: A request message field is missing or contains an invalid value.

    • B_ENTRY_NOT_FOUND: A device/session/partition with that ID could not be found.

start disk device watching

target

disk device manager

message

B_REG_DEVICE_START_WATCHING

  • “target”: B_MESSENGER_TYPE

  • “events”: B_INT32_TYPE

reply

standard general result

on error

  • B_NO_REPLY (fatal)

  • standard error

message fields:

  • “target”: The target the event messages shall be sent to.

  • “events”: Specifies the events the caller is interested in (uint32).

  • “result”:

    • B_BAD_VALUE: A request message field is missing or contains an invalid value.

stop disk device watching

target

disk device manager

message

B_REG_DEVICE_STOP_WATCHING

  • “target”: B_MESSENGER_TYPE

reply

standard general result

on error

  • B_NO_REPLY (fatal)

  • standard error

message fields:

  • “target”: The target that shall not longer receive any event messages.

  • “result”:

    • B_BAD_VALUE: A request message field is missing or contains an invalid value.