DotNetty.Common Abstract base class for implementations Creates an instance of . Creates an instance of . Abstract base class for s that need to support scheduling. Cancel all scheduled tasks This method MUST be called only when is true. Parent . Returns true if the current belongs to this event loop, false otherwise. It is a convenient way to determine whether code can be executed directly or if it should be posted for execution to this executor instance explicitly to ensure execution in the loop. Returns true if the given belongs to this event loop, false> otherwise. Provides an access to a set of s it manages. Returns true if and only if this executor is being shut down via . Terminates this and all its s. for completion of termination. Terminates this and all its s. for completion of termination. A for completion of termination. . Returns . Executes the given task. Threading specifics are determined by IEventExecutor implementation. Executes the given action. parameter is useful to when repeated execution of an action against different objects is needed. Threading specifics are determined by IEventExecutor implementation. Executes the given . Threading specifics are determined by IEventExecutor implementation. Executes the given action. and parameters are useful when repeated execution of an action against different objects in different context is needed. Threading specifics are determined by IEventExecutor implementation. Returns true if this executor has been shut down, false otherwise. Returns true if all tasks have completed following shut down. Note that is never true unless was called first. Executes the given function and returns indicating completion status and result of execution. Threading specifics are determined by IEventExecutor implementation. Executes the given action and returns indicating completion status and result of execution. Threading specifics are determined by IEventExecutor implementation. Executes the given action and returns indicating completion status and result of execution. parameter is useful to when repeated execution of an action against different objects is needed. Threading specifics are determined by IEventExecutor implementation. Executes the given action and returns indicating completion status and result of execution. parameter is useful to when repeated execution of an action against different objects is needed. Threading specifics are determined by IEventExecutor implementation. Executes the given action and returns indicating completion status and result of execution. and parameters are useful when repeated execution of an action against different objects in different context is needed. Threading specifics are determined by IEventExecutor implementation. Executes the given action and returns indicating completion status and result of execution. and parameters are useful when repeated execution of an action against different objects in different context is needed. Threading specifics are determined by IEventExecutor implementation. Creates and executes a one-shot action that becomes enabled after the given delay. the task to execute the time from now to delay execution an representing pending completion of the task. Schedules the given action for execution after the specified delay would pass. Threading specifics are determined by IEventExecutor implementation. Schedules the given action for execution after the specified delay would pass. parameter is useful to when repeated execution of an action against different objects is needed. Threading specifics are determined by IEventExecutor implementation. Schedules the given action for execution after the specified delay would pass. and parameters are useful when repeated execution of an action against different objects in different context is needed. Threading specifics are determined by IEventExecutor implementation. Schedules the given action for execution after the specified delay would pass. parameter is useful to when repeated execution of an action against different objects is needed. Threading specifics are determined by IEventExecutor implementation. Schedules the given action for execution after the specified delay would pass. parameter is useful to when repeated execution of an action against different objects is needed. Threading specifics are determined by IEventExecutor implementation. Schedules the given action for execution after the specified delay would pass. Threading specifics are determined by IEventExecutor implementation. Schedules the given action for execution after the specified delay would pass. Threading specifics are determined by IEventExecutor implementation. Schedules the given action for execution after the specified delay would pass. and parameters are useful when repeated execution of an action against different objects in different context is needed. Threading specifics are determined by IEventExecutor implementation. Schedules the given action for execution after the specified delay would pass. and parameters are useful when repeated execution of an action against different objects in different context is needed. Threading specifics are determined by IEventExecutor implementation. backed by a single thread. Creates a new instance of . Creates a new instance of . Task Scheduler that will post work to this executor's queue. Adds an which will be executed on shutdown of this instance. The to run on shutdown. Removes a previously added from the collection of s which will be executed on shutdown of this instance. The to remove. Removes all variables bound to the current thread. This operation is useful when you are in a container environment, and you don't want to leave the thread local variables in the threads you do not manage. Destroys the data structure that keeps all variables accessed from non-s. This operation is useful when you are in a container environment, and you do not want to leave the thread local variables in the threads you do not manage. Call this method when your application is being unloaded from the container. Sets the value to uninitialized; a proceeding call to get() will trigger a call to GetInitialValue(). Returns the number of thread local variables bound to the current thread. Gets or sets current value for the current thread. Returns the current value for the specified thread local map. The specified thread local map must be for the current thread. Set the value for the specified thread local map. The specified thread local map must be for the current thread. Returns true if and only if this thread-local variable is set. Returns true if and only if this thread-local variable is set. The specified thread local map must be for the current thread. Returns the initial value for this thread-local variable. Sets the value to uninitialized for the specified thread local map; a proceeding call to will trigger a call to . The specified thread local map must be for the current thread. The from which this should be removed. Invoked when this thread local variable is removed by . The internal data structure that stores the thread-local variables for DotNetty and all s. Note that this class is for internal use only and is subject to change at any time. Use unless you know what you are doing. Used by . Sets a value at the given index in this . The desired index at which a value should be set. The value to set at the given index. true if and only if a new thread-local variable has been created. Resets the . Be aware this will only reset the current internal position and not shrink the internal char array. Create a new ascii string, this method assumes all chars has been sanitized to ascii chars when appending to the array. Forked from JCTools . A concurrent access enabling class used by circular array based queues this class exposes an offset computation method along with differently memory fenced load/store methods into the underlying array. The class is pre-padded and the array is padded on either side to help with False sharing prvention. It is expected theat subclasses handle post padding.

Offset calculation is separate from access to enable the reuse of a give compute offset.

Load/Store methods using a buffer parameter are provided to allow the prevention of field reload after a LoadLoad barrier.

Calculates an element offset based on a given array index. The desirable element index. The offset in bytes within the array for a given index.
A plain store (no ordering/fences) of an element to a given offset. Computed via . A kitty. An ordered store(store + StoreStore barrier) of an element to a given offset. Computed via . An orderly kitty. A plain load (no ordering/fences) of an element from a given offset. Computed via . The element at the offset. A volatile load (load + LoadLoad barrier) of an element from a given offset. Computed via . The element at the offset. A skeletal implementation of . This class implements all methods that have a parameter by default to call specific logger methods such as or . Creates a new instance. A friendly name for the new logger instance. Holds the results of formatting done by . Internal-use-only logger used by DotNetty. DO NOT access this class outside of DotNetty. Return the name of this instance. name of this logger instance Is this logger instance enabled for the TRACE level? true if this Logger is enabled for level TRACE, false otherwise. Log a message object at level TRACE. the message object to be logged Log a message at level TRACE according to the specified format and argument. This form avoids superfluous object creation when the logger is disabled for level TRACE. the format string the argument Log a message at level TRACE according to the specified format and arguments. This form avoids superfluous object creation when the logger is disabled for level TRACE. the format string the first argument the second argument Log a message at level TRACE according to the specified format and arguments. This form avoids superfluous object creation when the logger is disabled for level TRACE. However, this variant incurs the hidden (and relatively small) cost of creating an object[] before invoking the method, even if this logger is disabled for TRACE. The variants and arguments exist solely to avoid this hidden cost. the format string an array of arguments Log an exception at level TRACE with an accompanying message. the message accompanying the exception the exception to log Log an exception at level TRACE. the exception to log Is this logger instance enabled for the DEBUG level? true if this Logger is enabled for level DEBUG, false otherwise. Log a message object at level DEBUG. the message object to be logged Log a message at level DEBUG according to the specified format and argument. This form avoids superfluous object creation when the logger is disabled for level DEBUG. the format string the argument Log a message at level DEBUG according to the specified format and arguments. This form avoids superfluous object creation when the logger is disabled for level DEBUG. the format string the first argument the second argument Log a message at level DEBUG according to the specified format and arguments. This form avoids superfluous object creation when the logger is disabled for level DEBUG. However, this variant incurs the hidden (and relatively small) cost of creating an object[] before invoking the method, even if this logger is disabled for DEBUG. The variants and arguments exist solely to avoid this hidden cost. the format string an array of arguments Log an exception at level DEBUG with an accompanying message. the message accompanying the exception the exception to log Log an exception at level DEBUG. the exception to log Is this logger instance enabled for the INFO level? true if this Logger is enabled for level INFO, false otherwise. Log a message object at level INFO. the message object to be logged Log a message at level INFO according to the specified format and argument. This form avoids superfluous object creation when the logger is disabled for level INFO. the format string the argument Log a message at level INFO according to the specified format and arguments. This form avoids superfluous object creation when the logger is disabled for level INFO. the format string the first argument the second argument Log a message at level INFO according to the specified format and arguments. This form avoids superfluous object creation when the logger is disabled for level INFO. However, this variant incurs the hidden (and relatively small) cost of creating an object[] before invoking the method, even if this logger is disabled for INFO. The variants and arguments exist solely to avoid this hidden cost. the format string an array of arguments Log an exception at level INFO with an accompanying message. the message accompanying the exception the exception to log Log an exception at level INFO. the exception to log Is this logger instance enabled for the WARN level? true if this Logger is enabled for level WARN, false otherwise. Log a message object at level WARN. the message object to be logged Log a message at level WARN according to the specified format and argument. This form avoids superfluous object creation when the logger is disabled for level WARN. the format string the argument Log a message at level WARN according to the specified format and arguments. This form avoids superfluous object creation when the logger is disabled for level WARN. However, this variant incurs the hidden (and relatively small) cost of creating an object[] before invoking the method, even if this logger is disabled for WARN. The variants and arguments exist solely to avoid this hidden cost. the format string an array of arguments Log a message at level WARN according to the specified format and arguments. This form avoids superfluous object creation when the logger is disabled for level WARN. the format string the first argument the second argument Log an exception at level WARN with an accompanying message. the message accompanying the exception the exception to log Log an exception at level WARN. the exception to log Is this logger instance enabled for the ERROR level? true if this Logger is enabled for level ERROR, false otherwise. Log a message object at level ERROR. the message object to be logged Log a message at level ERROR according to the specified format and argument. This form avoids superfluous object creation when the logger is disabled for level ERROR. the format string the argument Log a message at level ERROR according to the specified format and arguments. This form avoids superfluous object creation when the logger is disabled for level ERROR. the format string the first argument the second argument Log a message at level ERROR according to the specified format and arguments. This form avoids superfluous object creation when the logger is disabled for level ERROR. However, this variant incurs the hidden (and relatively small) cost of creating an object[] before invoking the method, even if this logger is disabled for ERROR. The variants and arguments exist solely to avoid this hidden cost. the format string an array of arguments Log an exception at level ERROR with an accompanying message. the message accompanying the exception the exception to log Log an exception at level ERROR. the exception to log Is the logger instance enabled for the specified ? log level true if this Logger is enabled for the specified , false otherwise. Log a message object at a specified . log level the message object to be logged Log a message at a specified according to the specified format and argument. This form avoids superfluous object creation when the logger is disabled for the specified . log level the format string the argument Log a message at a specified according to the specified format and arguments. This form avoids superfluous object creation when the logger is disabled for the specified . log level the format string the first argument the second argument Log a message at the specified according to the specified format and arguments. This form avoids superfluous string concatenation when the logger is disabled for the specified . However, this variant incurs the hidden (and relatively small) cost of creating an object[] before invoking the method, even if this logger is disabled for the specified . The variants and arguments exist solely in order to avoid this hidden cost. log level the format string an array of arguments Log an exception at the specified with an accompanying message. log level the message accompanying the exception the exception to log Log an exception at the specified . log level the exception to log Creates an or changes the default factory implementation. This factory allows you to choose what logging framework DotNetty should use. The default factory is own with registered. You can change it to your preferred logging framework before other DotNetty classes are loaded:
                    InternalLoggerFactory.DefaultFactory = new LoggerFactory();
                
Please note that the new default factory is effective only for the classes which were loaded after the default factory is changed. Therefore, should be set as early as possible and should not be called more than once.
Gets or sets the default factory. Creates a new logger instance with the name of the specified type. type where logger is used logger instance Creates a new logger instance with the name of the specified type. type where logger is used logger instance Creates a new logger instance with the specified name. logger name logger instance The log level that can log at. 'TRACE' log level. 'DEBUG' log level. 'INFO' log level. 'WARN' log level. 'ERROR' log level. Formats messages according to very simple substitution rules. Substitutions can be made 1, 2 or more arguments. For example, MessageFormatter.Format("Hi {}.", "there") will return the string "Hi there.". The {} pair is called the formatting anchor. It serves to designate the location where arguments need to be substituted within the message pattern. In case your message contains the '{' or the '}' character, you do not have to do anything special unless the '}' character immediately follows '{'. For example, MessageFormatter.Format("Set {1,2,3} is not equal to {}.", "1,2"); will return the string "Set {1,2,3} is not equal to 1,2.". If for whatever reason you need to place the string "{}" in the message without its formatting anchor meaning, then you need to escape the '{' character with '\', that is the backslash character. Only the '{' character should be escaped. There is no need to escape the '}' character. For example, MessageFormatter.Format("Set \\{} is not equal to {}.", "1,2"); will return the string "Set {} is not equal to 1,2.". The escaping behavior just described can be overridden by escaping the escape character '\'. Calling MessageFormatter.Format("File name is C:\\\\{}.", "file.zip"); will return the string "File name is C:\file.zip". Performs single argument substitution for the given . For example, MessageFormatter.Format("Hi {}.", "there"); will return the string "Hi there.". The message pattern which will be parsed and formatted The argument to be substituted in place of the formatting anchor The formatted message Performs a two argument substitution for the given . For example, MessageFormatter.Format("Hi {}. My name is {}.", "Alice", "Bob"); will return the string "Hi Alice. My name is Bob.". The message pattern which will be parsed and formatted The argument to be substituted in place of the first formatting anchor The argument to be substituted in place of the second formatting anchor The formatted message Same principle as the and methods, except that any number of arguments can be passed in an array. The message pattern which will be parsed and formatted An array of arguments to be substituted in place of formatting anchors The formatted message Length of a valid MAC address. Obtains the best MAC address found on local network interfaces. Generally speaking, an active network interface used on public networks is better than a local network interface. byte array containing a MAC. null if no MAC can be found. byte array of a MAC address. hex formatted MAC address. positive - current is better, 0 - cannot tell from MAC addr, negative - candidate is better. positive - current is better, 0 - cannot tell, negative - candidate is better Forked from JCTools. A Multi-Producer-Single-Consumer queue based on a . This implies that any thread may call the Enqueue methods, but only a single thread may call poll/peek for correctness to maintained. This implementation follows patterns documented on the package level for False Sharing protection. This implementation is using the Fast Flow method for polling from the queue (with minor change to correctly publish the index) and an extension of the Leslie Lamport concurrent queue algorithm (originated by Martin Thompson) on the producer side. The type of each item in the queue. Lock free Enqueue operation, using a single compare-and-swap. As the class name suggests, access is permitted to many threads concurrently. The item to enqueue. true if the item was added successfully, otherwise false. A wait-free alternative to , which fails on compare-and-swap failure. The item to enqueue. 1 if next element cannot be filled, -1 if CAS failed, and 0 if successful. Lock free poll using ordered loads/stores. As class name suggests, access is limited to a single thread. The dequeued item. true if an item was retrieved, otherwise false. Lock free peek using ordered loads. As class name suggests access is limited to a single thread. The peeked item. true if an item was retrieved, otherwise false. Returns the number of items in this . A plain store (no ordering/fences) of an element to a given offset. The element type. The source buffer. Computed via An orderly kitty. An ordered store(store + StoreStore barrier) of an element to a given offset. The element type. The source buffer. Computed via A plain load (no ordering/fences) of an element from a given offset. The element type. The source buffer. Computed via The element at the given in the given . A volatile load (load + LoadLoad barrier) of an element from a given offset. The element type. The source buffer. Computed via The element at the given in the given . Gets the offset in bytes within the array for a given index. The desired element index. Mask for the index. The offset (in bytes) within the array for a given index. Called from a producer thread subject to the restrictions appropriate to the implementation and according to the interface. The element to enqueue. true if the element was inserted, false iff the queue is full. Called from the consumer thread subject to the restrictions appropriate to the implementation and according to the interface. A message from the queue if one is available, null iff the queue is empty. Called from the consumer thread subject to the restrictions appropriate to the implementation and according to the interface. A message from the queue if one is available, null iff the queue is empty. A collection of utility methods to retrieve and parse the values of the system properties (Environment variables). Returns true if and only if the system property with the specified key exists. Returns the value of the system property with the specified key, while falling back to null if the property access fails. the property value or null Returns the value of the system property with the specified key, while falling back to the specified default value if the property access fails. the property value. def if there's no such property or if an access to the specified property is not allowed. Returns the value of the system property with the specified key, while falling back to the specified default value if the property access fails. the property value or def if there's no such property or if an access to the specified property is not allowed. Returns the value of the system property with the specified key, while falling back to the specified default value if the property access fails. the property value. def if there's no such property or if an access to the specified property is not allowed. Returns the value of the system property with the specified key, while falling back to the specified default value if the property access fails. the property value. def if there's no such property or if an access to the specified property is not allowed. Reference counting interface for reusable objects Returns the reference count of this object Increases the reference count by 1 Increases the reference count by Records the current access location of this object for debugging purposes. If this object is determined to be leaked, the information recorded by this operation will be provided to you via . This method is a shortcut to with null as an argument. Records the current access location of this object with an additonal arbitrary information for debugging purposes. If this object is determined to be leaked, the information recorded by this operation will be provided to you via . Decreases the reference count by 1 and deallocates this object if the reference count reaches 0. true if and only if the reference count is 0 and this object has been deallocated Decreases the reference count by and deallocates this object if the reference count reaches 0. true if and only if the reference count is 0 and this object has been deallocated A hint object that provides human-readable message for easier resource leak tracking. Returns a human-readable message that potentially enables easier resource leak tracking. Records the caller's current stack trace so that the can tell where the leaked resource was accessed lastly. This method is a shortcut to with null as an argument. Records the caller's current stack trace and the specified additional arbitrary information so that the can tell where the leaked resource was accessed lastly. Close the leak so that does not warn about leaked resources. true if called first time, false if called already Represents the level of resource leak detection. Disables resource leak detection. Enables simplistic sampling resource leak detection which reports there is a leak or not, at the cost of small overhead (default). Enables advanced sampling resource leak detection which reports where the leaked object was accessed recently at the cost of high overhead. Enables paranoid resource leak detection which reports where the leaked object was accessed recently, at the cost of the highest possible overhead (for testing purposes only). Returns true if resource leak detection is enabled. Gets or sets resource leak detection level Creates a new which is expected to be closed when the related resource is deallocated. the or null Schedules the specified to run when the specified dies. Cancels the task scheduled via . Waits until the thread of this watcher has no threads to watch and terminates itself. Because a new watcher thread will be started again on , this operation is only useful when you want to ensure that the watcher thread is terminated after your application is shut down and there's no chance of calling afterwards. true if and only if the watcher thread has been terminated. Base implementation of . Creates a new instance. Extension methods used for slicing byte arrays Merge the byte arrays into one byte array. During normal use cases the AsciiString should be immutable, but if the underlying array is shared, and changes then this needs to be called. Implementation of the java.concurrent.util AtomicReference type. Sets the initial value of this to . Default constructor The current value of this If equals , then set the Value to Returns true if was set, false otherwise. Implicit conversion operator = automatically casts the to an instance of Implicit conversion operator = allows us to cast any type directly into a instance. Key which can be used to access out of the . Be aware that it is not be possible to have multiple keys with the same name. the type of the which can be accessed via this . Returns the singleton instance of the {@link AttributeKey} which has the specified name. Returns true if a exists for the given name. Creates a new for the given name or fail with an if a for the given name exists. Provides a mechanism to iterate over a collection of bytes. Aborts on a NUL (0x00). Aborts on a non-NUL (0x00). Aborts on a CR ('\r'). Aborts on a non-CR ('\r'). Aborts on a LF ('\n'). Aborts on a non-LF ('\n'). Aborts on a CR (';'). Aborts on a comma (','). Aborts on a ascii space character (' '). Aborts on a CR ('\r') or a LF ('\n'). Aborts on a byte which is neither a CR ('\r') nor a LF ('\n'). Aborts on a linear whitespace (a ' ' or a '\t'). Aborts on a byte which is not a linear whitespace (neither ' ' nor '\t'). A pool of s. Shortcut of this.ValueOf(firstNameComponent.Name + "#" + secondNameComponent). Returns the which is assigned to the specified name. If there's no such , a new one will be created and returned. Once created, the subsequent calls with the same name will always return the previously created one (i.e. singleton.) the name of the Returns true if a exists for the given name. Creates a new for the given name or fail with an if a for the given name exists. Default implementation which use simple synchronization per bucket to keep the memory overhead as low as possible. Creates a new timer. the interval between two consecutive ticks the size of the wheel The maximum number of pending timeouts after which call to newTimeout will result in being thrown. No maximum pending timeouts limit is assumed if this value is 0 or negative. if either of tickInterval and ticksPerWheel is <= 0 Starts the background thread explicitly. The background thread will start automatically on demand even if you did not call this method. if this timer has been stopped already. calculate timer firing time from startTime and current tick number, then wait until that goal has been reached. long.MinValue if received a shutdown request, current time otherwise (with long.MinValue changed by +1) Bucket that stores HashedWheelTimeouts. These are stored in a linked-list like datastructure to allow easy removal of HashedWheelTimeouts in the middle. Also the HashedWheelTimeout act as nodes themself and so no extra object creation is needed. Add a to this bucket. Expire all s for the given deadline. Clear this bucket and return all not expired / cancelled s. An attribute which allows to store a value reference. It may be updated atomically and so is thread-safe. the type of the value it holds. Returns the key of this attribute. Returns the current value, which may be null Sets the value Atomically sets to the given value and returns the old value which may be null if non was set before. Atomically sets to the given value if this 's value is null. If it was not possible to set the value as it contains a value it will just return the current value. Removes this attribute from the and returns the old value. Subsequent calls will return null. If you only want to return the old value and clear the while still keep it in use with a value of null. Atomically sets the value to the given updated value if the current value == the expected value. If it the set was successful it returns true otherwise false. Removes this attribute from the . Subsequent calls will return null. If you only want to remove the value and clear the while still keep it in use with a value of null. Holds s which can be accessed via . Implementations must be Thread-safe. Get the for the given . This method will never return null, but may return an which does not have a value set yet. Returns true if and only if the given exists in this . Start is the inclusive start index to begin the subsequence. End is the exclusive end index to end the subsequence. A singleton which is safe to compare via the == operator. Created and managed by . Returns the unique number assigned to this . Returns the name of this . Exception thrown during instances where a reference count is used incorrectly A handle associated with a that is returned by a . Returns the that created this handle. Returns the which is associated with this handle. Returns true if and only if the associated with this handle has been expired. Returns true if and only if the associated with this handle has been canceled. Attempts to cancel the associated with this handle. If the task has been executed or canceled already, it will return with no side effect. true if the cancellation completed successfully, otherwise false. Schedules s for one-time future execution in a background thread. Schedules the specified for one-time execution after the specified delay. a handle which is associated with the specified task if this timer has been stopped already if the pending timeouts are too many and creating new timeout can cause instability in the system. Releases all resources acquired by this and cancels all tasks which were scheduled but not executed yet. the handles associated with the tasks which were canceled by this method A task which is executed after the delay specified with . Executed after the delay specified with . a handle which is associated with this task Tries to call if the specified message implements . If the specified message doesn't implement , this method does nothing. Tries to call if the specified message implements . If the specified message doesn't implement , this method does nothing. Tries to call if the specified message implements . If the specified message doesn't implement , this method does nothing. Tries to call if the specified message implements . If the specified message doesn't implement , this method does nothing. Tries to call if the specified message implements . If the specified message doesn't implement , this method does nothing. Tries to call if the specified message implements . If the specified message doesn't implement , this method does nothing. Tries to call if the specified message implements . If the specified message doesn't implement , this method does nothing. Unlike , this method catches an exception raised by and logs it, rather than rethrowing it to the caller. It is usually recommended to use instead, unless you absolutely need to swallow an exception. Tries to call if the specified message implements . If the specified message doesn't implement , this method does nothing. Unlike , this method catches an exception raised by and logs it, rather than rethrowing it to the caller. It is usually recommended to use instead, unless you absolutely need to swallow an exception. Schedules the specified object to be released when the caller thread terminates. Note that this operation is intended to simplify reference counting of ephemeral objects during unit tests. Do not use it beyond the intended use case. Schedules the specified object to be released when the caller thread terminates. Note that this operation is intended to simplify reference counting of ephemeral objects during unit tests. Do not use it beyond the intended use case. String utility class. 2 - Quote character at beginning and end. 5 - Extra allowance for anticipated escape characters that may be added. Converts the specified byte value into a 2-digit hexadecimal integer. Converts the specified byte array into a hexadecimal value. Converts the specified byte array into a hexadecimal value. Converts the specified byte value into a hexadecimal integer. The shortcut to SimpleClassName(o.GetType()). The shortcut to SimpleClassName(o.GetType()). Generates a simplified name from a . Similar to {@link Class#getSimpleName()}, but it works fine with anonymous classes. Escapes the specified value, if necessary according to RFC-4180. The value which will be escaped according to RFC-4180 The value will first be trimmed of its optional white-space characters, according to RFC-7230 the escaped value if necessary, or the value unchanged Time utility class. Compare two timespan objects first timespan object two timespan object Gets the system time. The system time. A double-ended queue (deque), which provides O(1) indexed access, O(1) removals from the front and back, amortized O(1) insertions to the front and back, and O(N) insertions and removals anywhere else (with the operations getting slower as the index approaches the middle). The type of elements contained in the deque. The default capacity. The circular buffer that holds the view. The offset into where the view begins. Initializes a new instance of the class with the specified capacity. The initial capacity. Must be greater than 0. Initializes a new instance of the class with the elements from the specified collection. The collection. Initializes a new instance of the class. Gets a value indicating whether this list is read-only. This implementation always returns false. true if this list is read-only; otherwise, false. Gets or sets the item at the specified index. The index of the item to get or set. is not a valid index in this list. This property is set and the list is read-only. Inserts an item to this list at the specified index. The zero-based index at which should be inserted. The object to insert into this list. is not a valid index in this list. This list is read-only. Removes the item at the specified index. The zero-based index of the item to remove. is not a valid index in this list. This list is read-only. Determines the index of a specific item in this list. The object to locate in this list. The index of if found in this list; otherwise, -1. Adds an item to the end of this list. The object to add to this list. This list is read-only. Determines whether this list contains a specific value. The object to locate in this list. true if is found in this list; otherwise, false. Copies the elements of this list to an , starting at a particular index. The one-dimensional that is the destination of the elements copied from this slice. The must have zero-based indexing. The zero-based index in at which copying begins. is null. is less than 0. is equal to or greater than the length of . -or- The number of elements in the source is greater than the available space from to the end of the destination . Removes the first occurrence of a specific object from this list. The object to remove from this list. true if was successfully removed from this list; otherwise, false. This method also returns false if is not found in this list. This list is read-only. 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. Returns whether or not the type of a given item indicates it is appropriate for storing in this container. The item to test. true if the item is appropriate to store in this container; otherwise, false. Checks the argument to see if it refers to a valid insertion point in a source of a given length. The length of the source. This parameter is not checked for validity. The index into the source. is not a valid index to an insertion point for the source. Checks the argument to see if it refers to an existing element in a source of a given length. The length of the source. This parameter is not checked for validity. The index into the source. is not a valid index to an existing element for the source. Checks the and arguments for validity when applied to a source of a given length. Allows 0-element ranges, including a 0-element range at the end of the source. The length of the source. This parameter is not checked for validity. The index into source at which the range begins. The number of elements in the range. Either or is less than 0. The range [offset, offset + count) is not within the range [0, sourceLength). Gets a value indicating whether this instance is empty. Gets a value indicating whether this instance is at full capacity. Gets a value indicating whether the buffer is "split" (meaning the beginning of the view is at a later index in than the end). Gets or sets the capacity for this deque. This value must always be greater than zero, and this property cannot be set to a value less than . Capacity cannot be set to a value less than . Gets the number of elements contained in this deque. The number of elements contained in this deque. Applies the offset to , resulting in a buffer index. The deque index. The buffer index. Gets an element at the specified view index. The zero-based view index of the element to get. This index is guaranteed to be valid. The element at the specified index. Sets an element at the specified view index. The zero-based view index of the element to get. This index is guaranteed to be valid. The element to store in the list. Inserts an element at the specified view index. The zero-based view index at which the element should be inserted. This index is guaranteed to be valid. The element to store in the list. Removes an element at the specified view index. The zero-based view index of the element to remove. This index is guaranteed to be valid. Increments by using modulo- arithmetic. The value by which to increase . May not be negative. The value of after it was incremented. Decrements by using modulo- arithmetic. The value by which to reduce . May not be negative or greater than . The value of before it was decremented. Inserts a single element to the back of the view. must be false when this method is called. The element to insert. Inserts a single element to the front of the view. must be false when this method is called. The element to insert. Removes and returns the last element in the view. must be false when this method is called. The former last element. Removes and returns the first element in the view. must be false when this method is called. The former first element. Inserts a range of elements into the view. The index into the view at which the elements are to be inserted. The elements to insert. The number of elements in . Must be greater than zero, and the sum of and must be less than or equal to . Removes a range of elements from the view. The index into the view at which the range begins. The number of elements in the range. This must be greater than 0 and less than or equal to . Doubles the capacity if necessary to make room for one more element. When this method returns, is false. Inserts a single element at the back of this deque. The element to insert. Inserts a single element at the front of this deque. The element to insert. Inserts a collection of elements into this deque. The index at which the collection is inserted. The collection of elements to insert. is not a valid index to an insertion point for the source. Removes a range of elements from this deque. The index into the deque at which the range begins. The number of elements to remove. Either or is less than 0. The range [, + ) is not within the range [0, ). Removes and returns the last element of this deque. The former last element. The deque is empty. Removes and returns the first element of this deque. The former first element. The deque is empty. Removes all items from this deque.