2007-06-06 18:30:16 -06:00
|
|
|
#ifndef CLASS_FINDER_H
|
|
|
|
#define CLASS_FINDER_H
|
|
|
|
|
|
|
|
#include "common.h"
|
2007-07-20 08:36:31 -06:00
|
|
|
#include "system.h"
|
2007-06-06 18:30:16 -06:00
|
|
|
|
2007-06-18 15:13:21 -06:00
|
|
|
namespace vm {
|
|
|
|
|
2007-06-06 18:30:16 -06:00
|
|
|
class ClassFinder {
|
|
|
|
public:
|
2007-06-20 13:20:25 -06:00
|
|
|
class Data {
|
|
|
|
public:
|
|
|
|
virtual ~Data() { }
|
|
|
|
virtual const uint8_t* start() = 0;
|
|
|
|
virtual size_t length() = 0;
|
|
|
|
virtual void dispose() = 0;
|
|
|
|
};
|
|
|
|
|
2007-06-06 18:30:16 -06:00
|
|
|
virtual ~ClassFinder() { }
|
2007-06-20 13:20:25 -06:00
|
|
|
virtual Data* find(const char* className) = 0;
|
2007-07-20 08:36:31 -06:00
|
|
|
virtual void dispose() = 0;
|
2007-06-06 18:30:16 -06:00
|
|
|
};
|
|
|
|
|
2007-07-20 08:36:31 -06:00
|
|
|
ClassFinder*
|
|
|
|
makeClassFinder(System* s, const char* path);
|
|
|
|
|
2007-06-18 15:13:21 -06:00
|
|
|
} // namespace vm
|
|
|
|
|
2007-06-06 18:30:16 -06:00
|
|
|
#endif//CLASS_FINDER_H
|