C# Класс SIL.FieldWorks.FDO.Infrastructure.Impl.SharedXMLBackendProvider

An XML file-based backend provider that allows multiple applications to access the same project simultaneously. It uses memory mapped files to maintain a shared commit log that all applications use to update their state to reflect changes made by other applications. The commit log is implemented as a circular buffer of commit records. A single peer is responsible for updating the XML file.
Наследование: XMLBackendProvider
Показать файл Открыть проект

Private Properties

Свойство Тип Описание
CheckExitedPeerProcesses bool
CreateOrOpen System.IO.MemoryMappedFiles.MemoryMappedFile
CreateSharedMemory void
GetMetadata CommitLogMetadata
GetUnseenForeignChanges bool
LockProject void
ReadUnseenCommitRecords int
RemovePeer void
SaveMetadata void
SaveMetadata void
SharedXMLBackendProvider System
TryGetMetadata bool
UnlockProject void

Открытые методы

Метод Описание
Commit ( HashSet newbies, HashSet dirtballs, HashSet goners ) : bool
RenameDatabase ( string sNewProjectName ) : bool

Защищенные методы

Метод Описание
CreateInternal ( ) : void
OnCacheDisposing ( object sender, EventArgs e ) : void
ShutdownInternal ( ) : void
StartupInternal ( int currentModelVersion ) : int
WriteCommitWork ( CommitWork workItem ) : void

Приватные методы

Метод Описание
CheckExitedPeerProcesses ( CommitLogMetadata metadata ) : bool
CreateOrOpen ( string name, long capacity, bool createdNew ) : MemoryMappedFile
CreateSharedMemory ( bool createdNew ) : void
GetMetadata ( MemoryMappedViewStream stream ) : CommitLogMetadata
GetUnseenForeignChanges ( CommitLogMetadata metadata, List &foreignNewbies, List &foreignDirtballs, List &foreignGoners ) : bool

Gets all unseen foreign changes from the commit log. The metadata should be saved after calling this method, because inactive records might have been purged.

LockProject ( ) : void
ReadUnseenCommitRecords ( CommitLogMetadata metadata, int minPeerGeneration, int startOffset, int length, List unseenCommits ) : int
RemovePeer ( CommitLogMetadata metadata, System.Guid peerID ) : void
SaveMetadata ( CommitLogMetadata metadata ) : void
SaveMetadata ( MemoryMappedViewStream stream, CommitLogMetadata metadata ) : void
SharedXMLBackendProvider ( FdoCache cache, IdentityMap identityMap, ICmObjectSurrogateFactory surrogateFactory, IFwMetaDataCacheManagedInternal mdc, IDataMigrationManager dataMigrationManager, IFdoUI ui, IFdoDirectories dirs, FdoSettings settings ) : System
TryGetMetadata ( MemoryMappedViewStream stream, CommitLogMetadata &metadata ) : bool
UnlockProject ( ) : void

Описание методов

Commit() публичный метод

public Commit ( HashSet newbies, HashSet dirtballs, HashSet goners ) : bool
newbies HashSet
dirtballs HashSet
goners HashSet
Результат bool

CreateInternal() защищенный метод

protected CreateInternal ( ) : void
Результат void

OnCacheDisposing() защищенный метод

protected OnCacheDisposing ( object sender, EventArgs e ) : void
sender object
e System.EventArgs
Результат void

RenameDatabase() публичный метод

public RenameDatabase ( string sNewProjectName ) : bool
sNewProjectName string
Результат bool

ShutdownInternal() защищенный метод

protected ShutdownInternal ( ) : void
Результат void

StartupInternal() защищенный метод

protected StartupInternal ( int currentModelVersion ) : int
currentModelVersion int
Результат int

WriteCommitWork() защищенный метод

protected WriteCommitWork ( CommitWork workItem ) : void
workItem CommitWork
Результат void