/*
* Copyright (C) 2012 The Android Open Source Project
*
* 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.
*/
#include "Log.h"
#include "GenericFactory.h"
#include "ClientImpl.h"
#include "task/TaskAll.h"
ClientInterface* GenericFactory::createClientInterface()
{
return new ClientImpl();
}
TaskGeneric* GenericFactory::createTask(TaskGeneric::TaskType type)
{
TaskGeneric* task;
switch(type) {
case TaskGeneric::ETaskBatch:
task = new TaskBatch();
break;
case TaskGeneric::ETaskCase:
task = new TaskCase();
break;
case TaskGeneric::ETaskSequential:
task = new TaskSequential();
break;
case TaskGeneric::ETaskProcess:
task = new TaskProcess();
break;
case TaskGeneric::ETaskInput:
task = new TaskInput();
break;
case TaskGeneric::ETaskOutput:
task = new TaskOutput();
break;
case TaskGeneric::ETaskSound:
task = new TaskSound();
break;
case TaskGeneric::ETaskSave:
task = new TaskSave();
break;
// simple elements without its own class
case TaskGeneric::ETaskSetup:
case TaskGeneric::ETaskAction:
task = new TaskGeneric(type);
break;
case TaskGeneric::ETaskMessage:
task = new TaskMessage();
break;
case TaskGeneric::ETaskDownload:
task = new TaskDownload();
break;
default:
LOGE("GenericFactory::createTask unsupported type %d", type);
return NULL;
}
LOGD("GenericFactory::createTask 0x%x, type %d", task, type);
return task;
}