summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/examples/ImR/Advanced/Manager_i.cpp
blob: 7a03c0c7de4ec337a7a4f498f538b8a116fef290 (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
// -*- C++ -*-
//
// $Id$
#include "Manager_i.h"

Manager_i::Manager_i (long retryCount)
: server_instance_(0)
, retry_count_(retryCount)
, retry_attempt_(0)
{
}

Manager_i::~Manager_i (void)
{
}

CORBA::Long Manager_i::registerServer ()
ACE_THROW_SPEC ((CORBA::SystemException))
{
  if (retry_attempt_ < retry_count_)
  {
    ++retry_attempt_;
    return -1;
  }
  return ++server_instance_;
}

void Manager_i::startRetry (CORBA::Long count)
ACE_THROW_SPEC ((CORBA::SystemException))
{
  retry_count_ = count;
  retry_attempt_ = 0;
}

CORBA::Long Manager_i::endRetry ()
ACE_THROW_SPEC ((CORBA::SystemException))
{
  return retry_count_ - retry_attempt_;
}