/******************************************************** * Interfaces.h * * * * System namespace interfaces definition file * * Copyright © XFX Team. All Rights Reserved * ********************************************************/ #ifndef _SYSTEM_INTERFACES_ #define _SYSTEM_INTERFACES_ #include "Object.h" #include "Types.h" #include "Threading/WaitHandle.h" namespace System { /// /// Represents the status of an asynchronous operation. /// interface IAsyncResult { public: virtual Object* AsyncState()=0; virtual Threading::WaitHandle* AsyncWaitHandle()=0; virtual bool CompletedSynchronously()=0; virtual bool IsCompleted()=0; }; /// /// Defines a generalized comparison method that a value type or class implements to create a type-specific /// comparison method for ordering instances. /// template interface IComparable { public: int CompareTo(T other)=0; }; /// /// Defines a method to release allocated resources. /// interface IDisposable { public: virtual void Dispose()=0; }; /// /// Defines a generalized method that a value type or class implements to create /// a type-specific method for determining equality of instances. /// template interface IEquatable { public: virtual bool Equals(const T other)=0; }; /// /// Provides a mechanism for retrieving an object to control formatting. /// interface IFormatProvider { public: virtual Object* GetProvider()=0; }; /// /// Provides a mechanism for retrieving an object to control formatting /// interface IServiceProvider { public: virtual Object* GetService(Object* serviceType)=0; }; } #endif //_SYSTEM_INTERFACES_