Package vsql_core :: Package utils :: Package factored_parser :: Module mmap_wrapper
[hide private]
[frames] | no frames]

Source Code for Module vsql_core.utils.factored_parser.mmap_wrapper

 1  """ 
 2  This module extends MMapWrapper to make it expandable for writes 
 3  """ 
 4   
 5  import mmap 
 6   
 7  initial_size = int(1e6) 
 8   
 9  WRITE_MODE = 2 
10  READ_MODE = 1 
11   
12 -class MMapWrapper(mmap.mmap):
13 - def __new__(cls, file_no, length, is_write, debug = False):
14 obj = super(MMapWrapper, cls).__new__(cls, file_no, length) 15 obj.seek(0) 16 if is_write == WRITE_MODE: 17 if debug: 18 obj.resize(16) 19 else: 20 obj.resize(initial_size) 21 22 return obj
23 24 """ 25 Writes given data to the mmap 26 If we run out of space, buffer size is expanded 27 @type data: data 28 @param data: data to write to the mmap 29 """
30 - def write(self, data):
31 if(self.tell() + len(data) >= self.size()): 32 cur_length = self.size() 33 self.resize(cur_length * 2) 34 35 mmap.mmap.write(self, data)
36