summaryrefslogtreecommitdiff
path: root/SA_POP/TaskImpl.cpp
blob: cdc72f878c20418d93cd4ffa3c2d138e6c4d621e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
// -*- C++ -*-
// $Id$

//=============================================================================
/**
 * @file  TaskImpl.cpp
 *
 * This file contains the TaskImpl class implementation for the encapsulation
 * of a task implementation's details.
 *
 * @author  John S. Kinnebrew <john.s.kinnebrew@vanderbilt.edu>
 */
//=============================================================================

#include "SA_POP_Types.h"
#include "TaskImpl.h"

using namespace SA_POP;

// Constructor.
TaskImpl::TaskImpl (TaskImplID id, const ImplParamSet &params)
: id_ (id),
  params_ (params),
  duration_ (NULL_TIME)
  
{
  this->resources_.clear ();
};

// Destructor.
TaskImpl::~TaskImpl (void)
{
  // Nothing to do.
};

// Set duration.
void TaskImpl::set_duration (TimeValue duration)
{
  this->duration_ = duration;
};
// Get duration.
TimeValue TaskImpl::get_duration (void)
{
  return this->duration_;
};

// Add resource utilization.
void TaskImpl::add_resource (ResourceID id, ResourceValue value)
{
  this->resources_.insert (std::make_pair (id, value));
};

// Get task implementation id.
TaskImplID TaskImpl::get_id (void)
{
  return this->id_;
};

// Get task implementation parameters.
ImplParamSet TaskImpl::get_params (void)
{
  return this->params_;
};

// Get utilization of a resource.
ResourceValue TaskImpl::get_resource_usage (ResourceID resource_id)
{
  ResourceMap::iterator iter = this->resources_.find (resource_id);
  if (iter == this->resources_.end ())
    return 0;

  return iter->second;
};

// Get all resources with utilization.
const ResourceMap& TaskImpl::get_all_resources ()
{
  return this->resources_;
};