/*
 * Automatically generated by jrpcgen 1.0.7 on 29.11.2012
 * jrpcgen is part of the "Remote Tea.Net" ONC/RPC package for C#
 * See http://remotetea.sourceforge.net for details
 */
using NFSLibrary.Protocols.Commons;
using org.acplt.oncrpc;

namespace NFSLibrary.Protocols.V3.RPC
{
    public class SetAttributeArguments : XdrAble
    {
        private NFSHandle _obj;
        private MakeAttributes _new_attributes;
        private bool _guardcheck;
        private NFSTimeValue _guardctime;

        public SetAttributeArguments()
        { }

        public SetAttributeArguments(XdrDecodingStream xdr)
        { xdrDecode(xdr); }

        public void xdrEncode(XdrEncodingStream xdr)
        {
            this._obj.xdrEncode(xdr);
            this._new_attributes.xdrEncode(xdr);
            xdr.xdrEncodeBoolean(this._guardcheck);
            if (this._guardcheck)
            { this._guardctime.xdrEncode(xdr); }
        }

        public void xdrDecode(XdrDecodingStream xdr)
        {
            this._obj = new NFSHandle();
            this._obj.Version = V3.RPC.NFSv3Protocol.NFS_V3;
            this._obj.xdrDecode(xdr);
            this._new_attributes = new MakeAttributes(xdr);
            this._guardcheck = xdr.xdrDecodeBoolean();
            if (this._guardcheck)
            { this._guardctime = new NFSTimeValue(xdr); }
        }

        public NFSHandle Handle
        {
            get
            { return this._obj; }
            set
            { this._obj = value; }
        }

        public MakeAttributes Attributes
        {
            get
            { return this._new_attributes; }
            set
            { this._new_attributes = value; }
        }

        public bool GuardCheck
        {
            get
            { return this._guardcheck; }
            set
            { this._guardcheck = value; }
        }

        public NFSTimeValue GuardCreateTime
        {
            get
            { return this._guardctime; }
            set
            { this._guardctime = value; }
        }
    }
    // End of SETATTR3args.cs
}