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 theshutdown process fails. Otherwise the reply will be sentright 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 bepassed to BRoster::SetThreadAndTeam().- "other_team": For single/exclusive launch applications that are launchedthe 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 aninvalid value.- B_REG_APP_NOT_PRE_REGISTERED: The team is unknown to the roster or theapplication 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 aninvalid 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 aninvalid value.- B_REG_APP_NOT_PRE_REGISTERED: The token does not identify a pre-registeredapplication.- ...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 aninvalid 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 aninvalid value.- B_REG_APP_NOT_PRE_REGISTERED: The token does not identify a pre-registeredapplication.- ...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 aninvalid value.- B_REG_APP_NOT_REGISTERED: The team does not identify a registeredapplication.- ...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 aninvalid value.- B_BAD_TEAM_ID: The supplied team ID does not identify a registeredapplication.- B_ERROR:- An entry_ref or a signature has been supplied and no such applicationis currently running.- No team ID has been supplied and currently there is no activeapplication.- ...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 aninvalid 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 aninvalid value.- B_BAD_TEAM_ID: The supplied team ID does not identify a registeredapplication.- ...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 aninvalid 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 aninvalid 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 aninvalid 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 typereply 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 typereply fields:- "result":- B_OK: success- B_ENTRY_NOT_FOUND: the type was not found- (other error code): failureset 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): failuredelete 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): failuresubscribe 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 servicereply fields:- "result":- B_OK: success- (error code): failureunsubscribe 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 servicereply fields:- "result":- B_OK: success- B_ENTRY_NOT_FOUND: the given BMessenger was not subscribed to the service- (other error code): failureperform 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 entriesbelow "entry" in the hierarchy.- "synchronous": If true, the call will block until the operation iscompleted. If false, the call will return immediately and the operationwill run asynchronously in another thread.- "force": Specifies how to handle entries for which a BEOS:TYPE attributealready exists. Valid values areB_UPDATE_MIME_INFO_{NO_FORCE, FORCE_KEEP_TYPE, FORCE_UPDATE_ALL}.reply fields:- "result":- B_OK: The asynchronous update_mime_info() call has been successfullystarted (and may still be running).- (error code): failureperform 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 entriesbelow "entry" in the hierarchy.- "synchronous": If true, the call will block until the operation iscompleted. If false, the call will return immediately and the operationwill run asynchronously in another thread.- "force": If != 0, also update entries for which meta app informationalready exists.reply fields:- "result":- B_OK: The asynchronous update_mime_info() call has been successfullystarted (and may still be running).- (error code): failurenotify 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 betweenmessages (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 aninvalid 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 theB_REG_REGISTER_MESSAGE_RUNNER request.error reply fields:- "error":- B_BAD_VALUE: A request message field is missing or contains aninvalid 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 theB_REG_REGISTER_MESSAGE_RUNNER request.- "interval": Period of time before the first message is sent and betweenmessages (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 aninvalid 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 theB_REG_REGISTER_MESSAGE_RUNNER request.reply fields:- "interval": Period of time before the first message is sent and betweenmessages (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 aninvalid 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 addreply fields:- "result":- B_OK: success- B_BAD_VALUE: name field was not specified in messageget 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 clipboardreply 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 tostart 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 notifyreply fields:- "result":- B_OK: success- B_BAD_VALUE: no name / no valid name specified in messageno target specifiedstop 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 listreply fields:- "result":- B_OK: success- B_BAD_VALUE: no name / no valid name specified in message / no target specifieddownload 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 clipboardreply fields:- "result":- B_OK: success- B_BAD_VALUE: no name / no valid name specified in messageno 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 toupload 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 datareply 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 toDisk 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 aninvalid 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 aninvalid value.- B_ENTRY_NOT_FOUND: A device/session/partition with that ID could notbe 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 ofB_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, evenif 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 forB_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 aninvalid value.- B_ENTRY_NOT_FOUND: A device/session/partition with that ID could notbe 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 aninvalid 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 aninvalid value.- ...