Example #1
0
 def _create_nameless_data_packet(self, payload_value):
     payload_tlv = ccnpy.Payload(payload_value)
     nameless = ccnpy.ContentObject.create_data(name=None,
                                                payload=payload_tlv,
                                                expiry_time=self._tree_options.data_expiry_time)
     packet = ccnpy.Packet.create_content_object(nameless)
     assert len(packet) <= self._max_packet_size
     return packet
Example #2
0
    def _calculate_nameless_data_payload_size(self):
        """
        Create a nameless object with empty payload and see how much space we have left.
        :return: payload size of a nameless data object
        """
        nameless = ccnpy.ContentObject.create_data(name=None,
                                                   expiry_time=self._tree_options.data_expiry_time,
                                                   payload=ccnpy.Payload([]))
        packet = ccnpy.Packet.create_content_object(body=nameless)
        if len(packet) >= self._max_packet_size:
            raise ValueError("An empty nameless ContentObject is %r bytes, but max_size is only %r" %
                             (len(packet), self._max_packet_size))

        payload_size = self._max_packet_size - len(packet)
        return payload_size
Example #3
0
    def create_manifest(cls, manifest, name=None, expiry_time=None):
        """

        :param name: ccnpy.Name
        :param manifest: A serializable object to put in the payload
        :param expiry_time: A python datetime
        :return: A ccnpy.ContentObject
        """
        if manifest is None:
            raise ValueError("manifest must not be None")

        payload_type = ccnpy.PayloadType.create_manifest_type()
        payload = ccnpy.Payload(manifest.serialize())

        if expiry_time is not None:
            if not isinstance(expiry_time, datetime):
                raise TypeError("expiry_time must be datetime")
            expiry_time = ccnpy.ExpiryTime.from_datetime(expiry_time)
        return cls(name=name,
                   payload_type=payload_type,
                   payload=payload,
                   expiry_time=expiry_time)
Example #4
0
    def create_data(cls, name=None, payload=None, expiry_time=None):
        """

        :param name: ccnpy.Name
        :param payload: A byte array (array.array("B", ...)) or ccnpy.Payload
        :param expiry_time: A python datetime
        :return: A ccnpy.ContentObject
        """
        payload_type = None

        if payload is not None:
            payload_type = ccnpy.PayloadType.create_data_type()
            if not isinstance(payload, ccnpy.Payload):
                payload = ccnpy.Payload(payload)

        if expiry_time is not None:
            if not isinstance(expiry_time, datetime):
                raise TypeError("expiry_time must be datetime")
            expiry_time = ccnpy.ExpiryTime.from_datetime(expiry_time)
        return cls(name=name,
                   payload_type=payload_type,
                   payload=payload,
                   expiry_time=expiry_time)
Example #5
0
 def _create_data_packet(application_data):
     payload = ccnpy.Payload(application_data)
     packet = ccnpy.Packet.create_content_object(
         ccnpy.ContentObject.create_data(payload=payload))
     return packet