EXPORT RM_ENTRY(rmc_put_segment) { ClearParamPool(); ISC_STATUS *stat = AllocStatusPool(); isc_put_segment(stat, (isc_blob_handle *)arg_vector[1].a_address, *CobolToShort(&arg_vector[2]), (char *)arg_vector[3].a_address); StatusToCobol(&arg_vector[0], stat); return (0); }
bool UserBlob::putSegment(size_t len, const void* buffer) { #ifdef DEV_BUILD if (!m_blob || m_direction == dir_read) return false; if (len > 0 && !buffer) return false; #endif USHORT ilen = len > SEGMENT_LIMIT ? SEGMENT_LIMIT : static_cast<USHORT>(len); const char* buf2 = static_cast<const char*>(buffer); return !isc_put_segment(m_status, &m_blob, ilen, buf2); }
void LEX_put_text (FB_API_HANDLE blob, TXT text) { /************************************** * * L E X _ p u t _ t e x t * ************************************** * * Functional description * Write text from the scratch trace file into a blob. * **************************************/ SLONG start; ISC_STATUS_ARRAY status_vector; int length; SSHORT l, c; TEXT buffer[1024]; start = text->txt_position; length = text->txt_length; if (fseek(trace_file, start, 0)) { fseek(trace_file, 0, 2); DDL_err(275); /* msg 275: fseek failed */ } while (length) { TEXT* p = buffer; while (length) { --length; *p++ = c = getc(trace_file); if (c == '\n') break; } if (l = p - buffer) if (isc_put_segment(status_vector, &blob, l, buffer)) DDL_err(277); /* msg 277: isc_put_segment failed */ } fseek(trace_file, 0, 2); }
bool UserBlob::putData(size_t len, const void* buffer, size_t& real_len) { if (!m_blob || m_direction == dir_read) return false; if (len > 0 && !buffer) return false; real_len = 0; const char* buf2 = static_cast<const char*>(buffer); while (len) { USHORT ilen = len > SEGMENT_LIMIT ? SEGMENT_LIMIT : static_cast<USHORT>(len); if (isc_put_segment(m_status, &m_blob, ilen, buf2)) return false; len -= ilen; buf2 += ilen; real_len += ilen; } return true; }
ISC_STATUS API_ROUTINE gds__put_segment(ISC_STATUS* status_vector, FB_API_HANDLE* blob_handle, USHORT segment_length, const SCHAR* segment) { return isc_put_segment(status_vector, blob_handle, segment_length, segment); }