⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mftp_snd.h

📁 在ns-2添加apps
💻 H
字号:
/* * (c) 1997-98 StarBurst Communications Inc. * * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * Author: Christoph Haenle, chris@cs.vu.nl * File: mftp_snd.h * Last change: Dec 14, 1998 * * This software may freely be used only for non-commercial purposes */// This file contains functionality specific to the MFTP sender.#ifndef mftp_snd_h#define mftp_snd_h#include "codeword.h"#include "mftp.h"              // due to class MFTPAgentclass MFTPSndAgent : public MFTPAgent {public:    MFTPSndAgent();    virtual ~MFTPSndAgent();    int command(int argc, const char*const* argv);    void recv(Packet* p, Handler* h);protected:    void fill_read_ahead_buf(); // reads next couple of groups from disk into main memory                                // note: the actual disk read is left out, since receiving the                                // file is only simulated. We do count the number of disk seeks,                                // though.    void init_user_file(unsigned long readAheadBufsize);    int send_data();            // sends next data packet    void send_status_request(unsigned long pass_nb, unsigned long block_lo, unsigned long block_hi,                             double txStatusDelay);    void process_nak(hdr_mftp::Spec::Nak& nak, unsigned char* nak_bitmap,                        unsigned long currentPass); // processes incoming NAK        // note: the following variables are r/w from within a tcl-script:    int readAheadBufsize_;      // this value is copied upon start of the sender protocol    double txStatusDelay_;    int nakCount_;    // note: the following variables are not accessible within a tcl-script:    unsigned char* naks;               // NAK bitmap, 0=>ACK, 1=>NAK    unsigned char* retx;               // Retransmit bitmap, 0=>Not retx'd, 1=>retx'd    unsigned long  fseek_offset;       // offset of next file read/write    unsigned long  read_ahead_bufsize; // number of bytes read_ahead_buf consists of    unsigned long  CurrentPass;        // current pass number    unsigned long  CurrentGroup;       // current group number within pass    CW_PATTERN_t   CwPat;              // used for erasure correction    unsigned long  MinGroupNbInBuf;    // indicates lowest group number that is                                       // currently cached in the read_ahead_buffer    unsigned long  NbGroupsInBuf;      // number of groups currently stored in                                       // the read_ahead_buffer    Codeword iterator;                 // for iteration through sequence of codewords};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -