aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/mbien/opencl/util/CLProgramConfiguration.java
diff options
context:
space:
mode:
authorMichael Bien <[email protected]>2010-03-08 16:23:28 +0100
committerMichael Bien <[email protected]>2010-03-08 16:23:28 +0100
commit5ad19147a76f80635dcae18693929edbf1da2cbf (patch)
tree929896eab7d454edcb2267d9287d619600868250 /src/com/mbien/opencl/util/CLProgramConfiguration.java
parentc77d94f00de586f3ffa54312dd752650a6ff4d7b (diff)
moved utilities to util package.
several smaller improvements and doc fixes.
Diffstat (limited to 'src/com/mbien/opencl/util/CLProgramConfiguration.java')
-rw-r--r--src/com/mbien/opencl/util/CLProgramConfiguration.java50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/com/mbien/opencl/util/CLProgramConfiguration.java b/src/com/mbien/opencl/util/CLProgramConfiguration.java
new file mode 100644
index 00000000..105a4b72
--- /dev/null
+++ b/src/com/mbien/opencl/util/CLProgramConfiguration.java
@@ -0,0 +1,50 @@
+package com.mbien.opencl.util;
+
+import com.mbien.opencl.CLDevice;
+import com.mbien.opencl.CLProgram;
+import java.util.Map;
+
+/**
+ * Configuration representing everything needed to build an OpenCL program (program included).
+ * CLProgramConfiguration is a helper for building programs with more complex configurations or
+ * building multiple programs with the similar configuration.
+ * @see CLProgram#prepare()
+ * @see com.mbien.opencl.CLProgramBuilder#createConfiguration(com.mbien.opencl.CLProgram)
+ * @see com.mbien.opencl.CLProgramBuilder#loadConfiguration(java.io.ObjectInputStream, com.mbien.opencl.CLContext)
+ * @author Michael Bien
+ */
+public interface CLProgramConfiguration extends CLBuildConfiguration {
+
+ /**
+ * Builds or rebuilds a program.
+ */
+ public CLProgram build();
+
+ /**
+ * Returns the program.
+ */
+ public CLProgram getProgram();
+
+ /**
+ * Returns a new instance of of this configuration without a {@link CLProgram},
+ * program binaries or sources associated with it.
+ */
+ public CLBuildConfiguration asBuildConfiguration();
+
+
+ // overwrite with CLProgramConfiguration as return type
+ @Override public CLProgramConfiguration forDevice(CLDevice device);
+ @Override public CLProgramConfiguration forDevices(CLDevice... devices);
+ @Override public CLProgramConfiguration withDefine(String name);
+ @Override public CLProgramConfiguration withDefine(String name, Object value);
+ @Override public CLProgramConfiguration withDefines(String... names);
+ @Override public CLProgramConfiguration withDefines(Map<String, ? extends Object> defines);
+ @Override public CLProgramConfiguration withOption(String option);
+ @Override public CLProgramConfiguration withOptions(String... options);
+ @Override public CLProgramConfiguration reset();
+ @Override public CLProgramConfiguration resetOptions();
+ @Override public CLProgramConfiguration resetDefines();
+ @Override public CLProgramConfiguration resetDevices();
+ @Override public CLProgramConfiguration clone();
+
+}