mirror of
https://github.com/Halofreak1990/XFXFramework
synced 2024-12-26 13:49:34 +01:00
Added 'ValueTypes' Single and Double Added some components in the new System::Net namespace Added the Console class, which can be used to output text to the screen Updated a bunch of structs to include the IComparable and IEquatable interfaces, and inheritance from Object to allow better interoperability between container classes and other types Replaced all exception handling code with a report to stdout.txt - this will, I hope, eventually be reversed, but as of yet, there is no support for exceptions. BEWARE! Even though all libraries correctly compile, you cannot use any class/structure that inherits from a template class, because stupid G++ wants to include exception handling for each template.
98 lines
2.5 KiB
C++
98 lines
2.5 KiB
C++
/********************************************************
|
|
* Interfaces.h *
|
|
* *
|
|
* XFX Generic Interfaces definition file *
|
|
* Copyright © XFX Team. All Rights Reserved *
|
|
********************************************************/
|
|
#ifndef _SYSTEM_COLLECTIONS_GENERIC_INTERFACES_
|
|
#define _SYSTEM_COLLECTIONS_GENERIC_INTERFACES_
|
|
|
|
#include <System/Types.h>
|
|
|
|
namespace System
|
|
{
|
|
namespace Collections
|
|
{
|
|
namespace Generic
|
|
{
|
|
// Defines methods to manipulate generic collections.
|
|
template <class T>
|
|
interface ICollection
|
|
{
|
|
public:
|
|
virtual void Add(T item)=0;
|
|
virtual void Clear()=0;
|
|
virtual bool Contains(T item)=0;
|
|
virtual void CopyTo(T array[], int arrayIndex)=0;
|
|
virtual bool Remove(T item)=0;
|
|
|
|
virtual int Count()=0;
|
|
virtual bool IsReadOnly()=0;
|
|
};
|
|
|
|
// Defines a method that a type implements to compare two objects.
|
|
template <class T>
|
|
interface IComparer
|
|
{
|
|
public:
|
|
virtual int Compare(T x, T y)=0;
|
|
};
|
|
|
|
// Represents a generic collection of key/value pairs.
|
|
template <class TKey, class TValue>
|
|
interface IDictionary
|
|
{
|
|
public:
|
|
virtual void Add(TKey key, TValue value)=0;
|
|
virtual bool ContainsKey(TKey key)=0;
|
|
virtual bool Remove(TKey key)=0;
|
|
virtual bool TryGetValue(TKey key, out TValue value)=0;
|
|
|
|
virtual ICollection<TKey>& Keys()=0;
|
|
virtual ICollection<TValue>& Values()=0;
|
|
};
|
|
|
|
// Supports a simple iteration over a generic collection.
|
|
template <class T>
|
|
interface IEnumerator
|
|
{
|
|
public:
|
|
virtual T Current()=0;
|
|
};
|
|
|
|
// Exposes the enumerator, which supports a simple iteration over a collection of a specified type.
|
|
template <class T>
|
|
interface IEnumerable
|
|
{
|
|
public:
|
|
virtual IEnumerator<T>& GetEnumerator()=0;
|
|
};
|
|
|
|
// Defines methods to support the comparison of objects for equality.
|
|
template <class T>
|
|
interface IEqualityComparer
|
|
{
|
|
public:
|
|
virtual bool Equals(T x, T y)=0;
|
|
virtual int GetHashCode(T obj)=0;
|
|
};
|
|
|
|
// Represents a collection of objects that can be individually accessed by index.
|
|
template <class T>
|
|
interface IList : public ICollection<T>
|
|
{
|
|
public:
|
|
virtual int IndexOf(T item)=0;
|
|
virtual void Insert(int index, T item)=0;
|
|
virtual void RemoveAt(int index)=0;
|
|
|
|
virtual T operator[](int index)=0;
|
|
|
|
virtual ~IList() {}
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|
|
#endif //_SYSTEM_COLLECTIONS_GENERIC_INTERFACES_
|