#ifndef CACHE_HPP_INCLUDED
#define CACHE_HPP_INCLUDED

#include "../JavaClass/Object.hpp"
#include "../JavaClass/Class.hpp"
#include "IterableHashTable.hpp"
#include "IterableQueue.hpp"

namespace Internal
{
    class Cache : public Object
    {
        public:
            Cache(const void* Obj);

            Cache() = default;
            Cache(Cache&& Obj) = default;
            Cache(const Cache& Obj) = default;
            Cache& operator=(Cache&& Obj) = default;
            Cache& operator=(const Cache& Obj) = default;

            static Class GetClass();

            IterableHashTable GetIterableHashTable() const;
            IterableQueue GetIterableQueue() const;

    };
}

#endif // CACHE_HPP_INCLUDED
