The document discusses how to set up and use a pipeline interface for processing tasks. It describes initializing a pipeline manager, registering pipeline configurations that contain tasks, and sending requests through the pipeline by creating items and callbacks. An example shows creating tasks that increment a value and registering a configuration containing multiple tasks to the pipeline manager.
5. Initialize MqttManager
● Initial MqttManager with client id.
public class App extends Application {
public void onCreate() {
super.onCreate();
// initial MqttManager with client id.
MqttCallback callback = new MqttCallbackHandler(this);
MqttManager.getInstance().init(this, URL, Client_ID, callback);
}
}
6. Destroy Pipeline
● Destroy pipeline in StatusActivity’s onDestroy() method
public class StatusActivity extends Activity {
….
public void onDestroy() {
// Destroying pipeline.
PipelineManager.release();
super.onDestroy();
}
}
7. Send HTTP Request
● Create a callback class to implement IPipeCallback.
● Create a task class to implement IPipeTask.
● Add pipeline tasks to a specified PipeTaskList.
● Create a HttpItem using HttpItem.Builder().
● Send a http request with HttpItem, callback and PipeTaskList to
PipeLineManager.
8. IPipeTask
public IPipeTask extends Callable<IPipeItem> {
// Set the input data for this pipeline task.
public void setInput(final IPipeItem inputItem);
// The pipeline task processing function. Implement our processing here.
@Override
public IPipeItem call();
}
9. PlusTask example
public class PlusTask implements IPipeTask {
private IPipeItem inputItem;
public void setInput(final IPipeItem pipeItem) { this.inputItem = pipeItem; }
@Override
public IPipeItem call() {
if (inputItem != null) {
Map<String, Object> payload = inputItem.getPayload();
if (payload != null && payload.containsKey(States.KEY_S2)) {
payload.put(States.KEY_S2, ((int) payload.get(States.KEY_S2))+1);
}
inputItem.setPayload(payload); // Update payload
}
return inputItem;
}
10. Register flow
● Create a pipeline task class to implement IPipeTask.
● Add some pipeline tasks to a specified PipeConfiguration.
● Register some PipeConfigurations to PipelineManager.
11. PlusConfiguration
public class PlusConfiguration extends AbstractPipeConfiguration {
public PlusConfiguration() {
init();
}
private void init() {
List<IPipeTask> pipeTaskList = new ArrayList<IPipeTask>();
pipeTaskList.add(new PlusTask());
pipeTaskList.add(new PlusTask());
super.setPipeTasks(pipeTaskList);
}
12. Register flow
● Create a pipeline task class to implement IPipeTask.
● Add some pipeline tasks to a specified PipeConfiguration.
● Register some PipeConfigurations to PipelineManager.
13. Set pipeline configuration to PipelineManager
public class PipelineManager extends AbstractPipelineManager {
private PipelineManager() {
initConfigurations();
}
private void initConfigurations() {
Map<String, IPipeConfiguration> configurationMap = new HashMap<>();
configurationMap.put(Constant.CONF_LOGIN, new LoginConfiguration());
configurationMap.put(Constant.CONF_PLUS, new PlusConfiguration());
super.setConfigurationMap(configurationMap);
}