1
0
mirror of https://github.com/Halofreak1990/XFXFramework synced 2024-12-26 13:49:34 +01:00
XFXFramework/include/System/Interfaces.h
Halofreak1990 8f089dc2ab Added the current XFX directory tree.
WARNING!!! This revision cannot compile correctly. It is updated to reflect the many changes within the XFX project.
2010-12-04 16:14:34 +00:00

72 lines
1.6 KiB
C++

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