Exemplo n.º 1
0
 def getContentResolver_query(self, uri, projection, selection,
                              selectionArgs, sortOrder):
     request = content_provider_pb2.Request()
     uuid = str(uuid.uuid1())
     request.uuid = uuid
     request.method = content_provider_pb2.Request.query
     request.uri = uri
     request.projection = projection
     request.selectionArgs.append(selectionArgs)
     request.sortOrder = sortOrder
     _data = request.SerializeToString()
     cond = threading.Condition()
     self.proxy_set[uuid] = cond
     cond.acquire()
     self.send_int(self.client, self.CONTENT_PROVIDER_RESPONSE)
     self.send(self.client, _data)
     cond.wait()
     cond.release()
     self.proxy_set.pop(uuid)
     response = self.result_set.pop(uuid)
     status = response.status
     if status != content_provider_pb2.Response.Ok:
         return None
     cursor = Cursor(uuid, self)
     return cursor
Exemplo n.º 2
0
 def handle_content_provider_request(self, pb):
     #pdb.set_trace()
     request = content_provider_pb2.Request()
     request.ParseFromString(pb)
     uuid = request.uuid
     contentprovider = self.contentprovider_set.get(request.uri)
     response = content_provider_pb2.Response()
     response.uuid = uuid
     response.status = content_provider_pb2.Response.Ok
     if contentprovider == None:
         response.status = content_provider_pb2.Response.UriNotFound
         _data = response.SerializeToString()
         self.send_int(self.client, self.CONTENT_PROVIDER_RESPONSE)
         self.send(self.client, _data)
         return
     _method = request.method
     uri = request.uri
     selection = request.selection
     selectionArgs = request.selectionArgs
     values = request.values
     projection = request.projection
     sortOrder = request.sortOrder
     if _method == content_provider_pb2.Request.delete:
         result = contentprovider.delete(uri, selection, selectionArgs)
         response.intResult = result
     elif _method == content_provider_pb2.Request.getType:
         result = contentprovider.getType(uri)
         response.stringResult = result
     elif _method == content_provider_pb2.Request.insert:
         result = contentprovider.insert(uri, values)
         response.stringResult = result
     elif _method == content_provider_pb2.Request.query:
         cursor = contentprovider.query(uri, projection, selection,
                                        selectionArgs, sortOrder)
         if cursor == None:
             response.status = content_provider_pb2.Response.MethodNotFound
         else:
             self.proxy_set[uuid] = cursor
     elif _method == content_provider_pb2.Request.update:
         result = contentprovider.update(uri, values, selection,
                                         selectionArgs)
         response.intResult = result
     else:
         response.status = content_provider_pb2.Response.MethodNotFound
     _data = response.SerializeToString()
     self.send_int(self.client, self.CONTENT_PROVIDER_RESPONSE)
     self.send(self.client, _data)
Exemplo n.º 3
0
 def getContentResolver_getType(self, uri):
     request = content_provider_pb2.Request()
     uuid = str(uuid.uuid1())
     request.uuid = uuid
     request.method = content_provider_pb2.Request.getType
     request.uri = uri
     _data = request.SerializeToString()
     cond = threading.Condition()
     self.proxy_set[uuid] = cond
     cond.acquire()
     self.send_int(self.client, self.CONTENT_PROVIDER_RESPONSE)
     self.send(self.client, _data)
     cond.wait()
     cond.release()
     self.proxy_set.pop(uuid)
     response = self.result_set.pop(uuid)
     status = response.status
     if status != content_provider_pb2.Response.Ok:
         return None
     return response.stringResult
Exemplo n.º 4
0
 def getContentResolver_update(self, values, selection, selectionArgs):
     request = content_provider_pb2.Request()
     uuid = str(uuid.uuid1())
     request.uuid = uuid
     request.method = content_provider_pb2.Request.update
     request.uri = uri
     request.values.update(values)
     request.selection = selection
     request.selectionArgs.append(selectionArgs)
     _data = request.SerializeToString()
     cond = threading.Condition()
     self.proxy_set[uuid] = cond
     cond.acquire()
     self.send_int(self.client, self.CONTENT_PROVIDER_RESPONSE)
     self.send(self.client, _data)
     cond.wait()
     cond.release()
     self.proxy_set.pop(uuid)
     response = self.result_set.pop(uuid)
     status = response.status
     if status != content_provider_pb2.Response.Ok:
         return 0
     return response.intResult