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

📄 command.hh

📁 xorp源码hg
💻 HH
字号:
// -*- c-basic-offset: 4; tab-width: 8; indent-tabs-mode: t -*-// Copyright (c) 2001-2007 International Computer Science Institute//// Permission is hereby granted, free of charge, to any person obtaining a// copy of this software and associated documentation files (the "Software")// to deal in the Software without restriction, subject to the conditions// listed in the XORP LICENSE file. These conditions include: you must// preserve this copyright notice, and you cannot mention the copyright// holders in advertising related to the Software without their permission.// The Software is provided WITHOUT ANY WARRANTY, EXPRESS OR IMPLIED. This// notice is a summary of the XORP LICENSE file; the license in that file is// legally binding.// $XORP: xorp/bgp/harness/command.hh,v 1.15 2007/02/16 22:45:25 pavlin Exp $#ifndef __BGP_HARNESS_COMMAND_HH__#define __BGP_HARNESS_COMMAND_HH__#include "libxorp/ref_ptr.hh"#include "libxorp/tokenize.hh"#include "peer.hh"class TimeVal;/*** All the commands to the coordinating process come via this class.** The commands are delivered either via XRL's or from a file.*/class Command {public:    Command(EventLoop& eventloop, XrlStdRouter& xrlrouter);    /*    ** Load command map.    */    void load_command_map();    /*    ** Accept a command for the coordinating process.    */    void command(const string& line) throw(InvalidString);    /*    ** Show the status of the peers.    */    void status(const string& peer, string& status);    /*    ** Test to see if there are any uncompleted commands.    */    bool pending();    /*    ** Data from the test peers.    */    void datain(const string&  peer,  const uint32_t& genid,		const bool& status, const TimeVal& tv,		const vector<uint8_t>&  data);    void datain_error(const string&  peer,  const uint32_t& genid,		      const string& reason);    void datain_closed(const string&  peer,  const uint32_t& genid);       /*    ** All commands to peers sent through here.    */    void peer(const string& line, const vector<string>& v) 	throw(InvalidString);    void reset(const string& line, const vector<string>& v);    void target(const string& line, const vector<string>& v) 	throw(InvalidString);    void initialise(const string& line, const vector<string>& v) 	throw(InvalidString);    void initialise_callback(const XrlError& error, string peername);private:    EventLoop& _eventloop;    XrlStdRouter& _xrlrouter;    uint32_t _genid;    uint32_t _init_count;	// Number of initialisations with				// test_peers currently in progress.    /*    ** Supported commands.    */    typedef void (Command::* MEMFUN)(const string& line,				     const vector<string>& v);    struct PCmd {	PCmd(const Command::MEMFUN& mem_fun) : _mem_fun(mem_fun)	{}	void dispatch(Command* c, const string& line, const vector<string>&v)	{	    (c->*_mem_fun)(line, v);	}	Command::MEMFUN _mem_fun;    };    typedef map<const string, PCmd> StringCommandMap;    StringCommandMap _commands;    typedef list<Peer> PeerList;    PeerList _peers;    string _target_hostname;    string _target_port;};#endif // __BGP_HARNESS_COMMAND_HH__

⌨️ 快捷键说明

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