haiku/headers/private/app/RegistrarDefs.h

199 lines
5.2 KiB
C++

/*
* Copyright 2001-2015, Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Ingo Weinhold, bonefish@users.sf.net
*/
#ifndef REGISTRAR_DEFS_H
#define REGISTRAR_DEFS_H
//! API classes - registrar interface.
#include <Errors.h>
#include <Roster.h>
namespace BPrivate {
// names
extern const char* kRAppLooperPortName;
#ifndef HAIKU_TARGET_PLATFORM_LIBBE_TEST
# define B_REGISTRAR_SIGNATURE "application/x-vnd.haiku-registrar"
# define B_REGISTRAR_PORT_NAME "system:roster"
#else
# define B_REGISTRAR_SIGNATURE "application/x-vnd.test-registrar"
# define B_REGISTRAR_PORT_NAME "haiku-test:roster"
#endif
#define B_REGISTRAR_AUTHENTICATION_PORT_NAME "auth"
// message constants
enum {
// replies
B_REG_SUCCESS = 'rgsu',
B_REG_ERROR = 'rger',
B_REG_RESULT = 'rgrz',
// general requests
B_REG_GET_MIME_MESSENGER = 'rgmm',
B_REG_GET_CLIPBOARD_MESSENGER = 'rgcm',
B_REG_GET_DISK_DEVICE_MESSENGER = 'rgdm',
B_REG_SHUT_DOWN = 'rgsh',
B_REG_IS_SHUT_DOWN_IN_PROGRESS = 'rgsi',
// roster requests
B_REG_ADD_APP = 'rgaa',
B_REG_COMPLETE_REGISTRATION = 'rgcr',
B_REG_IS_APP_REGISTERED = 'rgip',
B_REG_REMOVE_PRE_REGISTERED_APP = 'rgrp',
B_REG_REMOVE_APP = 'rgra',
B_REG_SET_THREAD_AND_TEAM = 'rgtt',
B_REG_SET_SIGNATURE = 'rgss',
B_REG_GET_APP_INFO = 'rgai',
B_REG_GET_APP_LIST = 'rgal',
B_REG_UPDATE_ACTIVE_APP = 'rgua',
B_REG_BROADCAST = 'rgbc',
B_REG_START_WATCHING = 'rgwa',
B_REG_STOP_WATCHING = 'rgsw',
B_REG_GET_RECENT_DOCUMENTS = 'rggd',
B_REG_GET_RECENT_FOLDERS = 'rggf',
B_REG_GET_RECENT_APPS = 'rgga',
B_REG_ADD_TO_RECENT_DOCUMENTS = 'rg2d',
B_REG_ADD_TO_RECENT_FOLDERS = 'rg2f',
B_REG_ADD_TO_RECENT_APPS = 'rg2a',
B_REG_CLEAR_RECENT_DOCUMENTS = 'rgxd',
B_REG_CLEAR_RECENT_FOLDERS = 'rgxf',
B_REG_CLEAR_RECENT_APPS = 'rgxa',
B_REG_LOAD_RECENT_LISTS = 'rglr',
B_REG_SAVE_RECENT_LISTS = 'rgsr',
// MIME requests
B_REG_MIME_SET_PARAM = 'rgsp',
B_REG_MIME_DELETE_PARAM = 'rgdp',
B_REG_MIME_START_WATCHING = 'rgwb',
B_REG_MIME_STOP_WATCHING = 'rgwe',
B_REG_MIME_INSTALL = 'rgin',
B_REG_MIME_DELETE = 'rgdl',
B_REG_MIME_GET_INSTALLED_TYPES = 'rgit',
B_REG_MIME_GET_INSTALLED_SUPERTYPES = 'rgis',
B_REG_MIME_GET_SUPPORTING_APPS = 'rgsa',
B_REG_MIME_GET_ASSOCIATED_TYPES = 'rgat',
B_REG_MIME_SNIFF = 'rgsn',
B_REG_MIME_UPDATE_MIME_INFO = 'rgup',
B_REG_MIME_CREATE_APP_META_MIME = 'rgca',
B_REG_MIME_UPDATE_THREAD_FINISHED = 'rgtf',
// message runner requests
B_REG_REGISTER_MESSAGE_RUNNER = 'rgrr',
B_REG_UNREGISTER_MESSAGE_RUNNER = 'rgru',
B_REG_SET_MESSAGE_RUNNER_PARAMS = 'rgrx',
B_REG_GET_MESSAGE_RUNNER_INFO = 'rgri',
// internal registrar messages
B_REG_SHUTDOWN_FINISHED = 'rgsf',
B_REG_ROSTER_DEVICE_RESCAN = 'rgrs',
// clipboard handler requests
B_REG_ADD_CLIPBOARD = 'rgCa',
B_REG_GET_CLIPBOARD_COUNT = 'rgCc',
B_REG_CLIPBOARD_START_WATCHING = 'rgCw',
B_REG_CLIPBOARD_STOP_WATCHING = 'rgCx',
B_REG_DOWNLOAD_CLIPBOARD = 'rgCd',
B_REG_UPLOAD_CLIPBOARD = 'rgCu',
// disk device request
B_REG_NEXT_DISK_DEVICE = 'rgnx',
B_REG_GET_DISK_DEVICE = 'rgdd',
B_REG_UPDATE_DISK_DEVICE = 'rgud',
B_REG_DEVICE_START_WATCHING = 'rgwd',
B_REG_DEVICE_STOP_WATCHING = 'rgsd',
// debug_server notifications
B_REG_TEAM_DEBUGGER_ALERT = 'rtda',
// authentication requests
B_REG_GET_PASSWD_DB = 'rpdb',
B_REG_GET_GROUP_DB = 'rgdb',
B_REG_GET_SHADOW_PASSWD_DB = 'rsdb',
B_REG_GET_USER = 'rgus',
B_REG_GET_GROUP = 'rggr',
B_REG_GET_USER_GROUPS = 'rgug',
B_REG_UPDATE_USER = 'ruus',
B_REG_DELETE_USER = 'rdus',
B_REG_UPDATE_GROUP = 'rugr',
B_REG_DELETE_GROUP = 'rdgr',
// package watching requests
B_REG_PACKAGE_START_WATCHING = 'rgPw',
B_REG_PACKAGE_STOP_WATCHING = 'rgPx',
};
// B_REG_MIME_SET_PARAM "which" constants
enum {
B_REG_MIME_APP_HINT = 'rgmh',
B_REG_MIME_ATTR_INFO = 'rgma',
B_REG_MIME_DESCRIPTION = 'rgmd',
B_REG_MIME_FILE_EXTENSIONS = 'rgmf',
B_REG_MIME_ICON = 'rgmi',
B_REG_MIME_ICON_FOR_TYPE = 'rgm4',
B_REG_MIME_PREFERRED_APP = 'rgmp',
B_REG_MIME_SNIFFER_RULE = 'rgmr',
B_REG_MIME_SUPPORTED_TYPES = 'rgms',
};
// B_REG_UPDATE_DISK_DEVICE "update_policy" constants
enum {
B_REG_DEVICE_UPDATE_CHECK,
B_REG_DEVICE_UPDATE_CHANGED,
B_REG_DEVICE_UPDATE_DEVICE_CHANGED,
};
// type constants
enum {
B_REG_APP_INFO_TYPE = 'rgai', // app_info
};
// error constants
#define B_REGISTRAR_ERROR_BASE (B_ERRORS_END + 1)
enum {
B_REG_ALREADY_REGISTERED = B_REGISTRAR_ERROR_BASE,
// A team tries to register a second time.
B_REG_APP_NOT_REGISTERED,
B_REG_APP_NOT_PRE_REGISTERED,
};
// misc constants
enum {
B_REG_DEFAULT_APP_FLAGS = B_MULTIPLE_LAUNCH,
B_REG_APP_LOOPER_PORT_CAPACITY = 100,
};
// structs
// a flat app_info -- to be found in B_REG_APP_INFO_TYPE message fields
struct flat_app_info {
thread_id thread;
team_id team;
port_id port;
uint32 flags;
dev_t ref_device;
ino_t ref_directory;
char signature[B_MIME_TYPE_LENGTH];
char ref_name[B_FILE_NAME_LENGTH + 1];
} _PACKED;
} // namespace BPrivate
#endif // REGISTRAR_DEFS_H