diff options
Diffstat (limited to 'src/com/mbien/opencl/CLBuildConfiguration.java')
-rw-r--r-- | src/com/mbien/opencl/CLBuildConfiguration.java | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/src/com/mbien/opencl/CLBuildConfiguration.java b/src/com/mbien/opencl/CLBuildConfiguration.java index 7b6ee1e2..86b5cfa2 100644 --- a/src/com/mbien/opencl/CLBuildConfiguration.java +++ b/src/com/mbien/opencl/CLBuildConfiguration.java @@ -1,20 +1,28 @@ package com.mbien.opencl; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; import java.util.Map; /** * Configuration representing everything needed to build an OpenCL program. * @author Michael Bien */ -public interface CLBuildConfiguration { +public interface CLBuildConfiguration extends Cloneable { /** * Builds or rebuilds the program. - * @param program The program which should be build. + * @param program The program which should be build. */ public CLProgram build(CLProgram program); /** + * Sets the program which should be build. + */ + public CLProgramConfiguration setProgram(CLProgram program); + + /** * Adds the device as build target. */ public CLBuildConfiguration forDevice(CLDevice device); @@ -31,38 +39,47 @@ public interface CLBuildConfiguration { /** * Adds the definition to the build configuration. - * @see public CLProgram#define(java.lang.String) + * @see CLProgram#define(java.lang.String) */ public CLBuildConfiguration withDefine(String name); /** * Adds the definition to the build configuration. - * @see public CLProgram#define(java.lang.String, java.lang.String) + * @see CLProgram#define(java.lang.String, java.lang.String) */ public CLBuildConfiguration withDefine(String name, Object value); /** * Adds the definitions to the build configuration. - * @see public CLProgram#define(java.lang.String) + * @see CLProgram#define(java.lang.String) */ public CLBuildConfiguration withDefines(String... names); /** * Adds the definitions to the build configuration. - * @see public CLProgram#define(java.lang.String, java.lang.String) + * @see CLProgram#define(java.lang.String, java.lang.String) */ public CLBuildConfiguration withDefines(Map<String, String> defines); /** * Adds the compiler option to the build configuration. - * @see CompilerOptions + * @see CLProgram.CompilerOptions */ public CLBuildConfiguration withOption(String option); /** * Adds the compiler options to the build configuration. - * @see CompilerOptions + * @see CLProgram.CompilerOptions */ public CLBuildConfiguration withOptions(String... options); + /** + * Clones this configuration. + */ + public CLBuildConfiguration clone(); + + public void save(ObjectOutputStream oos) throws IOException; + + public CLBuildConfiguration load(ObjectInputStream ois) throws IOException, ClassNotFoundException; + } |