RSG.Base
Array Comparer class providing generic (template) methods for comparing
different types of arrays.
Determine whether two arrays of T are equal (element-by-element)
First array of T.
Second array of T.
Type contained within the arrays being compared.
true if arrays a and b are equal, false otherwise
Determine whether two arrays of T are equal (element-by-element);
starting at an index for a certain number of elements.
First array of T.
Second array of T.
Starting element index.
Number of elements to compare.
Type contained within the arrays being compared.
true if arrays a and b are equal, false otherwise
Supplies an explicit GUID when an automatic GUID is undesirable.
The private field used for the property.
Initialises a new instance of the class
with the specified help link.
The string containing the help link to be assigned.
Gets the help link of the taret.
Custom exception which can be thrown if a particular attribute is not found.
Initialises a new instance of the class.
Initialises a new instance of the class
using the specified error message.
The error message that explains the reason for the exception.
Initialises a new instance of the class
using the specified error message and inner exception.
The error message that explains the reason for the exception.
The exception that is the cause of the current exception. If the innerException
parameter is not a null reference, the current exception is raised in a catch
block that handles the inner exception.
Initialises a new instance of the class
using the specified serialisation data.
The object that holds the serialized object data.
The contextual information about the source or destination.
Attribute that assigns a value a default color.
Initialises a new instance of the class.
Alpha
Red
Green
Blue
Gets the alpha-component.
Gets the red-component.
Gets the green-component.
Gets the blue component.
Specifies the color in which to display an object in the UI.
Source of the icon.
Initialises a new instance of the class
using the specified icon uri.
Bitmap image URI for icon.
Initialises a new instance of the class
using the specified resource and assembly names.
Name of the assembly in which the resource lives.
If this isn't provided it uses the "current" assembly.
Name of the resource to use.
Gets the icon source.
Specifies the display name for a field.
Initialises a new instance of the class
using the specified display name.
The display name.
Supplies an explicit GUID when an automatic GUID is undesirable.
The private field used for the property.
Initialises a new instance of the class with the
specified GUID.
The GUID to be assigned.
Gets the GUID of the target.
Specifies the file extension for the applied target.
Private field for the property.
Initialises a new instance of the class
using the specified extension.
Extension string (including "." as per ).
Gets the extension for the applied target.
Attribute to force a reference of an assembly
This is especially useful in WPF views, where the only reference to an assembly is in XAML.
Creates a new instance of
Type to force reference.
Attribute for specifying the friendly-name for a field.
Constructor; taking friendly name string.
Friendly-name to assign to this field.
Gets the Friendly name for the field.
Specifies and image moniker GUID for the field.
Creates a new instance of the attribute.
GUID as string, preferable in the format of XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.
Should be parsable by .
Gets the image moniker identifier.
Specifies and image moniker GUID and ID for the field.
Creates a new instance of the attribute.
GUID as string, preferable in the format of XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.
Should be parsable by .
ID to supply to be used by a moniker as an additional identifier.
Gets the image moniker identifier.
Attribute for MIME content types.
Creates an instance of .
Full content type definition.
MIME category.
Gets the content type definition.
Gets the MIME category.
Gets or sets the description for the Mime contenttype.
Extension methods for MIME content type attribute.
Return MIME full content type attribute value for an enum.
The enum value for which to retrieve the MIME full content type data for.
The MIME full content type associated with the specified enum value.
Return MIME content type attribute value for an enum.
The enum value for which to retrieve the MIME content type data for.
The MIME content type associated with the specified enum value.
Return enum value for String.
The type of enum to search.
The MIME content type we are searching for.
The enum value that has the specified value applied to it as an attribute.
Thrown if the value is not found.
Tries to get the enum value which has a MIME content type attribute that matches the
specified value.
The type of enum to search.
The content type value we are searching for.
The resulting enum value if it is found otherwise the default value.
true if the string value is valid; otherwise false.
Exception that can be thrown when an expected attribute is missing from a class member.
Initialises a new instance of the class.
Initialises a new instance of the class with a specified error message.
The message that describes the error.
Initialises a new instance of the class with the member name that it
is missing from and the attribute type that is missing.
Type of the attribute that is missing.
Name of the member that the attribute is missing from.
Attribute for associating a regex to something.
Initialises a new instance of the class with the
specified regular expression for the field.
Regular expression to assign to the field.
Initialises a new instance of the class with the
specified regular expression for the field.
Regular expression to assign to the field.
Gets the regular expression assigned to the field.
Attribute for associating a Registry key to something
Initialises a new instance of the class specifying
the registry key as a string.
Registry key.
Initialises a new instance of the class specifying
the registry key as a string.
Registry key.
Whether the key is in the 64-bit registry (default: based on application architecture).
Gets the associated registry key with the field.
Gets a value indicating whether this key is in the 64-bit registry.
Assigns a Game runtime name with an associated field.
Initialises a new instance of the class
specifying the runtime name associated with the field.
Name associated with this field.
Gets the name string assigned to a field.
Attribute for marking the tools install path.
Initialises a new instance of the with the
tool file path string for the associated field.
Tool file path string for the associated field
Gets the tools path string associated with this field.
Tag an interface with this attribute to auto generate a TypeScript representation with TypeWriter (Visual Studio extension).
Used by Typewriter. Fields or properties tagged with this attribute will not be included in the generated TypeScript file.
Tag an interface with this attribute to auto generate a TypeScript representation with TypeWriter (Visual Studio extension).
Tag an interface with this attribute to auto generate a TypeScript representation with TypeWriter (Visual Studio extension).
Initialises a new instance of the class.
Types to ignore.
Gets the list of base types that should not be considered. Useful if you don't want to include the fields from a base class
or interface.
Tag a class or interface with this attribute so that it is generated as mutable (not Readonly{T})
when nested in a parent model.
Otherwise, properties of non-primitive classes will be Readonly{T}.
Tag an interface with this attribute to auto generate a TypeScript representation with TypeWriter (Visual Studio extension).
Attribute for marking the user profile config data path.
Initialises a new instance of the class specifying
the necessary folder, path and whether the path is 64-bit.
Windows for the user configuration files.
User configuration directory path.
Indicates whether this is for a 64-bit tool.
Gets the Windows for the user configuration files.
Gets the user configuration directory path.
Gets a value indicating whether the configuration file path is for a 64-bit tool.
Gets an absolute path for the user configuration directory.
Absolute path for the user configuration directory
Specifies the name of the xml attribute for a property, or field.
The private field used for the property.
Initialises a new instance of the class.
The xml attribute name.
Gets the xml name for the property, or field stored in this attribute.
Attribute for marking classes/enums as having an XML string constant.
Initialises a new instance of the for
the field.
Specifies the string constant for this field.
Gets the XML constant string defined for this field.
Binary Tree Node data structure.
Object type at each node.
Initialises a new instance of the .
Initialises a new instance of the specifying node data.
Node data
Initialises a new instance of the specifying node data
and left and right children.
Node data
Left BinaryTreeNode
Right BinaryTreeNode
Gets or sets the left child of this .
Gets or sets the right child of this .
Walk this .
method to walk.
Enumerable of nodes walked.
Binary Tree data structure.
Object type at each node.
Default constructor.
BinaryTree node-walking mode.
Depth-first walk mode.
Breadth-first walk mode.
Gets or sets the Binary Tree root node.
Clear the Binary Tree.
Walk this .
method to walk.
Enumerable of nodes walked.
Represents a thread-safe, set of objects.
The type of the elements to be stored in the collection.
Root storage field for this concurrent set.
Gets the number of elements in the set.
Gets a value indicating whether the is read-only.
true if the is read-only; otherwise, false.
Gets a value indicating whether the set is empty.
Gets a collection containing the values in the .
Returns an enumerator that iterates through the collection.
A that can be used to iterate through the collection.
Returns an enumerator that iterates through a collection.
An object that can be used to iterate through the collection.
Removes the first occurrence of a specific object from the .
true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original .
The object to remove from the .The is read-only.
Adds an item to the .
The object to add to the .The is read-only.
Modifies the current set so that it contains all elements that are present in both the current set and in the specified collection.
The collection to compare to the current set. is null.
Modifies the current set so that it contains only elements that are also in a specified collection.
The collection to compare to the current set. is null.
Removes all elements in the specified collection from the current set.
The collection of items to remove from the set. is null.
Modifies the current set so that it contains only elements that are present either in the current set or in the specified collection, but not both.
The collection to compare to the current set. is null.
Determines whether a set is a subset of a specified collection.
true if the current set is a subset of ; otherwise, false.
The collection to compare to the current set. is null.
Determines whether the current set is a superset of a specified collection.
true if the current set is a superset of ; otherwise, false.
The collection to compare to the current set. is null.
Determines whether the current set is a correct superset of a specified collection.
true if the object is a correct superset of ; otherwise, false.
The collection to compare to the current set. is null.
Determines whether the current set is a property (strict) subset of a specified collection.
true if the current set is a correct subset of ; otherwise, false.
The collection to compare to the current set. is null.
Determines whether the current set overlaps with the specified collection.
true if the current set and share at least one common element; otherwise, false.
The collection to compare to the current set. is null.
Determines whether the current set and the specified collection contain the same elements.
true if the current set is equal to ; otherwise, false.
The collection to compare to the current set. is null.
Adds an element to the current set and returns a value to indicate if the element was successfully added.
true if the element is added to the set; false if the element is already in the set.
The element to add to the set.
Removes all items from the collection.
Determines whether a sequence contains a specified element by using the default equality comparer.
The value to locate in the sequence.
true if the source sequence contains an element that has the specified value; otherwise, false.
Copies the elements of the to an , starting at a particular index.
The one-dimensional that is the destination of the elements copied from .
The must have zero-based indexing.
The zero-based index in at which copying begins.
is null.
is less than 0.
is multidimensional.-or-The number of elements in the source is greater than the available space from to the end of the destination .-or-Type cannot be cast automatically to the type of the destination .
Create an array from this set of items.
An array that contains the elements from the input sequence.
Attempts to add the specified key and value to the .
The element to attempt to add to the collection.
true if the item was added to the successfully; false if the key already exists.
Attempts to remove and return the value that has the specified key from the .
The element to attempt to remove from the collection.
true if the object was removed successfully; otherwise, false.
Generic dictionary
It is required to mark a dictionary with the DataContractAttribute in order to serialise over WCF.
- this was discovered when serialising a dictionary of dictionaries.
- the higher level dictionary serialised without this!
We need a parameterless constructor for serialization
Parameterised constructor
A cache that contains items of type keyed by .
Items in the cache are stored as , so they are automatically removed when
they are garbage collected. Thus, this cache can be used when you want to cache objects by a given key
and not create multiple copies of objects with the same key, but want to allow these objects to be garbage
collected.
The type of key to use for storage in the cache.
The type of object to store in the cache.
This collection is thread safe. Items can be safely added and accessed in multiple threads.
However, only one thread can write to the collection at a time.
Gets the number of non-garbage collected items in the cache.
Gets the keys of the cache. This ignores keys whose values are garbage collected.
Gets the values of the cache. Does not return values that are garbage collected.
Gets the for the cache.
Attempt to retrieve the item from the cache.
The key to fetch the item by.
Out parameter containing the item, or the default of the type.
True if the item is in the cache.
Attempt to remove the value with the given key.
The key.
The value, if it was successfully removed.
True if an existing item was removed.
Determine whether the specified key is in the cache and not garbage collected.
The key.
True if the key is in the cache and not garbage collected.
Lookup the item by key, and add the specified item if not found.
The key.
The item to add if the key is not present in the cache.
The new or pre-existing item.
Lookup the item by key, and add a new item if it is not found using the factory method.
The key.
The factory method to construct a new item.
The new or pre-existing item.
Iterate through the cache and remove any items that have been garbage collected.
It's not necessary to manually prune, because this method is called periodically during insertion.
The number of non-garbage collected items remaining in the cache.
Clear all items from the cache.
Collection of .
The type of the elements to be stored in the collection.
Initialises a new instance of the class.
Initialises a new instance of the class.
Size of the .
Find a within the list by value.
Value to find.
if one exists with the value; otherwise null.
Node containing a value.
The type of the value to be stored in the node.
Initialises a new instance of the class.
Initialises a new instance of the class.
Node value.
Initialises a new instance of the class.
Node value.
Neighbouring nodes.
Gets or sets the value of this .
Gets or sets this 's neighbours.
Gets an enumerable of nodes in list order (including self).
Gets an enumerable of nodes in list order (including root).
Root object to recurse.
Enumerable of .
Represents a pair of values (can be of different types)
First element type.
Second element type.
Initialises a new instance of the class.
Initialises a new instance of the class.
First element.
Second element.
Gets or sets first value in pair
Gets or sets second value in pair
Equality operator.
Left-hand side.
Right-hand side.
true if pairs are equal; false otherwise.
Inequality operator.
Left-hand side.
Right-hand side.
true if pairs are equal; false otherwise.
Represents a queue of items that are sorted based on individual priorities.
Specifies the type of elements in the queue.
Specifies the type of object representing the priority.
The default capacity for this queue.
The factor by which the queue grows in size.
The minimum size the queue can grow by.
Empty array.
The backing store for the contents of the queue.
The object used to compare the priority of items.
Index to the first valid item in the queue.
The number of elements in the queue.
Index to the last valid item in the queue.
The current version of the queue. Used to make sure the contents of haven't changed
while enumerating the queue.
Initializes a new instance of the class.
Initializes a new instance of the class
using the specified initial capacity.
The initial capacity of the queue.
Initializes a new instance of the class
using the specified initial capacity.
The object used to compare items.
The initial capacity of the queue.
Gets the number of elements contained in the queue.
Removes all objects from the queue.
Determines whether an element is part of the queue.
The item to locate in the queue.
true if the item is found; otherwise false.
Removes the object at the head of the queue and returns it. If the queue is empty,
this method throws an InvalidOperationException.
The object at the head of the queue.
Removes the item at the head of the queue and returns it. If the queue is empty,
this method throws an InvalidOperationException.
The item at the head of the queue.
Adds an item into the queue at the correct location based on the items priority.
The item to place into the queue.
The priority of the item.
Returns an enumerator that iterates through a collection.
An System.Collections.IEnumerator object that can be used to iterate through the
collection.
Returns an enumerator that iterates through the collection.
An enumerator that can be used to iterate through the collection.
Returns an enumerator that iterates through a collection.
An System.Collections.IEnumerator object that can be used to iterate through the
collection.
Returns the object at the head of the queue. The object remains in the queue. If
the queue is empty, this method throws an InvalidOperationException.
The object at the head of the queue.
Returns the item at the head of the queue. The item remains in the queue. If
the queue is empty, this method throws an InvalidOperationException.
The item at the head of the queue.
Removes an item from the queue.
The item to remove.
true if the queue contained the item; otherwise false.
Sets the capacity to the actual number of elements in the
, if that number is less than 90 percent
of current capacity.
Gets the index into the array of the element at the specified position of the
queue.
The position of the item in the queue.
The internal array index of that item.
Gets the element at the specified logical index.
The index of the item in the queue.
The item at the specified position.
Checks whether an element should appear prior to another one.
The element we are comparing for.
The element we are comparing against.
A value indicating whether should appear before
.
Moves an item up the queue based on it's priority.
The element to move up the queue.
Resizes the underlying array to the new capacity, copying items from the original
optimizing the layout in the process.
The new capacity to size the array to.
Implements an enumerator for a Queue. The enumerator uses the internal version
number of the list to ensure that no modifications are made to the list while an
enumeration is in progress.
Initialises a new instance of the class using the
specified queue.
The queue this class will enumerate over.
Performs application-defined tasks associated with freeing, releasing, or
resetting unmanaged resources.
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.
Gets the element in the collection at the current position of the enumerator.
Gets the current element in the collection.
Sets the enumerator to its initial position, which is before the first element
in the collection.
The QuadTreeNode
Type stored in node.
QuadTreeNode split callback.
The contents of this node.
Note that the contents have no limit: this is not the standard way to impement a QuadTree
The child nodes of the QuadTree
Initialises a new instance of the class;
specifying minimum area.
Initial bound.
Minimum area for node.
Initialises a new instance of the class;
specifying a splitting callback.
Initial bound.
Callback to determine split.
Gets a value indicating whether the node is empty.
Gets the area of the quadtree node
Gets the minimum area to stop recursion; set in constructor by parameter.
Gets the total number of nodes in the this node and all SubNodes
Gets the maximum depth of the QuadTree node.
Gets the contents of this node and all subnodes in the true below this one.
Gets the node content.
Insert an item to this node
Merges any nodes of low value (as defined by valuationCallback) into adjacent sibling nodes
Attempts to move the contents of a source node into that of two potential target nodes
Internal method to create the subnodes (partitions space)
Returns true if the sub nodes were created
Distributes the contents of a node into its child nodes
Insert an item into the closest child node
Item to insert.
Flags to determine whether to split or not.
QuadTree structure.
References:
http://en.wikipedia.org/wiki/Quadtree
This QuadTree contains items that have an area (BoundingBox2f)
it will store a reference to the item in the quad
that is just big enough to hold it. Each quad has a bucket that
contain multiple items.
The QuadTree has an optional split delegate to fully define when
subnodes are created in a callback function. Otherwise you can
initialise with a minimum area.
Get the count of items in the QuadTree
Bounds of this QuadTree.
Enumeration to show QuadTree subnode behaviour.
Delegate that performs an action on a QuadTreeNode.
Delegate that determines whether the node should split.
Root QuadTreeNode object.
QuadTreeNode split callback.
Constructor, specifying minimum area.
Constructor, specifying node split callback.
Insert the feature into the QuadTree
Do the specified action for each item in the quadtree
An interface that defines and object with a rectangle
Mutable version of Range.
Type described by the Range.
Private field for the property.
Private field for the property.
Private field for the property.
Private field for the property.
Default constructor (for serialisation purposes).
Constructs a new range with optional inclusive flags.
Gets or sets start of the range.
Gets or sets end of the range.
Gets or sets a value indicating whether or not the start value is inclusive.
Gets or sets a value indicating whether or not the end value is inclusive.
Indicates whether a value is included in this range.
Value.
true if the value is within range; false otherwise.
Compare this weapon to another.
Generic tree structure.
Tree node-walking mode.
Tree root node.
Default constructor.
Constructor.
Clear all children.
Binary Tree Node data structure.
Default constructor.
Constructor, specifying node data.
Node data
Class that represents user data that can be attached
to models or view models and bound to
Property changed event fired when the name changes so that the
binding can be dynamic.
Create the OnPropertyChanged method to raise the event
Returns true iff this user data contains the given type
A cache that contains items of type keyed by .
Items in the cache are stored as , so they are automatically removed when
they are garbage collected. Thus, this cache can be used when you want to cache objects by a given key
and not create multiple copies of objects with the same key, but want to allow these objects to be garbage
collected.
The type of key to use for storage in the cache.
The type of object to store in the cache.
This collection is thread safe. Items can be safely added and accessed in multiple threads.
However, only one thread can write to the collection at a time.
The starting threshold for pruning.
The max velocity the pruning threshold can increase by (pretty arbitrary).
Internal dictionary which maps the keys to their weak referenced values.
facilitating locking for thread safety.
The point at which pruning should occur.
The chunk size the pruning threshold should currently increase by
Construct a new empty .
Construct a copy from .
The other to copy from.
This uses the other cache's equality comparer.
Construct a copy from and equality comparer.
The other to copy from.
Equality comparer
Construct a new empty with a given .
Equality comparer
Thrown if any argument is null.
Construct a new with a given source collection.
Input collection with which to initially populate the cache.
Thrown if any argument is null.
Construct a new with a given source collection and .
Input collection with which to initially populate the cache.
Equality comparer.
Thrown if any argument is null.
Gets the number of non-garbage collected items in the cache.
Gets the keys of the cache. This ignores keys whose values are garbage collected.
Gets the values of the cache. Does not return values that are garbage collected.
Gets the for the cache.
Attempt to retrieve the item from the cache.
The key to fetch the item by.
Out parameter containing the item, or the default of the type.
True if the item is in the cache.
Thrown if argument is null.
Attempt to remove the value with the given key.
The key.
The value, if it was successfully removed.
True if an existing item was removed.
Thrown if any argument is null.
Determine whether the specified key is in the cache and not garbage collected.
The key.
True if the key is in the cache and not garbage collected.
Thrown if the argument is null.
Lookup the item by key, and add the specified item if not found.
The key.
The item to add if the key is not present in the cache.
The new or pre-existing item.
Thrown if any argument is null.
Lookup the item by key, and add a new item if it is not found using the factory method.
The key.
The factory method to construct a new item.
The new or pre-existing item.
Thrown if any argument is null.
Iterate through the cache and remove any items that have been garbage collected.
It's not necessary to manually prune, because this method is called periodically during insertion.
The number of non-garbage collected items remaining in the cache.
Clear all items from the cache.
Expand the pruning threshold to fit within the specified value.
Task implementation; allowing for system specific parameters.
Initialise a new instance of the class.
Gets the task dependencies (links to other task names).
Gets the task's friendly name (e.g. used for display in UI/TTY output).
Gets the input files for this task.
Task name.
Gets the output files for this task.
Gets the task parameters.
Gets or sets a value indicating whether task is skipped if a failure occurred (default: false).
Gets the source file for this task.
Gets or sets a value indicating whether we immediately stop on errors (default: false).
Command-line Tool to use for this task.
Working directory for this task.
Builder class for creating objects.
Input files.
Output files.
Dependencies.
Initialises a new instance of the class.
Initialises a new instance of the class.
Task name.
Gets the task dependencies (links to other task names).
Gets the task's friendly name (e.g. used for display in UI/TTY output).
Gets the input files for this task.
Gets or sets the task name.
Gets the output files for this task.
Gets the task parameters.
Gets or sets a value indicating whether task is skipped if a failure occurred (default: true).
Gets the source file for this task.
Gets or sets a value indicating whether we immediately stop on errors (default: false).
Gets or sets the to execute for this task.
Working directory for this task.
Generate a object.
A new object.
Class implementing for
objects returning the correct order they should be executed in.
Command implementation; allowing for system specific parameters.
Initialises a new instance of the class.
Initialises a new instance of the class.
Initialises a new instance of the class.
Initialises a new instance of the class.
Enumeration for whether to allow tool execution remotely.
Local execution only.
Permit remote execution; with local fallback if the system
does not support it (for example).
Command-line tool task interface.
This was originally created for the Incredibuild and GNU make interoperability
with tools; so the core pipeline can share the interface.
Gets the task dependencies (links to other task names).
Gets the task's friendly name (e.g. used for display in UI/TTY output).
Gets the input files for this task.
Task name.
Gets the output files for this task.
Gets the task parameters.
Gets or sets a value indicating whether task is skipped if a failure occurred (default: false).
Gets the source file for this task.
Gets or sets a value indicating whether we immediately stop on errors (default: false).
Command-line Tool to use for this task.
Gets the working directory for this task.
Command-line tool interface.
This was originally created for the Incredibuild and GNU make interoperability
with tools; so the core pipeline can share the interface.
Tool name.
Absolute path to tool (executable, script).
Command-line parameters.
Tool specifying how the
tool can execute.
Tool execution time limit in seconds.
Value to indicating we limit the number of instances on a given machine.
Comma separated list of strings when found in output, can cause the build system
to retry the task on another machine (if used in a distributed build environment).
Concurrent task scheduler implementation; executes as many concurrent tasks
as possible based on maximum number and task dependencies.
Log context.
Timeslice; used for thread sleeping.
Maximum number of concurrent tasks.
Initialises a new instance of the class.
Maximum number of concurrent .
Interface to define the callback methods for the .
This allows applications to determine progress for any task batch.
Task started callback method.
Task completed callback method.
Task.
Task process exit code.
Standard output .
Standard error .
Process ellapsed real time.
Task Execution Scheduler interface.
Execute and schedule a batch of tasks.
Log object.
Task batch.
Ellapsed time.
true on successful execution; false on failure of any task.
Execute and schedule a batch of tasks providing progress support
to the caller through the
interface.
Log object.
Task batch.
Callback object.
Ellapsed time.
true on successful execution; false on failure of any task.
Naive task scheduler implementation that simply schedules each task sequentially.
Log context.
Class that stores a with an associated
object.
Task.
Process executing the task.
Initialises a new instance of the class.
Task.
Process executing the task.
Gets the associated task.
Gets the associated process object executing the task.
Gets or sets a value indicating whether this instance is disposed.
true if this instance is disposed; otherwise, false.
Default initialization for a bool is 'false'
https://msdn.microsoft.com/en-us/library/fs2xkftw(v=vs.110).aspx
Overloaded Implementation of Dispose.
true to release both managed and unmanaged resources;
false to release only unmanaged resources.
Dispose(bool isDisposing) executes in two distinct scenarios.
-
If equals true, the method has been called directly
or indirectly by a user's code. Managed and unmanaged resources
can be disposed.
- If equals false, the method has been called
by the runtime from inside the finalizer and you should not reference
other objects. Only unmanaged resources can be disposed.
Abstract base class for task schedulers; provides some protected virtual methods
to ease implementation of classes.
Start a new task.
Log object.
Log context.
Task.
Execution callbacks.
Associated .
Dispose all of our objects.
Callback invocation helper method for notifying a
has started.
Callback invocation helper method for notifying a
has completed.
Generic comparer to create sorted collections on the fly
Interface override
First value to compare
Second value to compare
This class allows us to specify an equality comparer in line for LINQ purpose
Be aware that not passing a hash function will default all hashes to 0.
Creates a new instance of FuncEqualityComparer
a delegate that will determine the equality between two objects
Creates a new instance of FuncEqualityComparer
a delegate that will determine the equality between two objects; equivalent to .Equals()
a delegate that is the equivalent of GetHashCode.
Implements IComparer for two objects; returning the correct
order they should be built in (after dependency analysis).
Recursive T dependency cache.
This is a Func for getting the children
Default constructor; no dependency cache.
Constructor; taking a T (recursive) dependency cache.
Constructor; taking a T (recursive) dependency cache.
Compare two T objects; returning which one should be built
first depending on their dependencies.
Return element recursive dependencies; either from our cache or
by recalculating it.
Class representing data sizes; typically used for pretty formatting File Size strings.
https://en.wikipedia.org/wiki/Gibibyte
http://msdn.microsoft.com/en-us/library/26etazsy.aspx#IFormattable
Constructor.
Number of bytes.
Constructor.
Number of bytes.
Creates a data size with the given unit.
Value
Unit
Gets the number of bytes.
Gets the number of kibibytes (KiB).
Gets the number of kilobytes (kB).
Gets the number of mebibytes (MiB).
Gets the number of megabytes (MB).
Gets the number of gibibytes (GiB).
Gets the number of gigabytes (GB).
Gets the number of Tebibytes (TiB).
Gets the number of terabytes.
Explicit constructor.
Number of bytes.
A new instance of a class.
Explicit constructor.
Number of bytes.
A new instance of a class.
Adds the two given data sizes and returns a new one.
Left data size.
Right data size.
Sum of both data sizes.
Subtracts the left datasize from the right datasize.
Left data size.
Right data size.
Absolute value of left datasize - right datasize.
Equality operator.
Left-hand side.
Right-hand side.
true if they are equal; false otherwise.
Inequality operator.
Left-hand side.
Right-hand side.
true if they are not equal; false otherwise.
Compares if left is smaller then right instance.
Instance on the left side of the operator
Instance on the right side of the operator
true if left is less than right; false otherwise.
Compares if left is larger then right instance.
Instance on the left side of the operator
Instance on the right side of the operator
true if left is greater than right; false otherwise.
Compares if left is smaller or equal then to instance.
Instance on the left side of the operator
Instance on the right side of the operator
true if left is less than or equal to right; false otherwise.
Compares if left is larger or equal to right instance.
Instance on the left side of the operator
Instance on the right side of the operator
true if left is greater than or equal to right; false otherwise.
Return formatted string.
Format specifier.
Formatted representation.
Return string representation.
Explicit units.
String representation.
Return string representation.
Formats a data size to the given significant numbers
Significant numbers to limit to.
Formatted value
Get the best unit datasize.
Return human readable string.
Enumeration to define how data sizes are displayed; supporting both
SI units (1000 base) and IEC (1024 base) units.
Display in bytes.
Display in kibibytes (IEC units, 1024 bytes).
Display in kilobytes (SI units, 1000 bytes).
Display in mebibytes (IEC units, 1024 kibibytes).
Display in megabytes (SI units, 1000 kilobytes).
Display in gibibytes (IEC units, 1024 mebibytes).
Display in gigabytes (SI units, 1000 megabytes).
Display in tebibytes (IEC units, 1024 gibibytes).
Display in terabytes (SI units, 1000 gigabytes).
The private field used for the property.
The private field used for the property.
The private field used for the property.
Hue component of the color with a value in the range of [0, 1).
Saturation component of the color with a value in the range of [0, 1).
Lightness (or Luminosity) component of the color with a value in the range of [0, 1).
String conversion
Based off of pseudocode from:
See http://easyrgb.com/index.php?X=MATH&H=18#text18.
Explicit conversion from RGBColor.
Color represented as HSV values.
The private field used for the property.
The private field used for the property.
The private field used for the property.
Hue component of the color with a value in the range of [0, 1).
Saturation component of the color with a value in the range of [0, 1).
Value (Brightness) component of the color with a value in the range of [0, 1).
String conversion
Based on C code from:
http://www.cs.rit.edu/~ncs/color/t_convert.html
Explicit conversion from RGBColor.
Color represented as RGB values.
The private field used for the property.
The private field used for the property.
The private field used for the property.
Red component of the color with a value in the range of [0, 255].
Green component of the color with a value in the range of [0, 255].
Blue component of the color with a value in the range of [0, 255].
String conversion
Based on C code from here:
http://www.cs.rit.edu/~ncs/color/t_convert.html
Explicit conversion from HSVColor.
Explicit conversion from HSLColor.
Bracket-type used for variable additions.
Note: please use $(var) for substitions; want to migrate the texture
pipeline to that at some point.
$(var)-style; default as per Ruby environment.
${var}-style.
Exception which contains a message code.
Default constructor.
Message for the exception.
Gets or sets the message code, if applicable for this exception.
Gets or sets the message code parameters for formatting the message.
Extension methods for arrays of elements.
Converts the byte array to hex.
The calling byte array.
A lowercase string hex representation of the byte array.
Using native memcmp, determines if the provided array is equal to the calling array.
The calling array.
The array to compare against.
Whether or not the arrays are equal.
Groups the provided array into specified chunk sizes.
Generic type for array contents.
Source array.
Max size per chunk.
An enumerable of array chunks.
Extern to get native memcmp
First byte array.
Second byte array.
The length of the first array.
An integer indicating whether or not they are the same.
Extension methods for the struct.
Converts a value to a byte array with a specified
number of bytes. Useful for hashing comparisons to ensure we hit the correct
width.
value.
Number of bytes to pad to; array will be padded to this or left alone.
The value of the current BigInteger object converted to an array of bytes.
Extension methods for .
check if a bitArray contains the integer value from the enum provided
check if a bitArray contains the integer value from the enum provided
check if a bitArray contains the integer flag provided
check if a bitArray contains the integer values from the enum enumerable provided
check if a bitArray contains the integer values from the enum enumerable provided
check if a bitArray contains the integer values from the enum enumerable provided
Set the flag from an enum value
Unset the flag from an enum value
Set the flag from an integer value (as a power of 2)
Unset the flag from an integer value (as a power of 2)
Set multiple bits at once
Set multiple bits at once
Set multiple bits at once
Set multiple bits at once
Set multiple bits at once
Reset the bitarray from an enum Flag
Set the bitarray from an enum Flag
GetBitArray as Enum (if the enum has the flag attribute)
GetBitArray as Integer
Set 32 bits in the bit array from an int.
The bit values
Reset the BitArray
Reset the BitArray
Reset the BitArray
extension methods.
Adds the elements of the specified collection to the end of the
.
to add elements to.
Items to add to the collection.
Type of elements in collection.
Remove a range of elements from an existing collection.
to add elements to.
Items to add to the collection.
Type of elements in collection.
DateTime struct extension methods.
Compares two instances of and tells you whether
the first is earlier than t2.
First object to compare.
Second object to compare.
Returns whether the first is earlier than t2.
Compares two instances of and tells you whether
the first is earlier than or equal to t2.
First object to compare.
Second object to compare.
Returns whether the first is earlier than or equal to t2.
Compares two instances of and tells you whether
the first is later than t2.
First object to compare.
Second object to compare.
Returns whether the first is later than t2.
Compares two instances of and tells you whether
the first is later than or equal to t2.
First object to compare.
Second object to compare.
Returns whether the first is later than or equal to t2.
Computes the start of the week starting on a particular day.
to compute start of week from.
Specify the start day of the week.
Returns the object that specifies the
start of the week from the current
(where the week starts on the day specified).
IDictionary extension methods.
Merge dictionary objects; optionally ignoring duplicate keys (where source
value would be kept).
Simpler version of for things that already are s.
The type.
The type.
The of s to convert to a dictionary.
A new from .
IEnumerable extension methods.
Determines whether no elements of a sequence satisfies a condition.
Type of element.
Source enumerable.
true if there are no elements in the enumerable; false otherwise.
Determines whether no elements of a sequence satisfies a condition.
Type of element.
Source enumerable.
Predecate for testing for no objects.
true if there are no elements in the enumerable that match the predecate; false otherwise.
Does the enumerable have at least a count of elements?
Type of element.
Source enumerable.
Minimum number of items.
true if the source enumerable has at least num items; false otherwise.
Does the enumerable have at most a count of elements?
Type of element.
Source enumerable.
Maximum number of items.
true if the source enumerable has at most num items; false otherwise.
Distinct Extension - allows for lambda delegate to be used
- eg. myEnumerable.Distinct(my => my.UniqueId);
- originally I was doing this changelists.GroupBy(cl => cl.Number).Select(grp => grp.First());
- but extension method opens it up to all.
Type of element.
Type of distinction.
Source enumerable.
Lambda delegate.
Distinct set of elements.
LamdaComparer to support the IEnumerableExtensions Distinct Extension
Type of element.
Enumerate through each element in the source enumerable.
Type of element.
Source enumerable.
Predecate.
Return an enumerable of the first N elements from a start position.
Type of element.
Set of values.
Starting index.
Element count.
New containing the first N elements.
Return an enumerable of the last N elements.
Type of element.
Set of values.
Element count.
New containing the first N elements.
Break a list of items into chunks of a specific size.
A set of chunks.
Partition enumerable with lookup on a boolean criteria.
- note that ToLookup is not-deferred and will be executed immediately.
type of enumerable
source of enumerable
boolean predicate
an enumerable of {T} where the predicate evaluates to true
an enumerable of {T} where the predicate evaluates to false
Compute the standard deviation of a list of doubles.
Input list of values.
Standard deviation.
Compute the standard deviation of a list of doubles.
Input list of values.
Standard deviation.
Converts the passed in IEnumerable to a set.
Type of element.
Input values.
Set of values.
Converts the supplied enumeration to a set using the supplied value selector.
The type of elements in the source.
The type of the resulting items to select.
The enumeration containing the source values to create the set from.
A function to extract a value from each element.
A that contains values.
Converts the passed in IEnumerable to a sorted dictionary.
Converts the passed in IEnumerable to a sorted dictionary.
Get duplicate items
Type of element.
Get Duplicate items with a predicate allowing to filter what we want to consider
Type of element.
Check if we have a duplicates - Note: it call GetDuplicates so if you want to treat the list
of duplicates it's faster to use GetDuplicateItems(), storing the result and checking the
Count.
Type of element.
Check if we have a duplicates with a predicate allowing to filter what we want to consider
- Note: it call GetDuplicates so if you want to treat the list of duplicates it's faster to
use GetDuplicateItems(), storing the result and checking the Count.
Type of element.
predicate function for filtering what we want to treat
Flatten a tree hierarchy with a Func given as parameter for the access to the children
Type of element.
Groups items provided they appear in sequence e.g. 1,1,2,3,3,1 would return 4
groups containing 1,1 2 3,3 and 1. This differs from the standard LINQ GroupBy
method which would place all the 1's in a single group.
Executes an action for each item and a sequence, passing in the
index of that item to the action procedure.
The type of the sequence.
The sequence.
A function that accepts a sequence item and its index in the sequence.
Check if the given parameter is contained as a reference in the IEnumerable
True if the reference is found; False otherwise
Returns a group of items in the given batch size till all items are iterated.
Type of the Enumerable
Source collection
Size of the batches.
Collection of batched items.
Simple class that implements the interface
for use with the
method.
The private field for the property.
The elements that this grouping contains.
Initialises a new instance of the class
using the specified key and list of elements.
Gets the key this grouping is for.
Returns an enumerator that iterates through the collection.
An enumerator that can be used to iterate through the collection.
Returns an enumerator that iterates through a collection.
An object that can be used to iterate through the
collection.
Enumeration convenience extensions
Adds the flag.
The enum's current value.
The flag to add.
A new enum value with the flag added.
Removes the flag.
The enum's current value.
The flag to remove.
A new enum value with the flag removed.
extension methods.
Contains an enum to regex lookup.
Gets an attribute on an enum field value; rather than adding method
for each attribute type.
The type of the attribute you want to retrieve
The enum value
Attribute of type T that exists on the enum value
Gets an attribute on an enum field value; rather than adding method
for each attribute type.
The type of the attribute you want to retrieve
The enum value
Attribute of type T that exists on the enum value
Retrieves the first regular expression associated with an enum value
The enum value.
that exists on the enum value.
Tries to get the regular expression associated with the specified enum value.
The enum value.
that exists on the enum value.
true if the method was successful; false otherwise.
Retrieves the first file extension associated with an enum value.
The enum value.
filename that exists on the enum value.
Tries to get the file extension associated with the specified enum value.
The enum value.
file extension that exists on the enum value.
true if the method was successful; false otherwise.
Retrieves the first regular expression associated with an enum value
The enum value.
name that exists on the enum value.
Retrieves the display name on a entry.
The enum value.
string that exists on the field.
Tries to get the display name associated with the specified enum value.
The enum value.
display name extension that exists on the enum value.
true if the method was successful; false otherwise.
Retrieves the enum value for the display name.
Have to return an Enum instead of T, as Enum is nullable so we can check for
failure return case.
Enum type name
display name extension that exists on the enum value.
value that has the specified display name.
Retrieves the enum value for the display name.
Have to return an Enum instead of T, as Enum is nullable so we can check for
failure return case.
Enum type name
Display name to find
Default value to use if display value not found in enum.
Retrieves the first description string associated with an enum value.
Tries to get the description associated with the specified enum value.
Retrieves the first category string associated with an enum value.
Tries to get the category associated with the specified enum value.
Retrieves the first ImageMoniker GUID associated with an enum value.
Enum field to find GUID for.
ImageMoniker GUID.
Tries to get the ImageMoniker GUID.
Enum field to find the guid for.
ImageMoniker GUID if found, otherwise .
Retrieves the first ImageMoniker GUID and ID associated with an enum value.
Enum field to find GUID for.
ImageMoniker GUID and ID.
Tries to get the ImageMoniker GUID and ID.
Enum field to find the guid for.
ImageMoniker GUID if found, otherwise .
ImageMoniker ID if found, otherwise 0.
Retrieves the first category string associated with an enum value.
Retrieves the first default value associated with an enum value.
Tries to get the default value associated with the specified enum value.
Retrieves the first runtime name string associated with an enum value
Retrieves the enum value for the display name.
Have to return an Enum instead of T, as Enum is nullable so we can check for
failure return case.
Enum type.
Tries to get the runtime name associated with the specified enum value.
Enumerates all possible combinations of bit flags relating to an enum.
Original code from: http://stackoverflow.com/a/6117125
Modified to include flags attribute check
Can't restrict to enums, but this is the next closest thing...
Convert an individual valued enum from an index value to a power of 2
Convert an individual value enum from a power of 2 to an index
EventHandler extension methods.
Some of this modeled after the event raising patterns here:
http://geekswithblogs.net/HouseOfBilz/archive/2009/02/15/re-thinking-c-events.aspx
Raise (trigger) an event safely (if there are listeners).
object.
Event sender object.
Event arguments.
Type this Event Handler expects.
This extension method to an EventHandler allows you to safely raise
events without having to check there are listeners every time.
E.g. for the event PropertyChanged, previously:
if (null != PropertyChanged)
PropertyChanged(this, new PropertyChangedEventArgs(...));
Using this extension method:
PropertyChanged.Raise(this, new PropertyChangedEventArgs(...));
Raise (trigger) an event safely (if there are listeners).
object.
Event sender object.
Event arguments.
Event argument type.
Same as Raise (above), but it allows you to pass in any object type, and wraps it in a SimpleEventArgs{T}
container. E.g.:
printStringCallback.Raise(this, "print this string");
Raise (trigger) the event safely.
object.
Event sender object.
Raise (trigger) an event and return the possibly-modified event argument
object.
Event sender object.
Event argument.
Event argument type.
Returns
This is the same as the Raise() extention method above, but it returns the SimpleEventArgs{T} object wrapping
the original payload. This object may have been modified by the delegates that were called.
Guid extensions
DHM TODO: move these extensions that are Automation-specific into the Automation source.
Generates a deterministic guid from a string.
Adapted from http://geekswithblogs.net/EltonStoneman/archive/2008/06/26/generating-deterministic-guids.aspx
Use like this;
Guid myGuid = Guid().FromSeedDeterminsitic(seed);
.
Seed to create hash.
New .
Parses a GUID from a string with the following format:
Job ID #GUID
Use like this;
Guid myGuid = Guid().FromJobId(jobId);
.
Err Automation Job ID.
Default guid on failure.
Parses a Guid in a "hex string" form (usually serialised from the game) and returns it in a ulong form
Parses a Guid in canonical form and returns it in a truncated ulong form (for game serialised guid matching)
Extensions to the System.IO.IOException class.
Determine whether this IOException was raised because of a
file locking error.
IPAddress class extension methods.
References:
http://blogs.msdn.com/b/knom/archive/2008/12/31/ip-address-calculations-with-c-subnetmasks-networks.aspx
Retrieves the IP address of the local machine.
Local machine address.
Gets all the IP Addresses used on the domain.
List of Domain IP if found, otherwise null
Gets the IP Address used on the domain.
Domain IP if found, otherwise null
Return broadcast address for any given IP Address.
Subnet mask .
Broadcast .
Return network address of an IP Address.
Subnet mask .
Network address .
Return whether two IP addresses are in the same subnet.
one.
two.
Subnet mask .
true if the addresses are in the same subnet; otherwise false.
Extensions of IUniversalLog
Displays a very pronounced log message
- consisting of 5 lines of log output.
************
*** blah ***
************
Obtains all the log filepaths that the log may be targeting.
Log to search.
All log filepaths if any are found.
Obtains a any log files if there is a file target involved.
Also recursively checks for any wrappers.
Log target.
Filename of the log file if found, otherwise null.
Converts a long to a filesize representation.
Converts a value in bytes into a human readable format.
Returns an object that provides formatting services for the specified type.
An object that specifies the type of format object to return.
An instance of the object specified by formatType, if the System.IFormatProvider
implementation can supply that type of object; otherwise, null.
Extension class for math operations.
Clamps the first arg between the min and max arguments passed
current value
min value
max value
value argument clamped between min and max.
Rounds the number to the closest value in the ... 1 2 5 10 20 50 100 ... sequence.
The value to round.
The rounded value.
Processor class extension methods.
References:
http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/d60f0793-cc92-48fb-b867-dd113dabcd5c/
TODO: I reckon the way we are determining parent process ids isn't particularly efficient.
It would be worth investigating using a pinvoked native method instead.
Maximum number of iterations to find parent process.
Find a processes parent id
Process ID.
Parent process ID.
Extension method for retrieving a processes parent.
object.
Parent of the passed in .
Extension method which tells whether the passed in process is running
through the bootstrapper.
object.
true if the process is bootstrapped; false otherwise.
Gets the Process object from a given process id
Process ID.
object.
Retrieves all processes that match the specified regex pattern.
Pattern to match process names.
Array of objects matching pattern.
Returns whether the process is a top-level process
object.
true if the process is a top-level process; otherwise false;
Returns the top-most parent process from a given process.
object.
Top-most object.
Attempts to retrieve the command line for a given .
The to retrieve the command line for.
The ' command line on success, on failure.
Attempts to retrieve the command line for a given .
The to get the command line for.
The ' command line on success, on failure.
Gets the child s for a given .
The to retrieve the command line for.
An of s that are children of the given .
Generates a that will complete when a given exits.
The to monitor. Must be started.
The optional for the operation.
A reprenting the lifetime of the .
The of must not be set to after calling this method.
Kills a process and all its descendant processes.
process object.
This is windows specific since we use the windows command 'taskkill'
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/taskkill
Gets a list of all descendant processes for the specified parent.
object to use as root.
Output list of child processes.
Kills the children processes of the process ID passed in.
The Process ID to check its children and kill processes of.
Whether this is being called with the parent process ID or not.
extension methods.
Copies a stream to another stream
Source
Destination
Returns a temporary stream context which will go back to the position it entered in after disposing.
Seekable stream to use in the context.
Disposable context.
String class extension methods.
Default ellipsis string delimiters.
Default ellipsis string replacement string.
Shorten a string for display. Typically used when displaying filenames in TTY or
in menu items to avoid altering the UI control too much; e.g. MRU lists.
Input string.
Maximum number of characters string should be.
Delimeters that should be split on (e.g. '\' and '/').
Replacement string (e.g. "...").
Shortened string for display.
Truncate string to a max length.
Constructs a string from enumerable of chars
Pad a string with spaces left and right
- so that it is centralised and surrounded by space
eg. ' I am a string '
Returns a string array that contains the substrings in this instance that are
delimited by the elements in the specified character array.
The string to split.
An array of Unicode characters that delimit the substrings in this string, an empty
array that contains no delimiters, or null.
A value indicating whether empty entries will be returned or not.
An array whose elements contain the substrings in this string that are delimited by
one or more characters in separator.
Returns a string array that contains the substrings in this instance that are
delimited by the specified character.
The string to split.
A character that delimits the substrings in this string.
A value indicating whether empty entries will be returned or not.
An array whose elements contain the substrings in this string that are delimited by
the specified separator.
Split a pathname by system directory separator characters.
Enumerates the text lines from the string, handling mixed CR-LF scenarios correctly.
This will preserve empty lines
Replaces the format item in a specified string with the string representation of a
corresponding object in a specified array. A specified parameter supplies
culture-specific formatting information.
A composite format string.
An object that supplies culture-specific formatting information.
An object array that contains zero or more objects to format.
A copy of format in which the format items have been replaced by the string
representation of the corresponding objects in args.
The or parameters are null.
The parameter is invalid.-or- The index of a format item
is less than zero, or greater than or equal to the length of the args array.
Replaces the format item in a specified string with the string representation of a
corresponding object in a specified array using the current culture for formatting
information.
A composite format string.
An object array that contains zero or more objects to format.
A copy of format in which the format items have been replaced by the string
representation of the corresponding objects in args.
The or parameters are null.
The parameter is invalid.-or- The index of a format item
is less than zero, or greater than or equal to the length of the args array.
Replaces the format item in a specified string with the string representation of a
corresponding object in a specified array using the current user interface culture
for formatting information.
A composite format string.
An object array that contains zero or more objects to format.
A copy of format in which the format items have been replaced by the string
representation of the corresponding objects in args.
The or parameters are null.
The parameter is invalid.-or- The index of a format item
is less than zero, or greater than or equal to the length of the args array.
Replaces the format item in a specified string with the string representation of a
corresponding object in a specified array using the invariant culture for
formatting information.
A composite format string.
An object array that contains zero or more objects to format.
A copy of format in which the format items have been replaced by the string
representation of the corresponding objects in args.
The or parameters are null.
The parameter is invalid.-or- The index of a format item
is less than zero, or greater than or equal to the length of the args array.
Converts the numeric value of this instance to its equivalent string representation
using the invariant culture for formatting information.
The value to convert.
The numeric value of this instance in its equivalent string representation.
Converts the numeric value of this instance to its equivalent string representation
using the invariant culture for formatting information.
The value to convert.
The numeric value of this instance in its equivalent string representation.
Converts the numeric value of this instance to its equivalent string representation
using the invariant culture for formatting information.
The value to convert.
The numeric value of this instance in its equivalent string representation.
Converts the numeric value of this instance to its equivalent string representation
using the invariant culture for formatting information.
The value to convert.
The numeric value of this instance in its equivalent string representation.
Converts the numeric value of this instance to its equivalent string representation
using the invariant culture for formatting information.
The value to convert.
A numeric format string.
The numeric value of this instance in its equivalent string representation.
Converts the numeric value of this instance to its equivalent string representation
using the invariant culture for formatting information.
The value to convert.
The numeric value of this instance in its equivalent string representation.
Converts the numeric value of this instance to its equivalent string representation
using the invariant culture for formatting information.
The value to convert.
The numeric value of this instance in its equivalent string representation.
Converts the numeric value of this instance to its equivalent string representation
using the invariant culture for formatting information.
The value to convert.
The numeric value of this instance in its equivalent string representation.
Converts the boolean value of this instance to either a '0' or a '1'.
The value to convert.
'0' for a false value; otherwise, '1'.
Converts the numeric value of this instance to its equivalent string representation
using the invariant culture for formatting information.
The value to convert.
A standard or custom numeric format string.
The numeric value of this instance in its equivalent string representation.
Converts the numeric value of this instance to its equivalent string representation
using the invariant culture for formatting information.
The value to convert.
The numeric value of this instance in its equivalent string representation.
Converts the numeric value of this instance to its equivalent string representation
using the invariant culture for formatting information.
The value to convert.
The numeric value of this instance in its equivalent string representation.
Converts the numeric value of this instance to its equivalent string representation
using the invariant culture for formatting information.
The value to convert.
The numeric value of this instance in its equivalent string representation.
Converts the numeric value of this instance to its equivalent string representation
using the invariant culture for formatting information.
The value to convert.
The numeric value of this instance in its equivalent string representation.
Converts the numeric value of this instance to its equivalent string representation
using the invariant culture for formatting information.
The value to convert.
A standard or custom numeric format string.
The numeric value of this instance in its equivalent string representation.
Converts the numeric value of this instance to its equivalent string representation
using the invariant culture for formatting information.
The value to convert.
A standard or custom numeric format string.
The numeric value of this instance in its equivalent string representation.
Replace extension; allowing StringComparison operator.
Checks if the source string contains the compare one
Gets the character index of the nth occurrence of a particular character in the passed
in string value.
Search
Character to check nth occurence of.
Specify nth occurrence to check for.
Character index into source string of the nth occurence if found; -1 otherwise.
Returns true if this string starts with the subString at the provided index.
Search .
Substring.
Start index to check.
True if sourceString starts with the subString at the given index.
Thrown if either sourceString or subString is null.
Thrown if the startIndex is not a valid index of this string.
Normalises and returns true if this string starts with the subString
url:bugstar:5400734 - No props are loading in the Sisika multiplayer interiors
Search .
Substring.
String comparison type.
True if sourceString starts with the subString at the given index.
Thrown if either sourceString or subString is null.
Thrown if the startIndex is not a valid index of this string.
Gets the common prefix for all given strings
The string for which we want to retrieve the common prefix
The Value indicating whether we ignore the case
the common prefix for all given strings
Converts a string to a vault path with correct prefix.
Intended to be called as early as possible so we can rely on the explicit prefixes always being in place.
Returns a string where any whitespace characters have been removed.
The string to remove whitespace from.
String without whitespace
class extension methods.
Pretty-print TimeSpan object (if required).
to convert into readable form.
Human readable string.
Show the given timespan as a simplified duration. Will always show minutes and seconds, but omit days and hours if it's smaller then a day and hour respectively.
Duration to format.
Formatted simplified duration.
extension methods.
Return of the derived types
in all loaded assemblies.
of derived types to return.
Whether to include abstract types or not.
of the derived types
in specified assembly.
Return of the derived types
in specified assembly.
of derived types to return.
to search for types.
Whether to include abstract types or not.
of the derived types
in specified assembly.
Returns a value indicating whether the specified type is a built-in type or not.
The following page describes the list of built-in types:
https://msdn.microsoft.com/en-us/library/ya5y69ds.aspx
The type to determine whether it's a built-in type or not.
A value indicating whether the specified type is a built-in type or not.
Returns the compiler type of a given object of runtime type
This is useful when the object is a boxed object and can potentially lose it's original type
int? x = 5;
Console.WriteLine($"compile-time type : {x.GetCompilerType()}");
Console.WriteLine($"runtime type : {x.GetType()}");
prints:
compile-time type : System.Nullable`1[System.Int32];
runtime type : System.Int32;
The of the object we want to get the compiler type of
The instance we want to get the compiler type of
The compiler type of this instance
Checks if a given type is a collection we can iterate over (IEnumerable)
The type we want to test
true if type is a collection/enumerable ; False otherwise
Checks if a given type is a map we can iterate over (Dictionary)
The type we want to test
true if type is a map/dictionary ; False otherwise
Gets the single parameter type of the given enumerable type
The type of the enumerable we want the parameter type from
the parameter type of the given enumerable type
Gets both key/value parameter types of the given dictionary type
The dictionary type we want the key/value parameter types from
(out) the key parameter type of the given dictionary
(out) the value parameter type of the given dictionary
Extensions for the class.
Creates a list of path containing an entry for each level of the specified path.
The path to retrieve the list of ancestors from.
A list of ancestor paths.
Creates a path which is the parent of the provided one.
The path whose parent we wish to retrieve.
The parent path of the provided path.
can be used directly instead
Gets the name of the parent of the given vault path.
Vault path to find the parent for.
Parent vaultpath name.
Determines whether the beginning of this vault path matches the specified vault path.
The current vault path.
The vault path to compare the beginning with.
True if the beginning of the vault path matches and false otherwise.
Determines whether the beginning of this vault path matches the specified vault path comparing whole chunks of directory segments
so we avoid cases like "tools_test_vault" matching "tools_test"
The current vault path.
The vault path to compare the beginning with.
String comparison mode for the segments
True if the beginning of the vault path matches and false otherwise.
Determines whether this vault path matches descendents
The current vault path.
True if recursive and false otherwise.
Determines whether this vault path matches its children
The current vault path.
True if children are included and false otherwise.
Determines whether this vault path has a wildcard
The current vault path.
True if a wildcard path and false otherwise.
Determines whether this vault path matches the other vault path by equality or wildcards.
The current vault path.
The vault path to test.
True if it matches and false otherwise.
Add query option with one or more values.
Base vault path.
Key to add
Values to add.
Extension methods for th class.
Attempts to retrieve the specified sub-element from another XElement.
The element from which to retrieve the sub-element.
The name of the sub-element to retrieve.
Thrown if the sub-element is not found.
Attempts to retrieve the specified sub element.
Thrown if the sub-element is not found.
Attempts to retrieve the specified sub element; returns the default value if not found.
Parse the given string value as an enum, either as a number (if the given text can be parsed as such) or as text.
Enum type.
String value to parse the enum value from.
Parsed Enum value.
Read attribute of a particular type.
Thrown if the attribute is not found
Read attribute of a particular type.
Name of the attribute to get the value from.
Default value to use if the attribute isn't required and not present.
The requested attributed casted to the right type, or the default value of T if the attribute isn't present and not required.
Read attribute of a particular type. (Deprecated)
Name of the attribute to get the value from.
Flag indicating whether the attribute needs to be present. If true this method throws an exception if it doesn't find it.
Default value to use if the attribute isn't required and not present.
The requested attributed casted to the right type, or the default value of T if the attribute isn't present and not required.
Given a source node and an XPath, resolve to a list of either XElement or XAttribute values, depending on the XPath specified.
The XNode to examine
The XPath to apply to the node
List of found node values.
Contains static helper methods onto the System.Xml.XmlReader class.
Checks whether the current node is a content (non-whitespace text, CDATA, Element,
EndElement, EntityReference or EndEntity) node. If the node is not a content node,
then the method skips ahead to the next content node or end of file. Skips over
nodes of type ProcessingInstruction, DocumentType, Whitespace and
SignificantWhitespace.
The reader to move forward.
A value indicating whether the reader is on a element or Comment.
Checks whether the current node is a content (non-whitespace text, CDATA, Element,
EndElement, EntityReference or EndEntity) node. If the node is not a content node,
then the method skips ahead to the next content node or end of file.
The reader to move forward.
A value indicating whether the reader is on a content or the end element.
Gets a long value from a reader
XML reader
Name of element
A task to perform the operation: Returns the long value if found.
Gets a int value from a reader
XML reader
Name of element
A task to perform the operation: Returns the int value if found.
Gets an unsigned int value from a reader
XML reader
Name of element
A task to perform the operation: Returns the int value if found, otherwise the default value.
Read element content with given local name as boolean
XML reader instance.
Local name of boolean to look for.
A task to perform the operation: Returns the boolean value if found.
Read element content with given local name as double value
XML reader instance.
Local name of double value to look for.
A task to perform the operation: Returns the double value if found.
Read element content with given local name as float value
XML reader instance.
Local name of float value to look for.
A task to perform the operation: Returns the float value if found.
Read element content with given local name as Datetime value
XML reader instance.
Local name of Datetime value to look for.
A task to perform the operation: Returns the datetime value if found
Asynchronously checks that the current content node is an end tag and advances the
reader to the next node.
The reader to read from.
The task object representing the asynchronous operation.
Asynchronously checks that the current content node is an element with the given
and and advances the reader to
the next node.
The reader to read from.
The local name of the element.
The task object representing the asynchronous operation.
Asynchronously checks that the current content node is an element with the given
and and advances the reader to
the next node.
The reader to read from.
The local name of the element.
The namespace URI of the element.
The task object representing the asynchronous operation.
Validates that the specified reader is positioned at the start of a element whose
name if equal to the specified name.
The reader to validate.
The name of the element that
Read in an enum from an XML reader.
XML reader to read colour from.
Name of the colour element.
Read in a guid from an XML reader.
XML reader to read guid from.
Name of the element to read.
Read in a guid from an XML reader.
XML reader to read guid from.
Name of the element to read.
Async version of ReadToDescendant
XML Reader
Local name
Class that holds extensions for
Write a given double to a given XML writer.
XML writer to write to.
Element name to write.
Value to write.
Task to perform the operation
Formatted using "round-trip" format, so you will always get the same numerical value back
Write a given Datetime to a given XML writer.
XML writer to write to.
Element name to write.
Value to write.
Task to perform the operation
Write a given Boolean to a given XML writer.
XML writer to write to.
Element name to write.
Value to write.
Write a given Guid to a given XML writer.
XML writer to write to.
Element name to write.
Value to write.
Write a given Int to a given XML writer.
XML writer to write to.
Element name to write.
Value to write.
Write a given Unsigned Int to a given XML writer.
XML writer to write to.
Element name to write.
Value to write.
extension methods.
Extract the entry into a MemoryStream.
entry to extract.
for the zip file entry.
Formats numbers to a significant number, but only applies to the fractional part. The integer part will always be shown in full.
For example, 123.456 with format {S2} will return 123, where as {S4} will return 123.4.
Environment interface to allow variable string substitution.
Gets the current depth of environment stack (minimum 1).
Indexer based on environment variable name.
Variable name/key.
Variable value.
Add a new value into the environment.
Variable name.
Variable value.
Add a new value into the environment; using specified bracket type.
Variable name.
Variable value.
Bracket type.
Lookup a value in the environment.
Variable name.
Variable value.
Substitute a string with any environment variables.
Value to be substituted.
Subtituted string.
Reverse substitution; absolute path to environment variables. Attempts
to match longest path first.
Value to be substituted.
Subtituted string.
Determines whether there are substitutions required.
Value to be substituted.
True if value has variables defined.
Resets the entire environment.
Clear the top-level environment of settings.
Push a new context.
Pop last context.
true if pop was successful; false otherwise.
Clones itself, but substitutes all the environment entries.
A newly constructed environement with substituted variables.
Class which can be used to build an asset .
Initializes a new instance of the class.
The project name.
The branch name.
The level name.
Creates the path for the specified project, branch and level.
The project name.
The branch name.
The level name.
The vault path for the specified values.
Creates the path for the specified entity.
The guid of the entity we wish to create the path for.
The vault path for the specified entity.
Creates the path for the specified blueprint instance.
The guid of the blueprint instance we wish to create the path for.
The vault path for the specified blueprint instance.
Creates the path for the specified archetype.
The vault path of the area code that the archetype fell in
The name of the archetype we wish to create the path for.
The vault path for the specified archetype.
Creates the path for the specified milo archetype.
The relative scene path for the milo archetype
The milo archetype name
The vault path for the specified milo archetype.
Creates the path for the specified milo room.
The path to the miloArchetype
The milo room name
The vault path for the specified milo room.
Creates the path for the specified milo portal.
The path to the miloArchetype
The milo portal name
The milo portal .
The vault path for the specified milo portal.
Creates the path for the specified interior entity.
Archetype path.
The guid of the interior entity we wish to create the path for.
The vault path for the specified interior entity.
Creates the path for the specified interior archetype.
The path to the miloArchetype
The interior archetype name
The vault path for the specified interior archetype.
Creates the path for the specified area code.
Area Code Path
The vault path for the specified area code.
Creates the path for the specified scenario.
The guid of the scenario we wish to create the path for.
The vault path for the specified scenario.
Class which can be used to extract various elements out of an asset .
Initializes a new instance of the class.
The path to extract data from.
Gets the branch the asset is a part of.
Gets the vault path for the branch this asset is a part of.
Gets the level the asset is a part of.
Gets the vault path for the level this asset is a part of.
Gets the project the asset is a part of.
Gets the vault path for the project this asset is a part of.
Get branch for path
Asset Path
Branch key.
Get project from path
Asset Path
Project path if found
Get level from path
Asset path
Level path if found.
Contains helper method for
Load an XDocument async
Filepath to the file to load with XDocument.
A new instance.
Load an XDocument async
Filepath to the file to load with XDocument.
that specifies white space behavior, and whether to load base URI and line information.
A new instance.
Asynchronously load a .
Stream to load from.
A new instance.
Note: this will close the ; see override to ensure that the
stream is not closed.
Asynchronously load a .
Stream to load from.
that specifies white space behavior, and whether to load base URI and line information.
The character encoding to use.
The minimum buffer size, in number of 16-bit characters.
true to leave the stream open after the StreamReader object is disposed; otherwise, false.
A new instance.
Base64 encoding utility functions.
Base64 encode an input stream to an output stream.
Base64 decode an input stream to an output stream.
File utilities class
Returns whether the file has read-only attributes set.
Set all files matching filter in path with a set of attributes
Clear specified file attributes from all files matching filter in path
Shortens a pathname by either removing consecutive components of a path
and/or by removing characters from the end of the filename and replacing
then with three elipses (...)
In all cases, the root of the passed path will be preserved in it's entirety.
If a UNC path is used or the sPath and nMaxLength are particularly short,
the resulting path may be longer than maxLength.
This method expects fully resolved pathnames to be passed to it.
(Use Path.GetFullPath() to obtain this.) ///
Gets common root for given file paths.
File paths to get common root for.
Gets common root for given directory paths.
Gets common root for given file paths. Internal usage abstracted for file/directory paths.
Get directory components for a given file path.
Get directory components for a given directory path.
CSV Writer Class
Default Constructor.
Custom CSV Parameters.
Create a CSV report to the given directory of this csv writer.
Type.
///
Items.
Log Object.
Was the csv successfully created?
Create a CSV report to the given directory of this csv writer. Uses multithreaded feeds for one stream writer.
Type.
Items.
Log Object.
A flag for the successful creation of the .csv using async.
Creates a file path given the configuration of the csv writer
The resultant path for the csv file.
Was the path successfully created?
Copies one stream to another with a given filename.
Stream.
Filename.
Creates a stream of CSV data from a list of items
Type.
Items.
A stream filled with data formatted for csv.
Outputs a header line that would be included in a CSV file by iterating over all properties in the passed in type
and using either the properties associated friendly name attribute or the properties name itself.
Type.
Writer.
Example item to base any null headers on.
Gets rid of any milliseconds that the time span has so that excel can correctly display those values.
Timespan.
Timespan with removed milliseconds.
Outputs a line of csv for the passed in item.
Type.
StreamWriter.
Item.
Gets the output line of csv for the passed item.
Type.
Item.
The output csv line.
Parameter class for a CSVWriter
Default Constructor
Output path for .csv file.
Do you want to include a header row on the .csv?
Gets the output path for the .csv
Gets a value indicating whether to include a header when writing the .csv
Gets or sets the number of tasks to allocated for asynchronous operations. Default value
Gets or sets the wait per asynchronous operation to queue information to the csv writer. Default value
Gets or sets the wait for writing to stream during asynchronous operations. Default value
Gets or sets a value indicating whether the csv writer should ignore null fields. This should only be set true if the whole data set will have common null and non-null properties.
Helper class for cleaning up files/empty directories in another directory.
Deletes a folder.
Path to delete
Number of attempts at deleting a file
The delay in ms between attempts.
true if directory was deleted
Deletes folders
List of paths to delete
Number of attempts at deleting a file
The delay in ms between attempts.
Clear log directory files.
The directory to delete files form.
The search pattern to match when deleting files.
Whether an exception was thrown while clearing out the directories.
Tries to delete any empty subdirectories below a given directory
The directory to delete empty sub-directories from.
Whether an exception was thrown while trying to delete empty SubDirectories.
Helper class for cleaning up files.
Deletes a file.
Path to delete
Number of attempts at deleting a file
The delay in ms between attempts.
Deletes files
List of files to delete
Number of attempts at deleting a file
The delay in ms between attempts.
Tries to delete any files below a given directory that match the given search
pattern.
The directory to delete files form.
The search pattern to match when deleting files.
Whether an exception was thrown while trying to delete files recursive.
Methods to compute a consistent 128-bit MD5 checksum for a file.
Empty MD5.
Compute consistent 128-bit MD5 checksum for a file.
Compute consistent 128-bit MD5 checksum for a stream; maintaining the
position in the stream.
Determine whether two Byte[] MD5 checksums are the same.
Return 128-bit MD5 checksum as pretty string.
Filesystem search functions.
Contains the result of a grep operation
Given a list of filenames, and a list of regular expressions, enumerates all of the matches for those regular expressions
A list of all of the files to open
A list of all of the regular expressions to test
A sequence of GrepResult objects, containing the filename, line, match result, etc for any successful matches.
Class for reading/writing simple .ini files.
Use the static method to load existing files; use the constructor
to create an empty to be populated in code.
Data storage; section name => key => value.
Initialises a new instance of the class; creating a new empty
definition that can be populated and saved.
Load an ini file.
Save state of ini file to disk.
Save state of ini file to stream.
Return value for a specified key (not in a section).
Return value for a specified key, in a specified section.
Return value for a specified key, in a specified section.
Return all key names from a specified section.
Return all section names.
Set value.
Removes value.
Removes a named section.
Section name.
Thrown if the section does not exist.
Clear all values in section.
Save section out to a stream.
serialisation options for application compatibility.
None.
Insert space characters between keys and values.
Provides utility methods for manipulating local path strings.
Deliberately named LocalPath to avoid class conflict with .
Default number of Guid characters to use for folder levels.
Normalise a filename to ensure that we store filenames in the Vault using
'/' rather than '\' separators.
Input filename to normalise.
Normalised filename.
We deliberately do not lower case the input filename to keep consistency
with Perforce.
Get a directory path for a GUID where we use characters of the GUID
as subdirectories.
Normalised directories use forward slashes. If false it will use the platform's default directory separator.
File extension to append (should include ".").
Number of directory levels to use (default: 3).
Guid g = new Guid("5620b495-a21f-4d0c-972d-2eba736151d2");
String directory = LocalPath.GetGuidPath(
@"x:\testfolder",
g,
'\\');
// directory is now @"x:\testfolder\5\6\2\5620b495-a21f-4d0c-972d-2eba736151d2"
Helper class to try and find the original file path for a given file path.
The use case for this would be to check if a file was copied, or is a P4 temp file, which has a specific signature.
Checks if the file path has P4 revision info (#XXXX) in its name.
File path to check.
True if the file path contains P4 revision info.
Checks if the supplied file is in, or under, the given folder, in the folder hierarchy.
Folder where the file should be under.
File to check against the folder
True if the file is contained under the folder, false if the file is not contained by the folder or its subdirectories.
Gets if given full file path is a temp file.
File path to check.
True if the given file path is a temp file.
Removes P4 revision info from the filename.
File path to clean.
Cleaned up full file path without p4 revision info.
The result from trying to resolve a full file path.
Creates a new instance of
Original path.
Resolved path.
Type of resolved path.
Gets the original path that was passed in.
Gets the path that was resolved. Can be equal to the original path if the type could not be determined.
Gets the resolve type.
Different types that original files can be resolved to.
Original path does not match any of the known signatures. It may be an original file.
Original path is a temp P4 file which contains revision information in the path.
Original path is a P4 file which contains revision information in the path.
The original file path is a copied file.
subclass to quickly construct file and path wildcards, supporting recursion similar to Perforce style. (e.g. foo/*.txt, foo/....txt).
Create a new wildcard object from a given wildcard pattern.
The pattern string
Create a new wildcard object from a given wildcard pattern, with regex options.
The pattern string
The regex options
Converts a recursive wildcard String (e.g. "*.ide", "....ide" to a Regex object by
replacing '*' and '...' symbols with Regex-compatible
expressions.
The pattern to replace
Replaced pattern
A which skips UTF-8 Byte order mark.
The Byte Order Mark for UTF-8 files; https://en.wikipedia.org/wiki/Byte_order_mark#Byte_order_marks_by_encoding
Initializes a new instance of the class with the specified path.
The stream to read from.
Checks if the three bytes match the Bom.
The bytes.
True if the bytes match the Bom; False otherwise.
Stream context that will return to the stream position it entered on when disposed.
Creates a new instance of
Seekable stream instance.
Class that helps trace reading data from a stream.
using (new StreamTrace("ObjectName", stream))
{
...
}
Initialises a new instance of the class.
Initilaises a new instance of the class with
checked byte length parameter.
Some string conversion utility methods.
String to conversion; similar to Int32.Parse or Convert.ToInt32 but it
handles 0x prefixed hexadecimal values.
The string to parse
A converted unsigned 32 bit integer
String to conversion; handling 0x prefixed hexadecimal values.
A which converts windows line endings to Unix line endings.
Initializes a new instance of the class with the specified path.
The stream to read from.
Provides an object representation of a path to a Vault entry and easy access to the parts of the path.
The separator to use for specifying the hierarchy in vault paths.
Specifies that the path describes an asset.
Specifies that the path describes a collection.
Specifies that the path describes an users favourite.
Specifies that the path describes a search.
Specifies that the path describes a blueprint child asset.
Specifies the seperator used for multiple values for a single query option.
Gets the number of indices to cache and reuse strings for.
The regular expression to use to path vault paths.
^ - Match start of word.
(?'scheme'[^:]+) - Match any character but : and add to the scheme named group.
: - Match the : character.
(?'path'//((?!//).)*) - Match // followed by anything except '//' and add to the path named group.
$ - Match end of word.
The regular expression to use to path vault paths.
^ - Match start of word.
(?'scheme'[^:]+) - Match any character but : and add to the scheme named group.
: - Match the : character.
? - Makes the scheme optional
(?'path'//((?!//).)*) - Match //
followed by alpha-numeric chars,
dashes, underscores, dots, add-symbols, asterix
and add to the path named group.
$ - Match end of word.
for getting Query options.
Gets the instance that collects the shared segments.
The private field used for the property.
The private field used for the property.
The private field used for the property.
Privated field for cached value for
Private field for the cached hashcode.
Gets the valid Path schemes
The private field used for
Caching field for
Caching field for
Initializes a new instance of the class with the specified path.
A vault path.
Initialises a new instance of the class using the specified scheme and path.
The paths scheme.
The path.
Initializes a new instance of the class based on the specified base path and
relative path string.
The base path.
The relative path to add to the base path.
Gets the depth of this node.
Gets a value indicating whether this path represents the root
Gets the full path for this vault path. The full path includes the scheme.
Gets the full path, excluding the query parameters.The full path includes the scheme.
Gets the name of the node this path represents.
Gets the vault path this vault path is parented to
Do that by taking the scheme and joining the segments together up until the last, unless empty
Gets the path portion of this vault path.
Gets an array containing the path segments that make up the specified .
Gets the scheme name for this vault path.
Gets the parent path
The parent vault path
Thrown when attempting to get the parent of the root path
Equality operator
Inequality operator
Combines two vault paths.
The first path to combine.
The second path to combine.
The combined paths. If one of the specified paths is a zero-length string, this method returns the other
path.
Creates a new VaultPath using the assets scheme.
The non-qualified assets path.
A new vault path.
Determine whether the path is a Vault assets scheme.
Input path.
true if path is a Vault asset scheme; false otherwise.
Determine whether the path is a Vault blueprint scheme.
Input path.
true if path is a Vault blueprint scheme; false otherwise.
Determine whether the path is a Vault favourite scheme.
Input path.
true if path is a Vault favourite scheme; false otherwise.
Determine whether the path is a Vault collection scheme.
Input path.
true if path is a Vault collection scheme; false otherwise.
Determine whether the path is a Vault search scheme.
Input path.
true if path is a Vault search scheme; false otherwise.
Attempts to parse the provided string as a object, returning the result of the
operation.
The string to parse into a vault path.
The resulting vault path object.
True if is a valid vault path string; otherwise, False.
Attempts to parse the provided string as a object, returning the result of the
operation.
This uses the STRICT version of the regex to prevent invalid path charcters.
The string to parse into a vault path.
The resulting vault path object.
Allow the passed in path to not define a schema so we can validate during its assembly.
If schema is missing an asset path is assumed.
True if is a valid vault path string; otherwise, False.
Value indicating whether or not this instance has any query parameters.
Gets a query parameter value based on the given key.
Key to look for in the query parameters.
Null if not found, otherwise the value of the query parameter.
Try and get the parameter value based on the given key.
Key to look for.
Value when found.
True if query parameter found, otherwise false.
Static method to get the depth of a Vault Path string.
Vault path without a scheme as a string.
Depth of the path.
This method assumes the Vault Path has been validated.
Called after the object has been deserialized.
The object which provides additional data about the type of serialization taking place.
subclass to quickly construct file and path wildcards (e.g. *.txt, d?ve.txt).
Converts a wildcard String (e.g. "*.ide" to a Regex object by
replacing '*' and '?' characters with Regex-compatible
expressions (.* and . respectively).
Stack of managed working directories; useful when loading data models to ensure
that any internal relative paths get resolved correctly.
Initialises a new instance of the class.
Initialises a new instance of the class.
Initial working directory.
Push a new working directory onto the stack.
Working directory to push onto the stack.
Pop last working directory from the stack.
Zipfile construction and extraction utility functions.
Log context string.
Delegate used for zip file creation callback.
Source Zip absolute filename.
Source file being added.
Checks if the filename provided is a valid zip file.
Log object.
File to check.
true if the file is a Zip file; false otherwise.
Create a zip file (strips all path information).
Destination filename.
Enumerable of filenames to pack.
Progress callback function.
true iff successful; false otherwise.
Create a zip file (optionally keeping full path information). No optional parameters.
Create a zip file (optionally keeping full path information).
Create a zip file; defining the destination files (folder support).
Create a zip file; defining the destination files (folder support).
Wrapper to handle CreateFromDictionary. Could do any specific pruning in here.
Delegate used for zip file extraction callback.
Source Zip absolute filename.
Source file being extracted.
Destination file being extracted.
Delegate used for zip file extraction (with overwrite support) callback.
Source Zip absolute filename.
Source file being extracted.
Destination file being extracted.
true iff overwrite file; false otherwise.
Extract all files from a zip file; calle decides upfront about
overwrite process.
Zipfile filename.
Destination directory (created if doesn't exist).
true iff all files overwrite; false no local files overwritten.
true iff successful; false otherwise.
Extract all files from a zip file; callee decides upfront about
overwrite process.
Zipfile filename.
Destination directory (created if doesn't exist).
true iff all files overwrite; false no local files overwritten.
Extraction callback; invoked for each file extracted.
true iff successful; false otherwise.
Extract all files from a zip file; callee decides upfront about
overwrite process. Filelist is returned.
Zipfile filename.
Destination directory (created if doesn't exist).
true iff all files overwrite; false no local files overwritten.
Extraction callback; invoked for each file extracted.
LIst of files in zip.
true iff successful; false otherwise.
Extract all files from a zip file with callee control over the
overwrite process.
Zipfile filename.
Destination directory (created if doesn't exist).
Overwrite callback; invoked for each file extracted, return true for overwrite.
Extraction callback; invoked for each file extracted.
true iff successful; false otherwise.
Extract all files from a zip file with callee control over the
overwrite process. Filelist is returned.
Extract files from zip file that are newer than in the destination
directory.
Extract files from zip file that are newer than in the destination
directory.
Extract files from zip file that are newer than in the destination
directory.
Extract files from zip file that are newer than in the destination
directory. Returning file list.
Extracts the file within the zipFilename, outputting a MemoryStream.
Extracts a file from a zip within a memory stream.
Used for extracting zip files within zip files.
Extracts the specified filename within the zipFilename to a specified destination file
The zip file to extract from
The file to extract
The full destination path to extract to
If the destination already exists, are we overwriting it?
Extracts a file from a zip within a memory stream.
Used for extracting zip files within zip files.
The zip stream to extract from
The file to extract
The full destination path to extract to
If the destination already exists, are we overwriting it?
Read list of files in the zip archive from a memory stream.
Read list of files in the zip archive.
Zipfile filename
Output list of files.
Callback handler to ensure files extracted get Now as modified time.
Zip Archive Filename.
Zip Archive Entry just being worked on.
Zip Archive number of entries.
In an event handler, set this to cancel the save or extraction.
Constructor.
Defines a mechanism for retrieving a typed service object; that is, an object that
provides custom support to other objects.
Gets the service object of the specified type.
The type of service object to get.
A service object of the specified type or null if there is no service object of
that type.
AST node interface.
Gets the string positional information for this AST node (and children).
Language Error Handler interface; to ensure we keep parser generator independent.
Highlight an error to the user.
Error to highlight.
Highlight a warning to the user.
Warning to highlight.
Represents position information for a token or sequence of tokens.
Gets the start line number.
Gets the start column number.
Gets the end line number.
Gets the end column number.
Interface that defines language scope of a symbol; e.g. in a scripting language
this could be a stack frame.
Type of symbol.
Symbol enumeration.
Gets the scope name.
Gets the parent scope (or null).
Define a new symbol in this scope.
Symbol.
Resolve a string name to a symbol.
Name to resolve.
Resolved symbol.
Symbol interface; to ensure we keep parser generator independent.
Gets the symbol name.
Interface that defines a symbol table representing symbols of a particular ty.
Type of symbol.
Symbol enumeration.
Interface for Symbol Tables.
Type of symbol.
Add a new symbol.
Symbol.
Value.
Remove a previously defined symbol.
Symbol.
Lookup the value of a symbol.
Symbol.
Value of the symbol; null otherwise.
Determine whether a symbol is defined.
Symbol.
true if the symbol is defined; false otherwise.
Symbol interface; to ensure we keep parser generator independent.
Symbol enumeration.
Gets the symbol type.
Syntax error interface.
Gets the input stream line.
Gets the current input symbol.
Gets the position of syntax error (column within current line).
Gets the syntax error message.
Error handler implementation for sending errors to a ILog.
Log object.
Constructor.
Error handler implementation that stores all syntax errors for later analysis.
Default constructor.
Gets the enumerable of errors; so we can report on them all at once or analyse them.
Gets the enumerable of warnings; so we can report on them all at once or analyse them.
Defines the ways that log files can be archived.
New log files take the format of {filename}.{n+1} where n is the previous log file
name.
WCF Service contract for allowing log messages to be pushed to other processes; e.g.
a log viewer component in an UI application that invokes the Asset Pipeline to
redirect log output and hide the ugly console window.
Gets the service URI for the current process.
Write a single to the remote process.
to send.
Service contract for allowing log messages to be pushed to other processes; e.g.
a log viewer component in an UI application that invokes the Asset Pipeline to
redirect log output and hide the ugly console window.
Start listening to Remote Procedure Calls from other applications.
Stop listening from Remote Procedure Calls from other applications;
no more logging data will be received by the application.
Stop listening from Remote Procedure Calls from other applications;
no more logging data will be received by the application.
the timeout gives an alloted time to complete the operation - in practise with a timespan of zero this seems to allow the servicehost to close quicker and no TimeoutException is thrown (much to my surprise) See https://docs.microsoft.com/en-us/dotnet/api/system.servicemodel.channels.communicationobject.close?view=netframework-4.7.2
Implementation for the for remote processes.
Service URI template.
Our destination .
Field used for the property.
Initialises a new instance of the
class.
Log target to connect.
TCP port.
Unique session ID (needs to match for client).
Implementation for the for local
processes.
Service URI template.
Our destination .
Field used for the property.
Initialises a new instance of the class.
Log target to connect.
Implementation of a to avoid us having to mark
up all derived classes with .
Initialises a new instance of the
class.
This class is used to assist in getting the known types for the various automation
services and allows us to have additional Message Code classes in other assemblies.
Helper method for getting the known types used by the
service contract.
Object that provides custom attributes for reflection objects that support them.
The list of known types used by the service.
Implementation of the interface that applications
would create to listen for log messages. This will be handled at a low-level so
individual applications do not need to set it up.
The implementation via WCF is handled via the .
It is structured like this so the base application does not need to set up the data
contract resolver nor care that we use WCF to implement the RPC. It also allows
the WCF service contract to be internal.
Receive Timeout to use in bindings
The timeout has been extended to an *arbitrary* value greater than the default (10 mins) since the service silently closes in the event of
not receiving application messages.
https://docs.microsoft.com/en-us/dotnet/api/system.servicemodel.channels.binding.receivetimeout?view=netframework-4.7.2
'Gets or sets the interval of time that a connection can remain inactive, during which no application messages are received, before it is dropped.'
See also : url:bugstar:5695180
Our RPF mechanism.
Our service host.
Initialises a new instance of the class.
Log target to connect.
This hosts the service for local connections only. See the constructor overload
for publishing the service for remote (TCP) connections.
Initialises a new instance of the class.
Client for the service.
Initialises a new instance of the class.
Process identifier to connect to.
Initialises a new instance of the class.
Endpoint address to connect to.
This givess full control of the WCF client connection; this is currently targetted
for automation so that we can pass log messages between different machines.
Console logging class; with some pretty printing colours for the
different message classifications.
Message prefix strings.
Message colours.
Maximum character padding; for pretty printing.
Stack of profile contexts and stopwatches.
Console resource lock (static as process-wide).
The private field used for the property.
Initialises a new instance of the class.
Gets a reference to the console resource lock.
Gets or sets a value indicating whether the level information for a log message should
be displayed before the log message.
This method is not intended to be called by anyone else than ProcessMessageCore and
ProcessMessagesCore as it 's not threadsafe and need proper synchronization.
It do the actual writing on the console
Processes a collection of message that are sent from the log.
The list of messages to process.
Exception formatter; produce nice output from Exceptions.
The time zone code to use to retrieve the assemblies build time.
Exception message.
Exception source.
Exception stacktrace.
Assembly that created the formatter (used internally).
Exception handler callbacks keyed by exception class.
Constructor; taking thrown exception.
Thrown exception.
Constructor; taking thrown exception and number of stack frames to
skip for stack trace.
Thrown exception.
Number of stack frames to skip.
Static constructor; registering default handlers.
Format this exception for logs, dialogs etc.
Formats the application details.
Formats the details for this exception.
Format this exception as summary information.
Register a new exception formatter callback.
Unregister an exception formatter callback.
AggregateException handler callback.
ArgumentException handler callback.
FileNotFoundException handler callback.
FileLoadException handler callback.
CompositionException handler callback.
ReflectionTypeLoadException handler callback.
Win32ExceptionHandler handler callback.
XmlExceptionHandler handler callback.
Exception basetype handler callback.
Exception factory; add handlers using RegisterExceptionHandler for custom
Exception classes.
Thrown exception.
Log file flush mode.
This can be used to change the automatic behaviour of a log file
flushing to disk.
Never flush log.
Flush on error.
Flush on warning.
Flush on info.
Flush on profile.
Flush on debug.
Flush on trace.
Alias to flush on any message.
Alias for default flush mode.
Exception being formatted.
Exception message.
Exception source.
Exception stacktrace.
Format this exception for logs, dialogs etc.
Format this exception as heading information.
Format this exception as summary information.
Settings to use to initialise the .
Gets the full path to the applications log file.
Gets the full path to the applications log file.
Gets the full path to the applications log file.
Gets the default log level the logging system should use.
The id of the thread to use as the default one.
Logs only forward non-default threads information to their attached targets.
Gets the log file format to use when creating log files.
Log interface; a class that implements this is a log. It can have
various classes of messages sent to it and events are raised for
ILogTarget objects to listen to.
Log name (context).
Log enabled state; whether messages are handled.
Internally set when errors have been logged.
Internally set when warnings have been logged.
Internally set when profile message have been logged.
Gets the list of log targets that are listening to this log.
Logs an information message.
The message to log.
Logs an information message.
A composite format string.
An object array that contains zero or more objects to format.
Logs an information message using the specified context.
The context to associate with the message.
The message to log.
Logs an information message using the specified context.
The context to associate with the message.
A composite format string.
An object array that contains zero or more objects to format.
Logs a particular message code.
The message code to log.
Logs a particular message code.
The message code to log.
An object array that contains zero or more objects to format.
Logs a particular message code.
The message code to log.
The exception to log information about.
An object array that contains zero or more objects to format.
Logs a particular message code using the specified context.
The context to associate with the message.
The message code to log.
Logs a particular message code.
The context to associate with the message.
The message code to log.
The exception to log information about.
An object array that contains zero or more objects to format.
Logs a particular message code using the specified context.
The context to associate with the message.
The message code to log.
An object array that contains zero or more objects to format.
Logs an error message.
The message to log.
Logs an error message.
A composite format string.
An object array that contains zero or more objects to format.
Logs an error message using the specified context.
The context to associate with the message.
The message to log.
Logs an error message using the specified context.
The context to associate with the message.
A composite format string.
An object array that contains zero or more objects to format.
Log an exception message.
Log targets may treat this differently to the other categories of
messages. E.g. Prefixing message with "Error:" or highlighting the
text.
Logs an exception message using the specified context.
Logs a tool internal-exception message.
The exception to log information about.
The message to log.
Logs a tool internal-exception message.
The exception to log information about.
A composite format string.
An object array that contains zero or more objects to format.
Logs a tool internal-exception message using the specified context.
The context to associate with the message.
The exception to log information about.
The message to log.
Logs a tool internal-exception message using the specified context.
The context to associate with the message.
The exception to log information about.
A composite format string.
An object array that contains zero or more objects to format.
Logs an exception as a warning.
The exception to log information about.
The message to log.
Logs an exception as a warning.
The exception to log information about.
A composite format string.
An object array that contains zero or more objects to format.
Logs an exception as a warning using the specified context.
The context to associate with the message.
The exception to log information about.
The message to log.
Logs an exception as a warning using the specified context.
The context to associate with the message.
The exception to log information about.
A composite format string.
An object array that contains zero or more objects to format.
Logs an internal tool error message.
The message to log.
Logs an internal tool error message.
A composite format string.
An object array that contains zero or more objects to format.
Logs an internal tool error message using the specified context.
The context to associate with the message.
The message to log.
Logs an internal tool error message using the specified context.
The context to associate with the message.
A composite format string.
An object array that contains zero or more objects to format.
Logs a warning message.
The message to log.
Logs a warning message.
A composite format string.
An object array that contains zero or more objects to format.
Logs a warning message using the specified context.
The context to associate with the message.
The message to log.
Logs a warning message using the specified context.
The context to associate with the message.
A composite format string.
An object array that contains zero or more objects to format.
Logs a debug message (only in DEBUG builds).
The message to log.
Logs a debug message (only in DEBUG builds).
A composite format string.
An object array that contains zero or more objects to format.
Logs a debug message using the specified context.
The context to associate with the message.
The message to log.
Logs a debug message using the specified context.
The context to associate with the message.
A composite format string.
An object array that contains zero or more objects to format.
Log a profile message and start marker.
The message to log.
Log a profile message and start marker.
A composite format string.
An object array that contains zero or more objects to format.
Logs a profile message and start marker using the specified context.
The context to associate with the message.
The message to log.
Logs a profile message and start marker using the specified context.
The context to associate with the message.
A composite format string.
An object array that contains zero or more objects to format.
Log a profile message and start marker.
Identifier for the profile operation.
The message to log.
Log a profile message and start marker.
Identifier for the profile operation.
A composite format string.
An object array that contains zero or more objects to format.
Logs a profile message and start marker using the specified context.
The context to associate with the message.
Identifier for the profile operation.
The message to log.
Logs a profile message and start marker using the specified context.
The context to associate with the message.
Identifier for the profile operation.
A composite format string.
An object array that contains zero or more objects to format.
Logs a profile end marker message.
Logs a profile end marker message.
Identifier for the profile operation.
Logs a debug message for application method tracing.
The message to log.
Method name; filled in by compiler.
Source file; filled in by compiler.
Source line; filled in by compiler.
Logs a debug message with context for application method tracing.
The context to associate with the message.
The message to log.
Method name; filled in by compiler.
Source file; filled in by compiler.
Source line; filled in by compiler.
Merges a list of log messages into this log.
The list of messages to merge.
Merges a list of log messages into this log.
The list of messages to merge.
Attaches a log target to this log.
Determine whether a particular log target is attached to this log.
Detaches a log target from this log.
Detaches all log targets (e.g. during shutdown).
Log file interface.
Log file flush mode.
Log filename on disk.
Copies the log file to another destination.
Log target interface; a class that implements this is a log target or
log message consumer.
Examples of log targets are: files, UI grids, or any other "view"
component.
Log enabled flag
Gets or sets the level of messages that this target is interested in.
Setting to null indicates that the log level will be inherited from the
's CurrentLogLevel property.
Timestamp log entries flag
Show context
When overridden in a derived class, clears all buffers for this log target
and causes any buffered data to be written to the underlying device.
Processes a collection of message that is sent from the log objects the target is attached to.
Allows the log target to perform cleanup operations prior
to application shutdown.
Enumeration of the various ways we can initialise the .
Log factory is initialised using the default output directory for the
specified application.
Legacy initialisation mode. Log factory is initialised by determining the output
directory for top-most parent process. Please try avoiding using this method
in the future.
Mode of log initialisation that set log based on the application name
Format to use when generating the unique name for a process.
The private field for the property.
The private field for the property.
The private field for the property.
Initialises a new instance of the class.
The name of the application we are initialising the factory for.
The file format to use for the application log file.
Path to the directory containing all of the tools log files (e.g. x:\rdr3\tools\trunk\logs).
Gets the full path to the applications log file.
Gets the full path to the applications log file.
Gets the full path to the applications log file.
Base class for initialisation settings.
Initialises a new instance of the class.
The file format to use for the application log file.
Gets the full path to the applications log file.
Gets the full path to the applications log file.
Gets the full path to the applications log file.
Gets or sets the default log level the logging system should use.
The id of the thread to use as the default one.
Logs only forward non-default threads information to their attached targets.
Gets the log file format to use when creating log files.
Gets the extension to use for the file format.
Legacy initialization mode. This uses the parent process name to determine the
directory that log files get stored in.
The private field for the property.
The private field for the property.
The private field for the property.
Initialises a new instance of the class.
The file format to use for the application log file.
Path to the directory containing all of the tools log files (e.g. x:\rdr3\tools\trunk\logs).
Gets the full path to the applications log file.
Gets the full path to the applications log file.
Gets the full path to the applications log file.
Mode of log initialisation that set log based on a provided directory name
The private field for the property.
The private field for the property.
The private field for the property.
Initialises a new instance of the class.
The directory in which logs should be saved.
The file format to use for the application log file.
The name of the main application log file without an extension. The extension used is based off of the
supplied file format.
Gets the full path to the applications log file.
Gets the full path to the applications log file.
Gets the full path to the applications log file.
Mode of log initialisation that set log based on a provided file path
The private field for the property.
The private field for the property.
The private field for the property.
Initialises a new instance of the class.
The full path to the application log file.
The file format to use for the application log file.
Gets the full path to the applications log file.
Gets the full path to the applications log file.
Gets the full path to the applications log file.
Static Log object for applications to send log messages to
anyone who has attached to the log message events.
Not sure where this is used/what it is for...???.
Default log name to use if one isn't supplied.
Default per-message context string.
Array of strings that require escaping; and the escape string.
Private field for the property.
Used to store whether the log has encountered messages of a specific level.
Private field for the property.
Private field for the property.
Private field for the property.
Lock object for accessing/manipulating the targets.
Static Log for static methods; really for compatibility with the
old static logging methods.
Default constructor; creating a 'Default' log.
Constructor; creating a particularly named log.
Constructor; creating a particularly named log.
Forwards a single message to the attached log targets.
Message log level.
Message context.
Formatted message to be logged.
The message code to associate with the message.
The profiling identifier for this message, if any.
Attempts to format the passed in string.
Creates a string which contains the exception and the string passed in correctly
formatted.
Creates a string which contains the exception and the string passed in correctly
formatted.
Merges a list of log messages into this log.
The list of messages to merge.
Merges a list of log messages into this log.
The list of messages to merge.
Escape message string; so it's safe for String.Format used internally.
This method is only safe to run on strings without formatting expressions;
'{' and '}' will be escaped. The main use for this is for escaping strings
that come from 3rd party libraries.
Log an information message.
Log a information message with context.
Log an exception message.
The information logged is similar to what is displayed in the UI
exception dialog class window.
Log an exception message with context.
Log an error message.
Error message string to log
Log an error message with context.
Log an warning message.
Warning message string to log
Log a warning message with context.
Log a debug message.
Debug message string to log
Log a debug message with context.
Log a profile message and start marker.
Log a profile end marker.
Log and log target factory.
Subdirectory under %RS_TOOLSROOT% for log files.
Default log file format.
Private field for the property.
Private field for the property.
Private field for the property.
Private field for the property.
Private field for the property.
Private field for the property.
The application log wrapper which is actually attached to the application log.
The private field used for the property.
Private field for the property.
Private field for the property.
Flag indicating whether the log factory system has been initialised.
Lock object for performing the log factory initialisation.
The format to use when creating new log files.
Private field for the property.
Lock object for accessing the logs collection.
Private field for the property.
Gets the directory to which any sub log files are saved out to by default.
Application-root log object.
Gets the directory to which the application log is saved out to.
Application-root log file.
Gets the full path to the application log file.
Gets the statistics target that is attached to the application log.
Instance of ConsoleLog; if initialised we connect all logs
and maintain those as new logs are created.
Gets or sets the current log level.
Whether the log factory has been initialised and the
process log has been setup.
Gets the collection of all logs constructed by the factory.
Gets the collection of all log targets constructed by the factory.
Gets the default thread id which is the one the log factory was initialised on.
Initialize the log factory based on the provided initialisation mode.
The settings to use for initialising the log factory.
Check to make sure the LogFactory has been properly initialised before making any calls to it.
Creates a new log object optionally forwarding messages logged to it to the
application log.
Name of the log to create.
Flag indicating whether messages logged to the created log object should be
forwarded on to the application log.
A new log object.
Creates a new log file target.
The name of the file the new file target should output to. This will be appended on to the end of the
to create the full path to the resulting file.
The newly created file target.
Creates a new log file target and attaches it to the specified log.
The name of the file the new file target should output to. This will be appended on to the end of the
to create the full path to the resulting file.
The format of the file to output.
The newly created file target.
Create a new Universal Log file target; attaching to a log.
Create a new Universal Log file target; attaching to a log.
Does NOT overwrite an existing target if the file exists. Instead, calls to create a new directory.
Is separate from the above , to avoid breaking existing calls to that function.
cannot add a param with default value due to use of "params String[] paths"
Creates and attaches a console log target to the application log, optionally
processing messages asynchronously or not.
Flag indicating whether the console target should process messages asynchronously.
The default is true.
Contains a list of support log levels to be output into the console.
Creates
Destroy a Universal Log.
Closes a file target. This is the mirror to the method.
The file target to close.
Destroy a Universal Log File.
Application shutdown; clears connected logs and flushes any log file targets
registered in the system.
Generate a universal log filename using a unique prefix.
Generate a universal log filename using a unique prefix.
Does NOT overwrite if the file exists. Instead creates a new directory.
Is separate from the above , to avoid breaking existing calls to that function.
cannot add a param with default value due to use of "params String[] paths"
Closes all the current log files opened with the log factory, clears the log directory
and then recreate the main application log. Used for Max so on each export we start with a fresh log directory.
Force a flush of the application log.
Copies a list of log files to the specified target directory.
Initialise a process log and log file.
Defines a message code that can be logged.
The private field used for the property.
The private field used for the property.
Initialises a new instance of the class using the
specified prefix and number.
The two to five character prefix for the message code.
The four digit numeric identifier for the message code.
The level the message should be logged at.
The message format to use when logging messages for this message code.
Gets the level the message should be logged at.
Gets the composite format string for the message associated with this message code.
https://stackoverflow.com/questions/263400/what-is-the-best-algorithm-for-an-overridden-system-object-gethashcode
Log message level enumeration.
Attributes are used as following:
* EnumMember - for WCF serialisation.
* DisplayIcon - Icon associated with this particular log level.
* FieldDisplayName - Name associated with this particular log level (as shown in the UI).
* XmlConstant - Name of the element for that particular log level as it appears in the ulog file.
* Browsable (optional) - Indicates that a particular log level shouldn't be shown in the UI (e.g. in a filter command).
Tool internal-exception level.
Tool internal-error level.
User error level.
User warning level.
User information level.
Trace level.
Profile level.
Debug level.
Profile-end level (internally used).
Utility methods associated with the enumeration.
Retrieves the element name that a particular log level has associated with it.
Converts an xml element name into a LogLevel enum value.
Name of the xml element.
LogLevel that the element name corresponds to or LogLevel.Info if it isn't valid.
Abstract base class for all LogTargets; this should be used to base
all LogTargets from because of the connected log maintenance.
Private field for the property.
Private field for the property.
Private field for the property.
Private field for the property.
Gets or sets a flag indicating whether the log is currently enabled.
Gets or sets the level of messages that this target is interested in.
Setting to null indicates that the log level will be inherited from the
's CurrentLogLevel property.
Gets or sets a flag indicating whether the target should output timestamps
along with the log messages.
Gets or sets a flag indicating whether the target should output the context
information along with the log messages.
Initialises a new instance of the class
using the specified enabled, output timestamp and output context values.
When overridden in a derived class, clears all buffers for this log target
and causes any buffered data to be written to the underlying device.
Processes a collection of messages that are sent from the log objects the target is
attached to.
The list of messages to process.
Allows the log target to perform cleanup operations prior
to application shutdown.
Processes a collection of message that are sent from the log.
The list of messages to process.
Gets a flag indicating whether the target should process messages of the
specified level.
Logging extensions for XML parsing.
Log an XML error; with filename, line and column information.
Log an XML error; with filename, context, line and column information.
Log an XML warning; with filename, line and column information.
Log an XML warning; with filename, context, line and column information.
Log an XML message; with filename, line and column information.
Log an XML message; with filename, context, line and column information.
Log an XML debug message; with filename, line and column information.
Log an XML debug message; with filename, context, line and column information.
Log an XML error; with filename, line and column information.
Log an XML warning; with filename, line and column information.
Log an XML message; with filename, line and column information.
Log an XML debug message; with filename, line and column information.
Log an XML error; with filename, line and column information.
Log an XML warning; with filename, line and column information.
Log an XML message; with filename, line and column information.
Log an XML debug message; with filename, line and column information.
Defines a message code that can be associated with a log event. A message code consists
of 2-5 characters followed by a four digit number e.g. UNIT0004 or EXP1205.
The regular expression for parsing a single message code into the relevant groups.
(?'prefix'[A-Z]{2,5}) - Named group that matches 2 - 5 upper case characters.
(?'number'\d{4}) - Named group that matches exactly 4 digits.
The numeric portion of the message code.
The string prefix portion of the message code.
Private field for the property.
Initialises a new instance of the class using the
specified prefix and number.
The two to five character prefix for the message code.
The four digit numeric identifier for the message code.
Gets the id to use for this message code.
Gets the prefix of this message code.
Gets the number of this message code.
Determines whether the first operand is equal to the second.
The first version to compare.
The second version to compare.
Returns true if the first operand is equal to the second, false
otherwise.
Determines whether the first operand is not equal to the second.
The first version to compare.
The second version to compare.
Returns true if the first operand is not equal to the second, false
otherwise.
Converts the string representation of a message code to a message code object.
A string representing the number to convert.
A message code equivalent to that contained within .
Attempts to convert the string representation of a message code to a message code
object returning the success of the operation.
A string representing the number to convert.
A message code equivalent to that contained within if it can
successfully be parsed; otherwise null.
true if was converted successfully; otherwise
false.
Returns whether this version is the same as another.
The object to compare this against.
true if the objects are the same; otherwise false.
Returns whether this version is the same as another.
The object to compare this one against.
true if the objects are the same; otherwise false.
Gets a hash code for this version.
A hash code for the current object.
Returns the message code id for this object.
The message code id for this object.
Model object for a single log file.
The default file extension for universal log files.
The default system context to use when outputting messages to the log.
Private field for the property.
Private field for the property.
Private field for the property.
Initialises a new instance of the class.
Gets or sets the name of the machine that the file was created on.
Gets the list of messages this file contains.
Gets or sets the name of the user that created the file.
Parses the specified log file returning a value indicating whether it contains any
errors.
Input file path.
true if the specified log file has errors; false otherwise.
Parses the specified log file returning a value indicating whether it contains any
errors.
Input file path.
true if the specified log file has warnings; false otherwise.
Parses the specified log file returning the number of errors it contains.
Input file path.
Number of errors within the specified log file.
Parses the specified log file returning the number of warnings it contains.
Input file path.
Number of warnings within the specified log file.
Creates a new from a file.
Input file path.
A new instance of representing the loaded data.
Creates a new from a file using the specified load options.
Input file path.
Loading options.
A new instance of representing the loaded data.
Creates a new instance by using the specified stream. This
assumes the stream represents an Xml based log file.
Input .
Expected file format ().
A new instance of representing the loaded data.
Creates a new instance by using the specified stream and load
options.
Input .
Loading options.
A new instance of representing the loaded data.
Merges a list of log files into a single model object.
The paths to the log files to merge.
A model object that contains the messages from the specified
file paths.
Merges the specified list of source filepaths into the a single destination file.
The full path to the destination file that will contain the merged results.
The full paths to the source files that should be merged.
Serializes this to a file, overwriting an existing file if it
exists.
Output file path.
Serializes this to a file using the specified save options,
overwriting an existing file if it exists.
Output file path.
Save options.
Outputs this to the specified stream.
Output .
Output format to use ().
Outputs this to the specified stream using the provided save
options.
Output .
Defines the file extensions we use for the logging system.
The default text file extension.
The default xml file extension.
The default ulog zip file extension.
All logfile extensions as wildcard.
All logfile extensions as wildcard.
Gets the extension to use for the specified file format.
The file format for which to retrieve an extension for.
The extension for the specified file format.
Gets the for the specified extension.
The extension to get the for.
The for the specified extension.
Returns a value indicating whether the supplied file path has the default text file extension.
The path to the file to check.
true if the file path has the text extension; otherwise, false.
Returns a value indicating whether the supplied file path has the default xml file extension.
The path to the file to check.
true if the file path has the xml extension; otherwise, false.
Returns a value indicating whether the supplied file path has the default ulog zip file extension.
The path to the file to check.
true if the file path has the ulog zip extension; otherwise, false.
Defines the various formats that a log file can be saved as.
The standard ULog Xml format.
Plain text format.
Zipped Ulog format.
Specifies a set of features to use when loading a via the various
LogFile.Load overloads.
The private field used for the property.
Private field for the property.
Private field for the property.
Initialises a new instance of the class.
Format that the log file uses
Initialises a new instance of the class.
Path to the log file to figure out format
Gets or sets the format the resulting log file should be saved out as.
Gets or sets the maximum number of messages to read from the log file.
Gets or sets the levels to restrict the loading to.
Returns a new, deep cloned instance.
New instance cloned from the called instance.
Specifies a set of features to use when saving a via the various
LogFile.Save overloads.
The private field used for the property.
Private field for the property.
Initialises a new instance of the class.
Format that the log file uses
Initialises a new instance of the class.
Path to the log file to figure out format
Gets or sets the format the resulting log file should be saved out as.
Gets or sets the levels to restrict the loading to.
Model object for a log message.
The private field used for the property.
The private field used for the property.
The private field used for the property.
The private field used for the property.
The private field used for the property.
The private field used for the property.
The private field used for the property.
The private field used for the property.
The private field used for the property.
Initialises a new instance of the class using the
specified information.
The level of the message.
The message context.
The message itself.
The unique code for this message.
The timestamp at which this message occurred.
The system context this message was logged as a part of.
The name of the thread that was running when this message was logged.
The id of the task that was running when this message was logged.
The id for profiling, if this log message is a profiling message.
Gets the context for the log message.
Log message level.
Log message string.
Gets the message code to better identify this specified message.
Gets the system context for this message.
Gets the id of the task that this message was generated from.
Gets the name of the thread that this message was generated on.
Log message timestamp (UTC).
Profile identifier Guid.
Model object for a log file that will be saved as a text based ULog file.
Contains the log levels joined by an OR statement for use in the message regex.
The regular expression for parsing a single message line into the relevant groups.
^ - Match line start.
\[(?'timestamp'\d+)\] - match the timestamp as one or more digits surrounded in [].
((?'level'[^\s]*): )? - optionally match the log level. If it doesn't exist it is
assumed that it's an Info message. [^\s]* matches any non whitespace characters to
prevent it from matching too much.
\[*(?'profileId'[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12})] - match an optional profile guid
(<(?'task'\d+)> |<(?'thread'[^\d]*?)> )? - optionally match a task id
or thread name.
(\[(?'sysctx'.*?)\|?(?'msgctx'.*?)\] )? - optionally match a system/message context
pair, where the system context, or the message context might be missing.
(\{(?'code'[A-Z]{2,5}\d{4})\} )? - optionally match the message code.
(?'message'.*)? - optionally match the message (e.g. profile end doesn't have one).
Initialises a new instance of the class using the
specified stream and creation options.
The stream containing the log file data.
Options that affects which messages to load.
Processes a list of lines treating them as a single message and adding them to the
message list.
The lines containing the message information.
Options that affects which messages to load.
Used to save a object as plain text.
The default buffer size for the stream writer. This value is the same as what is
used when using an overload that doesn't accept the parameter.
The stream that the file writer is outputting to.
The private field used for the property.
Initialises a new instance of the class.
The stream to write to.
Finalizes an instance of the class.
Gets a value indicating whether this instance has been disposed of.
Performs application-defined tasks associated with freeing, releasing, or resetting
unmanaged resources.
Writes the text representation of the log file to the underlying stream.
The log file to write to the underlying stream.
The options to use when outputting the log file contents.
Writes the text representation of the log message to the underlying stream.
The log message to write to the underlying stream.
Performs application-defined tasks associated with freeing, releasing, or resetting
unmanaged resources.
If true the managed resources for this instance also get disposed of as well as the
unmanaged resources.
Writes a single message to the underlying stream.
The log message to serialise.
The object that provides culture specific formatting information.
Model object for a log file that will be saved as an Xml ULog file.
The name of the xml attribute containing the data for a message code.
The name of the xml attribute containing the data for the message context.
The name of the xml element containing the data for the system context.
The name of the attribute that contains the machine the log file was generated on.
The name of the xml attribute that contains the name of a system context.
The name of the xml attribute that contains the task id.
The name of the xml attribute that contains the thread name.
The name of the xml attribute that contains the profile identifier.
The name of the xml attribute containing the data for the message timestamp.
This is for supporting old ULog files that serialised the timestamp as a local date
time string.
The name of the xml attribute containing the data for the message timestamp.
The name of the root xml element for an ULog file.
Initialises a new instance of the class using the
specified stream and creation options.
The stream containing the log file data.
Options that affects which messages to load.
Creates a new instance of the class using the specified
xml reader.
The xml reader containing the message information.
The system context this message is a part of.
A new log message instance initialised from the xml reader.
Used to save a object as Xml.
The stream writer to use for this.
The xml writer this one is outputting to.
The private field used for the property.
Initialises a new instance of the class.
The stream to write to.
Finalizes an instance of the class.
Gets a value indicating whether this instance has been disposed of.
Performs application-defined tasks associated with freeing, releasing, or resetting
unmanaged resources.
Saves the log file to the specified stream.
The log file to write to the underlying stream.
The options to use when saving the log file contents.
Writes the text representation of the log message to the underlying stream.
The log message to write to the underlying stream.
Performs application-defined tasks associated with freeing, releasing, or resetting
unmanaged resources.
If true the managed resources for this instance also get disposed of as well as the
unmanaged resources.
Replaces all invalid XML characters in a string with another character.
Writes a single message to the underlying stream.
The log message to serialise.
The object that provides culture specific formatting information.
Creates a new instance of .
Stream to read from.
Log file load options instance.
Gets load options for an entry from the ZIP file.
Load options that were passed down for the ZIP file.
Extension of the entry.
Finalizes an instance of the class.
Saves the log file to the specified stream.
The log file to write to the underlying stream.
The options to use when saving the log file contents.
Performs application-defined tasks associated with freeing, releasing, or resetting
unmanaged resources.
If true the managed resources for this instance also get disposed of as well as the
unmanaged resources.
Log object that ignores all incoming log calls.
The default null log instance.
Profile context object provides a safe method to log profile calls
into our logging system.
ILog log = ...
using (ProfileContext ctx = new ProfileContext(log, "Testing 123...")
{
... // code to profile
}
Log object to add profiling information to.
Identifier for this profiling context.
Constructor; specifying target log. Initiate profile.
Constructor; specifying target log and context. Initiate profile.
Dispose; end the profile call.
Log target that wraps another, forwarding messages to it on a background thread.
Incoming message queue; consumed in a separate thread.
Incoming message queue processing task.
Initialises a new instance of the class.
The log target this object wraps.
Gets a value indicating whether the log target has messages to process.
Processes a message that is sent from the log.
The list of messages to process.
Allows the log target to perform cleanup operations prior to application shutdown.
Contains the logic for processing log messages on a separate thread.
Log target that wraps another adding message buffering functionality.
The default number of messages this target can buffer.
The private field used for the property.
The private field used for the property.
The current queue of messages that need to be flushed to the underlying target.
Lock object used for accessing the message buffer in a thread safe manner.
The synchronization context which the flush timer uses to invoke the flush
operation.
The private field used for the property.
Initialises a new instance of the class.
The log target this object wraps.
The
Gets or sets the number of messages that can be buffered prior to an automatic
flush occurring.
Gets or sets the log levels that cause a flush to occur.
Gets or sets the time that can elapse since the last flush happened before the log
messages are automatically flushed. Setting this to
disables the timed flushes.
When overridden in a derived class, clears all buffers for this log target and
causes any buffered data to be written to the underlying device.
Processes a message that is sent from the log.
The list of messages to process.
Occurs when the flush timer interval has elapsed.
The source of the event.
An object that contains no event data.
Outputs log messages to the visual studio output window.
Private field for the property.
Message prefix strings.
Console resource lock (static as process-wide).
Gets or sets a flag indicating whether the target should output the prefix
information along with the log messages. Defaults to true.
Initialises a new instance of the class.
Connect our static Log event to us.
This method is not intended to be called by anyone else than ProcessMessageCore and
ProcessMessagesCore as it 's not threadsafe and need proper synchronization.
It do the actual writing on the disk
The list of message to output.
Processes a collection of message that are sent from the log.
The list of messages to process.
that suppresses s from logging for later retrieval.
of caught s.
Initializes a new instance of the .
The this object wraps.
Get an representing all the s caught from the wrapped log target.
An if any s were caught, otherwise.
Clears the cache of stored s
Log target that redirects log messages to a Windows Event Log.
Creates a new instance of .
Windows Event Log.
A value indicating whether the log is enabled.
A value indicating whether to output timestamps.
A value indicating whether to output context.
Base class for file based log targets.
The format to use for archived files.
The character to use when replacing invalid characters in the filepath.
The maximum number of characters that can appear in a file path.
The private field used for the property.
The private field used for the property.
The private field used for the property.
The private field used for the property.
The current archive index.
The private field used for the property.
Initializes a new instance of the class using the
specified filename.
The full path to the file that log messages will be output to.
The size after which files should be archived.
Gets or sets the size limit for a single file before it gets archived.
Gets the file paths of all archived files.
Gets or sets the way the log files are archived.
Gets the full path to the current log file on disk.
Gets the lock object that can be used to access the log file in a thread safe
manner.
Copies the log file to another destination.
Archives the current log file performing the appropriate archive behaviour.
The file extension to use for archive files.
Archives the file by moving the file from the source to the destination.
The source file to move.
The destination of the archived file.
Whether the archive operation was successful.
Logs an exception to Microsoft's event log.
The exception to log.
The message to accompany the exception.
Removes any invalid characters from a file path.
The file path to clean up.
The sanitized version of the passed in file path.
Provides functionality to handle only specified log levels.
Private field holding which explicit loglevels we want to handle.
Constructor.
Filters messages if possible.
The is a target that applications who want to
forward log messages to another process set up.
Log message context
WCF client.
Private field to lock the message process.
Initialises a new instance of the class.
Local process PID to connect to.
This is for local processes only; for remote processes use the overloaded
constructor.
Initialises a new instance of the class.
Remote host name (or IP).
Remote port number.
Unique session ID (needs to match for client).
This is primarily for remote processes; use the overloaded constructor for more
efficient communications for local processes.
Log target that forwards log messages to another log object.
Private field for the property.
Initialises a new instance of the class using the
specified log object.
Gets the log object to forward any incoming messages to.
Processes a collection of message that are sent from the log.
The list of messages to process.
Log target that keeps a predefined number of messages resident in memory.
The maximum number of messages we should store in the message buffer by default.
Private field for the property.
Private field for the property.
Reference to the observable collection that the read only
observable collection wraps.
Private field for the property.
Initialises a new instance of the
Gets or sets the maximum number of messages this target will track.
Gets the list of messages this target is tracking.
Gets the lock object for thread-safe access to the messages collection.
Clears the memory targets messages.
Internally buffers a message making sure that the message list doesn't grow too
large in the process.
The list of messages to process.
Log target that track statistics about the incoming messages.
Used to keep track of the last message received per log level.
Used to keep track of the number of messages we've received per log level.
Initialises a new instance of the
Gets a flag indicating whether this log has encountered any errors.
Gets a flag indicating whether this log has encountered any warnings.
Gets a flag indicating whether this log has encountered any profile messages.
Clears the values cached by this target.
Gets the last message for the specified log level.
The level for which to retrieve the message.
The last message retrieved for the specified log level if one exists; otherwise null.
Gets the number of messages received for the specified log level.
The level for which to retrieve the count.
The number of messages received for the specified log level.
Updates statistics about the incoming messages.
The list of messages to process.
Base class for targets which decorate another one with additional functionality.
Reference to the target that this one wraps.
Initialises a new instance of the class.
The log target this object wraps.
Gets the log target that has been wrapped into this async wrapper.
Forwards the flush call onto the wrapped target.
Allows the log target to perform cleanup operations prior to application shutdown.
Log target that outputs log messages as a plain text file.
The default number of retries to try and open the existing log file.
The default time to wait before trying to open the log file again (in milliseconds).
The default size above which log files should be archived.
Initializes a new instance of the class using the
specified filename.
The full path to the file that log messages will be output to.
Flushes the received messages to disk.
The list of messages to process.
Log target that wraps another, modifying incoming messages based on a user defined
function.
The function that returns the modified version of a log message.
Initialises a new instance of the class.
The log target this object wraps.
The function that returns the modified version of the specified log message.
Processes a message that is sent from the log.
The list of messages to process.
Log target that outputs log messages to an xml formatted ULog file.
The default size above which log files should be archived.
Initializes a new instance of the class using the
specified filename.
The full path to the file that log messages will be output to.
Flushes the received messages to disk.
The list of messages to process.
Attempts to save the specified log file.
The file to save to disk.
Attempts to load the file at the specified output path if it exists.
The log file model object that either contains the messages of the existing log
file, or is empty.
Abstract base class for all LogTargets.
This is a threaded version of the class. This
adds an internal queue and a consumer thread allowing decoupling of the
message locks to ensure that messages are received in the correct order.
Incoming message queue; consumed in a separate thread.
Incoming message queue processing task.
Initialises a new instance of the class
using the specified enabled, output timestamp and output context values.
Gets a value indicating whether the log target has messages to process.
Processes a message that is sent from the log.
The list of messages to process.
Allows the log target to perform cleanup operations prior
to application shutdown.
Contains the logic for processing log messages on a separate thread.
Processes a message that is sent from the log on a background thread.
The list of messages to process.
Represents a log target that stores the universal log messages inside a collection in
memory.
The private buffer used to store the log messages into.
Initialises a new instance of the class.
Finaliser.
Occurs whenever the buffer of log messages gets cleared.
Occurs when the the buffered collection of log messages change.
Gets a iterator around the buffered messages currently in memory.
Clears the buffered log messages.
Represents a single buffered message stored in the in memory universal log target.
Initialises a new instance of the class.
Initialises a new instance of the class.
Gets the name of the source object that this buffered message came from.
Provides the data forwarded in a universal buffer changed event handler.
Initialises a new instance of the
class.
A value indicating whether the messages in the parameter
have been added or removed.
The buffered message that has changed.
Initialises a new instance of the
class.
A value indicating whether the messages in the parameter
have been added or removed.
The buffered messages that have changed.
Gets a value indicating whether the messages inside the property
have been added or removed.
Gets a iterator around a collection of buffered messages that have been either
added or removed.
Universal Log Target interface.
https://devstar.rockstargames.com/wiki/index.php/Dev:Universal_Log_Format
Threaded Universal log file target.
An instance of this object can be connected to an ILog instance by
connecting up the Log method handlers. When log messages are then
generated they get written to the file.
https://devstar.rockstargames.com/wiki/index.php/Dev:Universal_Log_Format
Default filename extension String for Universal Log Files.
File size byte limit; before roll.
Number of messages to buffer before a flush
Default Universal Log context string.
Append millisecond pattern to current culture's full date time pattern
Log file flush mode.
Log filename on disk.
Number of messages to buffer prior to flush.
Internal message buffer.
Private field for the property.
Private field for the property.
Private field for the property.
Private field for the property.
Profile message context stack.
Rolling counter; to easily get new filename.
Constructor; specifying flush mode and initial log connection.
Copies the log file to another destination.
Flush the buffered messages to disk.
return the information if we need to flush and what is the context
Return the context
specific context for profiling
This is when we have only multiple message (create an additionnal list)
This is when we have only one message (avoid creating an additionnal list)
Invoked by worker thread to actually handle the messages.
Flush; optionally creating a base Universal Log file.
Implementation of .
Initialises a new instance of the class.
Initialises a new instance of the class using the
specified name.
Initialises a new instance of the class using the
specified name and default enabled state.
Universal log file target.
An instance of this object can be connected to an ILog instance by
connecting up the Log method handlers. When log messages are then
generated they get written to the file.
https://devstar.rockstargames.com/wiki/index.php/Dev:Universal_Log_Format
Default filename extension String for Universal Log Files.
File size byte limit; before roll.
Number of messages to buffer before a flush
Default Universal Log XML schema version.
Default Universal Log context string.
Default XML version.
Default Universal Log XML encoding.
Default Univeral Log XML document root node name.
XML document context attribute name.
Append millisecond pattern to current culture's full date time pattern
Log file flush mode.
Log filename on disk.
Number of messages to buffer prior to flush.
Internal message buffer.
Private field for the property.
Rolling counter; to easily get new filename.
Profile message context stack.
Constructor; specifying flush mode and initial log connection.
Constructor; specifying flush mode and initial log connection.
Copies the log file to another destination.
Flush the buffered messages to disk.
return the information if we need to flush and what is the context
return the right context to use
This is when we have only multiple message (create an additionnal list)
The list of messages to process.
This is when we have only one message (avoid creating an additionnal list)
Invoked by worker thread to actually handle the messages.
The list of messages to process.
Merge Universal Log files; return resultant document as XDocument
Merge Universal Log files; saving resultant XML to disk.
File path to save the resulting merged log file.
List of file paths to merge together.
Success of the merge operation.
Marge Universal Log files of the same name; saving resultant XML to disk.
Eg Log.1.ulog and Log.2.ulog become Log.ulog and are deleted.
File path to the log file.
Success of the merge operation.
Return whether the specified log filename contains errors.
Return whether the specified log filename contains errors.
Returns the number of errors in the file.
Returns the number of warnings in the file.
Return list of paired context/messages's from the log file.
Return list of paired context/error's from the log file.
Get all the xml elements considered a kind of 'error'
- inclusive of tool errors.
Get all the xml elements considered a kind of 'message'.
Get all the xml elements considered a kind of 'warning'.
Gets all log elements of the LogLevels passed.
the log levels we are looking for
Flush; optionally creating a base Universal Log file.
Buffered Universal Log File message object.
The private field used for the property.
The private field used for the property.
The private field used for the property.
The private field used for the property.
Message identifier; used for duplicate message processing.
Log message level.
Log message timestamp (UTC).
Log message context.
Log message string.
Constructor.
Constructor.
Constructor.
Constructor; from XML element.
Convert to XML element.
Strips out invalid xml characters.
Replaces all invalid XML characters in a string with another character.
2D Bounding Box (floating-point coordinate system).
Min
Max
Width of bound.
Height of bound.
Default constructor
Copy constructor
Constructor from 3D bounding box.
Constructor
Constructor
Initialises a new instance of the class using the
specified min/max x and y values.
Return centre point of bound.
Expand bound to contain a point.
Expand bound to contain another bound.
Point completely contained within this BoundingBox2f.
Bound completely contained within this BoundingBox2f.
Returns array of the four points
2D Bounding Box (integer coordinate system).
Event raised when stored bounds changes
Minimum of bound.
Maximum of bound.
Default constructor
Constructor
Raise BoundsChanged Event (if we have listeners)
3D BoundingBox
Minimum of bound.
Maximum of bound.
Default constructor
Constructor for two vectors.
Constructor for components for two vectors.
Copy constructor.
Return centre point of bound.
Determines if the 2D point exists within the bounding box.
Determines if the 3D point exists within the bounding box on the x- and y-axes.
If checkZ is set it will also check the z axes.
Transform this box by a transformation matrix.
Transform this box by a transformation matrix.
This version does not do the Inverse like the Transform above.
There shouldn't be an inverse done after an absolute but instead of changing everything
for fear of breaking other things, I've added a new function for the bad cases we hit.
Returns array of the eight points
Centre point of bounding sphere.
Radius of bounding sphere.
Constructor.
Centre point of sphere
Radius of sphere
Standard constructor. Zero initialised members.
Standard constructor. Zero initialised members.
Point completely contained within this BoundingCirclef.
Centre point of bounding sphere.
Radius of bounding sphere.
Constructor.
Centre point of sphere
Radius of sphere
Standard constructor. Zero initialised members.
Constructor, from BoundingBox.
Colour3f Specialisation (float)
red-component of colour
green-component of colour
blue-component of colour
Default constructor
Constructor
Copy constructor
Constructor, from a XmlNode.
Constructor, from a XPathNavigator.
Square-root of 2.
Square-root of 1/2.
Square-root of 3.
Useful rounding utilities
Round to nearest value function
The order in which to treat the euler angles.
Identity matrix.
Default constructor, initialise to identity matrix.
Constructor.
Initialises a new instance of the class using the
provided array.
provided array.
Copy constructor.
Create Matrix22f based on rotation in radians
Multiplication operator.
Explicit conversion to a 2d float array.
Transform a vector by the current matrix.
Identity matrix.
Default constructor, initialise to identity matrix.
Constructor.
Initialises a new instance of the class using the
provided array.
Copy constructor.
Constructor from Matrix34f.
Multiplication operator.
Explicit conversion to a 2d float array.
Transform a vector by the current matrix.
Return the inverse of this Matrix33f.
Matrix with 3 columns and 4 rows.
Identity matrix.
Translation vector of transformation matrix.
Default constructor, initialise to identity matrix.
Constructor
Initialises a new instance of the class using the
provided array.
Copy constructor.
Constructor from Quaternion.
Creates a lookAt vector.
Creates matrix rotated around the X-axis.
Creates matrix rotated around the Y-axis.
Crates matrix rotated around the Z-axis.
Creates a rotation matrix based on a from / lookAt point.
Addition operator.
Subtraction operator.
Subtract a matrix m from the current matrix.
Multiplication operator.
Multiplication operator.
Multiplication operator.
Explicit conversion to a 2d float array.
Transform a vector by the current matrix.
Rotates the matrix by a given axis and angle.
Apply a uniform scale to the current matrix.
Apply a non-uniform scale to the current matrix.
Return the inverse of this Matrix34f.
Interpolates between two matrices.
Builds a matrix from a quaternion.
Returns the matrix as a 12 element array.
Represents a 4x4 floating point matrix.
Zero matrix.
Identity matrix.
Private field for the property.
Private field for the property.
Private field for the property.
Private field for the property.
Initialises a new instance of the class to the zero
matrix.
Initialises a new instance of the class using the
provided vectors as the row.
Initialises a new instance of the class using the
provided array.
Initialises a new instance of the class to be a copy
of the provided matrix.
First row of the matrix.
Second row of the matrix.
Third row of the matrix.
Fourth row of the matrix.
Explicit conversion to a 2d float array.
2D Oriented Bounding Box (floating-point coordinate system).
Center
Distance from the center to the X+ edge in a local orientation and the same for Y+
Rotation about the up axis
Default constructor
Takes a local bounding box of the points and the transformation matrix from world space to local space
of the OBoundingBox2f
Returns an counter clockwise ordered points
TOOD: Consider storing these points if this is calculated multiple times.
Get min coordinate for the AABB around oriented points on a world grid
Get max coordinate for the AABB around oriented points on a world grid
This is slow but easier to write. Consider using BoundingBox2f.Intersects(Vector2f, Vector2f) directly and storing the Max/Min
This is slow but easier to write. Consider using BoundingBox2f.Intersects(Vector2f, Vector2f) directly and storing the Max/Min
TODO: This can be optimized to filter out some axis so we don't have to continue to check against every possible point on every axis
Basic Constructor.
Constructor for a plane and a point.
Constructor for a plane with three points.
Computes the plane coefficients based on three points.
Returns the normal of the plane.
Returns the Z coordinate on the plane (assuming infinite extents).
Default constructor, setting to identity quaternion.
Quaternion constructor, from axis and angle (in radians).
Quaternion constructor, copy constructor.
Quaternion constructor, from Matrix34f.
Constructor, from a XPathNavigator.
Convert to simple String representation.
Return whether this quaternion is the identify quaternion.
Return whether this quaternion is normalised.
Scale this quaternion.
Return magnitude of this quaternion.
Return squared-magnitude of this quaternion.
Return the inverse of the magnitude of this quaternion.
Normalise this quaternion.
Invert this quaternion (axis inverted, angle remains the same).
Negate this quaternion.
Negating a quaternion means that the rotation happens in the opposite
direction on the opposite axis -- in other words, no net change in the rotation.
Dot product between two quaternions
PURPOSE: Calculate the relative angle between two quaternions.
PARAMS
q - The other quaternion.
RETURN: the angle between this quaternion and the given quaternion
PURPOSE: Prepare two quaternions for a slerp between them by making sure the angle between them is between -PI and PI.
NOTES
This method makes sure that the interpolation takes the shortest route. If the angle between the two quaternions is not between
-PI and PI, then this quaternion is negated to make the angle between -PI and PI. The negated quaternion represents a rotation
in the opposite direction about an opposite unit vector, so it is equivalent to the non-negated quaternion.
PURPOSE: Perform spherical linear interpolation between this quaternion and another.
PARAMS
q - The other quaternion, representing a t of 1
NOTES:
To make sure the interpolation takes the shorter of two possible paths around a spherical surface,
call PrepareSlerp(q) first, or use SlerpNear.
SEE ALSO: PrepareSlerp, SlerpNear
Converts the quaternion to a set of euler angles using the specified rotation order.
Returns the largest index.
Taken from RageCore.
Taken from RageCore to convert a Matrix34 into a Quaternion.
Return index of maximum value in arbitrary Array of values.
Equality operator
Inequality operator
Return the 2x2 matrix determinant.
Return the 3x3 matrix determinant.
Performs Abs on an array of floats.
Return the maximum value in arbitrary Array of values.
Return the minimum value in an arbitary Array of values.
Swaps the variables.
Get the smallest scalar projection value from the oriented points along any given axis
Get the largest scalar projection value from the oriented points along any given axis
Return index of maximum value in arbitrary Array of values.
2D Vector Class
Currently common operations etc. are not implemented.
Vector Element Type
X-Component of vector
Y-Component of vector
Default constructor
Constructor
Dispose
Calculate and return magnitude of 3D vector
Magnitude (length) of 3D vector
Equality test.
Convert vector to array.
Convert vector to String
Equality test.
GetHashCode override.
Vector2f
Default constructor
Constructor
Initialises a new instance of the class using the
provided array.
Constructor
Constructor, from a XmlNode.
Constructor, from a XPathNavigator.
Parse a string representation of a vector (FormatException might be raised)
Equality operator
Inequality operator
Addition operator
Scalar Addition operator
Scalar Subtraction operator
Subtraction Operator
Scalar Multiplication Operator
Scalar Division Operator
Implicit type conversion Vector2f -> Vector2i
Vector2f
Vector2i
Explicit conversion to a float array.
Distance between vector points.
Distance-squared between vector points.
Convert vector to String
Equality operator
cVector2 Specialisation (int)
Default constructor
Constructor
Constructor
Parse a string representation of a vector (FormatException might be raised)
Equality operator
Inequality operator
Addition operator
Subtraction Operator
Scalar Addition operator
Scalar Subtraction operator
Scalar Multiplication Operator
Implicit type conversion Vector2i -> Vector2f
Vector2i
Vector2f
Convert vector to String
Equality operator
3D Vector Class
Currently common operations etc. are not implemented.
Vector Element Type
X-Component of vector
Y-Component of vector
Z-Component of vector
Default constructor
Constructor
Dispose
Calculate and return magnitude of 3D vector
Magnitude (length) of 3D vector
Equality test.
Convert vector to array.
Convert vector to String
Equality test.
GetHashCode override.
Vector3 Specialisation (float)
Default constructor
Constructor
Initialises a new instance of the class using the
provided array.
Copy constructor
Constructor, from a XmlNode.
Constructor, from a XPathNavigator.
Checks if this and the other vector are equal within the
specified tolerance. The tolerance is checked for each value.
GetHashCode override.
Distance between vector points.
Distance-squared between vector points.
Set xyz-components to absolute value of existing components.
Rotate the vector about an axis.
In-place set function for Vector3. This is to eliminate having to reallocate the object's space.
In-place set for the minimum vector between this and another vector.
In-place set for the minimum vector between two separate vectors.
In-place set for the maximum vector between this and another vector.
In-place iset for the maximum vector between two separate vectors.
PURPOSE: Set the current vector to a linearly-interpolated value between two other vectors.
PARAMS
a - The vector that represents a t value of 0.
b - The vector that represents a t value of 1.
t - The interpolation value for the desired point.
NOTES
- "Lerp" is a contraction for "linear interpolation".
- If you already have the slope between a and b (i.e. b minus a), AddScaled() is a more
efficient way to accomplish what Lerp() does.
Equality operator
Inequality operator
Addition operator
Subtraction Operator
Sign Operator
Scalar Multiplication Operator
Scalar Division Operator
Explicit conversion to a float array.
Vector3 Specialisation (int)
Default constructor
Constructor
Constructor, from a XmlNode.
GetHashCode override.
Equality operator
Inequality operator
Addition operator
Subtraction Operator
Scalar Multiplication Operator
4D Vector Class
Currently common operations etc. are not implemented.
Vector Element Type
X-Component of vector
Y-Component of vector
Z-Component of vector
W-Component of vector
Default constructor
Constructor
Dispose
Calculate and return magnitude of 3D vector
Magnitude (length) of 3D vector
Equality test.
Convert vector to array.
Convert vector to String
Vector3 Specialisation (float)
Default constructor
Constructor
Initialises a new instance of the class using the
provided array.
Constructor, from a XmlNode.
Constructor, from a XPathNavigator.
Checks if this and the other vector are equal within the
specified tolerance. The tolerance is checked for each value.
bool
GetHashCode override.
Equality operator
Inequality operator
Addition operator
Subtraction Operator
Scalar Multiplication Operator
Explicit conversion to a float array.
Vector3 Specialisation (int)
Default constructor
Constructor
Copy constructor
Constructor, from a XmlNode.
GetHashCode override.
Equality operator
Inequality operator
Addition operator
Subtraction Operator
Scalar Multiplication Operator
Attribute listing all the children classes derived from the class using the attribute
This is useful to prevent using an expensive reflection logic when we want to know
the class hierarchy for a given generated type
Initialises a new instance of the class.
List of all the types inheriting from the class using the
attribute
Attribute indicating if the class or enum has been generated using the MetadataCodeGenerator
The is required to pass this object between App domains.
Initialises a new instance of the class.
Initialises a new instance of the class.
The definition's filename.
The checksum of the definition file that is text type in perforce.
The checksum of the definition file that is unicode type in perforce.
Gets the definition filename.
Gets the checksum of the definition file that is text type in perforce.
Gets the checksum of the definition file that is unicode type in perforce.
Attribute indicating the source enum from which the values are coming from.
Typically this would be used on bitsets/bitarrays or values representing flags
Initialises a new instance of the class.
The enum source from which the values are coming from
Attribute listing all the parent classes from the class using the attribute
This is useful to prevent using an expensive reflection logic when we want to know
the class hierarchy for a given generated type
They are listed in the following order : first is direct parent, last is most distant ancestor
Initialises a new instance of the class.
List of all the base types from the class using the
attribute
Attribute to indicate the property is a pointer (or an array of pointers)
C# doesn't support pointers but psc files have the distinction in between
regular types and pointer types (hence the need for a custom attribute).
Initialises a new instance of the class.
Exception thrown when a duplicate key is found during loading
Initialises a new instance of the class.
The duplicate key.
Initialises a new instance of the class.
The duplicate key.
The .
Initialises a new instance of the class.
The duplicate key.
The .
The filename.
Exception thrown when a duplicate key is found during loading
Initialises a new instance of the class.
Initialises a new instance of the class.
Initialises a new instance of the class.
Exception thrown when a wrong pointer type is provided in the meta file
Initialises a new instance of the class.
Initialises a new instance of the class.
Initialises a new instance of the class.
Exception thrown when a root element is incorrect
Initialises a new instance of the class.
Initialises a new instance of the class.
Initialises a new instance of the class.
Initialises a new instance of the class.
Initialises a new instance of the class.
Exception thrown when a type parsing failed
Initialises a new instance of the class.
Initialises a new instance of the class.
Initialises a new instance of the class.
Get the parcodegen name of the instance.
Copies member values from an object inheriting from Minimal.UnitTest_SimpleStructure
Reset the structure to it's Default Values.
Serialise this instance to a file.
Serialise this instance to a stream.
Stream that contains parCodeGen data.
Deserialise the XElement into this object.
XElement to deserialise.
Serialise this instance to an XElement.
Top-level XElement name.
Serialise this instance to an XElement.
Top-level XElement name.
Serialise this instance to a file.
Serialise this instance to a stream.
Stream that contains parCodeGen data.
Return the hashcode of the instance
Return the hashcode of the instance
Check if all members are equals to the members of the object provided
Helper class to provide utility methods for parsing parCodeGen-compatible
metadata XML.
Attempt to parse a String element; return value indicates success or failure.
Root XML element.
Sub-element name.
Output value.
true if the element existed; false otherwise.
String commandValue;
ParCodeGenParser.TryParseString(element, "Command", out commandValue);
Attempt to parse a String element; return value indicates success or failure.
Root XML element.
Output value.
true if the element existed; false otherwise.
String commandValue;
ParCodeGenParser.TryParseString(element, "Command", out commandValue);
Attempt to parse a element; return value indicates success or failure.
Root XML element.
Sub-element name.
Output value.
true if the element existed; false otherwise.
Guid commandValue;
ParCodeGenParser.TryParseGuid(element, "Command", out commandValue);
Attempt to parse a element; return value indicates success or failure.
Root XML element.
Output value.
true if the element existed; false otherwise.
Guid commandValue;
ParCodeGenParser.TryParseGuid(element, out commandValue);
Attempt to parse an bool element; return value indicates success or failure.
true if the element existed; false otherwise.
bool value;
ParCodeGenParser.TryParseValue(element, "BoolValue", out value);
Attempt to parse a bool element 'value' attribute; return value indicates
success or failure.
Parent .
Output value.
true if the element existed; false otherwise.
Attempt to parse an int element; return value indicates success or failure.
true if the element existed; false otherwise.
int value;
ParCodeGenParser.TryParseString(element, "IntValue", out value);
Attempt to parse a int element 'value' attribute; return value indicates
success or failure.
Parent .
Output value.
true if the element existed; false otherwise.
Attempt to parse an int array element; return value indicates success or failure.
true if the element existed; false otherwise.
int[] values;
ParCodeGenParser.TryParseString(element, "IntArray", out values);
Attempt to parse an int element; return value indicates success or failure.
true if the element existed; false otherwise.
float value;
ParCodeGenParser.TryParseString(element, "FloatValue", out value);
Attempt to parse a float element 'value' attribute; return value indicates
success or failure.
Parent .
Output value.
true if the element existed; false otherwise.
Attempt to parse an float array element; return value indicates success or failure.
true if the element existed; false otherwise.
float[] values;
ParCodeGenParser.TryParseString(element, "FloatArray", out values);
Factory methods to create objects.
Create a from a .
String to be converted.
equivalent.
Thrown if there was any conversion errors with details about which
part failed.
This supports both IPv4 and IPv6.
Converts the representation of a IP End Point (ip:port) to
a instance. A return valuie indicates whether the operation
suceeded.
String to be converted.
When this method returns, contains the value equivalent of
the string input if the conversion suceeds or null if the conversion failed.
true if conversion was successful; false otherwise.
Represents an IP network.
The private field for the property.
The private field for the property.
Initialises a new instance of the class using the specified
CIDR notation string.
The string value containing the CIDR notation for this IP network.
The network address for this network.
The subnet mask that applies to this network.
Returns a value indicating whether the specified IP address is part of this network.
REST query interface.
Uri for REST query.
REST HTTP method.
Content-type for PUT/POST data.
REST POST/PUT data.
Enumeration for the types of attachments. This is a small subset of all MIME content types and represented every type currently attached
to a bug in Bugstar at the time of writing.
https://en.wikipedia.org/wiki/MIME
Unknown binary data.
Unknown text data.
Microsoft Word document.
Binary stream.
Adobe Portable Document Format.
OpenPGP Encrypted.
PostScript.
Lotus 1-2-3.
ARJ Archive.
Core Dump.
DOS/Windows Executable.
Executable.
GZIP Compressed Archive.
RAR Compressed Archive.
Shell Script.
Adobe Flash.
TeX Font Metrics
ZIP archive.
MPEG-4 standard.
MPEG-1 standard.
Audio Interchange File Format.
Waveform Audio.
Graphics Interchange Format.
JPEG 2000 standard.
JPEG standard.
Portable network graphics format.
Tagged Image File Format.
Photoshop Image.
Bitmap format.
Portable Bitmap.
Internet message format.
HyperText Markup Language.
Rich Text Format.
Extensible Markup Language.
3GPP Audio/Video.
MPEG-2 encoding.
MPEG-4 encoding.
Quicktime File Format.
Macromedia Flash FLV File Format.
Audio Video Interleave File.
Silicon Graphics Image.
Unknown Video Format.
Enumeration of Mime categories.
Application category.
Audio category.
Image category.
Message category.
Text category.
Video category.
Category unknown.
Simulates a button press on the RAG user interface.
A special command to RAG that activates a particular bank.
This is necessary for widgets to be operated upon via a remote connection
when they are not visible in the actual RAG user interface.
A special command to RAG that deactivates a bank.
HTTP request method used in our implementation.
HTTP GET request.
HTTP POST request.
HTTP PUT request.
HTTP DELETE request.
Abstract base class for a rest connection
Static constructor for setting the certificate validation callback
Gets a value indicating whether the rest connection requires you to login.
Gets or sets the login credentials that are to be used with this connection.
Gets the query to use for performing the initial login.
Gets or sets the HTTP header user agent.
Indicates whether the connection is valid
Attempts to connect to server with the supplied username/password.
Log object.
User's username.
User's password.
User's domain.
Create an that will include an authentication token
if required.
Query object.
A new instance of .
Attempts to connect to server with the supplied username/password.
User's username.
User's password.
User's domain.
Sets the login credential to a pre-encoded value. Useful for read-only connections.
Pre-encoded credential.
Sends a query to the REST service.
Log object.
Stream containing the results from the query
Note that it is important to properly dispose of the returned stream as failure
to do so could result in the application running out of connections.
Sends a query to the REST service.
The query to run.
Stream containing the results from the query
Note that it is important to properly dispose of the returned stream as failure
to do so could result in the application running out of connections.
Sends a raw request to the REST service.
The request to run.
Stream containing the results from the query
Note that it is important to properly dispose of the returned stream as failure
to do so could result in the application running out of connections.
Asynchronously sends a query to the REST service returning the resulting stream
of data.
The query to run.
The task object representing the asynchronous operation.
Asycnrhonously Sends a raw request to the REST service.
The request to run.
Stream containing the results from the query
Note that it is important to properly dispose of the returned stream as failure
to do so could result in the application running out of connections.
Pings REST service to see if we should be able to run rest queries on it
Base exception for REST queries.
Exception: Server/Service is unavailable
Exception: Invalid login credentials.
Initialises a new instance of the class.
Gets the error message for the exception.
Exception: Error running REST command!
Indicates that one of the parameters was wrong
Gets the error message for the exception.
Exception: Error running REST command
The URL requested was not found
Gets the error message for the exception.
Exception: Error running REST command
The method was not supported (e.g. POST used instead of PUT)
Gets the error message for the exception.
Exception: Error running REST command
An internal server exception occurred while processing the command
Gets the error message for the exception.
Abstract base class for a query that will be executed on a rest service
Initialises a new instance of the class.
Initialises a new instance of the class.
Base query.
Initialises a new instance of the class.
Base query.
Query .
Initialises a new instance of the class.
Base query.
Query .
Data string for query.
Initialises a new instance of the class.
Base query.
Constructs a new query based on a base query and the passed in relative query
Base query.
relative query.
Gets or sets the base url to use for the query
Gets or sets how the parameters will be sent to the bugstar service
Gets or sets the Content-type for PUT/POST data.
Gets or sets the dictionary containing any "get/post" parameters
Gets the to use for communicating with bugstar
Gets or sets the Post/Put data.
Gets the server to connect to
Gets a value indicating whether we should use https to connect to the server
Gets the port to connect on
Gets the REST service to use
Methods and constants for dealing with IPv4 subnet masks.
References:
http://blogs.msdn.com/b/knom/archive/2008/12/31/ip-address-calculations-with-c-subnetmasks-networks.aspx
http://en.wikipedia.org/wiki/Subnetwork
http://stackoverflow.com/questions/1499269/how-to-check-if-an-ip-address-is-within-a-particular-subnet
Class A network subnet mask.
Class B network subnet mask.
Class C network subnet mask.
Create from CIDR notation (subnet/mask, e.g. 192.168.1.0/24).
String CIDR notation; e.g. "192.168.1.0/24".
This determines whether the command-line option is required or optional.
Argument option is optional
Argument presence is mandatory and the appplication will fail without it
Argument presence is deprecated and the appplication will warn about it's usage
Argument presence is deprecated and the appplication will error about it's usage
Process exit code constants.
Console application successful exit return code.
Console application failure exit return code.
Bit flag to indicate that a single instance of an application is already
running.
Bit flag to indicate the application wishes to resume after exit.
Command line argument parser.
Response file prefix.
The private field for the property.
The private field for the property.
The private field for the property.
Available long options.
The trailing arguments.
Initialises a new instance of the class.
Argv array as from Main
Array of option objects
A value indicating whether exceptions should be thrown if any of the supplied args
are invalid.
Gets the array of arguments passed from the application entry-point.
Gets the array of objects the application supports.
Gets the parsed options for the application.
Gets the trailing options for the application.
String long option argument indexer.
Determine whether we have a specific long option argument specified.
Return usage strings.
Return usage strings.
Register custom usage arguments (trailing options)
Append argument line with right formating.
Check if the string is an argument
string that will be checked.
Check if the string is a response file.
string that will be checked.
true if the argument is a response file; false otherwise.
Parse specified command line arguments and populate Options dict.
A value indicating some parse options ().
Parse specified command-line arguments and populate Options dict.
Argument array to parse.
A value indicating some parse options ().
List of trailing arguments.
Value to indicate whether we have switched to trailing arguments.
Parses the argument name from a raw argument string.
The raw arg string that contains prefix.
The argument name.
Gets the next argument in the argument array.
The current argument index.
The argument array.
The next argument; Otherwise if there isn't another argument.
Adapter for exposing the command line information from a instance as an instance of
.
Initialises a new instance of the using the specified
instance.
The options this adapter is wrapping.
Class which provides validations for Getopts
Validate that required arguments are present
Log object.
The options that the command supports.
The command line arguments passed.
True if all mandatory args are present, else False
Command-line argument service interface.
Return option.
Trailing string arguments.
Return whether we contain a specified option.
This determines the argument parameter type.
No argument option (e.g. boolean flag toggled option).
Argument option is optional (e.g. -argument=*value*).
Argument option is required (e.g. -argument=*value*).
Argument option will contain sub arguments (eg -argument="-subArgument")
This option is useful for tools that invoke another tool and require arguments to be pushed down the line
Constructor; specifying optional description string.
Constructor with presence specified
Class responsible for the storage of Option sets used for preventing conflicting options to be provided
First Option of the set
Second Option of the set
Description of the set
Create an option set
first option from the set
second option from the set
description of the
Validator for set of options
Enumeration defining flags for parsing.
No parse flags.
Value indicating to throw an exception on error.
Value indicating parsing from a response file.
Used for storing Custom Usage argument. It's the trailing options
that we want to see in show usage documentation
constructor taking trailing arg name and description
Handles creating, running, and logging from a .
For running processes via event handlers this is the stdout handling method that we wish to call.
For running processes via event handlers this is the stderr handling method that we wish to call.
The log object that is made available to the stream handling in the event handler.
Log context.
Flag indicating extra logging will display, such as warnings.
Constructs a handler that will log with a process.
Log object.
Log context.
Value indicating whether we enable verbose logging.
Handler for stdout.
Handler for stderr.
Creates a process
- supports environment
Environment variable key/value pairs to add to process.
Executable file path.
Executable arguments.
Value indicating whether to use Shell Execute or not.
A new object.
Runs a process
- blocks on process completion
- runs optional stdout and stderr threads to capture output streams
objetc to execute.
Value indicating whether to wait for the process to exit before returning.
Timeout value in minutes.
Runs a process asynchronously
- awaits process completion
- runs optional stdout and stderr threads to capture output streams
This could replace RunProcess, but is duplicated instead for reduced risk.
objetc to execute.
Value indicating whether to wait for the process to exit before returning.
Timeout value in minutes.
A object.
Event handler for stdout capture
- calls the handler method for stdout
Event source.
Event arguments.
Event handler for stderr capture
Event source.
Event arguments.
Class to read assembly information into convenient properties.
Constructors available for particular Assembly; defaulting to the
application entry assembly.
Default constructor (uses entry Assembly).
Constructor, specifying Assembly object.
Initial member properties based on passed in Assembly.
Gets the time the specified assembly was built in the specified time zone.
The assembly to retrieve the information from.
The time zone identifier that corresponds to the time zone information to retrieve
the build time in.
The build time of the specified assembly.
Gets the configuration attribute value for the specified assembly or the specified
default value if the attribute is missing.
The assembly to retrieve the information from.
The value returned if the specified assembly doesn't have a copyright attribute.
The configuration text of the specified assembly.
Gets a string that indicates whether the specified assembly is built for x64 or
x86. If AnyCPU is specified it returns the running processes architecture.
The assembly to retrieve the information from.
The architecture edition of the specified assembly.
Represents the COFF header format.
Gets or sets the architecture type of the computer.
Gets or sets the number of sections. This indicates the size of the section
table, which immediately follows the headers.
Gets or sets the low 32 bits of the time stamp of the image. This represents
the date and time the image was created by the linker. The value is represented
in the number of seconds elapsed since midnight (00:00:00), January 1, 1970,
Universal Coordinated Time, according to the system clock.
Gets or sets the offset of the symbol table, in bytes, or zero if no COFF
symbol table exists.
Gets or sets the number of symbols in the symbol table.
Gets or sets the size of the optional header, in bytes.
Gets or sets the characteristics of the image.
List item property desc.
Creates a new instance of
List the item belongs to.
Index of item
Display name.
Indicates if the item is read only or not
Extends a given type with properties stored in a dictionary.
Type of the dictionary key
Type of the dictionary value
Initialises a new instance of the class.
Dictionary of additional properties to append to the type
The key for the current entry inside the dictionary.
Parent instance to extend the properties for.
Thrown if is null.
///
Thrown if length is zero.
CityHash 128-bit hashing implementation.
Hash value.
Initialises a new instance of the class.
CityHash 128-bit with seed hash implementation.
Hash value.
Initialises a new instance of the class.
Hash seed.
CityHash 32-bit hashing implementation.
Hash value.
Initialises a new instance of the class.
CityHash 64-bit hashing implementation.
Hash value.
Initialises a new instance of the class.
CityHash 64-bit with seed hashing implementation.
Initialises a new instance of the class.
CityHash 64-bit with seeds hashing implementation.
Hash value.
Initialises a new instance of the class.
First seed.
Second seed.
CityHash algorithm shared constants.
Internally used CityHash functions that are shared or referenced by the
32, 64 and 128=nit CityHash classes.
Endian-swap a 32-bit integer.
Input value.
Endian-swapped return value.
Endian-swap a 64-bit integer.
Input value.
Endian-swapped return value.
FNV-1a (64-bit) *non-cryptographic* (insecure) hash function.
Adapted from: http://github.com/jakedouglas/fnv-java
and https://gist.github.com/rasmuskl/3786618
Compute the hash value from an array of bytes.
The input bytes
Computed 64-bit hash
Compute the hash from a string, potentially normalizing the string based on arguments.
The input string
If true, the string will be lowercased before hashing.
If true, path separators will be normalized to be consistent (/) and all double-quotes removed.
Computed 64-bit hash
Internally defined RAGE hashing functions.
See RAGE source tree: base\src\atl\map.cpp.
Simple hash; input string checked.
Input to hash.
32-bit hash.
See RAGE source tree: base\src\atl\map.cpp.
Simple hash; input string uppercased.
Input to hash.
32-bit hash.
See RAGE source tree: base\src\atl\map.cpp.
16-bit unsigned hashing algorithm.
See RageCore source type ::rage::atHash16.
Produce a 16-bit unsigned hash.
Input string object to hash.
Unsigned 16-bit Hash value of string input.
Equivalent of ::rage::atHash16 and ::rage::atHash16U.
Using these functions saves using RSG.ManagedRage and crossing
the managed/native boundary.
16-bit unsigned, unchecked, hashing algorithm.
See ::rage::atHash16.
Produce a 16-bit unsigned hash.
Input to hash.
Unsigned 16-bit hash code for the input string.
Equivalent of ::rage::atHash16 and ::rage::atHash16U.
Using these functions saves using RSG.ManagedRage and crossing
the managed/native boundary.
String hashing functions from RageCore.
Finalize hash to be sure that is is formatted correctly
Partial string hash.
Finalized hash value.
Compute hash and return a finalized one
Input string to hash.
Initial hash value.
Hash value.
Hash 128-bit integer type.
Low 64-bit word.
High 64-bit word.
Initialises a new instance of the struct.
Low 64-bit word.
High 64-bit word.
Convert a to a Byte array.
Array of Bytes representation of the UInt128.
Transform the that make up this integer. Used in hashing functions
to normalize input (for example).
Transform function.
Implementation of Jenkin's One-At-A-Time hashing algorithm using the standard
.Net base class.
This is the raw hashing algorithm and does not include the protection for
filename separate characters nor case-insensitivity that the RageCore variant
provides. If you require that please use .
https://en.wikipedia.org/wiki/Jenkins_hash_function
Hash value.
Initialises a new instance of the class.
MurmurHash3R 64-bit hashing implementation.
Initialises a new instance of the class.
Initialises a new instance of the class.
Initial hash seed.
MurmurHash3R 64-bit hashing implementation that normalizes the inputs (assuming Strings)
by making input lowercase and making '/' and '\' consistent. To be used for file paths.
Static lookup table for lowercase and replacing slashes.
Initialises a new instance of the class.
Initialises a new instance of the class.
Initial hash seed.
MurmurHash3R base hashing implementation.
Calculated hash value.
Initialises a new instance of the class.
Transform function for input to .
Hash seed.
Process a single 16-byte block using the MurmurHash3 algorithm.
The block to be processed.
Initial has value.
New hash value.
Finalize the hash; processing the tail and incorporating the length to
ensure it avalanches correctly.
Input data.
Index where tail starts.
Full input length modulo 256.
Unfinalized hash.
Finalized hash value.
32-bit unsigned string hashing algorithm (see references).
Equivalent to atStringHash.
See: http://burtleburtle.net/bob/hash/doobs.html.
See: RAGE source tree: base\src\string\stringhash.h.
::rage::atStringHash
This is the equivalent of RAGE atStringHash.
Using these functions saves using RSG.ManagedRage and crossing the managed/native boundary.
Produce a very robust full 32-bit hash for a string
Swat was able to throw several thousand strings at this
function with no overlap. Should be better than storing
a full filename, etc, in situations where you know you
will not be querying objects that do not exist.
Input to hash.
32 bit hash code for string.
See RAGE source tree: base\src\string\stringhash.h.
Produces a partial hash to be used to combine hash values.
String to produce hash for; uppercase letters are
mapped to lowercase, and if the string starts with
a quote it is expected to be terminated with one
as well (a NUL always terminates a string even if one
is encountered before the closing quote). Backslashes
are also normalized to forward slashes before hashing
so that this function is more useful for filenames.
Initial value of the hash. This has to be a partial hash,
Useful for incremental hashing.
32 bit hash code for string.
See RAGE source tree: base\src\string\stringhash.h.
Finalize the supplied partial hash. This 'avalanches' the final input
bits across all output bytes.
The partial hash value.
32-bit hash code for input string.
Implementation of Jenkin's One-At-A-Time hashing algorithm using the standard
.Net base class with the Rage Core tweaks for
handling filename and paths.
This is the Rage Core tweaked hashing algorithm that includes protection for
filename separate characters nor case-insensitivity. If you require the
raw algorithm please use .
https://en.wikipedia.org/wiki/Jenkins_hash_function
Hash value.
Initialises a new instance of the class.
This is a simple generic class to make it easier to create EventArgs subclasses with various
payloads. The one parameter it takes is for the single payload object stored within.
Example: delegate void StatusUpdateDelegate(object sender, SimpleEventArgs{string} newStatus);
Payload type of event argument.
Initialises a new instance of the class specifying
the payload object.
Event argument payload object.
Gets or sets the value associated with the payload object.
Generic structural euality comparer.
Structure type.
Static instance of the default comparer for type T.
Gets a reference to the static instance of the default comparer.
Determines whether the specified objects are equal.
The first object of type T to compare.
The second object of type T to compare.
true if the specified objects are equal; otherwise, false.
Returns a hash code for the specified object.
The System.Object for which a hash code is to be returned.
A hash code for the specified object.
Split a string into an enumaration of structure that keep the original delimiter
The class also contain methods for joining it back according to some conventionnal splitting content convention : Title Case, Pascal Case.
This class implement IEnumerable so it can be enumerated in a foreach for accessing all the split part of the string.
It also provide a constructor taking an IEnumerable of split part allowing to create a new modified splitstring (with appended values for instance).
A part of the split string
Value
Delimiter
Constructor
Enumerator for SplitString
Constructor
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
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.
Gets the element in the collection at the current position of the enumerator.
The element in the collection at the current position of the enumerator.
Gets the current element in the collection.
The current element in the collection.
Class storing characters and the number of time they should be recurring consecutively
Constructor
Constructor
Convert to Pascal Case
Join back together the split strings without the delimiters in PascalCase
TEST_EXEMPLE -> TestExemple
Convert to Title Case
Join back together the split strings without the delimiters in TitleCase
TestExemple -> TEST_EXEMPLE
Join back together the split strings and the delimiters.
This will output the same string provided in input as an output.
Join back together the split strings without the delimiters.
TEST_EXEMPLE -> TESTEXEMPLE
Split Capital letters and Numbers
Only lowercase and numbers are taken in account so a symbol don't split with following examples :
TestExemple -> [Test][Exemple]
TestExemple12 -> [Test][Exemple][12]
TEST_EXEMPLE -> [TEST_EXEMPLE]
TEStEXEMPLE -> [TESt][EXEMPLE]
Split Underscores
This will split the string with '_' but will only take one underscore as a delimiter. If there is a repetition the second underscore will be considered as a character from the second group and be part of the split string.
TEST_EXEMPLE -> [TEST][EXEMPLE]
TEST__EXEMPLE -> [TEST][_EXEMPLE]
TEST_EXEMPLE25 -> [TEST][EXEMPLE25]
Split mixed underscore capitals and numbers
This will split the string with '_' in a similar way than would do but also splitting capitals in a similar way than .
TEST_EXEMPLE_WithCamelCase23 -> [TEST][EXEMPLE][With][Camel][Case][23]
Split with a custom regex
The groups we want to capture has to be called value : (?<value>) and the delimiters (?<delim>)
Split with a custom regex
The groups we want to capture has to be called value : (?<value>) and the delimiters (?<delim>)
Split with a custom regex
The groups we want to capture has to be called value : (?<value>) and the delimiters (?<delim>)
Create a Splitted String containing only the parameter string not splitted
To Array return an array containing the part of that Splitted string
To List return a list containing the part of that Splitted string
Split the string with the provided regex pattern
Returns an enumerator that iterates through the collection.
An enumerator that can be used to iterate through the collection.
Returns an enumerator that iterates through a collection.
An object that can be used to iterate through the collection.
A trie is a data structure that lets you search for multiple words in a string without having to search multiple times.
The type of object to store in the leaf nodes of the trie. Must be able to extract a string from it.
Root node of the trie
Create a new StringTrie.
Delegate by which to fetch the string from .
Given the object, this function returns the string the Trie should use as a key.
The object to extract a string from
The extracted string
Add IStringIndexed to the trie.
The item to get a string from.
Check if the trie contains the string and return the item related to this string
The string to search for
(Out paramter) the returned item.
True if the string was found.
Returns true if the Trie contains the string
The string to search for
True if the string was found.
A single node of the Trie
Create new trie node from a string and an item.
The item to extract a string from.
The string
Gets the end of the string (if non null). Used so that the trie doesn't have to expand all the way.
Gets the item containing the string.
Gets a dictionary mapping chars to child nodes
Does the node contain the (sub)string?
The string
(Out parameter) The fetched item from the trie.
True if value found.
Creates a dictionary and allows the user to pass in TextReaders to search for words in the dictionary.
The type of object to extract a string from.
Create a new word search with a list of words.
List of items (mapping to words) to create a dictionary from.
Delegate to get a string from an item.
If true, c-style comments (// or /* */) will be ignored
If true, the search will disregard c-style literal strings ("this is a string") in the file
Delegate called whenever an item is found in the file being searched.
The item to associated with the word.
Line number the item was found on.
Column number the item was found on.
Find all words that are both in the dictionary and in the reader's content. Only supports alphanumeric + underscore characters in words.
TextReader to find items from.
Delegate, invoked when an item is found
Returns true if the character is valid for a word.
The character to test
True if the character is valid for a word.
Find all the words in the line and add to the set.
This line's number
char array containing the contents of this line
Delegate, called as soon as any item in the dictionary is found.
True if line starts inside a multiline comment. Upon exit of the method, indicates whether the line ended inside a multiline comment.
Called when an arbitrary word (not necessarily in the dictionary) is found in the given line at the given location.
The line number we're dealing with
The full line of text where the word was found
The start index of the word in the line
The end index of the word in the line.
The delegate to invoke with the information if the word is found in the dictionary.
Async version.
Type of the lazy value.
Creates a new instance of
Task to get the value
Gets the value.
A representing the asynchronous operation.
Contains both the result and the success flag from a generic operation.
The type of the result value from the generic operation.
The private field used for the property.
The private field used for the property.
Initialises a new instance of the structure
with the specified result and success flag.
The resulting value got from the generic operation.
A value that indicates whether the generic operation was successful or not.
Gets a value indicating whether or not the generic operation was successful.
Gets the resulting value from the generic operation.
Implements a text writer for writing information to a string builder with a utf8
encoding.
Initialises a new instance of the class.
Initialises a new instance of the class.
A IFormatProvider object that controls formatting.
Initialises a new instance of the class.
The StringBuilder to write to.
Initialises a new instance of the class.
The StringBuilder to write to.
A IFormatProvider object that controls formatting.
Gets the System.Text.Encoding in which the output is written.
Return index of maximum value in arbitrary Array of values.
DirectoryParameter for processor's meta options.
A DirectoryParameter has a couple more informations than a FilenameParameter, such as wildcard and recursive.
Relative path to the directory
Filter used to select certain files.
use *.* for every files regardless of their type.
Do you plan
DirectoryParameter ctor
Relative path to the directory
file extension filter
recursive search or not
Parsing implementation for a DirectoryParameter
Returns the wildcards specified in the config options in a "perforce compliant" set of values.
(strips out the *, and splits based on ; separated values)
"DirectoryParameter: path: {0} | wildcard: {1} | recursive: {2}"
Filename parameter for processor's meta files
Relative path to the actual filename
FilenameParameter ctor
Parsing implementation for a FilenameParameter
A FilenameParameter
Parsing implementation for a FilenameParameter
Wrapper around a collection of parCodeGen "ParameterDictionary" objects contained
within a single file; so we can group parameter data together in a single file to
reduce the number of XML configuration files we have (for example).
These replace the old Parameter XML data as they are editable in the Metadata Editor.
This supports a hierarchy of parameter metadata files that are loaded in the
following order:
1) filename.meta
2) filename.%COMPUTERNAME%.meta
3) filename.local.meta
This allows machine overrides (to be checked in) and local per-user overrides.
Note: if there are machine or local overrides they will get saved out into the
mentioned filename (where parameters loaded is not currently stored).
Note: this deliberately does not use the metadata abstraction library to reduce
dependencies.
When we have C# class generation from PSC files this class could be integrated
with that system.
Gets the number of Parameter Dictionaries contained in the collection.
Whether the collection is read-only (read-only variant not supported).
Actual collection for storing our parameter dictionaries.
Default constructor.
Load new ParameterCollection object from stream.
Thrown if the parameters failed to load from the stream.
Load new ParameterCollection object from file.
Thrown if one of the parameters files failed to load.
Loads a parameter collection from an XElement, and adds them to passed parameterCollection;
if the collection passed is null, we initialize it.
Thrown if the XElement could not be parsed into parameters.
Gets the first ParameterDictionary with the specified name in the collection
Save this parameter collection into a parCodeGen XML document stream.
Save this parameter collection into a parCodeGen file.
Returns an enumerator that iterates through a collection.
Returns an enumerator that iterates through a collection.
Adds an item to the collection.
The to add.
Removes all items from the collection.
Determines whether a item is in the collection.
The to check.
true if the is in the collection; false otherwise.
Copies the elements of the collection to an , starting at a particular index.
to copy items into.
starting index.
Removes the first occurrence of a specific object from the collection.
to remove.
true if item was successfully removed from the collection; otherwise, false.
Load XElement into our structure.
Class provides read/write access for parCodeGen "ParameterDictionary" files as
defined by PSC parameters.psc.
These replace the old Parameter XML data as they are editable in the Metadata Editor.
This supports a hierarchy of parameter metadata files that are loaded in the
following order:
1) filename.meta
2) filename.%COMPUTERNAME%.meta
3) filename.local.meta
This allows machine overrides (to be checked in) and local per-user overrides.
Note: if there are machine or local overrides they will get saved out into the
mentioned filename (where parameters loaded is not currently stored).
Note: this deliberately does not use the metadata abstraction library to reduce
dependencies.
When we have C# class generation from PSC files this class could be integrated
with that system.
Dictionary key used for adding the description field to inner s which are converted to s.
Compatible type array.
Supported strongly typed parameters
Implement the generic getEnumerator so that we can ensure that _parameters can remain private
Required to be implemented as per interface.
Parameter dictionary name.
Parameter dictionary description.
Gets the number of parameters.
Parameter dictionary data.
Constructor; create an empty Parameter Dictionary.
Constructor; from a dictionary.
Constructor; loading ParameterDictionary element.
Takes a parameter dict filename and returns the machinename override.
Takes a parameter dict filename and returns the local override.
Load new ParameterDictionary object from stream.
Load new ParameterDictionary object from file.
Overrides the param dictionary with params found in the file.
Overrides this param dictionary with params from another.
Save this parameter dictionary into a parCodeGen XML document stream.
Save this parameter dictionary into a parCodeGen file.
Serialise ParameterDictionary to an XElement for inclusion in another XDocument.
Serialise ParameterDictionary to an XElement for inclusion in another XDocument.
Removes all parameters from the dictionary.
Determine whether the parameter exists in the dictionary.
Parameter's name
Determine whether the parameter is a suitable type.
Set a parameter value (overwriting if it already exists).
Parameter's type
Parameter's name
Parameter's value
Set a parameter value (overwriting if it already exists).
Parameter's name
Get a parameter value.
Get a parameter value.
Merge a given parameter dictionary into the current parameters, overwriting the value of any dupe keys.
Allows derived classes to perform additional deserialisation logic when loading the parameter dictionary
content.
The root Xml element we are loading the data from.
Load XElement into our structure.
Convert an XElement to a KeyValuePair for insertion.
Convert a parameter KeyValuePair to XElement.
XElement's name.
Parameter KeyValuePair.
Convert a POD type to String for serialisation.
Loads an array element.
Parse the value from a string and return the object
Convert an XElement to a KeyValuePair for insertion.
- supports IntegerParameter, LongParameter and similar types...
Simple XML parameter parsing methods.
Note: prefer ParameterCollection (and ParameterDictionary) over the use of these
generic files. You get Metadata Editor support if you use these and the ability
to group lots of parameters together into a single file.
Load parameters from a file.
Load parameters from a particular XML node.
Save parameters to a file.
Serialise parameters to an XElement.
Parse an XElement into a parameter KeyValuePair.
Parse an XElement's 'value' attribute; according to specified type.
???
DHM - Seriously? Marking this deprecated as 'Utils' classes just suck.
Heavy weight xml escaping ( was used to handle escaping of a variety of invalid characters - see CL 5142179 )
- many ways of doing this, this is just one. http://stackoverflow.com/questions/1132494/string-escape-into-xml
DW: if I had time I'd consider ( and profile ) a variety of other methods : http://weblogs.sqlteam.com/mladenp/archive/2008/10/21/Different-ways-how-to-escape-an-XML-string-in-C.aspx
Heavy weight xml escaping ( was used to handle escaping of a variety of invalid characters - see CL 5142179 )
- many ways of doing this, this is just one. http://stackoverflow.com/questions/1132494/string-escape-into-xml
DW: if I had time I'd consider ( and profile ) a variety of other methods : http://weblogs.sqlteam.com/mladenp/archive/2008/10/21/Different-ways-how-to-escape-an-XML-string-in-C.aspx
UnescapeXml : appears not to be in use.
Strips non-printable ascii characters
Refer to http://www.w3.org/TR/xml11/#charsets for XML 1.1
Refer to http://www.w3.org/TR/2006/REC-xml-20060816/#charsets for XML 1.0
XML string
"Clean" version of the xml string
filters control characters but allows only properly-formed surrogate sequences
from: http://stackoverflow.com/questions/397250/unicode-regex-invalid-xml-characters
Provides a TaskScheduler that provides control over priorities, fairness, and the
underlying threads utilized.
Debug view for the QueuedTaskScheduler.
The scheduler.
Initializes the debug view.
The scheduler.
Gets all of the Tasks queued to the scheduler directly.
Gets the prioritized and fair queues.
A sorted list of round-robin queue lists. Tasks with the smallest priority value
are preferred. Priority groups are round-robin'd through in order of priority.
Cancellation token used for disposal.
The maximum allowed concurrency level of this scheduler. If custom threads are
used, this represents the number of created threads.
Whether we're processing tasks on the current thread.
The scheduler onto which actual work is scheduled.
The queue of tasks to process when using an underlying target scheduler.
The number of Tasks that have been queued or that are running whiel using an
underlying scheduler.
The threads used by the scheduler to process work.
The collection of tasks to be executed on our custom threads.
Initializes the scheduler.
Initializes the scheduler.
The target underlying scheduler onto which this sceduler's work is queued.
Initializes the scheduler.
The target underlying scheduler onto which this sceduler's work is queued.
The maximum degree of concurrency allowed for this scheduler's work.
Initializes the scheduler.
The number of threads to create and use for processing work items.
Initializes the scheduler.
The number of threads to create and use for processing work items.
The name to use for each of the created threads.
A Boolean value that indicates whether to use foreground threads instead of
background.
The priority to assign to each thread.
The apartment state to use for each thread.
The stack size to use for each thread.
An initialization routine to run on each thread.
A finalization routine to run on each thread.
The dispatch loop run by all threads in this scheduler.
An initialization routine to run when the thread begins.
A finalization routine to run before the thread ends.
Gets the number of queues currently activated.
Gets the number of tasks currently scheduled.
Find the next task that should be executed, based on priorities and fairness and
the like.
The found task, or null if none was found.
The scheduler associated with the found task. Due to security checks inside of
TPL, this scheduler needs to be used to execute that task.
Queues a task to the scheduler.
The task to be queued.
Process tasks one at a time in the best order.
This should be run in a Task generated by QueueTask.
It's been separated out into its own method to show up better in Parallel Tasks.
Notifies the pool that there's a new item to be executed in one of the round-robin
queues.
Tries to execute a task synchronously on the current thread.
The task to execute.
Whether the task was previously queued.
true if the task was executed; otherwise, false.
Gets the tasks scheduled to this scheduler.
An enumerable of all tasks queued to this scheduler.
This does not include the tasks on sub-schedulers. Those will be retrieved by the
debugger separately.
Gets the maximum concurrency level to use when processing tasks.
Initiates shutdown of the scheduler.
Creates and activates a new scheduling queue for this scheduler.
The newly created and activated queue at priority 0.
Creates and activates a new scheduling queue for this scheduler.
The priority level for the new queue.
The newly created and activated queue at the specified priority.
Removes a scheduler from the group.
The scheduler to be removed.
A group of queues a the same priority level.
The starting index for the next round-robin traversal.
Creates a search order through this group.
An enumerable of indices for this group.
Provides a scheduling queue associatd with a QueuedTaskScheduler.
A debug view for the queue.
The queue.
Initializes the debug view.
The queue to be debugged.
Gets the priority of this queue in its associated scheduler.
Gets the ID of this scheduler.
Gets all of the tasks scheduled to this queue.
Gets the QueuedTaskScheduler with which this queue is associated.
The scheduler with which this pool is associated.
The work items stored in this queue.
Whether this queue has been disposed.
Gets the priority for this queue.
Initializes the queue.
The priority associated with this queue.
The scheduler with which this queue is associated.
Gets the number of tasks waiting in this scheduler.
Gets the tasks scheduled to this scheduler.
An enumerable of all tasks queued to this scheduler.
Queues a task to the scheduler.
The task to be queued.
Tries to execute a task synchronously on the current thread.
The task to execute.
Whether the task was previously queued.
true if the task was executed; otherwise, false.
Runs the specified ask.
The task to execute.
Gets the maximum concurrency level to use when processing tasks.
Signals that the queue should be removed from the scheduler as soon as the
queue is empty.
Provides a TaskScheduler that provides control over priorities, fairness, and the
underlying threads utilized.
Debug view for the StackedTaskScheduler.
The scheduler.
Initializes the debug view.
The scheduler.
Gets all of the Tasks queued to the scheduler directly.
Gets the prioritized and fair queues.
A sorted list of round-robin queue lists. Tasks with the smallest priority value
are preferred. Priority groups are round-robin'd through in order of priority.
Cancellation token used for disposal.
The maximum allowed concurrency level of this scheduler. If custom threads are
used, this represents the number of created threads.
Whether we're processing tasks on the current thread.
The scheduler onto which actual work is scheduled.
The queue of tasks to process when using an underlying target scheduler.
The number of Tasks that have been queued or that are running whiel using an
underlying scheduler.
The threads used by the scheduler to process work.
The collection of tasks to be executed on our custom threads.
Initializes the scheduler.
Initializes the scheduler.
The target underlying scheduler onto which this sceduler's work is queued.
Initializes the scheduler.
The target underlying scheduler onto which this sceduler's work is queued.
The maximum degree of concurrency allowed for this scheduler's work.
Initializes the scheduler.
The number of threads to create and use for processing work items.
Initializes the scheduler.
The number of threads to create and use for processing work items.
The name to use for each of the created threads.
A Boolean value that indicates whether to use foreground threads instead of
background.
The priority to assign to each thread.
The apartment state to use for each thread.
The stack size to use for each thread.
An initialization routine to run on each thread.
A finalization routine to run on each thread.
The dispatch loop run by all threads in this scheduler.
An initialization routine to run when the thread begins.
A finalization routine to run before the thread ends.
Gets the number of queues currently activated.
Gets the number of tasks currently scheduled.
Find the next task that should be executed, based on priorities and fairness and
the like.
The found task, or null if none was found.
The scheduler associated with the found task. Due to security checks inside of
TPL, this scheduler needs to be used to execute that task.
Queues a task to the scheduler.
The task to be queued.
Process tasks one at a time in the best order.
This should be run in a Task generated by QueueTask.
It's been separated out into its own method to show up better in Parallel Tasks.
Notifies the pool that there's a new item to be executed in one of the round-robin
queues.
Tries to execute a task synchronously on the current thread.
The task to execute.
Whether the task was previously queued.
true if the task was executed; otherwise, false.
Gets the tasks scheduled to this scheduler.
An enumerable of all tasks queued to this scheduler.
This does not include the tasks on sub-schedulers. Those will be retrieved by the
debugger separately.
Gets the maximum concurrency level to use when processing tasks.
Initiates shutdown of the scheduler.
Creates and activates a new scheduling queue for this scheduler.
The newly created and activated queue at priority 0.
Creates and activates a new scheduling queue for this scheduler.
The priority level for the new queue.
The newly created and activated queue at the specified priority.
Removes a scheduler from the group.
The scheduler to be removed.
A group of queues a the same priority level.
The starting index for the next round-robin traversal.
Creates a search order through this group.
An enumerable of indices for this group.
Provides a scheduling queue associatd with a StackedTaskScheduler.
A debug view for the queue.
The queue.
Initializes the debug view.
The queue to be debugged.
Gets the priority of this queue in its associated scheduler.
Gets the ID of this scheduler.
Gets all of the tasks scheduled to this queue.
Gets the StackedTaskScheduler with which this queue is associated.
The scheduler with which this pool is associated.
The work items stored in this queue.
Whether this queue has been disposed.
Gets the priority for this queue.
Initializes the queue.
The priority associated with this queue.
The scheduler with which this queue is associated.
Gets the number of tasks waiting in this scheduler.
Gets the tasks scheduled to this scheduler.
An enumerable of all tasks queued to this scheduler.
Queues a task to the scheduler.
The task to be queued.
Tries to execute a task synchronously on the current thread.
The task to execute.
Whether the task was previously queued.
true if the task was executed; otherwise, false.
Runs the specified ask.
The task to execute.
Gets the maximum concurrency level to use when processing tasks.
Signals that the queue should be removed from the scheduler as soon as the
queue is empty.