def __loadDNAFileBase(self, store, file):
        f = open(file, 'rb')
       
        self.curStore = store
        self.curProp = None
        self.hadError = False
        
        data = f.read()
        dg = PyDatagram(data)
        dgi = PyDatagramIterator(dg)
        
        f.close()
        
        header = dgi.extractBytes(5)
        if header != "PDNA\n":
            raise DNAError.DNAError("Invalid header")
            
        compressed = dgi.getBool()
        dgi.skipBytes(1)
        
        if compressed:
            # Decompress the dgi
            # Sadly we have to extract everything
            # And make another dgi
            import zlib
            
            data = dgi.getRemainingBytes()
            data = zlib.decompress(data)
            
            dg = PyDatagram(data)
            dgi = PyDatagramIterator(dg)

        self.handleStorageData(dgi)
        self.handleCompData(dgi)
    def loadDNAFileBase(self, store, _file):
        if type(_file) == str and _file.endswith(".dna"):
            _file = _file.replace(".dna", ".pdna")
            #_file = _file.replace("../resources/", "")
        if __debug__:
            _file = Filename("../resources/" + _file)
        else:
            _file = Filename("/" + _file)

        vfs = VirtualFileSystem.getGlobalPtr()
        vfs.resolveFilename(_file, "")
        if not vfs.exists(_file):
            raise DNAError.DNAError("Unable to open DNA file '%s'" %
                                    (str(_file)))
        dnaData = vfs.readFile(_file, True)

        self.curStore = store
        dg = PyDatagram(dnaData)
        dgi = PyDatagramIterator(dg)
        header = dgi.extractBytes(5)
        if header != 'PDNA\n':
            raise DNAError.DNAError('Invalid header: %s' % (header))

        compressed = dgi.getBool()
        dgi.skipBytes(1)

        if compressed:
            data = dgi.getRemainingBytes()
            data = zlib.decompress(data)
            dg = PyDatagram(data)
            dgi = PyDatagramIterator(dg)

        self.curComp = None
        self.handleStorageData(dgi)
        self.handleCompData(dgi)
Beispiel #3
0
    def __loadDNAFileBase(self, store, file):
        f = open(file, 'rb')
       
        self.curStore = store
        self.curProp = None
        self.hadError = False
        
        data = f.read()
        dg = PyDatagram(data)
        dgi = PyDatagramIterator(dg)
        
        f.close()
        
        header = dgi.extractBytes(5)
        if header != "PDNA\n":
            raise DNAError.DNAError("Invalid header")
            
        compressed = dgi.getBool()
        dgi.skipBytes(1)
        
        if compressed:
            # Decompress the dgi
            # Sadly we have to extract everything
            # And make another dgi
            import zlib
            
            data = dgi.getRemainingBytes()
            data = zlib.decompress(data)
            
            dg = PyDatagram(data)
            dgi = PyDatagramIterator(dg)

        self.handleStorageData(dgi)
        self.handleCompData(dgi)
Beispiel #4
0
	def routeMessage(self, channel, datagram):
		if not datagram:
			return

		di = PyDatagramIterator(datagram)
		# The message director used this value for determining which process the connection requested, but
		# we don't want to send this value over the network because its unnecessary.
		di.skipBytes(16)
		# This is the channel the data is being routed to. We need this but, does the client really need
		# to be informed of its own channel?
		di.skipBytes(64)

		datagram = PyDatagram()
		# Pack the remaining bytes and ship the message out.
		datagram.appendData(di.getRemainingBytes())
		self.routeMessageToChannel(channel, datagram)
Beispiel #5
0
 def loadDNAFileBase(self, dnaStorage, file):
     self.dnaStorage = dnaStorage
     dnaFile = open(file, 'rb')
     dnaData = dnaFile.read()
     dg = PyDatagram(dnaData)
     dgi = PyDatagramIterator(dg)
     dnaFile.close()
     header = dgi.extractBytes(5)
     if header != 'PDNA\n':
         raise DNAError.DNAError('Invalid header: %s' % (header))
     compressed = dgi.getBool()
     dgi.skipBytes(1)
     if compressed:
         data = dgi.getRemainingBytes()
         data = zlib.decompress(data)
         dg = PyDatagram(data)
         dgi = PyDatagramIterator(dg)
     self.handleStorageData(dgi)
     self.handleCompData(dgi)