![]() |
User Manual, Developers Guide and API Documentation |
![]() |
00001 /****************************************************************************** 00002 * WiFiMac * 00003 * This file is part of openWNS (open Wireless Network Simulator) 00004 * _____________________________________________________________________________ 00005 * 00006 * Copyright (C) 2004-2007 00007 * Chair of Communication Networks (ComNets) 00008 * Kopernikusstr. 16, D-52074 Aachen, Germany 00009 * phone: ++49-241-80-27910, 00010 * fax: ++49-241-80-22242 00011 * email: info@openwns.org 00012 * www: http://www.openwns.org 00013 * _____________________________________________________________________________ 00014 * 00015 * openWNS is free software; you can redistribute it and/or modify it under the 00016 * terms of the GNU Lesser General Public License version 2 as published by the 00017 * Free Software Foundation; 00018 * 00019 * openWNS is distributed in the hope that it will be useful, but WITHOUT ANY 00020 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 00021 * A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 00022 * details. 00023 * 00024 * You should have received a copy of the GNU Lesser General Public License 00025 * along with this program. If not, see <http://www.gnu.org/licenses/>. 00026 * 00027 ******************************************************************************/ 00028 00029 #ifndef WIFIMAC_PATHSELECTION_PATHSELECTION_HPP 00030 #define WIFIMAC_PATHSELECTION_PATHSELECTION_HPP 00031 00032 #include <WIFIMAC/pathselection/VirtualPathSelection.hpp> 00033 #include <WIFIMAC/pathselection/IPathSelection.hpp> 00034 00035 #include <DLL/services/control/Association.hpp> 00036 00037 #include <WNS/ldk/ManagementServiceInterface.hpp> 00038 #include <WNS/logger/Logger.hpp> 00039 00040 #include <WNS/service/dll/Address.hpp> 00041 00042 00043 namespace wifimac { namespace pathselection { 00044 00051 class PathSelectionOverVPS : 00052 public IPathSelection, 00053 public wns::ldk::ManagementService, 00054 public dll::services::control::AssociationObserver 00055 { 00056 public: 00057 PathSelectionOverVPS( wns::ldk::ManagementServiceRegistry*, const wns::pyconfig::View& config ); 00058 virtual ~PathSelectionOverVPS() {}; 00059 00060 virtual wns::service::dll::UnicastAddress 00061 getNextHop(const wns::service::dll::UnicastAddress current, 00062 const wns::service::dll::UnicastAddress finalDestination); 00063 virtual bool 00064 isMeshPoint(const wns::service::dll::UnicastAddress address) const; 00065 virtual bool 00066 isPortal(const wns::service::dll::UnicastAddress address) const; 00067 virtual wns::service::dll::UnicastAddress 00068 getProxyFor(const wns::service::dll::UnicastAddress address); 00069 virtual wns::service::dll::UnicastAddress 00070 getPortalFor(const wns::service::dll::UnicastAddress address); 00071 virtual void 00072 registerProxy(const wns::service::dll::UnicastAddress server, 00073 const wns::service::dll::UnicastAddress client); 00074 virtual void 00075 registerMP(const wns::service::dll::UnicastAddress address); 00076 virtual void 00077 registerPortal(const wns::service::dll::UnicastAddress address, 00078 dll::APUpperConvergence* apUC); 00079 00080 00081 virtual void 00082 deRegisterProxy(const wns::service::dll::UnicastAddress server, 00083 const wns::service::dll::UnicastAddress client); 00084 virtual void 00085 createPeerLink(const wns::service::dll::UnicastAddress myself, 00086 const wns::service::dll::UnicastAddress peer, 00087 const Metric linkMetric = Metric(1)); 00088 virtual void 00089 updatePeerLink(const wns::service::dll::UnicastAddress myself, 00090 const wns::service::dll::UnicastAddress peer, 00091 const Metric linkMetric = Metric(1)); 00092 virtual void 00093 closePeerLink(const wns::service::dll::UnicastAddress myself, 00094 const wns::service::dll::UnicastAddress peer); 00095 00096 private: 00097 void 00098 onMSRCreated(); 00099 00103 void onAssociated(const wns::service::dll::UnicastAddress clientAdr, 00104 const wns::service::dll::UnicastAddress serverAdr); 00105 void onDisassociated(const wns::service::dll::UnicastAddress clientAdr, 00106 const wns::service::dll::UnicastAddress serverAdr); 00107 00108 wns::logger::Logger logger; 00109 std::string upperConvergenceName; 00110 }; 00111 } // mac 00112 } // wifimac 00113 00114 #endif // WIFIMAC_SCHEDULER_HPP
1.5.5