Set flushing to false
This commit is contained in:
parent
213c3bd3be
commit
1b06ca384a
52
README.md
52
README.md
@ -2,20 +2,18 @@ ColdDB
|
|||||||
===========
|
===========
|
||||||
|
|
||||||
ColdDB is a minetest mod that implements a serverless, asynchronous, NoSQL database engine.<br>
|
ColdDB is a minetest mod that implements a serverless, asynchronous, NoSQL database engine.<br>
|
||||||
It provides a key or key-value storage system using plain Lua tables. It also can iterate through the keys.<br>
|
It provides a key or key-value storage system using plain Lua tables, also it can iterate through the keys.<br>
|
||||||
It is not required to add this mod to secure.trusted_mods this mod will still work.
|
|
||||||
|
|
||||||
Usage
|
Usage
|
||||||
===========
|
===========
|
||||||
|
|
||||||
Copy *colddb.lua* file to your minetest mod or game. Copy the code from colddb's init file to your mods init file<br>
|
Copy both *colddb.lua* and *async* files to your minetest mod or game. Copy the code from colddb's init file to your mods init file<br>
|
||||||
Then create a lua file for handling database's or any file you like.<br>
|
|
||||||
Write this code in your lua file.
|
Write this code in your lua file.
|
||||||
1. create a directory and link it as a database.
|
1. create a directory and link it as a database.
|
||||||
```lua
|
```lua
|
||||||
coldbase = colddb.get_db("mydb")
|
coldbase = colddb.get_db("mydb")
|
||||||
```
|
```
|
||||||
2. added an extra folder to the directory. every new file will be added to the global tag(folder).
|
2. add an extra folder to the directory. every new file will be added to the global tag(folder).
|
||||||
```lua
|
```lua
|
||||||
colddb.add_global_tag(coldbase,"ips")
|
colddb.add_global_tag(coldbase,"ips")
|
||||||
```
|
```
|
||||||
@ -54,15 +52,15 @@ coldbase.add_to_mem_pool = true
|
|||||||
```lua
|
```lua
|
||||||
coldbase.indexes = true
|
coldbase.indexes = true
|
||||||
```
|
```
|
||||||
9. only if coldbase.indexes == true. returns the amount of keys are in the indexing file.
|
9. only if coldbase.indexes is true. returns the amount of keys that are in the indexing file.
|
||||||
```lua
|
```lua
|
||||||
colddb.get_count(coldbase)
|
colddb.get_count(coldbase)
|
||||||
```
|
```
|
||||||
10. only if coldbase.indexes == true. iterates through the indexing file(breaks and ends if it reached the end of the file).
|
10. only if coldbase.indexes is true. iterates through the indexing file(breaks and ends if it reaches the end of the file).
|
||||||
```lua
|
```lua
|
||||||
colddb.iterate_index_table(coldbase,nil,func_list_keys,nil)
|
colddb.iterate_index_table(coldbase,nil,func_list_keys,nil)
|
||||||
```
|
```
|
||||||
11. adds folders which can be used in other functions that have tag_name arg.
|
11. adds a folder which can be used in other functions that have tag_name arg.
|
||||||
```lua
|
```lua
|
||||||
colddb.add_tag(coldbase,"Extra_Folder",{"Extra","Folder"})
|
colddb.add_tag(coldbase,"Extra_Folder",{"Extra","Folder"})
|
||||||
```
|
```
|
||||||
@ -110,7 +108,7 @@ minetest.register_chatcommand("ip", {
|
|||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
-- Get the ip record asynchronously.
|
-- Get the ip record asynchronously.
|
||||||
colddb.get(ip_db,param,nil,function(record)
|
colddb.get(ip_db,param,nil,function(record)
|
||||||
-- If record is contains data send it to the player.
|
-- If database contains the record data then send it to the player.
|
||||||
if record then
|
if record then
|
||||||
minetest.chat_send_player(name,string.format("%s:%s",param,record))
|
minetest.chat_send_player(name,string.format("%s:%s",param,record))
|
||||||
else
|
else
|
||||||
@ -143,36 +141,66 @@ API
|
|||||||
|
|
||||||
- **colddb.add_tag(db,name,tag)**
|
- **colddb.add_tag(db,name,tag)**
|
||||||
|
|
||||||
- **colddb.get_or_add_tag(db,name,tag)**
|
-
|
||||||
|
|
||||||
|
- **colddb.get_or_add_tag(db,name,tag) --> tag_name**
|
||||||
|
|
||||||
|
Returns a tag or creates a new one if does not exist.
|
||||||
|
|
||||||
- **colddb.remove_tag(db,name)**
|
- **colddb.remove_tag(db,name)**
|
||||||
|
|
||||||
- **colddb.get_count(db,tag_name)**
|
Removes a tag.
|
||||||
|
|
||||||
|
- **colddb.get_count(db,tag_name) --> count**
|
||||||
|
|
||||||
|
Returns the count from the index table file.
|
||||||
|
|
||||||
- **colddb.iterate_index_table(db,begin_func,func_on_iterate,end_func,args,tag_name)**
|
- **colddb.iterate_index_table(db,begin_func,func_on_iterate,end_func,args,tag_name)**
|
||||||
|
|
||||||
- **begin_func(args)**
|
- function iterates through the index table file.
|
||||||
|
|
||||||
|
- **begin_func(args) --> args**
|
||||||
|
|
||||||
|
- function that is ran before the loop begins.
|
||||||
|
|
||||||
- **func_on_iterate(key,index,args)**
|
- **func_on_iterate(key,index,args)**
|
||||||
|
|
||||||
|
- function that is ran in the for loop.
|
||||||
|
|
||||||
- **end_func(args)**
|
- **end_func(args)**
|
||||||
|
|
||||||
|
- end function that is ran after the for loop ends.
|
||||||
|
|
||||||
- **colddb.set(db,name,_table,tag_name)**
|
- **colddb.set(db,name,_table,tag_name)**
|
||||||
|
|
||||||
|
- Writes data to the database. Key-Value.
|
||||||
|
|
||||||
- **colddb.set_key(db,name,tag_name)**
|
- **colddb.set_key(db,name,tag_name)**
|
||||||
|
|
||||||
|
- Writes data to the database. Key-nil.
|
||||||
|
|
||||||
- **colddb.get(db,name,tag_name,callback(arg))**
|
- **colddb.get(db,name,tag_name,callback(arg))**
|
||||||
|
|
||||||
|
- Returns specified data from the database in a callback function.
|
||||||
|
|
||||||
- **colddb.get_key(db,name,tag_name,callback(arg))**
|
- **colddb.get_key(db,name,tag_name,callback(arg))**
|
||||||
|
|
||||||
|
- Returns if the key exist in the database.
|
||||||
|
|
||||||
- **colddb.remove(db,name,tag_name)**
|
- **colddb.remove(db,name,tag_name)**
|
||||||
|
|
||||||
|
- Deletes the specified data from the database.
|
||||||
|
|
||||||
- **Database object fields**
|
- **Database object fields**
|
||||||
|
|
||||||
- **indexes**
|
- **indexes**
|
||||||
|
|
||||||
|
- If truth the database makes a indexing file for keys.
|
||||||
|
|
||||||
- **add_to_mem_pool**
|
- **add_to_mem_pool**
|
||||||
|
|
||||||
|
- If truth when you get keys or values it gets cached in the memory for faster access next time.
|
||||||
|
|
||||||
License
|
License
|
||||||
===========
|
===========
|
||||||
|
|
||||||
|
@ -324,6 +324,7 @@ function colddb.append_index_table(db,key,tag_name)
|
|||||||
local fl = f.file
|
local fl = f.file
|
||||||
if f.needs_flushing == true then
|
if f.needs_flushing == true then
|
||||||
fl:flush()
|
fl:flush()
|
||||||
|
f.needs_flushing = false
|
||||||
end
|
end
|
||||||
db.indexes_pool[cs].needs_flushing = true
|
db.indexes_pool[cs].needs_flushing = true
|
||||||
fl:seek("end")
|
fl:seek("end")
|
||||||
@ -337,6 +338,7 @@ function colddb.append_index_table(db,key,tag_name)
|
|||||||
local fl = f.file
|
local fl = f.file
|
||||||
if f.needs_flushing == true then
|
if f.needs_flushing == true then
|
||||||
fl:flush()
|
fl:flush()
|
||||||
|
f.needs_flushing = false
|
||||||
end
|
end
|
||||||
db.indexes_pool[cs].needs_flushing = true
|
db.indexes_pool[cs].needs_flushing = true
|
||||||
local c = 0
|
local c = 0
|
||||||
@ -367,7 +369,7 @@ function colddb.get_count(db,tag_name)
|
|||||||
local fl = f.file
|
local fl = f.file
|
||||||
if f.needs_flushing == true then
|
if f.needs_flushing == true then
|
||||||
fl:flush()
|
fl:flush()
|
||||||
f.needs_flushing = true
|
f.needs_flushing = false
|
||||||
end
|
end
|
||||||
fl:seek("set")
|
fl:seek("set")
|
||||||
local count = tonumber(fl:read("*l"))
|
local count = tonumber(fl:read("*l"))
|
||||||
@ -429,7 +431,7 @@ function colddb.iterate_index_table(db,begin_func,func_on_iterate,end_func,args,
|
|||||||
local fl = f.file
|
local fl = f.file
|
||||||
if f.needs_flushing == true then
|
if f.needs_flushing == true then
|
||||||
fl:flush()
|
fl:flush()
|
||||||
f.needs_flushing = true
|
f.needs_flushing = false
|
||||||
end
|
end
|
||||||
-- Get count
|
-- Get count
|
||||||
fl:seek("set")
|
fl:seek("set")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user