Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // Created by qnbhd on 29.01.2020.
- //
- #ifndef ANASTASIA_COMMANDSET_HPP
- #define ANASTASIA_COMMANDSET_HPP
- #include "Set.hpp"
- class CommandFunctor {
- public:
- CommandFunctor (int * leftA, int * rightA) {}
- CommandFunctor() {};
- virtual ~CommandFunctor() = default;
- virtual void operator()(){};
- };
- class AND : public CommandFunctor{
- private:
- int * leftOperand;
- int * rightOperand;
- public:
- AND (int * leftA, int * rightA) :
- leftOperand(leftA),
- rightOperand(rightA)
- {}
- void operator ()() override{
- *rightOperand &= *leftOperand;
- };
- };
- class CommandSet {
- private:
- Set<CommandFunctor*> Operators;
- Set<CommandFunctor*> Commands;
- int ** Registers;
- public:
- CommandSet (){
- Registers = new int * [16];
- for (int i = 0; i < 16; ++i)
- Registers[i] = new int;
- }
- ~CommandSet(){
- for (int i = 0; i < 16; ++i)
- delete Registers[i];
- delete [] Registers;
- }
- void put (int commandIndex, int register1, int * address)
- {
- switch (commandIndex)
- {
- case 1:
- Commands.insert (new AND(Registers[register1], address));
- default:;
- }
- }
- void print (){
- for (int i = 0; i < 16; ++i)
- {
- }
- }
- };
- #endif //ANASTASIA_COMMANDSET_HPP
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement