Name |
Description |
BigDataSorter |
This class does the actual sorting for SortEntireFile. It is pulled out in this way for testing. |
BigDataSorter.FileInputItem |
|
BigDataSorter.InputItem |
|
BigDataSorter.MemoryInputItem |
|
CmObjectId |
A CmObjectId is basically a GUID. However, GUID is a struct, and hence, every Guid variable takes 16 bytes. CmObjectIds can be shared. Also, being our own class, we can implement some common methods with CmObject. CmObjectId also implements (secretly and very incompletely) ICmObjectOrSurrogate. This allows them to occur in the main dictionary of the IdentityMap. |
CmObjectIdWithHvo |
This variation of a CmObjectId can be stored in a surrogate in place of the usual CmObjectId, when we need to associate an HVO with an object ID without actually fluffing up the object. It is also stored in the HVO to object map, until the object does get fluffed. |
CmSemanticDomainRepository |
|
CommitData |
This class is used with the db4o backend to record the key information about what changed in a transaction. |
CommitLogMetadata |
|
CommitLogPeer |
|
CommitLogRecord |
|
DataSortingService |
Class used to sort all of the data in the XML BEP, so Mercurial doesn't suffer so much. |
ElementReader |
Responsible to read a file which has a sequence of similar elements and pass a byte array of each element to a delgate for processing. Use low-level byte array methods, overlapping file read with parsing the file and calling the delegate. The expectation is that, after some unspecified header material, the file consists of a sequence of elements, all with the same tag (e.g., "rt" elements in FieldWorks XML backend). Following the last we expect a close tag for the containing element, e.g., "/languageProjet" in Fieldworks. These two tags can be configured so the class can be used in other ways. Enhance JohnT: Experiments on Websters indicate we're spending appreciable time on the parsing and calling the delegate. We could potentially do the parsing and delegate calling on different threads, perhaps even (since the order of calling delegates on different elements does not matter) split the parsing over multiple threads. |
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 |
A subclass of the FDOBackendProvider which handles an XML file-based system. |
XMLBackendProvider.CommitWork |
|