DTS.Utilities An extension of the standard class that provides active notification to registered callbacks whenever items are added to or removed from the list. The type of object contained in this list. Initialize an instance of this class. Initialize an instance of this class. The number of elements that the list can initially store. Initialize an instance of this class. The collection whose elements are copied to the new list. The argument type passed to "on items added" and "on items removed" callbacks. It contains a list of the items that have been added/removed. construct an empty collection of items construct a collection of items arguments to add The type of the callbacks issued by this class. The responsible for generating this event. The for this event. The event generated whenever items are added to this object's list. The event generated whenever items are removed from this list. Adds an object to the end of the . The item to be added to this list. All exceptions generated by this method will be nested in one of these. Adds the elements of the specified collection to the end of the . The collection to the added to this list. All exceptions generated by this method will be nested in one of these. Removes all elements from the . All exceptions generated by this method will be nested in one of these. Inserts the elements of a collection into the at the specified index. The zero-based index at which the new elements should be inserted. The collection whose elements should be inserted into the T:DTS.Utilities.ActiveUpdateList. The collection itself cannot be null, but it can contain elements that are null, if type T is a reference type. All exceptions generated by this method will be nested in one of these. Removes the first occurrence of a specific object from the . The object to remove from the . The value can be null for reference types. true if item is successfully removed; otherwise, false. This method also returns false if item was not found in the . All exceptions generated by this method will be nested in one of these. Removes the all the elements that match the conditions defined by the specified predicate. The delegate that defines the conditions of the elements to remove. The number of elements removed from the All exceptions generated by this method will be nested in one of these. Removes the element at the specified index of the . The zero-based index of the element to remove. All exceptions generated by this method will be nested in one of these. Removes a range of elements from the . The zero-based starting index of the range of elements to remove. The number of elements to remove. All exceptions generated by this method will be nested in one of these. this class encapsulating writing to the log a function capable of logging a message message to log a consumer of log messages log an exception exception to be logged logs a string string to be logged logs multiple parameters collection of parameters, can be exceptions, strings, or an object with tostring A class to implement a threaded log file. Problems encountered by the writing thread will be reported thru the callback function. The logger is re/started whenever it is assigned a new log filepath. The associated with the current active log file. Shut down the current write cycle. Open a log file with the specified name and start processing log messages into it. If another log file is currently active, it will be closed, flushed and disposed. The pathname of the logfile to receive new log messages. Change the name/location of the currently active log file without dropping any incoming messages. The new path name for the active log file. Get/set the pathname of the currently active log file. Get the filename portion of the associated log's filename. A callback type for write queue events. The write queue's queue. A callback type to be invoked when exceptions occur in the text writer's threaded writing method. The that well be invoked whenever the logger encounters an exceptional condition within the write cycle method. text written to the start of a log (such as application version, etc) if null, no text is written The write loop that processes queued log messages. It is run in its own thread. The associated with the log file to receive processed log messages. Initialize an instance of the class. The pathname of the log file that will be generated by this class. The to be invoked when an exception occurs in the queue processing loop. Initialize an instance of the class. The pathname of the log file that will be generated by this class. The to be invoked when an exception occurs in the queue processing loop. Write the specified string to the log file. The text to be written to the log file. Process the remaining items in the queue and then release all resources. The byte-size at which the log file should be archived. Check the size of the specified file and if it exceeds the maximum log file size then give it an archival name and open a new logfile for subsequent data. A cut 'n paste transplant from the original TextLogger. The new archival filename for the log file if it exceeds the maximum specified byte-size. Representation of a failed attempt to convert a "Large" interface data type to one of the smaller data types in the "standard" interface. Initialize an instance of the class. Initialize an instance of the class. The message describing this exception instance. Initialize an instance of the class. The message describing this exception instance. The inner behind this enclosing exception instance. "Handle" containing the state information for a log message write session. The filename of the log file receiving the messages being supplied to this write session. The whose "set" kicks off a write cycle. The that is signaled when a write cycle completes. The to be invoked when the write cycle encounters an exception. flag that controls whether or not the write cycle should auto-terminate whenever it encounters an exception. Get/set the flag that will terminate the associated write cycle when set to 'true'. The actually queue of log message s to be written to the active log file. Callback to be invoked when the write cycle has closed it's associated log file's write handle for the last time. Initialize an instance of the class. The filename of the log file receiving the messages being supplied to this write session. The actually queue of log message s to be written to the active log file. Callback to be invoked when the write cycle has closed it's associated log file's write handle for the last time. Callback to be invoked when the write cycle has closed it's associated log file's write handle for the last time. flag that controls whether or not the write cycle should auto-terminate whenever it encounters an exception. encapsulates converting array or IEnumerables to a string separator between elements This will change the separator for all callers symbol for the start of a group this will change the symbol for all callers symbol for the end of a group this will change the symbol for all callers constructs a string out of an array. IEnumerable classes are returned using .ToString() if object is null, a string with null in angle brackets is returned array to serialize to string symbol to put at the start of the string symbol to use between elements symbol to use at the end of the string string representation of array returns a string representation of an array array to serialize to string string representation of array Object for manipulating object-attached attributes and attribute values. The type of the attributes we are concerned with are are attached to. The type of attribute to be manipulated. The type of value contained by the attribute to be manipulated. This class was created to make it easier to "match" attributes and the data types they're attached to in a somewhat generic manner. It is intended that attribute coder classes that deal with specific attribute types be derived from this one. Method that specifies how to access the value of a given "AttributeType". The "AttributeType" attribute to have its value extracted. The "AttributeValueType" value of the specified attribute. Method for determining the equality of two "AttributeValueType" values. A "AttributeValueType" to be equality-compared. A "AttributeValueType" to be equality-compared. True if the two values are equal; false otherwise. Initializes an instance of the AttributeCoder class. A that defines how "AttributeValueType" values are to be extracted from "AttributeType" attributes. Optional parameter for specifying a custom comparison method to override default "AttributeValueType" equality determination. Pass null to use default comparison. Return the "AttributeValueType" of the "AttributeType" attribute attached to the specified "TargetType". The "TargetType" object whose "AttributeType" attribute is to be evaluated. The "AttributeValueType" of the "AttributeType" attribute attached to the specified "TargetType". Return the of "AttributeValueType"s of the "AttributeType" attached to the specified "TargetType". The "TargetType" object whose "AttributeType" attribute is to be evaluated. The "AttributeValueType" of the "AttributeType" attribute attached to the specified "TargetType". Return the "TargetType" value that has the "AttributeType" attribute with the specified "AttributeValueType" value attached to it. The value of the "AttributeType" attribute attached to the "TargetType" target object we're looking for. The "TargetType" target object that has the "AttributeType" attribute attached to it that has a "AttributeValueType" value of attributeValue. Return a list of "TargetType" values that have the "AttributeType" attribute with the specified "AttributeValueType" value attached to them. The value of the "AttributeType" attribute attached to the "TargetType" target object we're looking for. The of "TargetType" target objects that has the "AttributeType" attribute attached to it that has a "AttributeValueType" value of attributeValue. Class to ease extracting custom attributes from their attached objects. Extract an attribute of this class' declared type from the specified target. The to which the sought attribute is attached. The attribute type specified upon AttributeExtractor creation. Extract a list of attached attributes from the specified property. An object and property name must be supplied, for attempts to directly reference the property will result in get/set invocation. The that contains the property under query. The name of the property to be queried. A of attached attributes of the type specified during the creation of this instance of AttributeExtractor. Extract an attached attributes from the specified property of the type declared during the creation of this instance of AttributeExtractor. An object and property name must be supplied, for attempts to directly reference the property will result in get/set invocation. The that contains the property under query. The name of the property to be queried. An attribute of the type specified during the creation of this instance of AttributeExtractor, if one is attached; null otherwise. A class to represent the average value of a set of shorts over time. Initialize an instance of the AverageShortValueOverTime class, assuming that no averaging has been done yet. The begin time of the average (using the time units specified by the "TimeUnitSymbol" property. The sample rate of the items being averaged (using the time units specifed by the "TimeUnitSymbol" property. The time unit description for begin/end times and the sample rate. Initialize an instance of the AverageShortValueOverTime class. The begin time of the average (using the time units specified by the "TimeUnitSymbol" property. The end time of the average (using the time units specified by the "TimeUnitSymbol" property. The sample rate of the items being averaged (using the time units specifed by the "TimeUnitSymbol" property. The pre-existing average to be appended to. The time unit description for begin/end times and the sample rate. Append the specified of values to the running average. The of s to be appended to the running average. Append the specified array of values to the running average. The array of s to be appended to the running average. A class to represent the average value of a dynamically specified set over time. This class is intended to be used to keep a running average of sets of piecemeal-collected data, and it is assumed that a subclass will implement the type-specific features of this task. The type we're talking the average value over time of. Initialize an instance of the AverageValueOverTime class, assuming that no averaging has been done yet. The begin time of the average (using the time units specified by the "TimeUnitSymbol" property. The sample rate of the items being averaged (using the time units specifed by the "TimeUnitSymbol" property. The "zero" value of our generic data type. The time unit description for begin/end times and the sample rate. Initialize an instance of the AverageValueOverTime class. The begin time of the average (using the time units specified by the "TimeUnitSymbol" property. The end time of the average (using the time units specified by the "TimeUnitSymbol" property. The sample rate of the items being averaged (using the time units specifed by the "TimeUnitSymbol" property. The initial average value to be appended to. The time unit description for begin/end times and the sample rate. Beginning Time Ending Time The sampling rate the time unit symbol the current average appends a list of values list of values inheriting clases should know more about the nature of the data type and averaging them over time. appends an array of values array of values inheriting clases should know more about the nature of the data type and averaging them over time. Enumeration of all possible filters that may be applied to channel data. These can be used as software filters in data review. no filter is applied filter at 17Hz (Channel Frequency Class) filter at 100Hz (Channel Frequency Class) 3 dB limit Frequncy stop damping -30 dB sample frequency > 600Hz filter at 300Hz (Channel Frequency Class) 3 dB limit frequency stop damping -30Db sampling frequency > 1800Hz 3Db limit frequency 1000Hz (channel frequency class) stop damping -40Db sampling frequency > 6 khz 3dB limit frequency 1650Hz stop damping -40dB sampling frequency > 10khz Attribute for specifying the ISO code fragment description of the attached field's representation. Intended to be applied to enumerations that represent ISO-codeable elements. Get the that ISO-describes whatever this attribute is attached to. Initializes an instance of the IsoDescriptionAttribute class. The that ISO-describes whatever this attribute is attached to. Tool for manipulating -attached s. Initializes an instance of the IsoDescriptionAttributeCoder class. Attribute for specifying the "enumerability" of the attached field's representation. Intended to be applied to enumerations that contain valid, but special case elements that should never be automatically enumerated. Get the that describes enumerability. Initializes an instance of the EnumerablilityAttribute class. The that describes the attached object's enumerability. Tool for manipulating -attached s. Initializes an instance of the EnumerabilityAttributeCoder class. Attribute for specifying the numeric value of the filter CFC. Get the value of the CFC this attribute is attached to. Initializes an instance of the CfcValueAttribute class. The value of the CFC this attribute is attached to. Tool for manipulating -attached s. Initializes an instance of the CfcValueAttributeCoder class. This class wraps the list items in the combo box C'tor - creates a CheckComboBoxItem Label of the check box in the drop down list Initial value for the check box (true=checked) Get or set the check value (true=checked) Gets the label of the check box User defined data This is used to keep the edit control portion of the combo box consistent Inherits from ComboBox and handles DrawItem and SelectedIndexChanged events to create an owner drawn combo box drop-down. The contents of the dropdown are rendered using the CheckBoxRenderer class. C'tor Invoked when the selected index is changed on the dropdown. This sets the check state of the CheckComboBoxItem and fires the public event CheckStateChanged using the CheckComboBoxItem as the event sender. Invoked when the ComboBox has to render the drop-down items. Fired when the user clicks a check box item in the drop-down list handles averaging over a queue of values (like in realtime mode) thread safe constructs a queue that will maintain track of the average of the contents the length of the queue, when contents exceed size, the first item is dequeued pushes a new value into the queue value to be pushed onto queue current average returns current average current average removes all entries in the queue. Performs 32-bit reversed cyclic redundancy checks. Generator polynomial (modulo 2) for the reversed CRC32 algorithm. Creates a new instance of the Crc32 class. Calculates the checksum of the byte stream. The byte stream to calculate the checksum for. A 32-bit reversed checksum. Contains a cache of calculated checksum chunks. Gets Zered EU data given a time window to average Time averaging data over a specific window there can be pretrigger time and begin time can be used to compute the start of the averaging window Initialize an instance of this data window averager class. Get the time value (sec) of the start of the averaging window. Get the time value (sec) of the end of the averaging window. Get the pre-trigger time (sec). Get the sample rate (Hz). Get the default ADC value to be returned if the specified window is invalid. Get the time value (sec) of the start of the averaging window. Get the time value (sec) of the end of the averaging window. Get the pre-trigger time (sec). Get the sample rate (Hz). Get the default ADC value to be returned if the specified window is invalid. Compute the average of the window represented by the current state of this object over the specified window values. An array of values to be window-averaged. The average of the specified value falling within this object's window. Compute the average of the window represented by the current state of this object over the specified window values. An array of values to be window-averaged. The average of the specified value falling within this object's window. Representation of an attempt to average over a window that does not exist within the specified dataset. Initialize an instance of the WindowDoesNotExistException class. Initialize an instance of the WindowDoesNotExistException class. The message to be associated with this exception. Initialize an instance of the WindowDoesNotExistException class. The message to be associated with this exception. The responsible for this exception inception. Class for "matching" s and the "TargetType" data type data type they're attached to. The data type the attribute being encoded to/decoded from is attached to. Generally useful with enumeration target types in which each enumeration value has a specific "DescriptionAttribute" assigned to it. This class essentially allows one to "encode" the a specific description value into the enumeration value it's attached to, as well as "decode" an enumeration into the description that's attached to it. For example, if we create an enumeration type whose values at some point need to be converted to string values (and back again), we can simply attach DescriptionAttributes containing the string conversion to each value in the enumeration definition and use the DescriptionAttributeCoder to convert directly from one to the other without the need for any kind of seperate lookup table. constructs a object A collection of handy disk-related methods. just a helper function to translates bytes to a more readable string Get useful disk usage statistics. The directory name to be queried for usage numbers. The number of free bytes available on the specified volume. The total number of bytes available on the specified volume. The total number of free bytes available on the specified volume. status code, determined by windows. A of doubles Initialize an instance of a . The size of the collection. Initialize an instance of a . The size of the collection. The name of the directory where this LargeArray will store the temporary serializations of its items. If null, then the default location will be used. The file name prefix under which this LargeArray will store temporary serializations of its items. Initialized to DefaultFilePrefix's value at object creation, unless an alternate is specified by the user. If null, then the default prefix will be used. Get the size of the datum handled by this class. Get the "zero" value for this class' datum type. Get the datum value at the specified index. The index of the datum to be returned. The value of the datum at the specified index. Set the datum value at the specified index. The datum to be written to the specified index. The index at which the specified datum value will be written. Creates a new object that is a copy of the current instance. A new that is a copy of the current instance. Get/set the value at the specified index. The index of the datum to be referenced. The value of the datum at the specified index. Exception class thrown by the library Represents an exception occured as a result of an invalid IO operation on any of the File mapping classes It wraps the error message and the underlying Win32 error code that caused the error. the Win32 Error code describing the error. http://msdn.microsoft.com/en-us/library/ms681381%28VS.85%29.aspx A description of the error. Construct a win32 error code describing error Construct a description of error Construct a description of error exception causing the error Allows a view of a memory mapped file to be accessed via the index[] operator. Clears all buffers for the stream and causes any unbuffered data to be written to the underlying device. Returns a the byte at the requested index of the MemoryMap. Master Constructor This constructor allows for specifying privilages for the stream and mapped file. File from which to create mapping Access level for the map view in memory. Must be consisten with the file mapping access. Access level for the file mapping. The size in bytes of the file mapping. Pass 0 to map the entire (existing and length>0) file. Off set from start of mapped file to start the view. The size of the view in memory. This is limited by physical system resources. A generic memory-mapped array. The type of object to be contained in this collection. Initialize an instance of a . The size of the collection. Initialize an instance of a . The size of the collection. The name of the directory where this LargeArray will store the temporary serializations of its items. If null, then the default location will be used. The file name prefix under which this LargeArray will store temporary serializations of its items. Initialized to DefaultFilePrefix's value at object creation, unless an alternate is specified by the user. If null, then the default prefix will be used. Finalizer. Can't find anyplace else to put this file removal and have it work, since something in the mapping code is tenaciously holding onto it. A shared object to be shared by all instances of to ensure that no two try to use the same scratch filename. Get the next unique scratch file number designation. The default name of the directory where MegArrays will store the temporary serializations of their items. The name of the directory where this LargeArray will store its temporary serializations of its items. Initialized to DefaultScratchDirectory's value at object creation, unless an alternate is specified by the user. The default prefix name for MegArrays temporary serializations. The file name prefix under which this LargeArray will store temporary serializations of its items. Initialized to DefaultFilePrefix's value at object creation, unless an alternate is specified by the user. Get the filename that this will be using for its memory-mapped serialization file. Get the fully qualified filename that this will be using for its memory-mapped serialization file. Generate a new unique filename. A unique filename. Get the maximum size of this . Get flag indicating whether or not this is currently associated with a disk file. Get the view size used by our memory mapping mechanism. The size of the basic datum type stored by this object. The value to be substituted for all array values when "clear" is invoked. Create the scratch file that will store this object's items. The size of the scratch file to be created. The path of the directory to contain the newly-created scratch file. It will be created if it does not already exist. The name of the file to be created. true if the file has been successfully created, false otherwise. Create a file map view array to associate this object with a file representation. A association with with object's data file. Get the datum at the specified index. The index of the datum sought. The datum of type T at the specified index of the memory mapped file. Set the specified index to the specified datum. The datum to be inserted at the specified index. The index of the specified datum's destination. Let go our our resources. Gets the number of elements contained in the . Gets a value indicating whether access to the is synchronized (thread safe). Returns true if access to the is synchronized (thread safe); otherwise, false. Get an object that can be used to synchronize access to the System.Collections.ICollection. Copies the elements of the to a , starting at a particular index. If the array is too small (we're storing more than max int items) then an exception will be thrown. The one-dimensional that is the destination of the elements copied from System.Collections.ICollection. The must have zero-based indexing. The zero-based index inn the array at which copying begins. The array is null. The index is less than zero. The array is multidimensional OR... the index is equal to or greater than the length of the array OR... the number of elements in the source System.Collections.ICollection is greater than the available space from index to the end of the destination array. The type of the source System.Collections.ICollection cannot be cast automatically to the type of the destination array. Returns an enumerator that iterates through a collection. An System.Collections.IEnumerator object that can be used to iterate through the collection. Gets a value indicating whether the has a fixed size. Returns true if it has a fixed size; otherwise, false. Get a value indicating whether or not this object is read-only. Returns true if it is read-only; false otherwise. Get/set the element at the specified index. The zero-based index of the element to gat or sat. The element at the specified index. The index is not a valid index in the . The property is not set and the is read-only. Add an item to the . The to add to the . The position into which the new element was inserted. The is read-only OR... The has a fixed size. Remove all items from the . The is read-only. Determines whether the contains a specific value. The to locate in the . true if the is found in the ; false otherwise. Determine the index of a specific item in the . The to be located in the . the index value if found in the list; -1 otherwise. Insert an item into the at the specified index. The zero-based index at which the value should be inserted. The to insert into the . The index is not a valid index in the The is read-only OR... The has a fixed size. Remove the first occurance of a specific object from the . The to be removed from the The is read-only OR... the has a fixed size. Remove the item at the specified index. The zero-based index of the item to remove. The index is not a valid index in the . The is read-only OR... the has a fixed size. Gets the number of elements contained in the . Copies the elements of the to a , starting at a particular index. If the array is too small (we're storing more than max int items) then an exception will be thrown. The one-dimensional that is the destination of the elements copied from System.Collections.ICollection. The must have zero-based indexing. The zero-based index inn the array at which copying begins. The array is null. The array is multidimensional OR... the index is equal to or greater than the length of the array OR... the number of elements i nthe source System.Collections.ICollection is greater than the available space from index to the end of the destination array. The type of the source System.Collections.ICollection cannot be cast automatically to the type of the destination array. Get/set the element at the specified index. The zero-based index of the element to gat or sat. The element at the specified index. The index is not a valid index in the . The property is not set and the is read-only. Add an item to the . The to add to the . The position into which the new element was inserted. The is read-only OR... The has a fixed size. Determine the index of a specific item in the . The to be located in the . the index value if found in the list; null otherwise. Insert an item into the at the specified index. The zero-based index at which the value should be inserted. The to insert into the . The index is not a valid index in the The is read-only OR... The has a fixed size. Remove the item at the specified index. The zero-based index of the item to remove. The index is not a valid index in the . The is read-only OR... the has a fixed size. create a new object that is a copy of the current instance a new object of the same type with all objects duplicated or referenced An enumerator class for . Initialize an instance of the class. The object to be operated upon by this instance. Get the that his enumerator object is acting upon. The index of the current item. Get the current element in the collection. The enumerator is positioned before the first element of the collection or after the last element OR... The collection was modified after the enumerator was created. Advances the enumerator to the next element of the collection. true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. The collection was modified after the enumerator was created. Sets the enumerator to its initial position, which is before the first element in the collection. The collection was modified after the enumerator was created. Representation of a failed attempt to convert a "Large" interface data type to one of the smaller data types in the "standard" interface. Initialize an instance of the class. Initialize an instance of the class. The message describing this exception instance. Initialize an instance of the class. The message describing this exception instance. The inner behind this enclosing exception instance. Representation of erroneous missing scratch file condition. Initialize an instance of the class. Initialize an instance of the class. The message describing this exception instance. Initialize an instance of the class. The message describing this exception instance. The inner behind this enclosing exception instance. A class intended to serve as a locking object for all MegArrays, so they don't try to use the same seed number for generating their respective scratch files. Representation of erroneous pre-existing scratch file condition. Initialize an instance of the class. Initialize an instance of the class. The message describing this exception instance. Initialize an instance of the class. The message describing this exception instance. The inner behind this enclosing exception instance. Specifies page protection for the mapped file These correspond to the PAGE_XXX set of flags passed to CreateFileMapping() Allows you to read/write from/to a view of a memory mapped file. Constructor used internally by MemoryMappedFile. base address where the view starts Length of view, in bytes finalizer for MapViewStream. causes any buffered data to be written to the stream and clears the buffer reads a sequence of bytes from the current stream and advances the position in the stream by the number of bytes read array of bytes, will contain the bytes read from the stream offset by "offset" the offset from the start of buffer to store read data the maximum number of bytes to read the number of bytes read into the buffer Arguement Exception if count is greater than buffer after offset is removed ObjectDisposedException if stream is not open writes specified number of bytes to the stream starting at an offset array containing the bytes to be written the offset from the start of buffer to start reading from maximum number of bytes to write throws ObjectDisposedException if the stream is no longer open throws FileMapIOException if the stream cannot be written to throws ArgumentException if count is greater than buffer length after removing offset move to a specified position in the stream a byte offset relative to the origin parameter position to seek relative to (current, beginning, end) new position in the stream not supported sets the length of the current stream Close the current stream and release any resources generally close isn't overriden? release unmanaged resources virtual void Dispose functions can be dangerous as overriding it in an inherited class might mean you miss the base class Dispose Specifies access for the mapped file. These correspond to the FILE_MAP_XXX constants used by MapViewOfFile[Ex]() Wrapper class around the Win32 MMF APIs Allows you to easily use memory mapped files on .NET applications. Currently, not all functionality provided by the Win32 system is avaliable. Things that are not supported include: You can't specify security descriptors You can't build the memory mapped file on top of a System.IO.File already opened The class is currently MarshalByRefObject, but I would be careful about possible interactions! Default constructor Finalizer Create an unnamed map object with no file backing desired access to the mapping object maximum size of filemap object name of file mapping object The memory mapped file instance Create an named map object with no file backing desired access to the mapping object maximum size of filemap object The memory mapped file instance Create an unnamed map object with a maximum size equal to that of the file name of backing file desired access to the mapping object The memory mapped file instance Create an unnamed map object name of backing file desired access to the mapping object maximum size of filemap object, or -1 for size of file The memory mapped file instance Create a named map object name of backing file, or null for a pagefile-backed map desired access to the mapping object maximum size of filemap object, or 0 for size of file name of file mapping object The memory mapped file instance Open an existing named File Mapping object desired access to the map name of object The memory mapped file instance Close this File Mapping object From here on, You can't do anything with it but the open views remain valid. Map a view of the file mapping object This returns a stream, giving you easy access to the memory, as you can use StreamReaders and StreamWriters on top of it desired access to the view offset of the file mapping object to start view at size of the view a of Initialize an instance of a . The size of the collection. Initialize an instance of a . The size of the collection. The name of the directory where this LargeArray will store the temporary serializations of its items. If null, then the default location will be used. The file name prefix under which this LargeArray will store temporary serializations of its items. Initialized to DefaultFilePrefix's value at object creation, unless an alternate is specified by the user. If null, then the default prefix will be used. Get the size of the datum handled by this class. Get the "zero" value for this class' datum type. Get the datum value at the specified index. The index of the datum to be returned. The value of the datum at the specified index. Set the datum value at the specified index. The datum to be written to the specified index. The index at which the specified datum value will be written. Creates a new object that is a copy of the current instance. A new that is a copy of the current instance. Get/set the value at the specified index. The index of the datum to be referenced. The value of the datum at the specified index. Win32 APIs used by the library Defines the PInvoke functions we use to access the FileMapping Win32 APIs Computes the 16-bit CRC of the n passed in data bytes. N should be even(if it is not, the last byte will not get included in the computation). The initial_crc is the value to seed the computation from - normally it will be set to 0. the unsigned character buffer of which to compute the CRC16 the CRC16 value to seed the computation with the updated CRC16 starting with initial_crc and computed over n data bytes Computes the 16-bit CRC of the n passed in data bytes. CCITT implementation N should be even (if it is not, the last byte will not get included in the computation). The initial_crc is the value to seed the computation from - normally it will be set to 0. @param data the unsigned character buffer of which to compute the CRC16 @param n the number of bytes in data (must be even!) @param initial_crc the CRC16 value to seed the computation with @return the updated CRC16 starting with initial_crc and computed over n data bytes Gets the MD5 hash of a byte array This is the class which actually holds the entrys in the list Get or Set the selection as an EnumListEntry (can be null). Get or Set the selection as the enum itself (can NOT be null)! "Ultimate" base class for all DTS classes that expect to throw exceptions. Deriving classes from this class allows exceptions to be trapped based on the class type that threw them. Sample usage: public class A : Exceptional { public void ScrewItUp( ) { private bool error = true; if ( error ) throw new A.Exception( "Class A-specific screwup." ); } } ... try { A.ScrewItUp( ); B.ScrewItUp( ); C.ScrewItUp( ); } catch ( A.Exception ex ) { // Can pick A's exceptions out of a crowd, or not and just treat it // polymorphically as a System.Exception. } Initialize an instance of the DerivedClass.Exception class. create a object create a object a message that describes the error create a object a message that describes the error The exception that is the cause of the current exception. Initialize an instance of the DerivedClass.UserException class. create a user Exception with a description of the event description of error Walk the nested exception tree and generate a single string from their messages. The parent . The concatenation of the exception tree's messages. Walk the nested exception tree and generate a single string from their messages. The parent . true to insert a newline between each exception's message, false to insert a delimiter between each instead. The concatenation of the exception tree's messages. Legacy wrapper for walking the nested exception tree and generating a single string from their messages The parent . The concatenation of the exception tree's messages. Walk the nested exception tree and generate a single string from their messages. The parent . true to insert a newline between each exception's message, false to insert a delimiter between each instead. true to append "because" after each exception message in string and end deepest message with a period, false to leave messages raw. The concatenation of the exception tree's messages. Extract the first exception of the specified class type from the specified exception's exception tree. The type of System.Exception-derived class to be extracted. The -derived class to have its exception tree searched. The first nested innner exception of type ExceptionType; null otherwise. Determine whether or not the specified exception's exception tree contains a UserException-derived exception. The -derived class to have its exception tree searched. true if the specified exception tree contains a UserException-type exception; false otherwise. Represents a collection of keys and values, with its own exception type. The type of the keys in the dictionary. The type of the values in the dictionary. Sample usage: public class A : ExceptionalDictionary <int, int> { public void ScrewItUp( ) { private bool error = true; if ( error ) throw new A.Exception( "Class A-specific screwup." ); } } ... try { A.ScrewItUp( ); B.ScrewItUp( ); C.ScrewItUp( ); } catch ( A.Exception ex ) { // Can pick A's exceptions out of a crowd, or not and just treat it // polymorphically as a System.Exception. } Initializes a new instance of the DTS.Utilities.ExceptionalDictionary class that is empty, has the default initial capacity, and uses the default quality comparer for the key type. Initializes a new instance of the DTS.Utilities.ExceptionalDictionary class that is empty, has the specified initial capacity, and uses the default quality comparer for the key type. The initial number of elements that the DTS.Utilities.ExceptionalDictionary can contain. Initializes a new instance of the DTS.Utilities.ExceptionalDictionary class that is empty, has the default initial capacity, and uses the specified quality comparer for the key type. The T:System.Collections.Generic.IEqualityComparer implementation to use when comparaing keys, or null to use the default T:System.Collections.Generic.IEqualityComparer for the type of the key. Initializes a new instance of the DTS.Utilities.ExceptionalDictionary class initialized to the settings and contents of the specified System.Collections.Generic.IDictionary-sporting object. The System.Collections.Generic.IDictionary whose elements are copied to the new DTS.Utilities.ExceptionalDictionary. Initializes a new instance of the DTS.Utilities.ExceptionalDictionary class that is empty, has the specified initial capacity, and uses the specified quality comparer for the key type. The initial number of elements that the DTS.Utilities.ExceptionalDictionary can contain. The T:System.Collections.Generic.IEqualityComparer implementation to use when comparing keys, or null to use the default T:System.Collections.Generic.IEqualityComparer for the type of the key. Initializes a new instance of the DTS.Utilities.ExceptionalDictionary class with the specified serialization information and context. A System.Runtime.Serialization.SerializationInfo object containing the information required to serialize the DTS.Utilities.ExceptionalDictionary. A System.Runtime.Serialization.StreamingContext structure containing the source and destination of the serialized stream associated with the DTS.UtilitiesExceptionalDictionary. Initializes a new instance of the DTS.Utilities.ExceptionalDictionary class with the specified dictionary key/value pairs and the specified comparer implementation. The System.Collections.Generic.IDictionary whose elements are copied to the new DTS.Utilities.ExceptionalDictionary. The T:System.Collections.Generic.IEqualityComparer implementation to use when comparing keys, or null to use the default T:System.Collections.Generic.IEqualityComparer for the type of the key. A representation of the DerivedClass.Exception class. A Windows-style Form with it's own exception type. Sample usage: public class A : ExceptionalForm { public void ScrewItUp( ) { private bool error = true; if ( error ) throw new A.Exception( "Class A-specific screwup." ); } } ... try { A.ScrewItUp( ); B.ScrewItUp( ); C.ScrewItUp( ); } catch ( A.Exception ex ) { // Can pick A's exceptions out of a crowd, or not and just treat it // polymorphically as a System.Exception. } Initialize an instance of the DTS.Utilities.ExceptionForm class. A representation of the DerivedClass.Exception class. create a create a with a description Description of error create a with a description and a reference to the exception causing the error Description of error exception causing the error A version of that provides its own exception type. The type of object contained by this list. Sample usage: public class A : ExceptionalList <int> { public void ScrewItUp( ) { private bool error = true; if ( error ) throw new A.Exception( "Class A-specific screwup." ); } } ... try { A.ScrewItUp( ); B.ScrewItUp( ); C.ScrewItUp( ); } catch ( A.Exception ex ) { // Can pick A's exceptions out of a crowd, or not and just treat it // polymorphically as a System.Exception. } Initialize an instance of the ExceptionalList class. Initialize an instance of the ExceptionalList class. The number of elements that the list can initially store. Initialize an instance of the ExceptionalList class. The collection whose elements are copied to the new list. A representation of the DerivedClass.Exception class. A version of that provides its own exception type. Sample usage: public class A : ExceptionalUserControl { public void ScrewItUp( ) { private bool error = true; if ( error ) throw new A.Exception( "Class A-specific screwup." ); } } ... try { A.ScrewItUp( ); B.ScrewItUp( ); C.ScrewItUp( ); } catch ( A.Exception ex ) { // Can pick A's exceptions out of a crowd, or not and just treat it // polymorphically as a System.Exception. } Initialize an instance of the DTS.Utilities.ExceptionalUserControl class. A representation of the DerivedClass.Exception class. create a create a with a description Description of error create a with a description and a reference to the exception causing the error Description of error exception causing error win32 I/O declarations Utility for filtering data according to the NHTSA implementation of the SAE J211 standard. Get/set the calibration scaling factor to be applied to data, post-filtering. Useful for "last minute" scaling or inversion. Defaults to "1.0". Get/set the sampling rate (samples/sec) of the data to be filtered. This property must be set by user before the data can be filtered. Get/set SAE Channel Filter Class to be applied to data. This property must be set by user before the data can be filtered. Get/set the ad hoc frequency of this filter. Get/set the zero baseline flag. Defaults to "false". Get/set the size (in sec) of the padding added to the beginning and ending of the data before filtering to "squelch out" startup spikes. A negative value will cause pad to default to 5% of data size. Types of pre/post-padding data population available. Create data padding by repeatedly copying value of first and last samples. Create data padding by mirroring data at beginning and end of data vector. Pad the data with zeros Get/set the type of data padding appended/prepended to the data prior to being subjected to the filtering algorithm. Get the string that describes the type of filtering performed by this object. Initialize an instance of the SaeJ211FilterUtility class. Convert the specified frequency to an equivalent CFC value. Note that the "Big 4" CFC values get slightly special treatment. The frequency to be converted. The CFC equivalent of the specified frequency. Apply the SAE J211 filter algorithm (4-pole, phaseless, lo-pass) to the specified data using to the current FilterTool properties. An array of s containing the raw data to be filtered. An array of s containing the filtered data. produces a long value given a firmware version in string representation Produces a long value given a firmware version represented as a string firmware version firmware version as a long Summary description for HexEncoding. This class has only static methods and appears to never be instantiated, so I'm marking it static as well there are built in classes for encoding and converting hex as well, but the behavior here may deviate slightly returns the number of bytes needed to represent hex string hex string to calculate number of bytes doesn't count non hex characters odd number of characters, last character is discarded Creates a byte array from the hexadecimal string. Each two characters are combined to create one byte. First two hexadecimal characters become first byte in returned array. Non-hexadecimal characters are ignored. string to convert to byte array number of characters in string ignored byte array, in the same left-to-right order as the hexString returns a string representation out of byte array an array of hex characters packed 2 per byte string representation of hex characters in byte array, no spaces between bytes Determines if given string is in proper hexadecimal string format string representing sequence of hex digits, no spaces true if all characters are hex digits, false otherwise Returns true is c is a hexadecimal digit (A-F, a-f, 0-9) Character to test true if hex digit, false if not Converts 1 or 2 character string into equivalant byte value 1 or 2 character string byte Representation of a mathematical operation to be performed on System.Collections.Generic.IList data. Initialize an instance of the ChannelOperation class. As a matter of style, a domain is required for object creation. A System.Collections.Generic.IList of s to be integrated. Representation of the ISO-based differentiation System.Collections.Generic.IList of -based operation. Get/set the time resolution of this differentiation. Should probably be the length of one "sample" of digital data seeing as we're trying to approximate a continuous domain. Initialize an instance of the Differentiation class. The System.Collection.Generic.IList of s domain for this operation. Initialize an instance of the Iso.ChannelDifferentiation class. The System.Collections.Generic.IList of s domain for this operation. The sample rate of the data to be differentiated. Get the result of the operation on the System.Collections.Generic.IList of s domain representation. Representation of a NHTSA-based differentiation channel operation. Get/set the sample rate for this data to be differentiated. Initialize an instance of the ChannelDifferentiation class. The System.Collections.Generic.IList of domain for this operation. Initialize an instance of the Iso.ChannelDifferentiation class. The System.Collections.Generic.IList of domain for this operation. The sample rate of the channel to be differentiated. Get the System.Collections.Generic.IList of result of the operation on the target domain. Representation of NHTSA-based integration channel operation. Get/set the sample rate for this data to be integrated. Initialize an instance of the Integration class. The System.Collections.Generic.IList of s domain for this operation. Initialize an instance of the Iso.ChannelIntegration class. The System.Collections.Generic.IList of s domain for this operation. The sample rate of the channel to be integrated. Get the System.Collections.Generic.IList of s result of the operation on the channel. Representation of a generic operation that maps a domain to a range. The input data type. The output data type. Get/set the domain of the differentiation. Get the result of the operation. Initialize an instance of the Math.Operation class. As a matter of style, a domain is required for object creation. The "DomainType" domain of this mathematical operation. this is a class for doing natural string compares like in explorer (using the explorer function) http://msdn.microsoft.com/en-us/library/bb759947%28VS.85%29.aspx requires XP or greater do a natural string compare between two strings left string to compare right string to compare -1 if natural order of x is less than y, +1 if x is after y, 0 if they are equal A class to implement self-checking, on-error-auto-syntax-building power of 2 int properties. Determine whether or not the specified value is valid for this property. The value to be validity checked. true if the value is valid; false otherwise. Determine whether or not the specified value is a power of two. The value to be power of 2-checked. true if the value is a power of 2, false otherwise. Generate a user-readable explanation as to why the specified value is not valid for this property. The value to be described. A description explaining why the specified value is not valid for this property. Initialize an instance of a power of two int property. The initialize value of the int property. Initialize an instance of a power of two int property. A class to implement self-checking, on-error-auto-syntax-building properties. The property type. A class representation for property construction exceptions. Initialize an instance of the Property.ConstructionException class. Initialize an instance of the Property.ConstructionException class. The message describing this exception instance. Initialize an instance of the Property.ConstructionException class. The message describing this exception instance. The inner behind this enclosing exception instance. value of the property Determine whether or not the specified value is valid for this property. The value to be validity checked. true if the value is valid; false otherwise. Get initialization status for this property. "Deinitialize" this property. Generate a user-readable explanation as to why the specified value is not valid for this property. The value to be described. A description explaining why the specified value is not valid for this property. Initialize an instance of the Property class. The name of the property this implementation is standing in for, so that error messages will be more informative. If a null name is passed, The initial value of the property. Can be read if the property is almost marked as "initialized". A switch that determines whether or not the property is to be considered initialized immediately after instantiation. Initialize an instance of the Property class. The initial value of the property. Can be read if the property is almost marked as "initialized". A switch that determines whether or not the property is to be considered initialized immediately after instantiation. Generate user-readable string for this object. A representing the current state of the object. A class representation for invalid property value exceptions. Initialize an instance of the Property.InvalidValueException class. Initialize an instance of the Property.InvalidValueException class. The message describing this exception instance. Initialize an instance of the Property.InvalidValueException class. The message describing this exception instance. The inner behind this enclosing exception instance. A class representation for property value not initialized exceptions. Initialize an instance of the Property.NotInitializedException class. Initialize an instance of the Property.NotInitializedException class. The message describing this exception instance. Initialize an instance of the Property.NotInitializedException class. The message describing this exception instance. The inner behind this enclosing exception instance. A class to implement self-checking, on-error-auto-syntax-building range-restricted int properties. Determine whether or not the specified value is valid for this property. The value to be validity checked. true if the value is valid; false otherwise. Generate a user-readable explanation as to why the specified value is not valid for this property. The value to be described. A description explaining why the specified value is not valid for this property. The minimum value permitted in this property. The maximum value permitted in this property. Initialize an instance of a range-restricted integer property. The minimum value permitted in this property. The maximum value permitted in this property. The initial value of this property. true if this property is to be considered initialized after construction, false otherwise. Initialize an instance of a range-restricted integer property. The minimum value permitted in this property. The maximum value permitted in this property. A class representation for range-restricted integer property range exceptions. Initialize an instance of the RangeRestrictedDoubleProperty.InvalidRangeException class. Initialize an instance of the RangeRestrictedDoubleProperty.InvalidRangeException class. The message describing this exception instance. Initialize an instance of the RangeRestrictedDoubleProperty.InvalidRangeException class. The message describing this exception instance. The inner behind this enclosing exception instance. A class to implement self-checking, on-error-auto-syntax-building range-restricted int properties. Determine whether or not the specified value is valid for this property. The value to be validity checked. true if the value is valid; false otherwise. Generate a user-readable explanation as to why the specified value is not valid for this property. The value to be described. A description explaining why the specified value is not valid for this property. The minimum value permitted in this property. The maximum value permitted in this property. Initialize an instance of a range-restricted integer property. The minimum value permitted in this property. The maximum value permitted in this property. The initial value of this property. true if this property is to be considered initialized after construction, false otherwise. Initialize an instance of a range-restricted integer property. The minimum value permitted in this property. The maximum value permitted in this property. Initialize an instance of a range-restricted integer property. This initial value of the property. A class representation for range-restricted integer property range exceptions. Initialize an instance of the RangeRestrictedIntProperty.InvalidRangeException class. Initialize an instance of the RangeRestrictedIntProperty.InvalidRangeException class. The message describing this exception instance. Initialize an instance of the RangeRestrictedIntProperty.InvalidRangeException class. The message describing this exception instance. The inner behind this enclosing exception instance. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to yyyy-MM-dd HH:mm:ss.fff. Looks up a localized string similar to {0}An {1}exception of type: {2} occurred. Looks up a localized string similar to inner . Looks up a localized string similar to . Looks up a localized string similar to {0}Message: {1}. Looks up a localized string similar to === . Looks up a localized string similar to ========================================. Looks up a localized string similar to APILogger.LogException: Writer delegate is null. Looks up a localized string similar to {0}Module: {1}, Name: {2}. Looks up a localized string similar to APILogger.LogString: Writer delegate is null. Looks up a localized string similar to {0}StackTrace: {1}. Looks up a localized string similar to cannot use null attribute value extraction method reference. Looks up a localized string similar to encountered problem decoding attribute value. Looks up a localized string similar to encountered problem decoding attribute values. Looks up a localized string similar to encountered problem dehashing attribute value. Looks up a localized string similar to unable to match attribute value with an actual target type. Looks up a localized string similar to encountered problem encoding attribute value. Looks up a localized string similar to no attributes of specified type found on designated target. Looks up a localized string similar to unable to find unique target type mapping for the specified attribute value. Looks up a localized string similar to because. Looks up a localized string similar to {0}{1}. Looks up a localized string similar to .. Looks up a localized string similar to {0}{1}{2}. Looks up a localized string similar to encountered problem constructing {0}. Looks up a localized string similar to <null>. Looks up a localized string similar to proposed value "{0}" is not a power of two. Looks up a localized string similar to encountered problem getting invalid value description. Looks up a localized string similar to encountered problem determining whether or not "{0}" is a power of two. Looks up a localized string similar to encountered problem determing power of two-validity of "{0} ". Looks up a localized string similar to property {0}cannot be set to {1}. Looks up a localized string similar to encountered problem generating invalid valid description. Looks up a localized string similar to encountered problem getting property {0}value. Looks up a localized string similar to encountered problem setting property {0}value. Looks up a localized string similar to property has not been initialized. Looks up a localized string similar to encountered problem generating invalid value description for value "{0}". Looks up a localized string similar to the specified value "{0}" is greater than the maximum allowable value of "{1}". Looks up a localized string similar to the specified value "{0}" is less than the minimum allowable value of "{1}". Looks up a localized string similar to the specified value "{0}" is valid. Looks up a localized string similar to encountered problem determing range-restricted validity of "{0}". Looks up a localized string similar to encountered problem getting maximum range value. Looks up a localized string similar to encountered problem setting maximum range value. Looks up a localized string similar to encountered problem getting minimum range value. Looks up a localized string similar to encountered problem setting minimum range value. Looks up a localized string similar to minimum value ({0}) must be less than or equal to maximum value ({1}). Looks up a localized string similar to encountered problem generating invalid value description for value "{0}". Looks up a localized string similar to the specified value "{0}" is greater than the maximum allowable value of "{1}". Looks up a localized string similar to the specified value "{0}" is less than the minimum allowable value of "{1}". Looks up a localized string similar to the specified value "{0}" is valid. Looks up a localized string similar to encountered problem determing range-restricted validity of "{0}". Looks up a localized string similar to encountered problem getting maximum range value. Looks up a localized string similar to encountered problem setting maximum range value. Looks up a localized string similar to encountered problem getting minimum range value. Looks up a localized string similar to encountered problem setting minimum range value. Looks up a localized string similar to minimum value ({0}) must be less than or equal to maximum value ({1}). Looks up a localized string similar to TextLogger.AddMessage: Logger is not running, call Start first. Looks up a localized string similar to TextLogger.dtor: Writing thread didn't go to Exited state, it's in {0}. Looks up a localized string similar to TextLogger.dtor: Writing thread didn't respond in time. Looks up a localized string similar to TextLogger.AddMessage: Logger is already running, call Stop first. Looks up a localized string similar to TextLogger.Start: filename can't be null or blank. Looks up a localized string similar to TextLogger.Start: folder can't be null or blank. Looks up a localized string similar to TextLogger.Start: Writing thread didn't respond in time. Looks up a localized string similar to TextLogger.Start: Writing thread didn't go to Started state, it's in {0}. Looks up a localized string similar to TextLogger.Stop: Logger is not running, call Start first. Looks up a localized string similar to TextLogger.Stop: Writing thread didn't respond in time. Looks up a localized string similar to TextLogger.Stop: Writing thread didn't go to Stopped state, it's in {0}. Looks up a localized string similar to TextLogger: Can't enqueue Writer. Looks up a localized string similar to TextLogger: Callback can't be null. Looks up a localized string similar to TextLogger.ctor: Writing thread didn't start in time. Looks up a localized string similar to TextLogger.Writer: invalid command {0}. Crude form for displaying modal yes/no dialog queries. Initialize an instance of the class. The message to be displayed in the dialog's scroll-enabled text field. Note that it does not recognize "\n" as newline; rather use Environmenet.Newline. The caption for the dialog. Initialize an instance of the class. The message to be displayed in the dialog's scroll-enabled text field. Note that it does not recognize "\n" as newline; rather use Environmenet.Newline. The caption for the dialog. icon for the dialog handle the key down for yes and no note - this isn't i18N'd, so the keycodes might need to change whenever we do change this from just "yes", "no" Handler for YesButton click events. The responsible for generating this event. The for this event. Handler for NoButton click events. The responsible for generating this event. The for this event. do yes do no Required designer variable. Clean up any resources being used. true if managed resources should be disposed; otherwise, false. Required method for Designer support - do not modify the contents of this method with the code editor. Calculates Noise given a full scale peak-to-peak Data set The full scale peak-to-peak of the data set; 65536.0 by default for ADC data Initialize an instance of the UpdateNotifyingList class. Get/set the notification-bound items in this list. Callback method to be invoked whenever the notifying list is updated. The updated contents of the notifying list. Subscribers to be notified whenever this list is changed. this is a class to simplify waiting for a resource it can wait for a specified period and also check another signal or condition the max time to wait in any spin cycle this should probably be private and never modified as it will affect all waitwithcondition instances. if a wait condition is created with a 1000 millisecond wait period, and the EachWaitMilliSec was 20, we would wait for 50 cycles of 20ms before our final timeout optional function to check while waiting for handle to return. bool if condition has been met, false otherwise this exception is used to indicate a condition was met to the calling code wait for a resource to be available object to wait on max amount of time in milliseconds to wait use to wait for the max amount of time allowed. an additional condition to check. Can be null. if condition is met before resource is available a is thrown. true indicates the object has returned within the requested time period, false otherwise A tool for decoding XmlSerializationTag The type of the property container, class-constrained. Initialize an instance of the DTS.Utilities.Xml.PropertyAttributeDecoder class. The containing the properties to be decoded. Get the object containing the properties to be decoded by this class instance. Extract the specified boolean attribute property value from the decoder's bound object. The name of the property to be extracted. The the property value is to be decoded from. The specified value. Extract the specified int attribute property value from the decoder's bound object. The name of the property to be extracted. The the property value is to be decoded from. The specified value. Extract the specified double attribute property value from the decoder's bound object. The name of the property to be extracted. The the property value is to be decoded from. The specified value. Extract the specified string attribute property value from the decoder's bound object. The name of the property to be extracted. The the property value is to be decoded from. The specified value. Extract the specified enum attribute property value from the decoder's bound object. The name of the property to be extracted. The the property value is to be decoded from. the Enumeration that the enum value belongs to The specified enum value. Attribute for specifying the XML serialization tag for the attached object member entity. Get the value of this tag attribute. Get the order of the tag attribute. This will be used in sorting the like-tag attributes attached to the same object. Initialize an instance of the XmlSerializationTagAttribute class. The value of this attribute. Initialize an instance of the XmlSerializationTagAttribute class. The value of this attribute. The order of this attribute. This will be used in sorting the like-tag attributes attached to the same object. Compare this object to the one specified. The tag to compare to