internal void MarkModified(ObjectSessionState state)
 {
     if (this.SessionStateContainsAny(state))
     {
         return;
     }
     this.IncludeSessionState(state);
     if (!this.IsNew)
     {
         this.Storage.EnqueueObjectForUpdate(this);
     }
 }
        private DataObject NewCacheItem(DataId id, ObjectSessionState sessionState)
        {
            DataObject objectInstance = this.CreateObjectInstance();

            objectInstance.Init(this, id, sessionState);
            if (id.IsEmpty)
            {
                this.Session.EnqueueIdGeneration(objectInstance);
            }
            else
            {
                this.FObjects.Add(id, objectInstance);
            }
            return(objectInstance);
        }
 internal void ClearSessionState() => this.FSessionState = (ObjectSessionState)0;
 internal void Init(DataStorage storage, DataId id, ObjectSessionState state)
 {
     this.FStorage      = storage;
     this.FId           = id;
     this.FSessionState = state;
 }
 internal void SetSessionState(ObjectSessionState state) => this.FSessionState = state;
 internal void ExcludeSessionState(ObjectSessionState state) => this.FSessionState &= ~state;
 internal void IncludeSessionState(ObjectSessionState state) => this.FSessionState |= state;
 internal bool SessionStateContainsAll(ObjectSessionState states) => (this.SessionState & states) == states;
 internal bool SessionStateContainsAny(ObjectSessionState states) => (this.SessionState & states) != (ObjectSessionState)0;