#ifndef PLS_LIBRARY_H
#define PLS_LIBRARY_H

#include "pls/algorithms/invoke_parallel.h"
#include "pls/algorithms/parallel_for.h"
#include "pls/internal/scheduling/abstract_task.h"
#include "pls/internal/scheduling/fork_join_task.h"
#include "pls/internal/scheduling/scheduler.h"
#include "pls/internal/helpers/unique_id.h"

namespace pls {

using internal::scheduling::static_scheduler_memory;
using internal::scheduling::malloc_scheduler_memory;

using internal::scheduling::scheduler;
using task_id = internal::scheduling::abstract_task::id;

using unique_id = internal::helpers::unique_id;

using internal::scheduling::fork_join_sub_task;
using internal::scheduling::fork_join_lambda_by_reference;
using internal::scheduling::fork_join_lambda_by_value;
using internal::scheduling::fork_join_task;

using algorithm::invoke_parallel;
using algorithm::parallel_for_fork_join;
using algorithm::parallel_for;

}

#endif
