public function __construct(Session $session, $procedureName)
{
$this->id = Utils::getUniqueId();
$this->session = $session;
$this->procedureName = $procedureName;
$this->allowMultipleRegistrations = false;
$this->invokeType = 'single';
$this->discloseCaller = false;
$this->calls = [];
$this->registeredAt = new \DateTime();
$this->invocationCount = 0;
$this->busyTime = 0;
$this->invocationAverageTime = 0;
$this->maxSimultaneousCalls = 0;
$this->lastCallStartedAt = null;
$this->lastIdledAt = $this->registeredAt;
$this->busyStart = null;
$this->completedCallTimeTotal = 0;
}