summaryrefslogtreecommitdiff
path: root/project2/ice/iceDataSource.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'project2/ice/iceDataSource.cpp')
-rw-r--r--project2/ice/iceDataSource.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/project2/ice/iceDataSource.cpp b/project2/ice/iceDataSource.cpp
index 5cfd5b1..7b77b19 100644
--- a/project2/ice/iceDataSource.cpp
+++ b/project2/ice/iceDataSource.cpp
@@ -11,6 +11,8 @@ IceDataSource::Proxies IceDataSource::proxies;
DECLARE_OPTIONS(IceDataSource, "ICE Data Source")
("ice.client.slice", Options::functions(boost::bind(&IceDataSource::SetSlice, _1), boost::bind(&IceDataSource::ClearSlice)),
"The ICE Slice file(s) to compile")
+("ice.client.sliceclient", Options::functions(boost::bind(&IceDataSource::SetSliceClient, _1), boost::bind(&IceDataSource::ClearSlice)),
+ "The ICE Slice file(s) to compile (client only, assumes comms library referenced)")
END_OPTIONS(IceDataSource);
int dummy = 0;
@@ -33,6 +35,18 @@ IceDataSource::SetSlice(const VariableType & vslice)
}
void
+IceDataSource::SetSliceClient(const VariableType & vslice)
+{
+ auto slice = vslice.as<std::string>();
+ BuildComms bc(slice);
+ bc.Update(IceCompile::UpdateBuild);
+ BuildShared bcs(slice, { });
+ BuildClient bcl(slice, { &bcs });
+ bcl.Update();
+ libs.insert({ slice, bcl.Open() });
+}
+
+void
IceDataSource::ClearSlice()
{
libs.clear();