Commit Graph

188 Commits

Author SHA1 Message Date
Matthias Beyer 3e62b71605 Add StoreIdAccessor trait 2016-03-16 16:46:52 +01:00
Matthias Beyer fa9e8e8192 Split hook/mod.rs into several files 2016-03-16 16:46:52 +01:00
Matthias Beyer a9600f23b3 Threaded hook execution 2016-03-16 16:46:52 +01:00
Matthias Beyer 79ba3f5151 Hook calling rewrite 2016-03-16 16:46:52 +01:00
Matthias Beyer d9a4512821 Add debug output for hook exec functions 2016-03-16 16:46:51 +01:00
Matthias Beyer da3554d98e Add debug output for hook register functions 2016-03-16 16:46:51 +01:00
Matthias Beyer bb0e7e2468 Implement: execute_post_delete_hooks() 2016-03-16 16:46:51 +01:00
Matthias Beyer f703e8a4cd Implement: execute_post_update_hooks() 2016-03-16 16:46:51 +01:00
Matthias Beyer 7014256407 Implement: execute_post_retrieve_hooks() 2016-03-16 16:46:51 +01:00
Matthias Beyer 5831d3bc7b Implement: execute_post_create_hooks() 2016-03-16 16:46:51 +01:00
Matthias Beyer 196be30d91 Implement: execute_post_read_hooks() 2016-03-16 16:46:51 +01:00
Matthias Beyer 09acddaef9 Implement: execute_pre_delete_hooks() 2016-03-16 16:46:51 +01:00
Matthias Beyer 5aa663987b Implement: execute_pre_update_hooks() 2016-03-16 16:46:51 +01:00
Matthias Beyer 94128f8bcc Implement: execute_pre_retrieve_hooks() 2016-03-16 16:46:50 +01:00
Matthias Beyer 3244b87c7e Implement: execute_pre_create_hooks() 2016-03-16 16:46:50 +01:00
Matthias Beyer 975a2bc8b9 Implement: execute_pre_read_hooks() 2016-03-16 16:46:50 +01:00
Matthias Beyer ac280ba616 Insert pre/post hook execution functions 2016-03-16 16:46:50 +01:00
Matthias Beyer 17b1d6c390 Redefine hook trait system 2016-03-16 16:39:39 +01:00
Matthias Beyer b9127381b8 Add hook registering 2016-03-16 16:39:39 +01:00
Matthias Beyer 361dec4cec Revert "Check whether the StoreId is inside the store, before doing anything on the FS"
This reverts commit 373502217e.
2016-03-12 16:06:10 +01:00
Matthias Beyer a3a09ff4ee Fix store creation of libimagstore
The macro may not prefix the StoreId internal PathBuf with '/', so this
path is not absolute. This way we can introduce `storify_id()` which
creates a proper PathBuf into the store out of our StoreId object.

Does not yet do verification whether the path is inside the store,
actually.
2016-03-10 18:46:26 +01:00
Matthias Beyer 3413646934 Revert "Check whether the StoreId is inside the store, before doing anything on the FS"
This reverts commit 373502217e
as this commit was introducing a bug.

The StoreId type says `/test/example` for a store id path, which is
completely valid, as the root (`/`) is the store itself. The
id_in_store() function assumed that the store-id is the full
(file-system) path to the store entry, which is false.

This commit does not introduce a fix but revert the check.
2016-03-10 18:14:53 +01:00
Matthias Beyer 257fe1880e EntryHeader: Function to get toml object 2016-03-06 11:51:09 +01:00
Matthias Beyer 22e9f8a93b Remove unused import 2016-03-01 21:21:14 +01:00
Matthias Beyer 1a8106dfd2 Add missing error-forwarding 2016-03-01 21:20:53 +01:00
Matthias Beyer 38b9e15615 Remove unreachable statement 2016-03-01 21:19:15 +01:00
Matthias Beyer 08c37c5fcb Remove unused "mut" from EntryHeader::delete() 2016-03-01 21:18:17 +01:00
Matthias Beyer ed3da38701 Remove unused "mut" from EntryHeader::read_with_sep() 2016-03-01 21:18:10 +01:00
Matthias Beyer 309e70df14 Remove unused "mut" from EntryHeader::set_with_sep() 2016-03-01 21:18:04 +01:00
Matthias Beyer 85e69f083e Remove unused "mut" from EntryHeader::insert_with_sep() 2016-03-01 21:17:49 +01:00
Matthias Beyer 4390c39a6c Remove unused "mut" from Store::delete() 2016-03-01 21:17:40 +01:00
Matthias Beyer 8dfccba0b8 Remove unused "mut" from Store::retrieve_copy() 2016-03-01 21:17:33 +01:00
Matthias Beyer df4bc13018 use lazy_static so we do not compile regex multiple times 2016-02-20 21:06:47 +01:00
Matthias Beyer 0cab0f114d Merge pull request #149 from matthiasbeyer/libimagstore/header-field-path-util
Add header field addressing by str
2016-02-14 16:10:56 +01:00
Matthias Beyer 9951422dc4 Impl From<Table> for EntryHeader 2016-02-12 22:07:15 +01:00
Matthias Beyer 794e7617e3 Impl Into<Table> for EntryHeader 2016-02-12 22:02:33 +01:00
Matthias Beyer df9313c599 Add EntryHeader::insert_with_sep() 2016-02-12 21:57:53 +01:00
Matthias Beyer 54ba22d0ef Add EntryHeader::set_with_sep() 2016-02-12 21:56:48 +01:00
Matthias Beyer bca0143343 Add EntryHeader::read_with_sep() which allows seperator modification 2016-02-12 21:55:06 +01:00
Matthias Beyer a4fa1bac07 Add split-char setting 2016-02-12 21:50:44 +01:00
Matthias Beyer 6397068ddc Add test for EntryHeader::delete() 2016-02-12 20:02:57 +01:00
Matthias Beyer cb87f31a23 Add EntryHeader::delete() 2016-02-12 20:02:56 +01:00
Matthias Beyer 30e8afeced Add tests for inserting values 2016-02-12 20:02:56 +01:00
Matthias Beyer 965c3445a1 Add test for setting value at new path 2016-02-12 20:02:56 +01:00
Matthias Beyer dd53e467d7 Add EntryHeader::set() test 2016-02-12 20:02:56 +01:00
Matthias Beyer b4362f5c65 Alter: EntryHeader should contain a Value, not the BTreeMap<> 2016-02-12 20:02:56 +01:00
Matthias Beyer 74a9b844ca Add debugging output in tests 2016-02-12 20:02:41 +01:00
Matthias Beyer 60ccf58f84 Merge pull request #148 from neithernut/impl-store-retrieve_copy
Implement Store::retrieve_copy()
2016-02-12 18:59:56 +01:00
Matthias Beyer 103a0dea17 Add test: EntryHeader::read() 2016-02-11 15:45:48 +01:00
Matthias Beyer 731a446546 Implement EntryHeader::read() 2016-02-11 15:45:47 +01:00
Matthias Beyer 548aee8d5f Implement EntryHeader::set() 2016-02-11 15:45:47 +01:00
Matthias Beyer 4d94f8a67f Implement: EntryHeader::insert() 2016-02-11 15:45:47 +01:00
Matthias Beyer 3b09e0c214 Move helper functions outside of walk_header(), so we can use them 2016-02-11 15:45:47 +01:00
Matthias Beyer 42aade5cef Add tests for path-to-value extractor functionality 2016-02-11 15:43:58 +01:00
Matthias Beyer 4759076249 Implement walk_header() 2016-02-11 15:43:58 +01:00
Matthias Beyer 0727fca797 Add tokenizer helper function 2016-02-11 15:43:58 +01:00
Matthias Beyer 2f6cfb5868 Add interface for header field addressing by str 2016-02-11 15:43:58 +01:00
Matthias Beyer 00ccc22ef5 Add some debugging output for {create,retrieve,delete} 2016-02-09 20:09:12 +01:00
Matthias Beyer d85f985694 Fixup path-includes-path checker 2016-02-09 20:08:58 +01:00
Matthias Beyer ddd54e03ad Add store path getter 2016-02-09 13:45:13 +01:00
Matthias Beyer a0afc9245b Merge pull request #186 from TheNeikos/verify-toml_table
Verify that nothing but tables exist in base table
2016-02-07 01:54:35 +01:00
Matthias Beyer ebb076c9fd Merge pull request #184 from matthiasbeyer/libimagstore/fix-179
Check whether the StoreId is inside the store
2016-02-07 01:45:48 +01:00
Marcel Müller e315fa9dcf
Remove unwrap in drop and warn users 2016-02-07 01:28:16 +01:00
Marcel Müller 9ba2439da3
Add debug output 2016-02-07 01:28:15 +01:00
Marcel Müller 6173cff762
Verify that nothing but tables exist in base table 2016-02-07 01:27:50 +01:00
Marcel Müller 293fd0da00
Add verify 2016-02-06 18:57:39 +01:00
Marcel Müller e079628397
Remove unneeded closure 2016-02-06 18:52:17 +01:00
Matthias Beyer 373502217e Check whether the StoreId is inside the store, before doing anything on the FS 2016-02-06 18:48:59 +01:00
Matthias Beyer eb0d1dba69 Merge pull request #176 from matthiasbeyer/update-crate-version
libimagstore: Update dep: version: 1.1.0 -> 2.0.1
2016-02-05 22:04:27 +01:00
Matthias Beyer ddd61f9c1f libimagstore: Update dep: version: 1.1.0 -> 2.0.1 2016-02-05 21:53:26 +01:00
Matthias Beyer 959a68f1a6 Merge pull request #153 from matthiasbeyer/libimagstore/add-debugging-output
Libimagstore/add debugging output
2016-02-05 16:03:23 +01:00
Matthias Beyer 0931ede580 Merge pull request #165 from matthiasbeyer/remove-unused-imports
Remove unused imports
2016-01-30 13:47:57 +01:00
Matthias Beyer 213cb32a88 Fix: Add EntryHeader::toml_mut() 2016-01-30 12:38:36 +01:00
Matthias Beyer f6e03c804e store/store: Remove unused imports 2016-01-29 23:06:15 +01:00
Matthias Beyer fbb296495b Merge pull request #154 from matthiasbeyer/libimagstore/fix-152
Fix: negation error
2016-01-29 19:10:51 +01:00
Matthias Beyer 72cf550c9f Fix: seek() file back on reading it 2016-01-29 18:17:41 +01:00
Matthias Beyer 38791ea2f9 Fix: negation error
Suggested-by: Marcel Müller <neikos@neikos.email>
2016-01-29 16:53:13 +01:00
Matthias Beyer 3b51328aa7 Merge pull request #145 from neithernut/fix-store-retrieve
Fix Store::retrieve()
2016-01-29 16:29:38 +01:00
Matthias Beyer b04c676eb9 Add store debugging output 2016-01-28 21:06:49 +01:00
Julian Ganz c6ec47a8af Change status _after_ calling StoreEntry::get_entry()
StoreEntry::get_entry() will return an error if the store entry's status
is "borrowed".
2016-01-28 20:47:34 +01:00
Julian Ganz 355ec697c1 Implement Store::retrieve_copy() 2016-01-25 22:26:00 +01:00
Julian Ganz 1085127036 Add missing error handling
We don't want to panick if a lock inside the store is broken. We want to
notify the user, so she can start panicking.
2016-01-25 20:38:45 +01:00
Matthias Beyer 6c53f172dc Minify implementation of Store::retrieve() 2016-01-25 15:32:50 +01:00
Julian Ganz 540348380e Mark store entry as borrowed 2016-01-25 12:34:37 +01:00
Julian Ganz 86ab4ba4b1 Slimline translation from entry to file lock entry 2016-01-25 12:32:30 +01:00
Julian Ganz 9760f72e79 get_entry() already asserts the entry is not borrowed 2016-01-25 12:31:22 +01:00
Julian Ganz acfbb16eb2 Fix Store::retrieve()
The previous version of `Store::retrieve()` required the entry to be
already registered in the store's hashmap.
2016-01-24 22:57:11 +01:00
Matthias Beyer 4a08eed700 Merge pull request #144 from matthiasbeyer/libimagstore/add-missing-pub
Fix: Add missing "pub" on Entry functions
2016-01-24 20:29:11 +01:00
Matthias Beyer 82873d82ba Merge pull request #143 from TheNeikos/add-store_update
Implement storenetry:write_entry
2016-01-24 20:25:57 +01:00
Matthias Beyer d24f661778 Fix: Add missing "pub" on Entry functions 2016-01-24 20:20:43 +01:00
Marcel Müller 4e990465c8
Implement storeentry:write_entry 2016-01-24 20:05:33 +01:00
Matthias Beyer bbd08d9526 Add Store::retrieve_for_module() 2016-01-24 17:40:06 +01:00
Marcel Müller ee8cf35fcc
Implement store::create 2016-01-24 17:34:29 +01:00
Marcel Müller c7f584a81a
Add from_str to Entry 2016-01-24 17:04:33 +01:00
Marcel Müller fdc3dde95b
Change names to reflect changes 2016-01-24 17:04:33 +01:00
Marcel Müller 15931d3471
Remove EntryHeader::new_current 2016-01-24 17:04:33 +01:00
Marcel Müller a64ffdfc56
Implement entry reading 2016-01-24 17:04:33 +01:00
Marcel Müller 97b7090824
Partially implement get_entry 2016-01-24 17:04:33 +01:00
Marcel Müller 50413101c4
Move entry, content and header into store 2016-01-24 17:04:32 +01:00
Marcel Müller ba2e52788b
Add entry_creation 2016-01-24 17:04:32 +01:00