summaryrefslogtreecommitdiffstats
path: root/source/core/array-view.h
diff options
context:
space:
mode:
authorTim Foley <tfoley@nvidia.com>2017-06-15 13:24:25 -0700
committerTim Foley <tfoley@nvidia.com>2017-06-15 13:24:25 -0700
commit205187b561c3b31fa931e73e8f7263f0c4b1de41 (patch)
tree7bd2cd5ae3c14416b71ef8319ff02ace429d1132 /source/core/array-view.h
parent517513645afb8eaf4841e7b7035f1ba3a9c7cd57 (diff)
Rename `CoreLib::*` to `Slang`
Getting rid of more namespace complexity and stripping things down to the basics. This also gets rid of some dead code in the "core" library.
Diffstat (limited to 'source/core/array-view.h')
-rw-r--r--source/core/array-view.h202
1 files changed, 100 insertions, 102 deletions
diff --git a/source/core/array-view.h b/source/core/array-view.h
index 201ef2a79..4e0057cdb 100644
--- a/source/core/array-view.h
+++ b/source/core/array-view.h
@@ -3,129 +3,127 @@
#include "Exception.h"
-namespace CoreLib
+namespace Slang
{
- namespace Basic
+ template<typename T>
+ class ArrayView
{
- template<typename T>
- class ArrayView
+ private:
+ T * _buffer;
+ int _count;
+ int stride;
+ public:
+ T* begin() const
{
- private:
- T * _buffer;
- int _count;
- int stride;
- public:
- T* begin() const
- {
- return _buffer;
- }
- T* end() const
- {
- return (T*)((char*)_buffer + _count*stride);
- }
- public:
- ArrayView()
- {
- _buffer = 0;
- _count = 0;
- }
- ArrayView(const T & singleObj)
- {
- SetData((T*)&singleObj, 1, sizeof(T));
- }
- ArrayView(T * buffer, int count)
- {
- SetData(buffer, count, sizeof(T));
- }
- ArrayView(void * buffer, int count, int _stride)
- {
- SetData(buffer, count, _stride);
- }
- void SetData(void * buffer, int count, int _stride)
- {
- this->_buffer = (T*)buffer;
- this->_count = count;
- this->stride = _stride;
- }
- inline int GetCapacity() const
- {
- return _count;
- }
- inline int Count() const
- {
- return _count;
- }
+ return _buffer;
+ }
+ T* end() const
+ {
+ return (T*)((char*)_buffer + _count*stride);
+ }
+ public:
+ ArrayView()
+ {
+ _buffer = 0;
+ _count = 0;
+ }
+ ArrayView(const T & singleObj)
+ {
+ SetData((T*)&singleObj, 1, sizeof(T));
+ }
+ ArrayView(T * buffer, int count)
+ {
+ SetData(buffer, count, sizeof(T));
+ }
+ ArrayView(void * buffer, int count, int _stride)
+ {
+ SetData(buffer, count, _stride);
+ }
+ void SetData(void * buffer, int count, int _stride)
+ {
+ this->_buffer = (T*)buffer;
+ this->_count = count;
+ this->stride = _stride;
+ }
+ inline int GetCapacity() const
+ {
+ return _count;
+ }
+ inline int Count() const
+ {
+ return _count;
+ }
- inline T & operator [](int id) const
- {
+ inline T & operator [](int id) const
+ {
#if _DEBUG
- if (id >= _count || id < 0)
- throw IndexOutofRangeException("Operator[]: Index out of Range.");
+ if (id >= _count || id < 0)
+ throw IndexOutofRangeException("Operator[]: Index out of Range.");
#endif
- return *(T*)((char*)_buffer+id*stride);
- }
+ return *(T*)((char*)_buffer+id*stride);
+ }
- inline T* Buffer() const
- {
- return _buffer;
- }
+ inline T* Buffer() const
+ {
+ return _buffer;
+ }
- template<typename T2>
- int IndexOf(const T2 & val) const
+ template<typename T2>
+ int IndexOf(const T2 & val) const
+ {
+ for (int i = 0; i < _count; i++)
{
- for (int i = 0; i < _count; i++)
- {
- if (*(T*)((char*)_buffer + i*stride) == val)
- return i;
- }
- return -1;
+ if (*(T*)((char*)_buffer + i*stride) == val)
+ return i;
}
+ return -1;
+ }
- template<typename T2>
- int LastIndexOf(const T2 & val) const
+ template<typename T2>
+ int LastIndexOf(const T2 & val) const
+ {
+ for (int i = _count - 1; i >= 0; i--)
{
- for (int i = _count - 1; i >= 0; i--)
- {
- if (*(T*)((char*)_buffer + i*stride) == val)
- return i;
- }
- return -1;
+ if (*(T*)((char*)_buffer + i*stride) == val)
+ return i;
}
+ return -1;
+ }
- template<typename Func>
- int FindFirst(const Func & predicate) const
+ template<typename Func>
+ int FindFirst(const Func & predicate) const
+ {
+ for (int i = 0; i < _count; i++)
{
- for (int i = 0; i < _count; i++)
- {
- if (predicate(_buffer[i]))
- return i;
- }
- return -1;
+ if (predicate(_buffer[i]))
+ return i;
}
+ return -1;
+ }
- template<typename Func>
- int FindLast(const Func & predicate) const
+ template<typename Func>
+ int FindLast(const Func & predicate) const
+ {
+ for (int i = _count - 1; i >= 0; i--)
{
- for (int i = _count - 1; i >= 0; i--)
- {
- if (predicate(_buffer[i]))
- return i;
- }
- return -1;
+ if (predicate(_buffer[i]))
+ return i;
}
- };
-
- template<typename T>
- ArrayView<T> MakeArrayView(const T & obj)
- {
- return ArrayView<T>(obj);
+ return -1;
}
+ };
+
+ template<typename T>
+ ArrayView<T> MakeArrayView(const T & obj)
+ {
+ return ArrayView<T>(obj);
+ }
- template<typename T>
- ArrayView<T> MakeArrayView(T * buffer, int count)
- {
- return ArrayView<T>(buffer, count);
- }
+ template<typename T>
+ ArrayView<T> MakeArrayView(T * buffer, int count)
+ {
+ return ArrayView<T>(buffer, count);
}
}
+
#endif \ No newline at end of file