PARCURISegment * parcURISegment_Clone(const PARCURISegment *segment) { assertNotNull(segment, "Parameter must be a non-null PARC_URISegment pointer."); PARCBuffer *copy = parcBuffer_Copy(segment->buffer); PARCURISegment *result = parcURISegment_CreateFromBuffer(copy); parcBuffer_Release(©); return result; }
PARCURISegment * parcURISegment_Create(size_t length, const unsigned char segment[length]) { PARCURISegment *result = NULL; PARCBuffer *buffer = parcBuffer_Allocate(length); if (buffer != NULL) { parcBuffer_PutArray(buffer, length, segment); parcBuffer_Flip(buffer); result = parcURISegment_CreateFromBuffer(buffer); parcBuffer_Release(&buffer); } return result; }
PARCBufferComposer * ccnxNameSegment_BuildString(const CCNxNameSegment *segment, PARCBufferComposer *composer) { ccnxNameLabel_BuildString(segment->label, composer); if (ccnxNameSegment_Length(segment) > 0) { PARCURISegment *uriSegment = parcURISegment_CreateFromBuffer(ccnxNameSegment_GetValue(segment)); parcURISegment_BuildString(uriSegment, composer); parcURISegment_Release(&uriSegment); } return composer; }