?? producer.cpp
字號:
/* Copyright (C) 1995, Tektronix Inc. All Rights Reserved. * * Usage Restrictions * * License is granted to copy, to use, and to make and to use derivative * works for research and evaluation purposes only. * * Disclaimer of Warranty * * These software programs are available to the user without any license * fee or royalty on an "as is" basis. Tektronix Inc. disclaims any and * all warranties, whether express, implied, or statuary, including any * implied warranties or merchantability or of fitness for a particular * purpose. In no event shall the copyright-holder be liable for any * incidental, punitive, or consequential damages of any kind whatsoever * arising from the use of these programs. * * This disclaimer of warranty extends to the user of these programs and * user's customers, employees, agents, transferees, successors, and * assigns. * * The Tektronix Inc. does not represent or warrant that the programs * furnished hereunder are free of infringement of any third-party * patents.*//* Producer class implementation */#include "Utilities.H"#include "Producer.H"#include "OutputPort.H"extern "C"{//#include <stdio.h>}Producer::Producer (Encoder* e){ encoder = e; length_stored = 0; buf_index = 1; buf = NULL;
}void Producer::connect (OutputPort* p){ oport = p;}int Producer::fill_buffer (){ // do nothing in the base class return 0;}int Producer::get_nready (){ if (length_stored < buf_index) return 0; return length_stored - buf_index; }int Producer::send_partial (int n){ if (buf_index >= length_stored) { // fill buffer length_stored = fill_buffer(); } // now send bytes for (int i = 0; i < n; i++) { if (buf_index < length_stored) { oport->write_byte(buf[buf_index]); buf_index++; } else { oport->write_byte(0xff); sys_message("0xff padding inserted by Producer::send_partial"); } } if (buf_index < length_stored) return 0; else return 1;}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -