/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import "oaidl.idl"; import "ocidl.idl"; [ uuid(0492311C-1718-4F53-A6EB-86AD7039988D), version(1.0), pointer_default(unique), //implicit_handle(handle_t hHadoopWinutilsSvcBinding), endpoint("ncalrpc:[hadoopwinutilsvc]"), #ifndef __midl explicit_handle #endif ] interface HadoopWinutilSvc { typedef struct { [string] const wchar_t* cwd; [string] const wchar_t* jobName; [string] const wchar_t* user; [string] const wchar_t* pidFile; [string] const wchar_t* cmdLine; } CREATE_PROCESS_REQUEST; typedef struct { LONG_PTR hProcess; LONG_PTR hThread; LONG_PTR hStdIn; LONG_PTR hStdOut; LONG_PTR hStdErr; } CREATE_PROCESS_RESPONSE; typedef struct { [string] const wchar_t* filePath; [string] const wchar_t* ownerName; [string] const wchar_t* groupName; } CHOWN_REQUEST; typedef struct { [string] const wchar_t* filePath; int mode; } CHMOD_REQUEST; typedef struct { [string] const wchar_t* filePath; } MKDIR_REQUEST; typedef enum { MOVE_FILE = 1, COPY_FILE = 2} MOVE_COPY_OPERATION; typedef struct { MOVE_COPY_OPERATION operation; [string] const wchar_t* sourcePath; [string] const wchar_t* destinationPath; boolean replaceExisting; } MOVEFILE_REQUEST; typedef struct { [string] const wchar_t* path; int desiredAccess; int shareMode; int creationDisposition; int flags; } CREATEFILE_REQUEST; typedef struct { LONG_PTR hFile; } CREATEFILE_RESPONSE; typedef enum {PATH_IS_DIR = 1, PATH_IS_FILE = 2} DELETEPATH_TYPE; typedef struct { DELETEPATH_TYPE type; [string] const wchar_t* path; } DELETEPATH_REQUEST; typedef struct { boolean deleted; } DELETEPATH_RESPONSE; typedef struct { [string] const wchar_t* taskName; } KILLTASK_REQUEST; error_status_t WinutilsKillTask( [in] KILLTASK_REQUEST *request); error_status_t WinutilsMkDir( [in] MKDIR_REQUEST *request); error_status_t WinutilsMoveFile( [in] MOVEFILE_REQUEST *request); error_status_t WinutilsChown( [in] CHOWN_REQUEST *request); error_status_t WinutilsChmod( [in] CHMOD_REQUEST *request); error_status_t WinutilsCreateFile( [in] int nmPid, [in] CREATEFILE_REQUEST *request, [out] CREATEFILE_RESPONSE **response); error_status_t WinutilsDeletePath( [in] DELETEPATH_REQUEST *request, [out] DELETEPATH_RESPONSE **response); error_status_t WinutilsCreateProcessAsUser( [in] int nmPid, [in] CREATE_PROCESS_REQUEST *request, [out] CREATE_PROCESS_RESPONSE **response); }