proxy rpc
[Samba/vfs_proxy.git] / source4 / librpc / idl / proxy.idl
blob7202db5da0d23068791a742b5532163c693ca15f
3 uuid("bf25facd-cc1a-4067-9a23-2e20b26816e5"),
4 endpoint("ncacn_np:[\\pipe\\rpcproxy]", "ncacn_ip_tcp:", "ncalrpc:"),
5 pointer_default(unique),
6 version(1.0),
7 helpstring("Caching Proxy")
9 interface rpcproxy
11 NTSTATUS proxy_Read(
12 [in] uint32 fnum, /* file number as supplied by remote device */
13 [in] uint32 mincnt,
14 [in] uint32 maxcnt,
15 [in] uint32 remaining,
16 [in] hyper offset,
17 [in] uint8 read_for_execute,
18 [in,out] uint8 flags, /* read_for_execute, zlib, md5 etc */
19 [in] [switch_is(flags & PROXY_USE_CACHE)] digest_ digest,
20 [out] uint32 nread,
21 [out] [switch_is(flags)] Read_data response
24 NTSTATUS proxy_Write(
25 [in] uint32 fnum, /* file number as supplied by remote device */
26 [in] hyper offset,
27 [in] uint32 count, /* the uncompressed count */
28 [in] uint16 mode,
29 [in] uint8 flags, /* read_for_execute, zlib, md5 etc */
30 [in] [switch_is(flags)] Write_data data,
31 [out] uint32 nwritten,
32 [out] uint32 remaining
35 typedef enum {
36 PROXY_USE_CACHE = 1,
37 PROXY_USE_ZLIB = 2,
38 /* if cache is not valid, fall back to mincnt */
39 PROXY_VALIDATE = 4,
40 PROXY_RSYNC = 8
41 } proxy_Read_flags;
43 typedef struct digest {
44 uint8 data[16];
45 } digest;
47 typedef [/*nodiscriminant,*/switch_type(uint8)] union {
48 [case(PROXY_USE_CACHE)] uint8 digest[16];
49 [default];
50 } digest_;
52 typedef struct {
53 uint32 count;
54 [/*nodiscriminant,*/size_is(count)] uint8 data[];
55 } Read_data_generic;
57 typedef [/*nodiscriminant,*/switch_type(uint8)] union {
58 [case(0)] Read_data_generic generic;
59 [case(PROXY_USE_ZLIB)] Read_data_generic compress;
60 [default];
61 } Read_data;
63 typedef struct {
64 uint32 count;
65 [/*nodiscriminant,*/size_is(count)] uint8 data[];
66 } Write_data_generic;
68 typedef [/*nodiscriminant,*/switch_type(uint8)] union {
69 [case(0)] Write_data_generic generic;
70 [case(PROXY_USE_ZLIB)] Write_data_generic compress;
71 [default];
72 } Write_data;