summaryrefslogtreecommitdiff
path: root/project2/ice/iceBase.h
blob: 06d8994fb44520f4d1c86daf40a874a5c9229906 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#ifndef ICEBASE_H
#define ICEBASE_H

#include <boost/tuple/tuple.hpp>
#include <thread>
#include "iceCompile.h"
#include <variableType.h>

class IceBase {
	public:
		typedef boost::tuple<IceCompile::CPtr, std::thread *> LibCompile;
		typedef boost::variant<LibCompile, IceCompile::LibHandle> LibPromise;
		typedef std::vector<LibPromise> Libs;
		typedef boost::function<IceCompile::CPtr(const std::string &, const IceCompile::Deps &)> GetComponentCompiler;

		static void FinaliseLoad(Libs & libs);

	protected:
		static void SetSlice(Libs &, const GetComponentCompiler &, const VariableType &, bool iceParts, bool slicerParts);
};

#endif