Files
triton/include/isaac/driver/program.h
2015-08-04 10:53:39 -07:00

49 lines
840 B
C++

#ifndef ISAAC_DRIVER_PROGRAM_H
#define ISAAC_DRIVER_PROGRAM_H
#include <map>
#include "isaac/defines.h"
#include "isaac/driver/common.h"
#include "isaac/driver/handle.h"
#include "isaac/driver/context.h"
namespace isaac
{
namespace driver
{
class Context;
class Device;
class ISAACAPI Program
{
friend class Kernel;
public:
Program(Context const & context, std::string const & source);
Context const & context() const;
private:
backend_type backend_;
Context context_;
std::string source_;
HANDLE_TYPE(cl_program, CUmodule) h_;
};
class ProgramCache
{
friend class backend;
public:
void clear();
Program & add(Context const & context, std::string const & name, std::string const & src);
Program const *find(std::string const & name);
private:
std::map<std::string, Program> cache_;
};
}
}
#endif