c_bool d_publisherSampleRequestWriterCopy( c_type type, void *data, void *to) { c_bool result; c_ulong i; static c_type type3; d_sampleRequest msgFrom = d_sampleRequest(data); d_sampleRequest msgTo = d_sampleRequest(to); c_base base = c_getBase(type); result = d_publisherMessageWriterCopy(&msgFrom->parentMsg, &msgTo->parentMsg); msgTo->partition = c_stringNew(base, msgFrom->partition); msgTo->topic = c_stringNew(base, msgFrom->topic); msgTo->durabilityKind = msgFrom->durabilityKind; msgTo->requestTime = msgFrom->requestTime; msgTo->withTimeRange = msgFrom->withTimeRange; msgTo->beginTime = msgFrom->beginTime; msgTo->endTime = msgFrom->endTime; msgTo->source.systemId = msgFrom->source.systemId; msgTo->source.localId = msgFrom->source.localId; msgTo->source.lifecycleId = msgFrom->source.lifecycleId; if(msgFrom->filter){ msgTo->filter = c_stringNew(base, msgFrom->filter); } else { msgTo->filter = NULL; } if(msgFrom->filterParams){ if (type3 == NULL) { type3 = c_resolve(base, "c_string"); } assert(type3 != NULL); msgTo->filterParamsCount = msgFrom->filterParamsCount; msgTo->filterParams = c_arrayNew(type3, msgFrom->filterParamsCount); for(i=0; i<msgFrom->filterParamsCount; i++){ msgTo->filterParams[i] = c_stringNew(base, msgFrom->filterParams[i]); } } msgTo->maxSamples = msgFrom->maxSamples; msgTo->maxInstances = msgFrom->maxInstances; msgTo->maxSamplesPerInstance = msgFrom->maxSamplesPerInstance; return result; }
d_sampleRequest d_sampleRequestCopy( d_sampleRequest request) { d_sampleRequest copy; c_ulong i; if(request){ copy = d_sampleRequest(os_malloc(C_SIZEOF(d_sampleRequest))); d_messageSetAddressee(d_message(copy), &(d_message(request)->addressee)); d_messageSetSenderAddress(d_message(copy), &(d_message(request)->senderAddress)); d_message(copy)->senderState = d_message(request)->senderState; copy->partition = os_strdup(request->partition); copy->topic = os_strdup(request->topic); copy->durabilityKind = request->durabilityKind; copy->requestTime = request->requestTime; copy->withTimeRange = request->withTimeRange; copy->beginTime = request->beginTime; copy->endTime = request->endTime; copy->source.systemId = request->source.systemId; copy->source.localId = request->source.localId; copy->source.lifecycleId = request->source.lifecycleId; if(request->filter){ copy->filter = os_strdup(request->filter); } else { copy->filter = NULL; } if(request->filterParamsCount > 0){ copy->filterParamsCount = request->filterParamsCount; copy->filterParams = (c_array)os_malloc( request->filterParamsCount * sizeof(c_char*)); for(i=0; i<request->filterParamsCount; i++){ copy->filterParams[i] = os_strdup(request->filterParams[i]); } } else { copy->filterParamsCount = 0; copy->filterParams = NULL; } copy->maxSamples = request->maxSamples; copy->maxInstances = request->maxInstances; copy->maxSamplesPerInstance = request->maxSamplesPerInstance; } else { copy = NULL; } return copy; }
d_sampleRequest d_sampleRequestNew( d_admin admin, const c_char* partition, const c_char* topic, d_durabilityKind kind, d_timestamp requestTime, c_bool withTimeRange, d_timestamp beginTime, d_timestamp endTime) { d_sampleRequest sampleRequest = NULL; if(admin){ sampleRequest = d_sampleRequest(os_malloc(C_SIZEOF(d_sampleRequest))); d_messageInit(d_message(sampleRequest), admin); sampleRequest->partition = os_strdup(partition); sampleRequest->topic = os_strdup(topic); sampleRequest->durabilityKind = kind; sampleRequest->requestTime = requestTime; sampleRequest->withTimeRange = withTimeRange; sampleRequest->beginTime = beginTime; sampleRequest->endTime = endTime; sampleRequest->source.systemId = 0; sampleRequest->source.localId = 0; sampleRequest->source.lifecycleId = 0; sampleRequest->filter = NULL; sampleRequest->filterParams = NULL; sampleRequest->filterParamsCount = 0; sampleRequest->maxSamples = -1; sampleRequest->maxInstances = -1; sampleRequest->maxSamplesPerInstance = -1; } return sampleRequest; }