aboutsummaryrefslogtreecommitdiff
path: root/odb/section.cxx
blob: 0fe52113848165085e8f36936c4f965dd1d8f625 (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
// file      : odb/section.cxx
// license   : GNU GPL v2; see accompanying LICENSE file

#include <odb/section.hxx>

namespace odb
{
  void section::
  disarm ()
  {
    transaction& t (transaction::current ());
    t.callback_unregister (this);
    state_.armed = 0;
  }

  void section::
  transacion_callback (unsigned short event, void* key, unsigned long long)
  {
    section& s (*static_cast<section*> (key));

    if (event == transaction::event_rollback && s.state_.restore)
      s.state_.changed = 1;

    s.state_.armed = 0;
    s.state_.restore = 0;
  }
}