def finish(self): 
   SocketServer.BaseRequestHandler.finish(self)
   utils.logger.debug("Close the connection with "+str(self.client_address))
   dMVC.getRServer().unregisterHandler(self)
   handler = dMVC.getRServer()._onDisconnection
   if handler:
     handler(self)
 def __sendInitialData(self): 
   utils.logger.debug("RServerHandler.sendRootModel client: "+str(self.client_address))
   synchronized.Synchronized.__init__(self)
   initialData = {}
   initialData['rootModel'] = dMVC.getRServer().getRootModel()
   initialData['sessionID'] = self.__sessionID
   initialData['version'] = dMVC.getRServer().getVersion()
   self.sendCommand(initialData)
Example #3
0
 def finish(self):
     SocketServer.BaseRequestHandler.finish(self)
     utils.logger.debug("Close the connection with " +
                        str(self.client_address))
     dMVC.getRServer().unregisterHandler(self)
     handler = dMVC.getRServer()._onDisconnection
     if handler:
         handler(self)
Example #4
0
 def __sendInitialData(self):
     utils.logger.debug("RServerHandler.sendRootModel client: " +
                        str(self.client_address))
     synchronized.Synchronized.__init__(self)
     initialData = {}
     initialData['rootModel'] = dMVC.getRServer().getRootModel()
     initialData['sessionID'] = self.__sessionID
     initialData['version'] = dMVC.getRServer().getVersion()
     self.sendCommand(initialData)
 def setup(self): 
   utils.logger.debug("Conect client "+str(self.client_address))
   self.__sessionID = utils.nextID()
   self.fragmentCommand = {}
   self.__commandsQueue = Queue.Queue()
   self.__asyncCommandQueue = Queue.Queue()
   thread.start_new(self.__sendCommandQueue, ())
   self.__sendInitialData()
   dMVC.getRServer().registerHandler(self)
   handler = dMVC.getRServer()._onConnection
   if handler:
     handler(self)
Example #6
0
 def setup(self):
     utils.logger.debug("Conect client " + str(self.client_address))
     self.__sessionID = utils.nextID()
     self.fragmentCommand = {}
     self.__commandsQueue = Queue.Queue()
     self.__asyncCommandQueue = Queue.Queue()
     thread.start_new(self.__sendCommandQueue, ())
     self.__sendInitialData()
     dMVC.getRServer().registerHandler(self)
     handler = dMVC.getRServer()._onConnection
     if handler:
         handler(self)
Example #7
0
  def do(self): 
    rServer = dMVC.getRServer()
    model = rServer.getModelByID(self._modelID)
    result = None
    error = None
    try:
      try:
        method = getattr(model, self._methodName)
      except AttributeError, ex:
        error = ex
        utils.logger.exception('Exception in remote method invocation')
        return RExceptionRaiser(self._executionID, ex)

      else:
 def __sendAsyncObject(self, obj, commandID): 
   toSerialize = dMVC.objectToSerialize(obj, dMVC.getRServer())
   serialized = pickle.dumps(toSerialize)
   sizeSerialized = len(serialized)
   total = sizeSerialized / 10000
   if not sizeSerialized % 10000 == 0:
     total += 1
   lenProcess = 0
   sequence = 0
   asyncCommandID = utils.nextID()
   while lenProcess < sizeSerialized:
     sequence += 1
     fragmentCommand = serialized[lenProcess : lenProcess + 10000]
     fragment = remotecommand.RFragment(asyncCommandID, sequence, total, fragmentCommand, commandID)
     self.__asyncCommandQueue.put(fragment)
     lenProcess += 10000
   print "Ya tenemos todos los fragmentos puestos en la cola"
Example #9
0
 def __sendAsyncObject(self, obj, commandID):
     toSerialize = dMVC.objectToSerialize(obj, dMVC.getRServer())
     serialized = pickle.dumps(toSerialize)
     sizeSerialized = len(serialized)
     total = sizeSerialized / 10000
     if not sizeSerialized % 10000 == 0:
         total += 1
     lenProcess = 0
     sequence = 0
     asyncCommandID = utils.nextID()
     while lenProcess < sizeSerialized:
         sequence += 1
         fragmentCommand = serialized[lenProcess:lenProcess + 10000]
         fragment = remotecommand.RFragment(asyncCommandID, sequence, total,
                                            fragmentCommand, commandID)
         self.__asyncCommandQueue.put(fragment)
         lenProcess += 10000
     print "Ya tenemos todos los fragmentos puestos en la cola"
 def __sendObject(self, obj, command=None): 
   toSerialize = dMVC.objectToSerialize(obj, dMVC.getRServer())
   serialized = pickle.dumps(toSerialize)
   sizeSerialized = len(serialized)
   serializedCompress = gzip.zlib.compress(serialized)
   sizeSerializedCompress = len(serializedCompress)
   compress = '%.2f'% (100 - ((float(sizeSerializedCompress) / float(sizeSerialized)) * 100))
   try:
     size = struct.pack("i", sizeSerializedCompress)
     utils.logger.debug("Sendind object " + str(obj) + " to client: "+str(self.client_address) + " (" + str(sizeSerializedCompress) + "b), compress: "+compress )
     self.request.send(size)
     self.request.send(serializedCompress)
     #if command:
     #  print "Enviado ",sizeSerialized , command
     return True
   except:
     #utils.logger.exception("Can''t send an object, probable conexion lost")
     self.finish()
     return False
Example #11
0
 def __sendObject(self, obj, command=None):
     toSerialize = dMVC.objectToSerialize(obj, dMVC.getRServer())
     serialized = pickle.dumps(toSerialize)
     sizeSerialized = len(serialized)
     serializedCompress = gzip.zlib.compress(serialized)
     sizeSerializedCompress = len(serializedCompress)
     compress = '%.2f' % (100 - (
         (float(sizeSerializedCompress) / float(sizeSerialized)) * 100))
     try:
         size = struct.pack("i", sizeSerializedCompress)
         utils.logger.debug("Sendind object " + str(obj) + " to client: " +
                            str(self.client_address) + " (" +
                            str(sizeSerializedCompress) + "b), compress: " +
                            compress)
         self.request.send(size)
         self.request.send(serializedCompress)
         #if command:
         #  print "Enviado ",sizeSerialized , command
         return True
     except:
         #utils.logger.exception("Can''t send an object, probable conexion lost")
         self.finish()
         return False
Example #12
0
 def getClass(self):
   rServer = dMVC.getRServer()
   model = rServer.getModelByID(self._modelID)
   return model.__class__.__name__
Example #13
0
 def unsubscribeEventObserver(self):
   model = dMVC.getRServer().getModelByID(self._modelID)
   model.unsubscribeEventObserver(self)
Example #14
0
 def do(self):
   model = dMVC.getRServer().getModelByID(self._modelID)
   model.subscribeEvent(self._eventType, self.eventFired, self._suscriptionID, self.getSessionID())
Example #15
0
 def do(self):
   for suscription in self._suscriptionList:
     model = dMVC.getRServer().getModelByID(suscription[0])
     model.unsubscribeEventById(suscription[1], self.getSessionID())
Example #16
0
 def do(self):
   model = dMVC.getRServer().getModelByID(self._modelID)
   model.unsubscribeEventById(self._suscriptionIDs, self.getSessionID())