Class: SQLite3::Backup

Inherits:
Object
  • Object
show all
Defined in:
lib/sqlite3/ffi/backup.rb

Instance Method Summary collapse

Constructor Details

#initialize(dstdb, dstname, srcdb, srcname) ⇒ Backup

Returns a new instance of Backup.



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/sqlite3/ffi/backup.rb', line 3

def initialize(dstdb, dstname, srcdb, srcname)
  if srcdb.closed?
    raise ArgumentError, "cannot backup from a closed database"
  end
  if dstdb.closed?
    raise ArgumentError, "cannot backup to a closed database"
  end

  ddb = dstdb.instance_variable_get(:@db)
  @p =
    FFI::CApi.sqlite3_backup_init(
      ddb,
      FFI.string_value(dstname),
      srcdb.instance_variable_get(:@db),
      FFI.string_value(srcname)
    )

  if @p.null?
    FFI.check(ddb, FFI::CApi.sqlite3_errcode(ddb))
  end
end

Instance Method Details

#finishObject



31
32
33
34
35
36
37
# File 'lib/sqlite3/ffi/backup.rb', line 31

def finish
  require_open_backup

  FFI::CApi.sqlite3_backup_finish(@p)
  @p = nil
  nil
end

#pagecountObject



45
46
47
48
49
# File 'lib/sqlite3/ffi/backup.rb', line 45

def pagecount
  require_open_backup

  FFI::CApi.sqlite3_backup_pagecount(@p)
end

#remainingObject



39
40
41
42
43
# File 'lib/sqlite3/ffi/backup.rb', line 39

def remaining
  require_open_backup

  FFI::CApi.sqlite3_backup_remaining(@p)
end

#step(n_page) ⇒ Object



25
26
27
28
29
# File 'lib/sqlite3/ffi/backup.rb', line 25

def step(n_page)
  require_open_backup

  FFI::CApi.sqlite3_backup_step(@p, n_page)
end