github.com/altipla-consulting/ravendb-go-client@v0.1.3/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  }