|
xorp
|
00001 // -*- c-basic-offset: 4; tab-width: 8; indent-tabs-mode: t -*- 00002 00003 // Copyright (c) 2001-2011 XORP, Inc and Others 00004 // 00005 // This program is free software; you can redistribute it and/or modify 00006 // it under the terms of the GNU General Public License, Version 2, June 00007 // 1991 as published by the Free Software Foundation. Redistribution 00008 // and/or modification of this program under the terms of any other 00009 // version of the GNU General Public License is not permitted. 00010 // 00011 // This program is distributed in the hope that it will be useful, but 00012 // WITHOUT ANY WARRANTY; without even the implied warranty of 00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For more details, 00014 // see the GNU General Public License, Version 2, a copy of which can be 00015 // found in the XORP LICENSE.gpl file. 00016 // 00017 // XORP Inc, 2953 Bunker Hill Lane, Suite 204, Santa Clara, CA 95054, USA; 00018 // http://xorp.net 00019 00020 // $XORP: xorp/fea/fibconfig_table_get.hh,v 1.17 2008/10/02 21:56:46 bms Exp $ 00021 00022 #ifndef __FEA_FIBCONFIG_TABLE_GET_HH__ 00023 #define __FEA_FIBCONFIG_TABLE_GET_HH__ 00024 00025 00026 00027 #include "fte.hh" 00028 #include "iftree.hh" 00029 #include "fea_data_plane_manager.hh" 00030 00031 class FibConfig; 00032 00033 00034 class FibConfigTableGet { 00035 public: 00042 FibConfigTableGet(FeaDataPlaneManager& fea_data_plane_manager) 00043 : _is_running(false), 00044 _fibconfig(fea_data_plane_manager.fibconfig()), 00045 _fea_data_plane_manager(fea_data_plane_manager) 00046 {} 00047 00051 virtual ~FibConfigTableGet() {} 00052 00058 FibConfig& fibconfig() { return _fibconfig; } 00059 00065 FeaDataPlaneManager& fea_data_plane_manager() { return _fea_data_plane_manager; } 00066 00072 virtual bool is_running() const { return _is_running; } 00073 00080 virtual int start(string& error_msg) = 0; 00081 00088 virtual int stop(string& error_msg) = 0; 00089 00097 virtual int get_table4(list<Fte4>& fte_list) = 0; 00098 00106 virtual int get_table6(list<Fte6>& fte_list) = 0; 00107 00111 virtual int notify_table_id_change(uint32_t new_tbl) = 0; 00112 00113 protected: 00114 // Misc other state 00115 bool _is_running; 00116 00117 private: 00118 FibConfig& _fibconfig; 00119 FeaDataPlaneManager& _fea_data_plane_manager; 00120 }; 00121 00122 #endif // __FEA_FIBCONFIG_TABLE_GET_HH__