Play-/Source/iop/ArgumentIterator.h

35 lines
561 B
C
Raw Permalink Normal View History

2016-05-29 16:41:31 -04:00
#pragma once
#include "../MIPS.h"
class CArgumentIterator
{
public:
2018-04-30 21:01:23 +01:00
virtual ~CArgumentIterator() = default;
virtual uint32 GetNext() = 0;
2016-05-29 16:41:31 -04:00
};
class CCallArgumentIterator : public CArgumentIterator
{
public:
CCallArgumentIterator(CMIPS&);
2018-04-30 21:01:23 +01:00
uint32 GetNext() override;
private:
2018-04-30 21:01:23 +01:00
CMIPS& m_context;
unsigned int m_current = 0;
};
2016-05-29 16:41:31 -04:00
class CValistArgumentIterator : public CArgumentIterator
{
public:
CValistArgumentIterator(CMIPS&, uint32);
2018-04-30 21:01:23 +01:00
uint32 GetNext() override;
2016-05-29 16:41:31 -04:00
private:
2018-04-30 21:01:23 +01:00
CMIPS& m_context;
uint32 m_argsPtr = 0;
2016-05-29 16:41:31 -04:00
};