diff options
author | Andrew Bartlett <abartlet@samba.org> | 2010-05-18 20:34:20 +1000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2010-05-24 23:08:11 +1000 |
commit | 6c726745a4253f35a5d2e016185ba5624fd40644 (patch) | |
tree | 1ce30d95be81344c8df721687a64c9fa520d6ac8 /source4/librpc/idl/s4_notify.idl | |
parent | 8e1e6b0112c06b8587c0823a62d2103c047f8310 (diff) | |
download | samba-6c726745a4253f35a5d2e016185ba5624fd40644.tar.gz samba-6c726745a4253f35a5d2e016185ba5624fd40644.tar.bz2 samba-6c726745a4253f35a5d2e016185ba5624fd40644.zip |
s4:ntvfs rename notify.idl to s4_notify.idl until we can merge this IDL
This IDL is almost common, but the source3 version has a
hand-marshalled server_id. The s3compat build has problems with two
different idl files of the same name.
Andrew Bartlett
Diffstat (limited to 'source4/librpc/idl/s4_notify.idl')
-rw-r--r-- | source4/librpc/idl/s4_notify.idl | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/source4/librpc/idl/s4_notify.idl b/source4/librpc/idl/s4_notify.idl new file mode 100644 index 0000000000..1d4c33470d --- /dev/null +++ b/source4/librpc/idl/s4_notify.idl @@ -0,0 +1,58 @@ +#include "idl_types.h" + +/* + IDL structures for notify change code + + this defines the structures used in the notify database code, and + the change notify buffers +*/ + +import "server_id.idl"; + +[ + pointer_default(unique) +] +interface notify +{ + + /* structure used in the notify database */ + typedef [public] struct { + server_id server; + uint32 filter; /* filter to apply in this directory */ + uint32 subdir_filter; /* filter to apply in child directories */ + utf8string path; + uint32 path_len; /* saves some computation on search */ + pointer private_data; + } notify_entry; + + /* + to allow for efficient search for matching entries, we + divide them by the directory depth, with a separate array + per depth. The entries within each depth are sorted by path, + allowing for a bisection search. + + The max_mask and max_mask_subdir at each depth is the + bitwise or of the filters and subdir filters for all entries + at that depth. This allows a depth to be quickly skipped if + no entries will match the target filter + */ + typedef struct { + uint32 max_mask; + uint32 max_mask_subdir; + uint32 num_entries; + notify_entry entries[num_entries]; + } notify_depth; + + typedef [public] struct { + uint32 num_depths; + notify_depth depth[num_depths]; + } notify_array; + + /* structure sent between servers in notify messages */ + typedef [public] struct { + uint32 action; + utf8string path; + pointer private_data; + } notify_event; + +} |