Exemple #1
0
        /// <summary>
        /// Associate DataClient with specific DataLifeCycle object
        /// </summary>
        /// <param name="lifeCycle">DataLifeCycle object</param>
        public void SetDataLifeCycle(DataLifeCycle lifeCycle)
        {
            Microsoft.Hpc.Scheduler.Session.Internal.ParamCheckUtility.ThrowIfNull(lifeCycle, "lifeCycle");
            this.CheckIfDisposed();
            this.CheckIfReadOnly();

            if (this.hasLifeCycle)
            {
                throw new DataException(DataErrorCode.DataClientLifeCycleSet, null, this.Id);
            }

            DataLifeCycleContext             context        = lifeCycle.Internal.Context;
            SessionBasedDataLifeCycleContext sessionContext = context as SessionBasedDataLifeCycleContext;

            IDataService dataAgent = GetDataServiceAgent(this.headNode, this.scheme, this.userName, this.password);

            InvokeDataOperation <bool>(
                dataAgent,
                delegate(IDataService agent)
            {
                agent.AssociateDataClientWithSession(this.Id, sessionContext.SessionId);
                return(true);
            });

            this.hasLifeCycle = true;
        }
 /// <summary>
 /// Create a DataLifeCycleInternal object that aligns with lifetime of a session. Data assocaited with
 /// this DataLifeCycleInternal object will be automatically removed on session close.
 /// </summary>
 /// <param name="sessionId">session id</param>
 public DataLifeCycleInternal(int sessionId)
 {
     lifeCycleContext = new SessionBasedDataLifeCycleContext(sessionId);
 }