frstrans.idl: add definition of frstrans_InitializeFileTransferAsync()
authorStefan Metzmacher <metze@samba.org>
Mon, 27 Jul 2009 14:03:03 +0000 (16:03 +0200)
committerStefan Metzmacher <metze@samba.org>
Mon, 27 Jul 2009 15:51:36 +0000 (17:51 +0200)
metze

librpc/idl/frstrans.idl

index 8c3dde09df23f8fc4dc17c357e44052547adc485..74f3c645a4d9ebf9f162881d2ed0fb1d22844e6d 100644 (file)
@@ -189,7 +189,85 @@ interface frstrans
 
        /*****************/
        /* Function 0x0d */
-       [todo] void FRSTRANS_INITIALIZE_FILE_TRANSFER_ASYNC();
+       typedef enum {
+               FRSTRANS_STAGING_POLICY_SERVER_DEFAULTY         = 0x0000,
+               FRSTRANS_STAGING_POLICY_STATGING_REQUIRED       = 0x0001,
+               FRSTRANS_STAGING_POLICY_RESTATGING_REQUIRED     = 0x0002
+       } frstrans_RequestedStagingPolicy;
+
+       typedef enum {
+               FRSTRANS_RDC_FILTER_GENERIC     = 0x0000,
+               FRSTRANS_RDC_FILTER_MAX         = 0x0001,
+               FRSTRANS_RDC_FILTER_POINT       = 0x0002,
+               FRSTRANS_RDC_MAX_ALGORITHM      = 0x0003
+       } frstrans_RdcChunckerAlgorithm;
+
+       typedef struct {
+               frstrans_RdcChunckerAlgorithm chunker_type;
+               uint8 chunker_parameters[64];
+       } frstrans_RdcParameterGeneric;
+
+       typedef struct {
+               [range(128,1024*16)] uint16 min_horizon_size;
+               [range(2,96)] uint16 max_window_size;
+       } frstrans_RdcParameterFilterMax;
+
+       typedef struct {
+               uint16 min_chunk_size;
+               uint16 max_chunk_size;
+       } frstrans_RdcParameterFilterPoint;
+
+       typedef [switch_type(frstrans_RdcChunckerAlgorithm)] union {
+               [case(FRSTRANS_RDC_FILTER_GENERIC)]
+                       frstrans_RdcParameterGeneric filter_generic;
+               [case(FRSTRANS_RDC_FILTER_MAX)]
+                       frstrans_RdcParameterFilterMax filter_max;
+               [case(FRSTRANS_RDC_FILTER_POINT)]
+                       frstrans_RdcParameterFilterPoint filter_point;
+       } frstrans_RdcParameterUnion;
+
+       typedef struct {
+               frstrans_RdcChunckerAlgorithm rdc_chunker_algorithm;
+               [switch_is(rdc_chunker_algorithm)] frstrans_RdcParameterUnion u;
+       } frstrans_RdcParameters;
+
+       typedef enum {
+               FRSTRANS_RDC_VERSION            = 0x0001
+       } frstrans_RdcVersion;
+
+       typedef enum {
+               FRSTRANS_RDC_VERSION_COMPATIBLE = 0x0001
+       } frstrans_RdcVersionCompatible;
+
+       typedef enum {
+               FRSTRANS_RDC_UNCOMPRESSED       = 0x0000,
+               FRSTRANS_RDC_XPRESS             = 0x0001
+       } frstrans_RdcCompressionAlgorithm;
+
+       typedef struct {
+               hyper on_disk_file_size;
+               hyper file_size_estimate;
+               frstrans_RdcVersion rdc_version;
+               frstrans_RdcVersionCompatible rdc_minimum_compatible_version;
+               [range(0,8)] uint8 rdc_signature_levels;
+               frstrans_RdcCompressionAlgorithm compression_algorithm;
+               [size_is(rdc_signature_levels)]
+                       frstrans_RdcParameters rdc_filter_parameters[*];
+       } frstrans_RdcFileInfo;
+
+       WERROR frstrans_InitializeFileTransferAsync(
+               [in] GUID connection_guid,
+               [in,out,ref] frstrans_Update *frs_update,
+               [in,range(0,1)] boolean32 rdc_desired,
+               [in,out,ref] frstrans_RequestedStagingPolicy *staging_policy,
+               [out,ref] policy_handle *server_context,
+               [out,ref] frstrans_RdcFileInfo **rdc_file_info,
+               [out,ref,size_is(buffer_size),length_is(*size_read)]
+                       uint8 *data_buffer,
+               [in,range(0,262144)] uint32 buffer_size,
+               [out,ref] uint32 *size_read,
+               [out,ref] boolean32 *is_end_of_file
+       );
 
        /*****************/
        /* Function 0x0e */