mirror of
https://git.kernel.org/pub/scm/bluetooth/bluez.git
synced 2024-12-15 15:04:34 +08:00
de40e1d3b2
This is more efficient in terms of memory and hash lookups, it is also not prone to string format bugs in remote stacks such as leading zeros being treated as a different handle as can be experience with Nokia N950 which sends events using a handle with leading zeros but message listing don't have them.
68 lines
1.9 KiB
C
68 lines
1.9 KiB
C
/*
|
|
*
|
|
* OBEX
|
|
*
|
|
* Copyright (C) 2013 BMW Car IT GmbH. All rights reserved.
|
|
*
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*
|
|
*/
|
|
|
|
struct obc_session;
|
|
|
|
enum map_event_type {
|
|
MAP_ET_NEW_MESSAGE,
|
|
MAP_ET_DELIVERY_SUCCESS,
|
|
MAP_ET_SENDING_SUCCESS,
|
|
MAP_ET_DELIVERY_FAILURE,
|
|
MAP_ET_SENDING_FAILURE,
|
|
MAP_ET_MEMORY_FULL,
|
|
MAP_ET_MEMORY_AVAILABLE,
|
|
MAP_ET_MESSAGE_DELETED,
|
|
MAP_ET_MESSAGE_SHIFT
|
|
};
|
|
|
|
struct map_event {
|
|
enum map_event_type type;
|
|
uint64_t handle;
|
|
char *folder;
|
|
char *old_folder;
|
|
char *msg_type;
|
|
};
|
|
|
|
/* Handle notification in map client.
|
|
*
|
|
* event: Event report.
|
|
*
|
|
* Callback shall be called for every received event.
|
|
*/
|
|
typedef void (*map_event_cb) (struct map_event *event, void *user_data);
|
|
|
|
/* Registers client notification handler callback for events that are
|
|
* addressed to the given mas instance id for the given device.
|
|
*/
|
|
bool map_register_event_handler(struct obc_session *session, int mas_id,
|
|
map_event_cb cb, void *user_data);
|
|
|
|
/* Unregisters client notification handler callback.
|
|
*/
|
|
void map_unregister_event_handler(struct obc_session *session, int mas_id);
|
|
|
|
/* Dispatch notification to a registered notification handler callback.
|
|
*/
|
|
void map_dispatch_event(int mas_id, const char *device,
|
|
struct map_event *event);
|