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

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

class DLL_PUBLIC IceBase {
	public:
		typedef boost::tuple<IceCompile::Ptr, std::thread *> LibCompile;
		typedef boost::variant<LibCompile, IceCompile::LibHandles> LibPromise;
		typedef std::vector<LibPromise> Libs;
		typedef boost::function<IceCompile::Ptr(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