Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
R
rust-rocksdb
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fangzongwu
rust-rocksdb
Commits
e6492cbc
Unverified
Commit
e6492cbc
authored
Dec 11, 2017
by
Huachao Huang
Committed by
GitHub
Dec 11, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add FileExists and DeleteFile to Env (#174)
parent
20d39998
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
34 additions
and
0 deletions
+34
-0
c.cc
librocksdb_sys/crocksdb/c.cc
+8
-0
c.h
librocksdb_sys/crocksdb/crocksdb/c.h
+4
-0
lib.rs
librocksdb_sys/src/lib.rs
+2
-0
rocksdb.rs
src/rocksdb.rs
+16
-0
test_ingest_external_file.rs
tests/test_ingest_external_file.rs
+4
-0
No files found.
librocksdb_sys/crocksdb/c.cc
View file @
e6492cbc
...
...
@@ -2877,6 +2877,14 @@ void crocksdb_env_join_all_threads(crocksdb_env_t* env) {
env
->
rep
->
WaitForJoin
();
}
void
crocksdb_env_file_exists
(
crocksdb_env_t
*
env
,
const
char
*
path
,
char
**
errptr
)
{
SaveError
(
errptr
,
env
->
rep
->
FileExists
(
path
));
}
void
crocksdb_env_delete_file
(
crocksdb_env_t
*
env
,
const
char
*
path
,
char
**
errptr
)
{
SaveError
(
errptr
,
env
->
rep
->
DeleteFile
(
path
));
}
void
crocksdb_env_destroy
(
crocksdb_env_t
*
env
)
{
if
(
!
env
->
is_default
)
delete
env
->
rep
;
delete
env
;
...
...
librocksdb_sys/crocksdb/crocksdb/c.h
View file @
e6492cbc
...
...
@@ -1194,6 +1194,10 @@ extern C_ROCKSDB_LIBRARY_API void
crocksdb_env_set_high_priority_background_threads
(
crocksdb_env_t
*
env
,
int
n
);
extern
C_ROCKSDB_LIBRARY_API
void
crocksdb_env_join_all_threads
(
crocksdb_env_t
*
env
);
extern
C_ROCKSDB_LIBRARY_API
void
crocksdb_env_file_exists
(
crocksdb_env_t
*
env
,
const
char
*
path
,
char
**
errptr
);
extern
C_ROCKSDB_LIBRARY_API
void
crocksdb_env_delete_file
(
crocksdb_env_t
*
env
,
const
char
*
path
,
char
**
errptr
);
extern
C_ROCKSDB_LIBRARY_API
void
crocksdb_env_destroy
(
crocksdb_env_t
*
);
extern
C_ROCKSDB_LIBRARY_API
crocksdb_envoptions_t
*
crocksdb_envoptions_create
();
...
...
librocksdb_sys/src/lib.rs
View file @
e6492cbc
...
...
@@ -1065,6 +1065,8 @@ extern "C" {
// Env
pub
fn
crocksdb_create_default_env
()
->
*
mut
DBEnv
;
pub
fn
crocksdb_create_mem_env
()
->
*
mut
DBEnv
;
pub
fn
crocksdb_env_file_exists
(
env
:
*
mut
DBEnv
,
path
:
*
const
c_char
,
err
:
*
mut
*
mut
c_char
);
pub
fn
crocksdb_env_delete_file
(
env
:
*
mut
DBEnv
,
path
:
*
const
c_char
,
err
:
*
mut
*
mut
c_char
);
pub
fn
crocksdb_env_destroy
(
env
:
*
mut
DBEnv
);
// EnvOptions
...
...
src/rocksdb.rs
View file @
e6492cbc
...
...
@@ -1892,6 +1892,22 @@ impl Env {
Ok
(
SequentialFile
::
new
(
file
))
}
}
pub
fn
file_exists
(
&
self
,
path
:
&
str
)
->
Result
<
(),
String
>
{
unsafe
{
let
file_path
=
CString
::
new
(
path
)
.unwrap
();
ffi_try!
(
crocksdb_env_file_exists
(
self
.inner
,
file_path
.as_ptr
()));
Ok
(())
}
}
pub
fn
delete_file
(
&
self
,
path
:
&
str
)
->
Result
<
(),
String
>
{
unsafe
{
let
file_path
=
CString
::
new
(
path
)
.unwrap
();
ffi_try!
(
crocksdb_env_delete_file
(
self
.inner
,
file_path
.as_ptr
()));
Ok
(())
}
}
}
impl
Drop
for
Env
{
...
...
tests/test_ingest_external_file.rs
View file @
e6492cbc
...
...
@@ -427,4 +427,8 @@ fn test_mem_sst_file_writer() {
(
b
"k3"
,
Some
(
b
"v3"
)),
],
);
assert
!
(
env
.file_exists
(
mem_sst_str
)
.is_ok
());
assert
!
(
env
.delete_file
(
mem_sst_str
)
.is_ok
());
assert
!
(
env
.file_exists
(
mem_sst_str
)
.is_err
());
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment