~ubuntu-branches/ubuntu/breezy/ace/breezy

« back to all changes in this revision

Viewing changes to TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Update_Manager.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Adam Conrad, Benjamin Montgomery, Adam Conrad
  • Date: 2005-09-18 22:51:38 UTC
  • mfrom: (1.2.1 upstream) (2.1.1 sarge) (0.1.2 woody)
  • Revision ID: james.westby@ubuntu.com-20050918225138-seav22q6fyylb536
Tags: 5.4.7-3ubuntu1
[ Benjamin Montgomery ]
* Added a patch for amd64 and powerpc that disables the compiler
  option -fvisibility-inlines-hidden

[ Adam Conrad ]
* Added DPATCH_OPTION_CPP=1 to debian/patches/00options to make
  Benjamin's above changes work correctly with dpatch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// Update_Manager.cpp,v 1.2 2003/10/15 18:06:29 huangming Exp
2
 
 
3
 
#include "Update_Manager.h"
4
 
 
5
 
ACE_RCSID (EventChannel,
6
 
           Update_Manager,
7
 
           "Update_Manager.cpp,v 1.2 2003/10/15 18:06:29 huangming Exp")
8
 
 
9
 
 
10
 
Update_Manager::Update_Manager(ACE_Auto_Event& evt,
11
 
                               int num_backups,
12
 
                               int transaction_depth,
13
 
                               bool& success)
14
 
: evt_(evt)
15
 
, replied_(num_backups)
16
 
, suicide_condition_(num_backups)
17
 
, num_backups_(num_backups)
18
 
, transaction_level_(transaction_depth)
19
 
, success_(success)
20
 
{
21
 
  suicide_condition_.flip();
22
 
  signal_condition_.resize(transaction_depth, true);
23
 
  signal_condition_.resize(num_backups);
24
 
}
25
 
 
26
 
Update_Manager::~Update_Manager()
27
 
{
28
 
}
29
 
 
30
 
void Update_Manager::handle_reply(int id)
31
 
{
32
 
  ACE_Guard<ACE_Thread_Mutex> guard(mutex_);
33
 
  replied_[id] = true;
34
 
 
35
 
  if ((replied_ & signal_condition_) == signal_condition_) {
36
 
    success_ = true;
37
 
    evt_.signal();
38
 
  }
39
 
  if (replied_ == suicide_condition_)
40
 
    delete this;
41
 
}
42
 
 
43
 
void Update_Manager::handle_exception(int id)
44
 
{
45
 
  ACE_Guard<ACE_Thread_Mutex> guard(mutex_);
46
 
  replied_[id] = true;
47
 
  ++transaction_level_;
48
 
 
49
 
  if (num_backups_ > transaction_level_) {
50
 
    signal_condition_[transaction_level_]=true;
51
 
  }
52
 
  else {
53
 
    success_ = false;
54
 
    evt_.signal();
55
 
  }
56
 
  if (replied_ == suicide_condition_)
57
 
    delete this;
58
 
}
59