/// <exception cref="System.IO.IOException"/>
            /// <exception cref="System.Exception"/>
            public override void Cancel <_T0>(Org.Apache.Hadoop.Security.Token.Token <_T0> token
                                              , Configuration conf)
            {
                ApplicationClientProtocol rmClient = GetRmClient(token, conf);

                if (rmClient != null)
                {
                    try
                    {
                        CancelDelegationTokenRequest request = Records.NewRecord <CancelDelegationTokenRequest
                                                                                  >();
                        request.SetDelegationToken(ConvertToProtoToken(token));
                        rmClient.CancelDelegationToken(request);
                    }
                    catch (YarnException e)
                    {
                        throw new IOException(e);
                    }
                    finally
                    {
                        RPC.StopProxy(rmClient);
                    }
                }
                else
                {
                    localSecretManager.CancelToken((Org.Apache.Hadoop.Security.Token.Token <RMDelegationTokenIdentifier
                                                                                            >)token, GetRenewer(token));
                }
            }
        /// <exception cref="Com.Google.Protobuf.ServiceException"/>
        public virtual SecurityProtos.CancelDelegationTokenResponseProto CancelDelegationToken
            (RpcController controller, SecurityProtos.CancelDelegationTokenRequestProto proto
            )
        {
            CancelDelegationTokenRequestPBImpl request = new CancelDelegationTokenRequestPBImpl
                                                             (proto);

            try
            {
                CancelDelegationTokenResponse response = real.CancelDelegationToken(request);
                return(((CancelDelegationTokenResponsePBImpl)response).GetProto());
            }
            catch (YarnException e)
            {
                throw new ServiceException(e);
            }
            catch (IOException e)
            {
                throw new ServiceException(e);
            }
        }