aboutsummaryrefslogtreecommitdiff
path: root/odb/section.cxx
blob: bf92ca79ed8ddd01eb2d9652d64b5acf7276e5fd (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
// file      : odb/section.cxx
// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// 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;
  }
}