github.com/ravendb/ravendb-go-client@v0.0.0-20240229102137-4474ee7aa0fa/advanced_session_extention_base.go (about) 1 package ravendb 2 3 // AdvancedSessionExtensionBase implements common advanced session operations 4 type AdvancedSessionExtensionBase struct { 5 session *InMemoryDocumentSessionOperations 6 documents []*documentInfo 7 requestExecutor *RequestExecutor 8 sessionInfo *SessionInfo 9 documentStore *DocumentStore 10 deferredCommandsMap map[idTypeAndName]ICommandData 11 12 deletedEntities *objectSet 13 documentsByID *documentsByID 14 } 15 16 func newAdvancedSessionExtensionBase(session *InMemoryDocumentSessionOperations) *AdvancedSessionExtensionBase { 17 return &AdvancedSessionExtensionBase{ 18 session: session, 19 documents: session.documentsByEntity, 20 requestExecutor: session.GetRequestExecutor(), 21 sessionInfo: session.sessionInfo, 22 documentStore: session.GetDocumentStore(), 23 deferredCommandsMap: session.deferredCommandsMap, 24 deletedEntities: session.deletedEntities, 25 documentsByID: session.documentsByID, 26 } 27 } 28 29 // Defer defers multiple commands to be executed on SaveChnages 30 func (e *AdvancedSessionExtensionBase) Defer(commands ...ICommandData) { 31 e.session.Defer(commands...) 32 }