source: branches/samba-3.5.x/source3/librpc/idl/notify.idl

Last change on this file was 414, checked in by Herwig Bauernfeind, 15 years ago

Samba 3.5.0: Initial import

File size: 1.6 KB
Line 
1#include "idl_types.h"
2
3/*
4 IDL structures for notify change code
5
6 this defines the structures used in the notify database code, and
7 the change notify buffers
8*/
9
10[
11 pointer_default(unique)
12]
13interface notify
14{
15
16 /* structure used in the notify database */
17 typedef [public] struct {
18 server_id server;
19 uint32 filter; /* filter to apply in this directory */
20 uint32 subdir_filter; /* filter to apply in child directories */
21 uint32 dir_fd; /* fd of open directory */
22 file_id dir_id; /* file_id of open directory */
23 utf8string path;
24 uint32 path_len; /* saves some computation on search */
25 pointer private_data;
26 } notify_entry;
27
28 typedef [public] struct {
29 uint32 num_entries;
30 notify_entry entries[num_entries];
31 } notify_entry_array;
32
33 /*
34 to allow for efficient search for matching entries, we
35 divide them by the directory depth, with a separate array
36 per depth. The entries within each depth are sorted by path,
37 allowing for a bisection search.
38
39 The max_mask and max_mask_subdir at each depth is the
40 bitwise or of the filters and subdir filters for all entries
41 at that depth. This allows a depth to be quickly skipped if
42 no entries will match the target filter
43 */
44 typedef struct {
45 uint32 max_mask;
46 uint32 max_mask_subdir;
47 uint32 num_entries;
48 notify_entry entries[num_entries];
49 } notify_depth;
50
51 typedef [public] struct {
52 uint32 num_depths;
53 notify_depth depth[num_depths];
54 } notify_array;
55
56 /* structure sent between servers in notify messages */
57 typedef [public] struct {
58 uint32 action;
59 utf8string path;
60 pointer private_data;
61 } notify_event;
62
63}
Note: See TracBrowser for help on using the repository browser.