Start support for multiple build targets.

This commit is contained in:
jmsgrogan 2024-01-28 16:28:16 +00:00
parent e3e03dc31f
commit 3dce256213
52 changed files with 1044 additions and 340 deletions

View file

@ -0,0 +1,41 @@
#pragma once
#include "Vector.h"
#include "Stream.h"
template<typename T>
class InputStream : public Stream
{
public:
virtual bool get(T& item) = 0;
virtual int get(Vector<T>& items)
{
size_t count = 0;
T item;
while(good() && count < items.size())
{
if (const auto ok = get(item); !ok)
{
break;
}
items[count] = item;
count++;
}
if (has_error())
{
return -1;
}
else
{
return count;
}
}
};
template<typename T>
class OutputStream : public Stream
{
public:
virtual int write(T* data, size_t size) = 0;
};