A Library to Support Parallel Programming using
Communicating Sequential Processes CAR Hoare CACM 1978,
the JCSP Library, Peter Welch, University of Kent and
Groovy Helper Classes to Support JCSP, Jon Kerridge, Edinburgh Napier University.
Package org.jcsp.gpp defines some basic classes and interfaces used by the rest of the library.
All user defined data classes utilising the library should extend DataClass.
In addition, a number of methods are required, depending upon the use of the class.
These are described more fully in the information in the packages; terminals, workers and transformers. A list
of the required methods follows:
initClass([initialData]) used to initialise an object
createInstance([createData]) used to create an instance of the class
finalise([finaliseData]) used to undertake final operations on an object
collector() used to collect and save results
function([dataModifier, wc]) carries out a function on an object
More specialised methods are required for more specific tasks:
updateDisplayList( ) used to update the data structure used in a graphical user interface in CollectUI
feedbackBool() used to send a boolean value to a previous process
feedbackObject() used to send an object instance to a previous process
Author, Licence and Copyright statement author Jon Kerridge School of Computing Edinburgh Napier University Merchiston Campus, Colinton Road Edinburgh EH10 5DT Author contact: j.kerridge (at) napier.ac.uk Copyright Jon Kerridge Edinburgh Napier University * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Interface | Description |
---|---|
DataClassInterface | The DataClassInterface defines the clone and serialize methods required by the Groovy Parallel Patterns library for any data class that is to be manipulated by all the processes within the library. |
Class | Description |
---|---|
CompositeDetails | CompositeDetails is used to define the workers and stages of the skeletons appearing in the org.jcsp.gpp.skeletons.compostes package. |
DataClass | DataClass provides the super class for all data classes used in org.jcsp.gpp, it provides a null implementation of all the abstract methods defined in DataClassInterface, thus all data classes used in org.jcsp.gpp should extend DataClass, overriding the methods required for that data class only. |
DataDetails | DataDetails contains data pertaining to a data class used in all of the processes. |
FeedbackDetails | FeedbackDetails is used to create a feedback object, that is either a simple boolean value or more complex object as defined by the method fMethod. |
GroupDetails | GroupDetails holds details for each of the workers in a Group process. |
LocalDetails | LocalDetails contains data pertaining to a local class used in many of the processes. |
Logger | The Logger class provides a number of static methods that are used internally, within other processes, that cause the recording of timing data pertaining to the input and output communications associated with that process. |
PipelineDetails | PipelineDetails holds details for each stage in a Pipeline process. |
ResultDetails | ResultDetails contains data pertaining to a result class used in Collect processes. |
UniversalSignal | An object sent from one to process to another used as a signal to the receiving process that it should undertake some operation for the sending process. |
UniversalTerminator | An object sent from one process to another indicating that the end of emitted data objects has been reached. |