containers.h
No OneTemporary

File Metadata

Created
Thu, Jul 9, 1:54 AM

containers.h

//
// Created by pgess on 3/14/15.
//
#ifndef _XREATE_CONTAINERSQUERY_H_
#define _XREATE_CONTAINERSQUERY_H_
#include "passmanager.h"
namespace xreate {
namespace containers {
enum Implementation{
LLVM_ARRAY, LLVM_CONST_ARRAY, ON_THE_FLY
};
struct ImplementationData {
Implementation impl;
union {
unsigned int size; //valid in case of LLVM_ARRAY impl.
struct {
Symbol range;
};
};
ImplementationData(Symbol var);
ImplementationData(Symbol var, std::string implSerialized, const ImplementationData& implPrototype);
std::pair<Expression, Expression> getRange();
};
class Query : public xreate::IQuery {
public:
static ImplementationData queryImplementation(xreate::Symbol const &s);
void init(ClaspLayer* clasp);
~Query(){}
private:
bool flagIsDataLoaded = false;
PassManager *man;
};
}
template<>
struct AttachmentsDictionary<containers::ImplementationData> {
typedef containers::ImplementationData Data;
static const unsigned int key = 1;
};
}
#endif //_XREATE_CONTAINERSQUERY_H_

Event Timeline