namespace gqe

// enums

enum
{
    INNER_JOIN = 0
    SEMI_JOIN = 1
    ANTI_JOIN = 2
}

enum
{
    PU_NM = 8
    HT_BUFF_DEPTH =  (1  < <23)
    S_BUFF_DEPTH =  (1  < <23)
    HBM_BUFF_DEPTH =  (1  < <23)
    VEC_LEN = 8
    KEY_SZ = sizeof (int64_t)
}

enum DATASIZE
enum DIV_SCALE_1
enum ErrCode
enum SOLUTION
enum TypeEnum
enum WorkerFunctions

// structs

struct ColPtr
struct EvaluationInfo
struct Key
struct KeyHasher
struct Payloads
struct StrategySet
struct join_task
struct memcpy_task
struct migrate_task

// classes

class AggrConfig
class AggrStrategyBase
class AggrStrategyManualSet
class Aggregator
class Base
class BaseConfig
class BloomFilter
class BloomFilterConfig
class Client
class Filter
class FpgaInit
class JoinConfig
class JoinStrategyBase
class JoinStrategyManualSet
class JoinStrategyV1
class Joiner
class MemCoppier
class PartJoinConfig
class PlatformInit

template <typename T>
class SafeQueue

class Table
class TableSection
class Worker
class Workshop

// global variables

const int64_t DDR_SIZE_IN_BYTE
const int64_t HBM_SIZE_IN_BYTE