echo.idl...
[metze/samba/wip.git] / librpc / idl / echo.idl
index bf1e318674988ec3a6260b7ab64b8169fe4ed98d..8d687d7a1499741d38b875d1e3a76e8190b2d466 100644 (file)
@@ -124,4 +124,89 @@ interface rpcecho
        );
 
        uint16 echo_TestDoublePointer([in] uint16 ***data);
+
+       typedef pipe uint8 echo_BytePipe;
+
+       uint32 echo_TestBytePipeIn(
+               [in] uint32 count,
+               [in,ref] echo_BytePipe *in_pipe
+       );
+
+       uint32 echo_TestBytePipeOut(
+               [in] uint32 count,
+               [out,ref] echo_BytePipe *out_pipe
+       );
+
+       uint32 echo_TestBytePipeInOut(
+               [in] uint32 count,
+               [in,out,ref] echo_BytePipe *out_pipe
+       );
 }
+#if 0
+       struct frstrans_BytePipe_chunk {
+               uint32_t count;
+               uint8_t *array;
+       };
+
+       struct frstrans_RdcGetFileDataAsync r;
+       struct frstrans_BytePipe_chunk chunk;
+       struct frstrans_BytePipe *p;
+
+       p = dcerpc_frstrans_BytePipe_create()..;
+
+       r.out.byte_pipe = p;
+
+       subreq = dceprc_frstrans_RdcGetFileDataAsync_send(..., r);
+
+       while (true) {
+               subreq2 = dcerpc_frstrans_BytePipe_read_chunk_send(..., r.out.byte_pipe)
+
+               dcerpc_frstrans_BytePipe_read_chunk_recv(subreq2, mem_ctx, &chunk);
+
+               if (chunk.count == 0) {
+                       break;
+               }
+       }
+       subreq = dceprc_frstrans_RdcGetFileDataAsync_recv(subreq);
+
+// frstrans_metzeSomeStructExample
+
+       typedef struct {
+               uint16 fixed[16];
+               hyper bla;
+               uint8 dummy;
+               uint32 foo_bug[45];
+       } frstrans_Struct;
+       typedef pipe frstrans_Struct *frstrans_StructPipe;
+
+       WERROR frstrans_metzeSomeStructExample(
+               [in,ref] policy_handle *server_context,
+               [out,ref] frstrans_StructPipe *struct_pipe
+               );
+
+       struct frstrans_StructPipe_chunk {
+               uint32_t count;
+               struct frstrans_Struct *array;
+       };
+
+       struct frstrans_metzeSomeStructExample r;
+       struct frstrans_StructPipe_chunk chunk;
+       struct frstrans_StructPipe *p;
+
+       p = dcerpc_frstrans_StructPipe_create()..;
+
+       r.out.byte_pipe = p;
+
+       subreq = dceprc_frstrans_metzeSomeStructExample_send(..., r);
+
+       while (true) {
+               subreq2 = dcerpc_frstrans_StructPipe_read_chunk_send(..., r.out.byte_pipe)
+
+               dcerpc_frstrans_StructPipe_read_chunk_recv(subreq2, mem_ctx, &chunk);
+
+               if (chunk.count == 0) {
+                       break;
+               }
+       }
+       subreq = dceprc_frstrans_metzeSomeStructExample_recv(subreq);
+#endif