Beispiel #1
0
int SLNSubmissionCreateQuick(SLNSessionRef const session, strarg_t const knownURI, strarg_t const type, ssize_t (*read)(void *, byte_t const **), void *const context, SLNSubmissionRef *const out) {
	int rc = SLNSubmissionCreate(session, knownURI, type, out);
	if(rc < 0) return rc;
	rc = SLNSubmissionWriteFrom(*out, read, context);
	if(rc < 0) SLNSubmissionFree(out);
	return rc;
}
Beispiel #2
0
int SLNSubmissionCreateQuick(SLNSessionRef const session, strarg_t const knownURI, strarg_t const type, ssize_t (*read)(void *, byte_t const **), void *const context, SLNSubmissionRef *const out) {
	assert(out);
	SLNSubmissionRef sub = NULL;
	int rc = SLNSubmissionCreate(session, knownURI, &sub);
	if(rc < 0) return rc;
	rc = SLNSubmissionSetType(sub, type);
	if(rc < 0) goto cleanup;
	rc = SLNSubmissionWriteFrom(sub, read, context);
	if(rc < 0) goto cleanup;
	*out = sub; sub = NULL;
cleanup:
	SLNSubmissionFree(&sub);
	return rc;
}