/// <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); }