rdbxml 2.3.10 → 2.4.13.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/MIT-LICENSE +1 -1
- data/README.rdoc +33 -0
- data/Rakefile +29 -73
- data/docs/dbxml.rb +5 -1
- data/ext/db-minimal.i +78 -0
- data/ext/dbxml.i +205 -104
- data/ext/dbxml_ruby.i +8 -7
- data/lib/rdbxml.rb +21 -28
- data/test/test_dbxml.rb +1 -2
- data/test/test_rdbxml.rb +1 -1
- metadata +66 -58
- data/README +0 -68
- data/docs/db.rb +0 -6
- data/ext/db.i +0 -23
- data/ext/dbxml_wrap.cc +0 -30866
- data/extconf.rb +0 -9
- data/rake/extensiontask.rb +0 -188
- data/rake/swigextensiontask.rb +0 -100
- data/test/test_db.rb +0 -11
data/MIT-LICENSE
CHANGED
data/README.rdoc
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
= RDBXML -- XML Databases for Ruby
|
2
|
+
|
3
|
+
This package provides wrapper functions to the C++ API for Oracle Berkeley
|
4
|
+
DB XML (Dbxml) and as well as pure-Ruby convenience functions (RDBXML).
|
5
|
+
|
6
|
+
== Requirements
|
7
|
+
* Rake[http://rake.rubyforge.org] >= 7.0
|
8
|
+
* Oracle {Berkeley DB XML}[http://www.oracle.com/technology/products/berkeley-db/xml/index.html] = 2.4.13
|
9
|
+
|
10
|
+
== Example Usage
|
11
|
+
require 'rubygems'
|
12
|
+
require 'rdbxml'
|
13
|
+
|
14
|
+
# create database directory
|
15
|
+
env_dir = './db-env'
|
16
|
+
Dir.mkdir env_dir unless File.exists? env_dir
|
17
|
+
|
18
|
+
# create environment, database, and container
|
19
|
+
env = RDBXML::env env_dir
|
20
|
+
db = RDBXML::XmlManager.new env, 0
|
21
|
+
docs = db['documents']
|
22
|
+
|
23
|
+
# Create document
|
24
|
+
docs['Document Name'] = '<doc>Document XML</doc>'
|
25
|
+
|
26
|
+
# Read document
|
27
|
+
puts docs['Document Name'].to_s
|
28
|
+
|
29
|
+
Author:: Steve Sloan (mailto:steve@finagle.org)
|
30
|
+
Website:: http://rdbxml.rubyforge.org
|
31
|
+
Rubyforge:: http://rubyforge.org/projects/rdbxml
|
32
|
+
Copyright:: Copyright (c) 2006-2009 Steve Sloan
|
33
|
+
License:: MIT
|
data/Rakefile
CHANGED
@@ -5,95 +5,51 @@ require 'rake/testtask'
|
|
5
5
|
require 'rake/rdoctask'
|
6
6
|
require 'rake/gempackagetask'
|
7
7
|
require 'rake/contrib/rubyforgepublisher'
|
8
|
+
require 'fileutils'
|
8
9
|
|
9
|
-
GEM_VERSION = '2.
|
10
|
-
|
11
|
-
|
12
|
-
if dbxml_dist
|
13
|
-
puts "*** Using DBXML distribution in #{dbxml_dist}"
|
14
|
-
Rake::ExtensionTask.env.update(
|
15
|
-
:swig_includedirs => [File.join( dbxml_dist, 'dbxml/dist/swig' ), '.'],
|
16
|
-
:includedirs => File.join( dbxml_dist, 'install/include' ),
|
17
|
-
:libdirs => File.join( dbxml_dist, 'install/lib' )
|
18
|
-
)
|
19
|
-
else
|
20
|
-
Rake::ExtensionTask.env.update(
|
21
|
-
:includedirs => '/usr/local/include',
|
22
|
-
:libdirs => '/usr/local/lib'
|
23
|
-
)
|
24
|
-
end
|
10
|
+
GEM_VERSION = '2.4.13.2'
|
11
|
+
ifacedir = File.join( File.dirname(__FILE__), 'ext' )
|
12
|
+
Rake::ExtensionTask.env[:swig_includedirs] << ifacedir
|
25
13
|
|
26
14
|
desc "Build the interface extension"
|
27
|
-
task :extensions =>
|
28
|
-
|
29
|
-
desc "Build the BDB interface extension"
|
30
|
-
Rake::SWIGExtensionTask.new :db do |t|
|
31
|
-
t.dir = 'ext'
|
32
|
-
t.link_libs += ['db', 'db_cxx']
|
33
|
-
end
|
15
|
+
task :extensions => :dbxml
|
34
16
|
|
35
17
|
desc "Build the BDBXML interface extension"
|
36
18
|
Rake::SWIGExtensionTask.new :dbxml do |t|
|
37
19
|
t.dir = 'ext'
|
38
|
-
t.deps[:dbxml]
|
39
|
-
t.link_libs += ['db', 'db_cxx', 'dbxml', 'xqilla', 'xerces-c']
|
20
|
+
t.deps[:dbxml] += [ :'db-minimal', :dbxml_ruby ]
|
21
|
+
t.link_libs += ['db', 'db_cxx', 'dbxml-2.4', 'xqilla', 'xerces-c']
|
40
22
|
end
|
41
|
-
CLEAN.exclude 'ext/dbxml_wrap.cc' # Hack for swig bug
|
42
23
|
|
43
24
|
task :test => :extensions
|
44
25
|
Rake::TestTask.new do |t|
|
45
|
-
t.libs <<
|
26
|
+
t.libs << 'ext'
|
46
27
|
t.test_files = FileList['test/test_*.rb']
|
47
28
|
t.verbose = true
|
48
29
|
CLEAN.include 'test/test_*.db'
|
49
30
|
end
|
50
31
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
rdoc.rdoc_files.include 'README', 'MIT-LICENSE'
|
58
|
-
rdoc.rdoc_files.include 'lib/**/*.rb'
|
59
|
-
rdoc.rdoc_files.include 'docs/**/*.rb', 'docs/**/*.rdoc'
|
60
|
-
rdoc.rdoc_files.include 'rake/**/*task.rb'
|
61
|
-
end
|
62
|
-
|
63
|
-
GEM_FILES = docs.rdoc_files + FileList[
|
64
|
-
'Rakefile',
|
65
|
-
'ext/**/*.i',
|
66
|
-
'ext/dbxml_wrap.cc', # Hack for SWIG bug
|
67
|
-
'rake/**/*.rb',
|
68
|
-
'test/**/test_*.rb',
|
69
|
-
]
|
70
|
-
|
71
|
-
spec = Gem::Specification.new do |s|
|
72
|
-
s.platform = Gem::Platform::RUBY
|
73
|
-
s.name = 'rdbxml'
|
74
|
-
s.version = GEM_VERSION
|
75
|
-
s.date = Date.today.to_s
|
76
|
-
s.authors = ["Steve Sloan"]
|
77
|
-
s.summary = 'Provides wrappers for the BDB XML C++ APIs, plus pure Ruby extensions'
|
78
|
-
# s.description =
|
79
|
-
s.files = GEM_FILES.to_a.delete_if {|f| f.include?('.svn')}
|
80
|
-
s.autorequire = 'rdbxml'
|
81
|
-
s.test_files = Dir["test/test_*.rb"]
|
82
|
-
s.add_dependency 'rake', '> 0.7.0'
|
83
|
-
|
84
|
-
s.extensions << './extconf.rb'
|
85
|
-
s.require_paths << 'ext'
|
86
|
-
|
87
|
-
s.has_rdoc = true
|
88
|
-
s.extra_rdoc_files = docs.rdoc_files.reject { |fn| fn =~ /\.rb$/ }.to_a
|
89
|
-
s.rdoc_options = docs.options
|
90
|
-
end
|
91
|
-
Rake::GemPackageTask.new spec do |pkg|
|
92
|
-
pkg.need_zip = true
|
93
|
-
pkg.need_tar = true
|
32
|
+
if File.exist? 'rdbxml.gemspec'
|
33
|
+
spec = Gem::Specification.load 'rdbxml.gemspec'
|
34
|
+
Rake::GemPackageTask.new spec do |pkg|
|
35
|
+
pkg.need_zip = true
|
36
|
+
pkg.need_tar = true
|
37
|
+
end
|
94
38
|
end
|
95
39
|
|
96
|
-
|
97
|
-
|
40
|
+
# docs = Rake::RDocTask.new :rdoc do |rdoc|
|
41
|
+
# rdoc.rdoc_dir = 'html'
|
42
|
+
# rdoc.title = "RDBXML -- XML Database for Ruby"
|
43
|
+
# rdoc.options += ['--line-numbers', '--inline-source', '--main', 'README.rdoc', '--exclude', 'ext/*.c*']
|
44
|
+
# rdoc.rdoc_files.include 'README.rdoc', 'MIT-LICENSE'
|
45
|
+
# rdoc.rdoc_files.include 'lib/**/*.rb'
|
46
|
+
# rdoc.rdoc_files.include 'docs/**/*.rb', 'docs/**/*.rdoc'
|
47
|
+
# rdoc.rdoc_files.include 'rake/**/*task.rb'
|
48
|
+
# end
|
49
|
+
# if File.exist? 'publish.rake'
|
50
|
+
# load 'publish.rake'
|
51
|
+
# task :cruise => :publish
|
52
|
+
# end
|
53
|
+
|
54
|
+
task :default => [ :extensions, :test, :clean ]
|
98
55
|
|
99
|
-
load 'publish.rf' if File.exist? 'publish.rf'
|
data/docs/dbxml.rb
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
# = Dbxml -- Berkly DB XML API Interface
|
2
2
|
#
|
3
|
-
# This module provides a wrapper around the
|
3
|
+
# This module provides a wrapper around the {Berkeley DB XML C++ API}[http://www.oracle.com/technology/documentation/berkeley-db/xml/api_cxx/frame.html]
|
4
4
|
|
5
5
|
module Dbxml
|
6
6
|
end
|
7
|
+
|
8
|
+
# Wraps and extends the DbEnv[http://www.oracle.com/technology/documentation/berkeley-db/xml/api_cxx/env_class.html] class.
|
9
|
+
class Dbxml::DbEnv
|
10
|
+
end
|
data/ext/db-minimal.i
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
class DbTxn
|
2
|
+
{
|
3
|
+
public:
|
4
|
+
int abort();
|
5
|
+
int commit(u_int32_t flags);
|
6
|
+
int discard(u_int32_t flags);
|
7
|
+
u_int32_t id();
|
8
|
+
int set_timeout(db_timeout_t timeout, u_int32_t flags);
|
9
|
+
|
10
|
+
private:
|
11
|
+
// Note: use DbEnv::txn_begin() to get pointers to a DbTxn,
|
12
|
+
// and call DbTxn::abort() or DbTxn::commit rather than
|
13
|
+
// delete to release them.
|
14
|
+
//
|
15
|
+
DbTxn();
|
16
|
+
virtual ~DbTxn();
|
17
|
+
};
|
18
|
+
|
19
|
+
class DbEnv
|
20
|
+
{
|
21
|
+
public:
|
22
|
+
// After using this constructor, you can set any needed
|
23
|
+
// parameters for the environment using the set_* methods.
|
24
|
+
// Then call open() to finish initializing the environment
|
25
|
+
// and attaching it to underlying files.
|
26
|
+
//
|
27
|
+
DbEnv(u_int32_t flags);
|
28
|
+
virtual ~DbEnv();
|
29
|
+
|
30
|
+
// These methods match those in the C interface.
|
31
|
+
//
|
32
|
+
virtual int close(u_int32_t);
|
33
|
+
virtual int dbremove(DbTxn *txn, const char *name, const char *subdb,
|
34
|
+
u_int32_t flags);
|
35
|
+
virtual int dbrename(DbTxn *txn, const char *name, const char *subdb,
|
36
|
+
const char *newname, u_int32_t flags);
|
37
|
+
virtual int open(const char *, u_int32_t, int);
|
38
|
+
virtual int remove(const char *, u_int32_t);
|
39
|
+
virtual int set_cachesize(u_int32_t, u_int32_t, int);
|
40
|
+
virtual int set_data_dir(const char *);
|
41
|
+
virtual int set_encrypt(const char *, u_int32_t);
|
42
|
+
virtual void set_errpfx(const char *);
|
43
|
+
virtual int set_flags(u_int32_t, int);
|
44
|
+
virtual int set_lg_bsize(u_int32_t);
|
45
|
+
virtual int set_lg_dir(const char *);
|
46
|
+
virtual int set_lg_max(u_int32_t);
|
47
|
+
virtual int set_lg_regionmax(u_int32_t);
|
48
|
+
virtual int set_lk_detect(u_int32_t);
|
49
|
+
virtual int set_lk_max_lockers(u_int32_t);
|
50
|
+
virtual int set_lk_max_locks(u_int32_t);
|
51
|
+
virtual int set_lk_max_objects(u_int32_t);
|
52
|
+
virtual int set_mp_mmapsize(size_t);
|
53
|
+
virtual int set_shm_key(long);
|
54
|
+
virtual int set_timeout(db_timeout_t, u_int32_t);
|
55
|
+
virtual int set_tmp_dir(const char *);
|
56
|
+
virtual int mutex_set_tas_spins(u_int32_t);
|
57
|
+
virtual int set_tx_max(u_int32_t);
|
58
|
+
virtual int set_verbose(u_int32_t which, int);
|
59
|
+
|
60
|
+
// Version information. A static method so it can be obtained anytime.
|
61
|
+
//
|
62
|
+
static char *version(int *major, int *minor, int *patch);
|
63
|
+
|
64
|
+
// Convert DB errors to strings
|
65
|
+
static char *strerror(int);
|
66
|
+
|
67
|
+
// Transaction functions
|
68
|
+
//
|
69
|
+
%extend {
|
70
|
+
DbTxn *txn_begin(DbTxn *pid, u_int32_t flags) {
|
71
|
+
DbTxn *txn;
|
72
|
+
self->txn_begin(pid, &txn, flags);
|
73
|
+
return txn;
|
74
|
+
}
|
75
|
+
}
|
76
|
+
virtual int txn_checkpoint(u_int32_t kbyte, u_int32_t min,
|
77
|
+
u_int32_t flags);
|
78
|
+
};
|
data/ext/dbxml.i
CHANGED
@@ -7,7 +7,48 @@
|
|
7
7
|
#include <errno.h>
|
8
8
|
#include <fstream>
|
9
9
|
|
10
|
+
/* compat w/pre-4.4 */
|
11
|
+
#ifndef DB_READ_COMMITTED
|
12
|
+
#define DB_READ_COMMITTED DB_DEGREE_2
|
13
|
+
#define DB_READ_UNCOMMITTED DB_DIRTY_READ
|
14
|
+
#endif
|
15
|
+
|
16
|
+
/* If these are not defined, there are no equivalents; just make things compile */
|
17
|
+
#ifndef DB_TXN_SNAPSHOT
|
18
|
+
#define DB_TXN_SNAPSHOT -1
|
19
|
+
#define DB_MULTIVERSION -1
|
20
|
+
#endif
|
21
|
+
%}
|
22
|
+
|
23
|
+
#if !defined(SWIGJAVA)
|
24
|
+
%{
|
10
25
|
using namespace DbXml;
|
26
|
+
%}
|
27
|
+
#endif
|
28
|
+
|
29
|
+
#if defined(SWIGJAVA)
|
30
|
+
%include "std_string.i"
|
31
|
+
%include "dbxml_java.i"
|
32
|
+
#elif defined(SWIGPYTHON)
|
33
|
+
%include "std_string.i"
|
34
|
+
%include "dbxml_python.i"
|
35
|
+
#elif defined(SWIGTCL8)
|
36
|
+
%include "std_string.i"
|
37
|
+
%include "dbxml_tcl.i"
|
38
|
+
#elif defined(SWIGCSHARP)
|
39
|
+
%include "dbxml_csharp.i"
|
40
|
+
#elif defined(SWIGPHP4)
|
41
|
+
%include "std_string.i"
|
42
|
+
%include "dbxml_php4.i"
|
43
|
+
#elif defined(SWIGRUBY)
|
44
|
+
%include "std_string.i"
|
45
|
+
%include "std_except.i"
|
46
|
+
%include "dbxml_ruby.i"
|
47
|
+
#else
|
48
|
+
#error "Unknown SWIG target language"
|
49
|
+
#endif
|
50
|
+
|
51
|
+
%{
|
11
52
|
|
12
53
|
class XmlIndexDeclaration {
|
13
54
|
public:
|
@@ -36,33 +77,13 @@ public:
|
|
36
77
|
|
37
78
|
%}
|
38
79
|
|
39
|
-
#if defined(SWIGJAVA)
|
40
|
-
%include "std_string.i"
|
41
|
-
%include "dbxml_java.i"
|
42
|
-
#elif defined(SWIGPYTHON)
|
43
|
-
%include "std_string.i"
|
44
|
-
%include "dbxml_python.i"
|
45
|
-
#elif defined(SWIGTCL8)
|
46
|
-
%include "std_string.i"
|
47
|
-
%include "dbxml_tcl.i"
|
48
|
-
#elif defined(SWIGCSHARP)
|
49
|
-
%include "dbxml_csharp.i"
|
50
|
-
#elif defined(SWIGPHP4)
|
51
|
-
%include "std_string.i"
|
52
|
-
%include "dbxml_php4.i"
|
53
|
-
#elif defined(SWIGRUBY)
|
54
|
-
%include "dbxml_ruby.i"
|
55
|
-
#else
|
56
|
-
#error "Unknown SWIG target language"
|
57
|
-
#endif
|
58
|
-
|
59
80
|
// DBXML_USEOVERLOADS -- defined when a language supports overloaded
|
60
81
|
// functions. If defined, the "OVERLOAD_NAME" macro is a no-op
|
61
82
|
#if defined(SWIGJAVA) || defined(SWIGPYTHON) || defined(SWIGCSHARP) || defined(SWIGTCL8) || defined(SWIGRUBY)
|
62
83
|
#define DBXML_USEOVERLOADS
|
63
84
|
#endif
|
64
85
|
|
65
|
-
#if defined(SWIGJAVA) || defined(SWIGPYTHON)
|
86
|
+
#if defined(SWIGJAVA) || defined(SWIGPYTHON) || defined(SWIGRUBY)
|
66
87
|
#define DBXML_USE_RESOLVER
|
67
88
|
#endif
|
68
89
|
|
@@ -70,19 +91,25 @@ public:
|
|
70
91
|
typedef int int32_t;
|
71
92
|
|
72
93
|
class XmlManager;
|
94
|
+
#ifndef SWIGJAVA
|
73
95
|
class XmlDocument;
|
96
|
+
#endif
|
74
97
|
class XmlContainer;
|
75
98
|
class XmlIndexSpecification;
|
76
99
|
class XmlIndexLookup;
|
77
100
|
class XmlInputStream;
|
78
|
-
class XmlQueryContext;
|
79
101
|
class XmlResults;
|
80
102
|
class XmlUpdateContext;
|
103
|
+
#ifndef SWIGJAVA
|
104
|
+
class XmlQueryContext;
|
81
105
|
class XmlValue;
|
106
|
+
#endif
|
82
107
|
class XmlQueryExpression;
|
83
108
|
class XmlModify;
|
84
109
|
class XmlTransaction;
|
110
|
+
#ifndef SWIGJAVA
|
85
111
|
class XmlMetaDataIterator;
|
112
|
+
#endif
|
86
113
|
class XmlStatistics;
|
87
114
|
class XmlEventReader;
|
88
115
|
class XmlEventWriter;
|
@@ -103,11 +130,23 @@ class XmlResolver;
|
|
103
130
|
#ifndef SWIGJAVA
|
104
131
|
// For Java, this is done differently
|
105
132
|
enum {
|
106
|
-
DB_CREATE,
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
133
|
+
DB_CREATE,
|
134
|
+
DB_READ_UNCOMMITTED,
|
135
|
+
DB_DIRTY_READ,
|
136
|
+
DB_EXCL,
|
137
|
+
DB_NOMMAP,
|
138
|
+
DB_RDONLY,
|
139
|
+
DB_THREAD,
|
140
|
+
DB_READ_COMMITTED,
|
141
|
+
DB_DEGREE_2,
|
142
|
+
DB_INIT_LOCK,
|
143
|
+
DB_INIT_LOG,
|
144
|
+
DB_INIT_MPOOL,
|
145
|
+
DB_INIT_TXN,
|
146
|
+
DB_SALVAGE,
|
147
|
+
DB_AGGRESSIVE,
|
148
|
+
DB_TXN_SNAPSHOT,
|
149
|
+
DB_MULTIVERSION
|
111
150
|
};
|
112
151
|
|
113
152
|
#endif
|
@@ -128,19 +167,23 @@ enum {
|
|
128
167
|
//
|
129
168
|
// Global flags
|
130
169
|
enum {
|
131
|
-
DBXML_ADOPT_DBENV
|
170
|
+
DBXML_ADOPT_DBENV = 0x00000001,
|
132
171
|
DBXML_ALLOW_EXTERNAL_ACCESS = 0x00000002,
|
133
|
-
DBXML_ALLOW_AUTO_OPEN
|
172
|
+
DBXML_ALLOW_AUTO_OPEN = 0x00000004,
|
134
173
|
DBXML_ALLOW_VALIDATION = 0x00100000,
|
135
174
|
DBXML_TRANSACTIONAL = 0x00200000,
|
136
175
|
DBXML_CHKSUM = 0x00400000,
|
137
176
|
DBXML_ENCRYPT = 0x00800000,
|
138
177
|
DBXML_INDEX_NODES = 0x01000000,
|
139
|
-
DBXML_NO_INDEX_NODES =
|
178
|
+
DBXML_NO_INDEX_NODES = 0x00010000,
|
179
|
+
DBXML_STATISTICS = 0x02000000,
|
180
|
+
DBXML_NO_STATISTICS = 0x04000000,
|
140
181
|
DBXML_REVERSE_ORDER = 0x00100000,
|
141
182
|
DBXML_INDEX_VALUES = 0x00200000,
|
142
183
|
DBXML_CACHE_DOCUMENTS = 0x00400000,
|
143
184
|
DBXML_LAZY_DOCS = 0x00800000,
|
185
|
+
DBXML_DOCUMENT_PROJECTION = 0x80000000,
|
186
|
+
DBXML_NO_AUTO_COMMIT = 0x00010000,
|
144
187
|
DBXML_WELL_FORMED_ONLY = 0x01000000,
|
145
188
|
DBXML_GEN_NAME = 0x02000000
|
146
189
|
};
|
@@ -254,7 +297,11 @@ void setLogCategory(enum LogCategory category, bool enabled) {
|
|
254
297
|
%newobject XmlContainer::getIndexSpecification(XmlTransaction&) const;
|
255
298
|
%newobject XmlContainer::getIndexSpecification(XmlTransaction&,
|
256
299
|
u_int32_t flags) const;
|
300
|
+
#ifdef SWIGJAVA
|
301
|
+
%newobject XmlManager::createIndexLookupInternal(
|
302
|
+
#else
|
257
303
|
%newobject XmlManager::createIndexLookup(
|
304
|
+
#endif
|
258
305
|
XmlContainer &cont,
|
259
306
|
const std::string &uri,
|
260
307
|
const std::string &name,
|
@@ -270,15 +317,17 @@ void setLogCategory(enum LogCategory category, bool enabled) {
|
|
270
317
|
#ifndef SWIGJAVA
|
271
318
|
%newobject XmlContainer::getDocument(const std::string&);
|
272
319
|
%newobject XmlContainer::getDocument(XmlTransaction&, const std::string&);
|
273
|
-
%newobject XmlContainer::getNode(const std::string&);
|
274
|
-
%newobject XmlContainer::getNode(XmlTransaction&, const std::string&);
|
275
320
|
#endif
|
276
321
|
%newobject XmlContainer::getDocument(const std::string&, u_int32_t);
|
277
322
|
%newobject XmlContainer::getDocument(XmlTransaction&, const std::string&,
|
278
323
|
u_int32_t);
|
324
|
+
#ifndef SWIGJAVA
|
279
325
|
%newobject XmlContainer::getNode(const std::string&, u_int32_t);
|
326
|
+
%newobject XmlContainer::getNode(XmlTransaction&, const std::string&);
|
327
|
+
%newobject XmlContainer::getNode(const std::string&);
|
280
328
|
%newobject XmlContainer::getNode(XmlTransaction&, const std::string&,
|
281
329
|
u_int32_t);
|
330
|
+
#endif
|
282
331
|
%newobject XmlContainer::getAllDocuments(u_int32_t);
|
283
332
|
%newobject XmlContainer::getAllDocuments(XmlTransaction&, u_int32_t);
|
284
333
|
%newobject XmlContainer::lookupIndex(XmlQueryContext &, const std::string &,
|
@@ -349,11 +398,11 @@ void setLogCategory(enum LogCategory category, bool enabled) {
|
|
349
398
|
const std::string &, const std::string &,
|
350
399
|
const std::string &, const std::string &,
|
351
400
|
const std::string &, const XmlValue &);
|
352
|
-
|
401
|
+
#ifndef SWIGJAVA
|
353
402
|
%newobject XmlDocument::getContent() const;
|
354
403
|
%newobject XmlDocument::getMetaDataIterator() const;
|
355
404
|
%newobject XmlDocument::getContentAsXmlInputStream() const;
|
356
|
-
|
405
|
+
#endif
|
357
406
|
%newobject XmlQueryContext::getVariableValue(const std::string&) const;
|
358
407
|
|
359
408
|
%newobject XmlQueryExpression::execute(XmlQueryContext &, u_int32_t) const;
|
@@ -370,7 +419,7 @@ void setLogCategory(enum LogCategory category, bool enabled) {
|
|
370
419
|
XmlQueryContext &) const;
|
371
420
|
|
372
421
|
|
373
|
-
#if defined(
|
422
|
+
#if defined(SWIGPYTHON) || defined(SWIGPHP4) || defined(SWIGRUBY)
|
374
423
|
%newobject XmlResults::next();
|
375
424
|
%newobject XmlResults::previous();
|
376
425
|
%newobject XmlResults::peek();
|
@@ -380,6 +429,7 @@ void setLogCategory(enum LogCategory category, bool enabled) {
|
|
380
429
|
%newobject XmlValue::asDocument(const XmlQueryContext*) const;
|
381
430
|
#endif
|
382
431
|
|
432
|
+
#ifndef SWIGJAVA
|
383
433
|
%newobject XmlValue::getParentNode() const;
|
384
434
|
%newobject XmlValue::getFirstChild() const;
|
385
435
|
%newobject XmlValue::getLastChild() const;
|
@@ -389,12 +439,12 @@ void setLogCategory(enum LogCategory category, bool enabled) {
|
|
389
439
|
%newobject XmlValue::getOwnerElement() const;
|
390
440
|
%newobject XmlValue::asBinary() const;
|
391
441
|
%newobject XmlValue::loadNodeHandle() const;
|
392
|
-
|
442
|
+
#endif
|
393
443
|
%newobject XmlIndexSpecification::find(const std::string&, const std::string&);
|
394
444
|
%newobject XmlIndexSpecification::next();
|
395
|
-
|
445
|
+
#ifndef SWIGJAVA
|
396
446
|
%newobject XmlMetaDataIterator::next();
|
397
|
-
|
447
|
+
#endif
|
398
448
|
#if defined(DBXML_USE_RESOLVER)
|
399
449
|
%newobject XmlResolver::resolveSchema(XmlTransaction*, XmlManager&, const std::string&, const std::string&) const;
|
400
450
|
%newobject XmlResolver::resolveEntity(XmlTransaction*, XmlManager&, const std::string&, const std::string&) const;
|
@@ -431,9 +481,10 @@ OVERLOAD_NAME(XmlManagerFromEnv)
|
|
431
481
|
u_int32_t getDefaultSequenceIncrement();
|
432
482
|
void setDefaultContainerType(enum XmlContainer::ContainerType type);
|
433
483
|
enum XmlContainer::ContainerType getDefaultContainerType();
|
434
|
-
|
435
|
-
|
436
|
-
|
484
|
+
// getDbEnv() does not readily translate to scripting interfaces. If users
|
485
|
+
// need it, they should create and save it themselves.
|
486
|
+
// DbEnv *getDbEnv();
|
487
|
+
|
437
488
|
const std::string &getHome() const;
|
438
489
|
#if defined(DBXML_USE_RESOLVER)
|
439
490
|
void registerResolver(const XmlResolver &resolver);
|
@@ -452,6 +503,14 @@ OVERLOAD_NAME(renameContainerWithTxn)
|
|
452
503
|
void renameContainer(XmlTransaction &txn, const std::string &oldName,
|
453
504
|
const std::string &newName);
|
454
505
|
void upgradeContainer(const std::string &name, XmlUpdateContext &uc);
|
506
|
+
#ifdef SWIGJAVA
|
507
|
+
void compactContainer(const std::string &name, XmlUpdateContext &uc);
|
508
|
+
void compactContainer(XmlTransaction &txn, const std::string &name,
|
509
|
+
XmlUpdateContext &uc);
|
510
|
+
void truncateContainer(const std::string &name, XmlUpdateContext &uc);
|
511
|
+
void truncateContainer(XmlTransaction &txn, const std::string &name,
|
512
|
+
XmlUpdateContext &uc);
|
513
|
+
#else
|
455
514
|
void compactContainer(const std::string &name, XmlUpdateContext &uc,
|
456
515
|
u_int32_t flags = 0);
|
457
516
|
void compactContainer(XmlTransaction &txn, const std::string &name,
|
@@ -460,6 +519,7 @@ OVERLOAD_NAME(renameContainerWithTxn)
|
|
460
519
|
u_int32_t flags = 0);
|
461
520
|
void truncateContainer(XmlTransaction &txn, const std::string &name,
|
462
521
|
XmlUpdateContext &uc, u_int32_t flags = 0);
|
522
|
+
#endif
|
463
523
|
void reindexContainer(const std::string &name, XmlUpdateContext &uc,
|
464
524
|
u_int32_t flags = 0);
|
465
525
|
void reindexContainer(XmlTransaction &txn, const std::string &name,
|
@@ -601,17 +661,15 @@ OVERLOAD_NAME(openContainerWithTxnAndType)
|
|
601
661
|
if (flags & DB_SALVAGE)
|
602
662
|
out.close();
|
603
663
|
}
|
664
|
+
#ifndef SWIGJAVA
|
604
665
|
XmlDocument *createDocument() {
|
605
666
|
return new XmlDocument(self->createDocument());
|
606
667
|
}
|
607
|
-
|
608
668
|
XmlQueryContext *createQueryContext(
|
609
669
|
enum XmlQueryContext::ReturnType rt,
|
610
670
|
enum XmlQueryContext::EvaluationType et) {
|
611
671
|
return new XmlQueryContext(self->createQueryContext(rt, et));
|
612
672
|
}
|
613
|
-
|
614
|
-
|
615
673
|
OVERLOAD_NAME(createQueryContextDefaultAll)
|
616
674
|
XmlQueryContext *createQueryContext() {
|
617
675
|
return new XmlQueryContext(self->createQueryContext(
|
@@ -623,11 +681,10 @@ OVERLOAD_NAME(createQueryContextDefaultEvalType)
|
|
623
681
|
enum XmlQueryContext::ReturnType rt) {
|
624
682
|
return new XmlQueryContext(self->createQueryContext(rt, XmlQueryContext::Eager));
|
625
683
|
}
|
626
|
-
|
627
684
|
XmlUpdateContext *createUpdateContext() {
|
628
685
|
return new XmlUpdateContext(self->createUpdateContext());
|
629
686
|
}
|
630
|
-
|
687
|
+
#endif
|
631
688
|
XmlQueryExpression *prepare(const std::string &query,
|
632
689
|
XmlQueryContext &context) {
|
633
690
|
return new XmlQueryExpression(self->prepare(query, context));
|
@@ -639,8 +696,8 @@ OVERLOAD_NAME(prepareWithTxn)
|
|
639
696
|
return new XmlQueryExpression(self->prepare(
|
640
697
|
txn,query, context));
|
641
698
|
}
|
642
|
-
|
643
|
-
|
699
|
+
XmlResults *query(const std::string &query, XmlQueryContext &context,
|
700
|
+
u_int32_t flags) {
|
644
701
|
return new XmlResults(self->query(query, context, flags));
|
645
702
|
}
|
646
703
|
OVERLOAD_NAME(queryWithTxn)
|
@@ -682,8 +739,11 @@ OVERLOAD_NAME(createTransactionDefaultFlags)
|
|
682
739
|
return new XmlTransaction(self->createTransaction((u_int32_t)0));
|
683
740
|
}
|
684
741
|
#endif
|
685
|
-
|
742
|
+
#ifdef SWIGJAVA
|
743
|
+
XmlIndexLookup *createIndexLookupInternal(
|
744
|
+
#else
|
686
745
|
XmlIndexLookup *createIndexLookup(
|
746
|
+
#endif
|
687
747
|
XmlContainer &cont,
|
688
748
|
const std::string &uri, const std::string &name,
|
689
749
|
const std::string &index,
|
@@ -743,8 +803,8 @@ public:
|
|
743
803
|
};
|
744
804
|
#ifndef SWIGJAVA
|
745
805
|
XmlIndexLookup();
|
746
|
-
#endif
|
747
806
|
XmlIndexLookup(const XmlIndexLookup &o);
|
807
|
+
#endif
|
748
808
|
~XmlIndexLookup();
|
749
809
|
bool isNull() const;
|
750
810
|
const std::string &getIndex() const;
|
@@ -757,19 +817,37 @@ public:
|
|
757
817
|
const std::string &getParentURI() const;
|
758
818
|
const std::string &getParentName() const;
|
759
819
|
void setParent(const std::string &uri, const std::string &name);
|
760
|
-
|
820
|
+
#ifndef SWIGJAVA
|
761
821
|
const XmlValue &getLowBoundValue() const;
|
822
|
+
#endif
|
762
823
|
enum XmlIndexLookup::Operation getLowBoundOperation() const;
|
824
|
+
#ifdef SWIGJAVA
|
825
|
+
%rename(setLowBoundInternal) setLowBound;
|
763
826
|
void setLowBound(const XmlValue &value,
|
764
827
|
enum XmlIndexLookup::Operation op);
|
765
|
-
|
828
|
+
#else
|
829
|
+
void setLowBound(const XmlValue &value,
|
830
|
+
enum XmlIndexLookup::Operation op);
|
831
|
+
#endif
|
832
|
+
#ifndef SWIGJAVA
|
766
833
|
const XmlValue &getHighBoundValue() const;
|
834
|
+
#endif
|
767
835
|
enum XmlIndexLookup::Operation getHighBoundOperation() const;
|
836
|
+
#ifdef SWIGJAVA
|
837
|
+
%rename(setHighBoundInternal) setHighBound;
|
768
838
|
void setHighBound(const XmlValue &value,
|
769
839
|
enum XmlIndexLookup::Operation op);
|
770
|
-
|
840
|
+
#else
|
841
|
+
void setHighBound(const XmlValue &value,
|
842
|
+
enum XmlIndexLookup::Operation op);
|
843
|
+
#endif
|
844
|
+
#ifndef SWIGJAVA
|
771
845
|
const XmlContainer &getContainer() const;
|
772
846
|
void setContainer(XmlContainer &container);
|
847
|
+
#else
|
848
|
+
%rename(setContainerInternal) setContainer;
|
849
|
+
void setContainer(XmlContainer &container);
|
850
|
+
#endif
|
773
851
|
%extend {
|
774
852
|
XmlResults *execute(XmlQueryContext &context,
|
775
853
|
u_int32_t flags = 0) const {
|
@@ -870,25 +948,28 @@ OVERLOAD_NAME(replaceDefaultIndexWithTxn)
|
|
870
948
|
void replaceDefaultIndex(XmlTransaction &txn, const std::string &index,
|
871
949
|
XmlUpdateContext &uc);
|
872
950
|
|
873
|
-
|
874
|
-
|
951
|
+
#ifndef SWIGJAVA
|
875
952
|
void putDocument(XmlDocument &document, XmlUpdateContext &context,
|
876
953
|
u_int32_t flags = 0);
|
954
|
+
#endif
|
877
955
|
OVERLOAD_NAME(putDocumentAsString)
|
878
956
|
std::string putDocument(const std::string &name, const std::string &contents,
|
879
957
|
XmlUpdateContext &context, u_int32_t flags = 0);
|
880
958
|
OVERLOAD_NAME(putDocumentAsEventReader)
|
881
959
|
std::string putDocument(const std::string &name, XmlEventReader &reader,
|
882
960
|
XmlUpdateContext &context, u_int32_t flags = 0);
|
961
|
+
#ifndef SWIGJAVA
|
883
962
|
OVERLOAD_NAME(putDocumentAsEventWriter)
|
884
963
|
XmlEventWriter &putDocumentAsEventWriter(XmlDocument &document,
|
885
964
|
XmlUpdateContext &context,
|
886
965
|
u_int32_t flags = 0);
|
887
966
|
void deleteDocument(XmlDocument &document,
|
888
967
|
XmlUpdateContext &context);
|
968
|
+
#endif
|
889
969
|
OVERLOAD_NAME(deleteDocumentByName)
|
890
970
|
void deleteDocument(const std::string &name,
|
891
971
|
XmlUpdateContext &context);
|
972
|
+
#ifndef SWIGJAVA
|
892
973
|
void updateDocument(XmlDocument &document,
|
893
974
|
XmlUpdateContext &context);
|
894
975
|
|
@@ -904,9 +985,11 @@ OVERLOAD_NAME(putDocumentAsInputSourceWithTxn)
|
|
904
985
|
XmlInputStream *input,
|
905
986
|
XmlUpdateContext &context,
|
906
987
|
u_int32_t flags = 0);
|
988
|
+
|
907
989
|
OVERLOAD_NAME(putDocumentWithTxn)
|
908
990
|
void putDocument(XmlTransaction &txn, XmlDocument &document,
|
909
991
|
XmlUpdateContext &context, u_int32_t flags = 0);
|
992
|
+
#endif
|
910
993
|
OVERLOAD_NAME(putDocumentAsStringWithTxn)
|
911
994
|
std::string putDocument(XmlTransaction &txn,
|
912
995
|
const std::string &name,
|
@@ -919,6 +1002,7 @@ OVERLOAD_NAME(putDocumentAsEventReaderWithTxn)
|
|
919
1002
|
XmlEventReader &reader,
|
920
1003
|
XmlUpdateContext &context,
|
921
1004
|
u_int32_t flags = 0);
|
1005
|
+
#ifndef SWIGJAVA
|
922
1006
|
OVERLOAD_NAME(putDocumentAsEventWriterWithTxn)
|
923
1007
|
XmlEventWriter &putDocumentAsEventWriter(XmlTransaction &txn,
|
924
1008
|
XmlDocument &document,
|
@@ -927,13 +1011,15 @@ OVERLOAD_NAME(putDocumentAsEventWriterWithTxn)
|
|
927
1011
|
OVERLOAD_NAME(deleteDocumentWithTxn)
|
928
1012
|
void deleteDocument(XmlTransaction &txn, XmlDocument &document,
|
929
1013
|
XmlUpdateContext &context);
|
1014
|
+
#endif
|
930
1015
|
OVERLOAD_NAME(deleteDocumentByNameWithTxn)
|
931
1016
|
void deleteDocument(XmlTransaction &txn, const std::string &name,
|
932
1017
|
XmlUpdateContext &context);
|
1018
|
+
#ifndef SWIGJAVA
|
933
1019
|
OVERLOAD_NAME(updateDocumentWithTxn)
|
934
1020
|
void updateDocument(XmlTransaction &txn, XmlDocument &document,
|
935
1021
|
XmlUpdateContext &context);
|
936
|
-
|
1022
|
+
#endif
|
937
1023
|
size_t getNumDocuments();
|
938
1024
|
OVERLOAD_NAME(getNumDocumentWithTxn)
|
939
1025
|
size_t getNumDocuments(XmlTransaction &txn);
|
@@ -971,16 +1057,6 @@ OVERLOAD_NAME(getNodeWithTxn)
|
|
971
1057
|
{
|
972
1058
|
return new XmlValue(self->getNode(txn, name, 0));
|
973
1059
|
}
|
974
|
-
#endif
|
975
|
-
OVERLOAD_NAME(getDocumentWithFlags)
|
976
|
-
XmlDocument *getDocument(const std::string &name, u_int32_t flags) {
|
977
|
-
return new XmlDocument(self->getDocument(name, flags));
|
978
|
-
}
|
979
|
-
OVERLOAD_NAME(getDocumentWithFlagsAndTxn)
|
980
|
-
XmlDocument *getDocument(XmlTransaction &txn, const std::string &name,
|
981
|
-
u_int32_t flags) {
|
982
|
-
return new XmlDocument(self->getDocument(txn, name, flags));
|
983
|
-
}
|
984
1060
|
OVERLOAD_NAME(getNodeWithFlags)
|
985
1061
|
XmlValue *getNode(const std::string &name, u_int32_t flags) {
|
986
1062
|
return new XmlValue(self->getNode(name, flags));
|
@@ -991,6 +1067,18 @@ OVERLOAD_NAME(getNodeWithFlagsAndTxn)
|
|
991
1067
|
return new XmlValue(self->getNode(txn, name, flags));
|
992
1068
|
}
|
993
1069
|
|
1070
|
+
OVERLOAD_NAME(getDocumentWithFlags)
|
1071
|
+
XmlDocument *getDocument(const std::string &name, u_int32_t flags) {
|
1072
|
+
return new XmlDocument(self->getDocument(name, flags));
|
1073
|
+
}
|
1074
|
+
OVERLOAD_NAME(getDocumentWithFlagsAndTxn)
|
1075
|
+
XmlDocument *getDocument(XmlTransaction &txn, const std::string &name,
|
1076
|
+
u_int32_t flags) {
|
1077
|
+
return new XmlDocument(self->getDocument(txn, name, flags));
|
1078
|
+
}
|
1079
|
+
|
1080
|
+
#endif
|
1081
|
+
|
994
1082
|
XmlResults *getAllDocuments(u_int32_t flags) {
|
995
1083
|
return new XmlResults(self->getAllDocuments(flags));
|
996
1084
|
}
|
@@ -1085,18 +1173,13 @@ OVERLOAD_NAME(lookupEdgeStatisticsWithTxn)
|
|
1085
1173
|
}
|
1086
1174
|
} /* %extend */
|
1087
1175
|
};
|
1088
|
-
|
1089
|
-
#ifdef SWIGJAVA
|
1090
|
-
%rename(setContentAsXmlInputStream_java) XmlDocument::setContentAsXmlInputStream;
|
1091
|
-
%rename(setContentAsEventReader_java) XmlDocument::setContentAsEventReader;
|
1092
|
-
#endif
|
1093
|
-
|
1176
|
+
#ifndef SWIGJAVA
|
1094
1177
|
class XmlDocument
|
1095
1178
|
{
|
1096
1179
|
public:
|
1097
|
-
|
1180
|
+
|
1098
1181
|
XmlDocument();
|
1099
|
-
|
1182
|
+
|
1100
1183
|
XmlDocument(const XmlDocument &o);
|
1101
1184
|
~XmlDocument();
|
1102
1185
|
|
@@ -1122,7 +1205,6 @@ OVERLOAD_NAME(setContentWithXmlData)
|
|
1122
1205
|
|
1123
1206
|
XmlEventReader &getContentAsEventReader() const;
|
1124
1207
|
void setContentAsEventReader(XmlEventReader &reader);
|
1125
|
-
|
1126
1208
|
void getContentAsEventWriter(XmlEventWriter &writer);
|
1127
1209
|
|
1128
1210
|
void fetchAllData();
|
@@ -1134,11 +1216,9 @@ OVERLOAD_NAME(setContentWithXmlData)
|
|
1134
1216
|
OVERLOAD_NAME(setMetaDataWithXmlData)
|
1135
1217
|
void setMetaData(const std::string &uri,
|
1136
1218
|
const std::string &name, const XmlData &value);
|
1137
|
-
#ifndef SWIGJAVA
|
1138
1219
|
OVERLOAD_NAME(getMetaDataAsXmlData)
|
1139
1220
|
bool getMetaData(const std::string &uri, const std::string &name,
|
1140
1221
|
XmlData &value);
|
1141
|
-
#endif
|
1142
1222
|
%extend {
|
1143
1223
|
std::string getContentAsString() const {
|
1144
1224
|
std::string s;
|
@@ -1205,7 +1285,6 @@ class XmlQueryContext
|
|
1205
1285
|
public:
|
1206
1286
|
enum // ReturnType
|
1207
1287
|
{
|
1208
|
-
DeadValues,
|
1209
1288
|
LiveValues
|
1210
1289
|
};
|
1211
1290
|
|
@@ -1216,9 +1295,7 @@ public:
|
|
1216
1295
|
};
|
1217
1296
|
|
1218
1297
|
/// Constructor.
|
1219
|
-
#ifndef SWIGJAVA
|
1220
1298
|
XmlQueryContext();
|
1221
|
-
#endif
|
1222
1299
|
XmlQueryContext(const XmlQueryContext &o);
|
1223
1300
|
~XmlQueryContext();
|
1224
1301
|
|
@@ -1226,10 +1303,8 @@ public:
|
|
1226
1303
|
std::string getNamespace(const std::string &prefix);
|
1227
1304
|
void removeNamespace(const std::string &prefix);
|
1228
1305
|
void clearNamespaces(void);
|
1229
|
-
|
1230
1306
|
void setVariableValue(const std::string &name, const XmlValue &value);
|
1231
1307
|
void setVariableValue(const std::string &name, XmlResults &value);
|
1232
|
-
|
1233
1308
|
void setBaseURI(const std::string &baseURI);
|
1234
1309
|
std::string getBaseURI() const;
|
1235
1310
|
void setReturnType(enum XmlQueryContext::ReturnType type);
|
@@ -1275,7 +1350,6 @@ public:
|
|
1275
1350
|
throw;
|
1276
1351
|
}
|
1277
1352
|
}
|
1278
|
-
|
1279
1353
|
#ifdef SWIGTCL8
|
1280
1354
|
const std::string get(const char *name) const {
|
1281
1355
|
XmlValue value;
|
@@ -1293,7 +1367,7 @@ public:
|
|
1293
1367
|
#endif /* SWIGTCL8 */
|
1294
1368
|
} /* %extend */
|
1295
1369
|
};
|
1296
|
-
|
1370
|
+
#endif //SWIGJAVA
|
1297
1371
|
class XmlResults
|
1298
1372
|
{
|
1299
1373
|
public:
|
@@ -1301,11 +1375,13 @@ public:
|
|
1301
1375
|
XmlResults();
|
1302
1376
|
#endif
|
1303
1377
|
~XmlResults();
|
1378
|
+
#ifndef SWIGJAVA
|
1304
1379
|
XmlResults(const XmlResults &results);
|
1305
|
-
|
1380
|
+
#endif
|
1306
1381
|
bool hasNext();
|
1307
1382
|
bool hasPrevious();
|
1308
|
-
|
1383
|
+
bool isNull() const;
|
1384
|
+
#if defined(SWIGPYTHON) || defined(SWIGPHP4) || defined(SWIGRUBY)
|
1309
1385
|
%extend {
|
1310
1386
|
XmlValue *next() {
|
1311
1387
|
XmlValue *value = new XmlValue;
|
@@ -1335,41 +1411,43 @@ public:
|
|
1335
1411
|
}
|
1336
1412
|
}
|
1337
1413
|
} /* %extend */
|
1414
|
+
#elif defined(SWIGJAVA)
|
1338
1415
|
#else
|
1339
1416
|
bool next(XmlValue &value);
|
1340
1417
|
bool previous(XmlValue &value);
|
1341
1418
|
bool peek(XmlValue &value);
|
1342
1419
|
#endif
|
1343
1420
|
enum XmlQueryContext::EvaluationType getEvaluationType() const;
|
1421
|
+
#ifndef SWIGJAVA
|
1344
1422
|
OVERLOAD_NAME(nextDocument)
|
1345
1423
|
bool next(XmlDocument &document);
|
1346
1424
|
OVERLOAD_NAME(previousDocument)
|
1347
1425
|
bool previous(XmlDocument &document);
|
1348
1426
|
OVERLOAD_NAME(peekDocument)
|
1349
1427
|
bool peek(XmlDocument &document);
|
1350
|
-
|
1428
|
+
#endif
|
1351
1429
|
#if defined(SWIGPYTHON)
|
1352
1430
|
%pythoncode %{
|
1353
1431
|
def __iter__(self): return self
|
1354
1432
|
%}
|
1355
1433
|
#endif
|
1434
|
+
#ifndef SWIGJAVA
|
1356
1435
|
void reset();
|
1357
1436
|
size_t size() const;
|
1358
1437
|
void add(const XmlValue &value);
|
1359
|
-
|
1438
|
+
#else
|
1439
|
+
size_t size() const;
|
1440
|
+
%rename(resetInternal) reset;
|
1441
|
+
void reset();
|
1442
|
+
#endif
|
1360
1443
|
};
|
1361
|
-
|
1444
|
+
#ifndef SWIGJAVA
|
1362
1445
|
class XmlUpdateContext
|
1363
1446
|
{
|
1364
1447
|
public:
|
1365
|
-
#ifndef SWIGJAVA
|
1366
1448
|
XmlUpdateContext();
|
1367
|
-
#endif
|
1368
1449
|
XmlUpdateContext(const XmlUpdateContext &o);
|
1369
1450
|
virtual ~XmlUpdateContext();
|
1370
|
-
|
1371
|
-
void setApplyChangesToContainers(bool applyChanges);
|
1372
|
-
bool getApplyChangesToContainers() const;
|
1373
1451
|
};
|
1374
1452
|
|
1375
1453
|
|
@@ -1377,6 +1455,7 @@ class XmlValue
|
|
1377
1455
|
{
|
1378
1456
|
public:
|
1379
1457
|
//NOTE: these enumerations MUST match those in XmlValue.hpp
|
1458
|
+
//The values should be copied to xml/src/java/com/sleepycat/dbxml/XmlValue.java
|
1380
1459
|
enum //NodeType
|
1381
1460
|
{
|
1382
1461
|
ELEMENT_NODE = 1,
|
@@ -1464,8 +1543,6 @@ OVERLOAD_NAME(XmlValueTypedFromXmlData)
|
|
1464
1543
|
|
1465
1544
|
double asNumber() const;
|
1466
1545
|
std::string asString() const;
|
1467
|
-
OVERLOAD_NAME(asStringEncoded)
|
1468
|
-
std::string asString(const std::string &encoding) const;
|
1469
1546
|
bool asBoolean() const;
|
1470
1547
|
%extend {
|
1471
1548
|
XmlData * asBinary() const {
|
@@ -1522,6 +1599,7 @@ OVERLOAD_NAME(asStringEncoded)
|
|
1522
1599
|
}
|
1523
1600
|
}
|
1524
1601
|
};
|
1602
|
+
#endif /* SWIGJAVA */
|
1525
1603
|
|
1526
1604
|
class XmlIndexSpecification {
|
1527
1605
|
public:
|
@@ -1639,6 +1717,7 @@ public:
|
|
1639
1717
|
|
1640
1718
|
const std::string & getQuery() const;
|
1641
1719
|
std::string getQueryPlan() const;
|
1720
|
+
bool isUpdateExpression() const;
|
1642
1721
|
|
1643
1722
|
%extend {
|
1644
1723
|
XmlResults *execute(XmlQueryContext &context,
|
@@ -1772,8 +1851,6 @@ OVERLOAD_NAME(addAppendStepWithResults)
|
|
1772
1851
|
void addRenameStep(const XmlQueryExpression &selectionExpr,
|
1773
1852
|
const std::string &newName);
|
1774
1853
|
|
1775
|
-
void setNewEncoding(const std::string &newEncoding);
|
1776
|
-
|
1777
1854
|
unsigned int execute(XmlValue &toModify, XmlQueryContext &context,
|
1778
1855
|
XmlUpdateContext &uc) const;
|
1779
1856
|
OVERLOAD_NAME(executeOnResults)
|
@@ -1831,6 +1908,8 @@ public:
|
|
1831
1908
|
|
1832
1909
|
class XmlEventReader
|
1833
1910
|
{
|
1911
|
+
protected:
|
1912
|
+
XmlEventReader();
|
1834
1913
|
public:
|
1835
1914
|
enum { // XmlEventType
|
1836
1915
|
StartElement,
|
@@ -1867,7 +1946,7 @@ public:
|
|
1867
1946
|
// add an explicit call
|
1868
1947
|
%extend {
|
1869
1948
|
const unsigned char *getValue() const {
|
1870
|
-
|
1949
|
+
size_t len;
|
1871
1950
|
return self->getValue(len);
|
1872
1951
|
}
|
1873
1952
|
}
|
@@ -1875,8 +1954,8 @@ public:
|
|
1875
1954
|
// byte length is not useful for Java. It may not
|
1876
1955
|
// be for other languages -- need to check
|
1877
1956
|
%extend {
|
1878
|
-
|
1879
|
-
|
1957
|
+
size_t getValueLength() const {
|
1958
|
+
size_t len;
|
1880
1959
|
(void)self->getValue(len);
|
1881
1960
|
return len;
|
1882
1961
|
}
|
@@ -1910,6 +1989,8 @@ public:
|
|
1910
1989
|
|
1911
1990
|
class XmlEventWriter
|
1912
1991
|
{
|
1992
|
+
protected:
|
1993
|
+
XmlEventWriter();
|
1913
1994
|
public:
|
1914
1995
|
~XmlEventWriter();
|
1915
1996
|
void close();
|
@@ -1919,11 +2000,27 @@ public:
|
|
1919
2000
|
const unsigned char *uri,
|
1920
2001
|
const unsigned char *value,
|
1921
2002
|
bool isSpecified);
|
1922
|
-
|
2003
|
+
// If length parameter is 0, the library will perform
|
2004
|
+
// the counting. This should be done if string length
|
2005
|
+
// is != to the UTF-8 byte count (e.g. multi-byte chars)
|
1923
2006
|
void writeText(enum XmlEventReader::XmlEventType type,
|
1924
2007
|
const unsigned char *text,
|
1925
|
-
|
2008
|
+
size_t length);
|
2009
|
+
void writeDTD(const unsigned char *dtd, size_t length);
|
1926
2010
|
|
2011
|
+
// There is a problem with the Tcl overload here...
|
2012
|
+
#if defined(DBXML_USEOVERLOADS) && !defined(SWIGTCL8)
|
2013
|
+
// Add no-length overloads
|
2014
|
+
%extend {
|
2015
|
+
void writeText(enum XmlEventReader::XmlEventType type,
|
2016
|
+
const unsigned char *text) {
|
2017
|
+
self->writeText(type, text, 0);
|
2018
|
+
}
|
2019
|
+
void writeDTD(const unsigned char *dtd) {
|
2020
|
+
self->writeDTD(dtd, 0);
|
2021
|
+
}
|
2022
|
+
}
|
2023
|
+
#endif
|
1927
2024
|
void writeProcessingInstruction(const unsigned char *target,
|
1928
2025
|
const unsigned char *data);
|
1929
2026
|
|
@@ -1936,7 +2033,6 @@ public:
|
|
1936
2033
|
const unsigned char *prefix,
|
1937
2034
|
const unsigned char *uri);
|
1938
2035
|
|
1939
|
-
void writeDTD(const unsigned char *dtd, int length);
|
1940
2036
|
void writeStartDocument(const unsigned char *version,
|
1941
2037
|
const unsigned char *encoding,
|
1942
2038
|
const unsigned char *standalone);
|
@@ -1950,9 +2046,14 @@ public:
|
|
1950
2046
|
class XmlEventReaderToWriter
|
1951
2047
|
{
|
1952
2048
|
public:
|
2049
|
+
#ifndef SWIGJAVA
|
1953
2050
|
XmlEventReaderToWriter(XmlEventReader &reader,
|
1954
2051
|
XmlEventWriter &writer,
|
1955
2052
|
bool ownsReader);
|
2053
|
+
#endif
|
2054
|
+
XmlEventReaderToWriter(XmlEventReader &reader,
|
2055
|
+
XmlEventWriter &writer,
|
2056
|
+
bool ownsReader, bool ownsWriter);
|
1956
2057
|
~XmlEventReaderToWriter();
|
1957
2058
|
|
1958
2059
|
void start();
|