1 /* 2 * Copyright 2001-2015, Haiku, Inc. All Rights Reserved. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Ingo Weinhold, bonefish@users.sf.net 7 */ 8 #ifndef REGISTRAR_DEFS_H 9 #define REGISTRAR_DEFS_H 10 11 12 //! API classes - registrar interface. 13 14 15 #include <Errors.h> 16 #include <Roster.h> 17 18 19 namespace BPrivate { 20 21 22 // names 23 extern const char* kRAppLooperPortName; 24 25 26 #ifndef HAIKU_TARGET_PLATFORM_LIBBE_TEST 27 # define B_REGISTRAR_SIGNATURE "application/x-vnd.haiku-registrar" 28 # define B_REGISTRAR_PORT_NAME "system:roster" 29 #else 30 # define B_REGISTRAR_SIGNATURE "application/x-vnd.test-registrar" 31 # define B_REGISTRAR_PORT_NAME "haiku-test:roster" 32 #endif 33 34 #define B_REGISTRAR_AUTHENTICATION_PORT_NAME "auth" 35 36 37 // message constants 38 enum { 39 // replies 40 B_REG_SUCCESS = 'rgsu', 41 B_REG_ERROR = 'rger', 42 B_REG_RESULT = 'rgrz', 43 44 // general requests 45 B_REG_GET_MIME_MESSENGER = 'rgmm', 46 B_REG_GET_CLIPBOARD_MESSENGER = 'rgcm', 47 B_REG_GET_DISK_DEVICE_MESSENGER = 'rgdm', 48 B_REG_SHUT_DOWN = 'rgsh', 49 B_REG_IS_SHUT_DOWN_IN_PROGRESS = 'rgsi', 50 51 // roster requests 52 B_REG_ADD_APP = 'rgaa', 53 B_REG_COMPLETE_REGISTRATION = 'rgcr', 54 B_REG_IS_APP_REGISTERED = 'rgip', 55 B_REG_REMOVE_PRE_REGISTERED_APP = 'rgrp', 56 B_REG_REMOVE_APP = 'rgra', 57 B_REG_SET_THREAD_AND_TEAM = 'rgtt', 58 B_REG_SET_SIGNATURE = 'rgss', 59 B_REG_GET_APP_INFO = 'rgai', 60 B_REG_GET_APP_LIST = 'rgal', 61 B_REG_UPDATE_ACTIVE_APP = 'rgua', 62 B_REG_BROADCAST = 'rgbc', 63 B_REG_START_WATCHING = 'rgwa', 64 B_REG_STOP_WATCHING = 'rgsw', 65 B_REG_GET_RECENT_DOCUMENTS = 'rggd', 66 B_REG_GET_RECENT_FOLDERS = 'rggf', 67 B_REG_GET_RECENT_APPS = 'rgga', 68 B_REG_ADD_TO_RECENT_DOCUMENTS = 'rg2d', 69 B_REG_ADD_TO_RECENT_FOLDERS = 'rg2f', 70 B_REG_ADD_TO_RECENT_APPS = 'rg2a', 71 B_REG_CLEAR_RECENT_DOCUMENTS = 'rgxd', 72 B_REG_CLEAR_RECENT_FOLDERS = 'rgxf', 73 B_REG_CLEAR_RECENT_APPS = 'rgxa', 74 B_REG_LOAD_RECENT_LISTS = 'rglr', 75 B_REG_SAVE_RECENT_LISTS = 'rgsr', 76 77 // MIME requests 78 B_REG_MIME_SET_PARAM = 'rgsp', 79 B_REG_MIME_DELETE_PARAM = 'rgdp', 80 B_REG_MIME_START_WATCHING = 'rgwb', 81 B_REG_MIME_STOP_WATCHING = 'rgwe', 82 B_REG_MIME_INSTALL = 'rgin', 83 B_REG_MIME_DELETE = 'rgdl', 84 B_REG_MIME_GET_INSTALLED_TYPES = 'rgit', 85 B_REG_MIME_GET_INSTALLED_SUPERTYPES = 'rgis', 86 B_REG_MIME_GET_SUPPORTING_APPS = 'rgsa', 87 B_REG_MIME_GET_ASSOCIATED_TYPES = 'rgat', 88 B_REG_MIME_SNIFF = 'rgsn', 89 B_REG_MIME_UPDATE_MIME_INFO = 'rgup', 90 B_REG_MIME_CREATE_APP_META_MIME = 'rgca', 91 B_REG_MIME_UPDATE_THREAD_FINISHED = 'rgtf', 92 93 // message runner requests 94 B_REG_REGISTER_MESSAGE_RUNNER = 'rgrr', 95 B_REG_UNREGISTER_MESSAGE_RUNNER = 'rgru', 96 B_REG_SET_MESSAGE_RUNNER_PARAMS = 'rgrx', 97 B_REG_GET_MESSAGE_RUNNER_INFO = 'rgri', 98 99 // internal registrar messages 100 B_REG_SHUTDOWN_FINISHED = 'rgsf', 101 B_REG_ROSTER_DEVICE_RESCAN = 'rgrs', 102 103 // clipboard handler requests 104 B_REG_ADD_CLIPBOARD = 'rgCa', 105 B_REG_GET_CLIPBOARD_COUNT = 'rgCc', 106 B_REG_CLIPBOARD_START_WATCHING = 'rgCw', 107 B_REG_CLIPBOARD_STOP_WATCHING = 'rgCx', 108 B_REG_DOWNLOAD_CLIPBOARD = 'rgCd', 109 B_REG_UPLOAD_CLIPBOARD = 'rgCu', 110 111 // disk device request 112 B_REG_NEXT_DISK_DEVICE = 'rgnx', 113 B_REG_GET_DISK_DEVICE = 'rgdd', 114 B_REG_UPDATE_DISK_DEVICE = 'rgud', 115 B_REG_DEVICE_START_WATCHING = 'rgwd', 116 B_REG_DEVICE_STOP_WATCHING = 'rgsd', 117 118 // debug_server notifications 119 B_REG_TEAM_DEBUGGER_ALERT = 'rtda', 120 121 // authentication requests 122 B_REG_GET_PASSWD_DB = 'rpdb', 123 B_REG_GET_GROUP_DB = 'rgdb', 124 B_REG_GET_SHADOW_PASSWD_DB = 'rsdb', 125 B_REG_GET_USER = 'rgus', 126 B_REG_GET_GROUP = 'rggr', 127 B_REG_GET_USER_GROUPS = 'rgug', 128 B_REG_UPDATE_USER = 'ruus', 129 B_REG_DELETE_USER = 'rdus', 130 B_REG_UPDATE_GROUP = 'rugr', 131 B_REG_DELETE_GROUP = 'rdgr', 132 133 // package watching requests 134 B_REG_PACKAGE_START_WATCHING = 'rgPw', 135 B_REG_PACKAGE_STOP_WATCHING = 'rgPx', 136 }; 137 138 // B_REG_MIME_SET_PARAM "which" constants 139 enum { 140 B_REG_MIME_APP_HINT = 'rgmh', 141 B_REG_MIME_ATTR_INFO = 'rgma', 142 B_REG_MIME_DESCRIPTION = 'rgmd', 143 B_REG_MIME_FILE_EXTENSIONS = 'rgmf', 144 B_REG_MIME_ICON = 'rgmi', 145 B_REG_MIME_ICON_FOR_TYPE = 'rgm4', 146 B_REG_MIME_PREFERRED_APP = 'rgmp', 147 B_REG_MIME_SNIFFER_RULE = 'rgmr', 148 B_REG_MIME_SUPPORTED_TYPES = 'rgms', 149 }; 150 151 // B_REG_UPDATE_DISK_DEVICE "update_policy" constants 152 enum { 153 B_REG_DEVICE_UPDATE_CHECK, 154 B_REG_DEVICE_UPDATE_CHANGED, 155 B_REG_DEVICE_UPDATE_DEVICE_CHANGED, 156 }; 157 158 // type constants 159 enum { 160 B_REG_APP_INFO_TYPE = 'rgai', // app_info 161 }; 162 163 // error constants 164 #define B_REGISTRAR_ERROR_BASE (B_ERRORS_END + 1) 165 166 enum { 167 B_REG_ALREADY_REGISTERED = B_REGISTRAR_ERROR_BASE, 168 // A team tries to register a second time. 169 B_REG_APP_NOT_REGISTERED, 170 B_REG_APP_NOT_PRE_REGISTERED, 171 }; 172 173 // misc constants 174 enum { 175 B_REG_DEFAULT_APP_FLAGS = B_MULTIPLE_LAUNCH, 176 B_REG_APP_LOOPER_PORT_CAPACITY = 100, 177 }; 178 179 // structs 180 181 // a flat app_info -- to be found in B_REG_APP_INFO_TYPE message fields 182 struct flat_app_info { 183 thread_id thread; 184 team_id team; 185 port_id port; 186 uint32 flags; 187 dev_t ref_device; 188 ino_t ref_directory; 189 char signature[B_MIME_TYPE_LENGTH]; 190 char ref_name[B_FILE_NAME_LENGTH + 1]; 191 } _PACKED; 192 193 194 } // namespace BPrivate 195 196 197 #endif // REGISTRAR_DEFS_H 198 199