FudgeStatus FudgeMsgEnvelope_create ( FudgeMsgEnvelope * envelopeptr, fudge_byte directives, fudge_byte schemaversion, fudge_i16 taxonomy, FudgeMsg message ) { FudgeStatus status; if ( ! ( *envelopeptr = FUDGEMEMORY_MALLOC( FudgeMsgEnvelope, sizeof ( struct FudgeMsgEnvelopeImpl ) ) ) ) return FUDGE_OUT_OF_MEMORY; if ( ( status = FudgeRefCount_create ( &( ( *envelopeptr )->refcount ) ) ) != FUDGE_OK ) goto release_and_fail; if ( ( status = FudgeMsg_retain ( message ) ) != FUDGE_OK ) goto release_and_fail; ( *envelopeptr )->directives = directives; ( *envelopeptr )->schemaversion = schemaversion; ( *envelopeptr )->taxonomy = taxonomy; ( *envelopeptr )->message = message; return FUDGE_OK; release_and_fail: FUDGEMEMORY_FREE( *envelopeptr ); return status; }
FudgeStatus FudgeMsg_create ( FudgeMsg * messageptr ) { FudgeStatus status; if ( ! ( *messageptr = ( FudgeMsg ) malloc ( sizeof ( struct FudgeMsgImpl ) ) ) ) return FUDGE_OUT_OF_MEMORY; if ( ( status = FudgeRefCount_create ( &( ( *messageptr )->refcount ) ) ) != FUDGE_OK ) { free ( *messageptr ); return status; } ( *messageptr )->fieldhead = 0; ( *messageptr )->fieldtail = 0; ( *messageptr )->numfields = 0ul; ( *messageptr )->width = -1; return FUDGE_OK; }