![]() |
User Manual, Developers Guide and API Documentation |
![]() |
00001 /****************************************************************************** 00002 * WiMeMac * 00003 * This file is part of openWNS (open Wireless Network Simulator) 00004 * _____________________________________________________________________________ 00005 * 00006 * Copyright (C) 2004-2011 00007 * Chair of Communication Networks (ComNets) 00008 * Kopernikusstr. 5, 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 WIMEMAC_LOWERMAC_IMANAGERSERVICES_HPP 00030 #define WIMEMAC_LOWERMAC_IMANAGERSERVICES_HPP 00031 00032 #include <WIMEMAC/drp/IDRPSchedulerServices.hpp> 00033 #include <WIMEMAC/management/IBeaconBuilderServices.hpp> 00034 #include <WIMEMAC/management/ProtocolCalculator.hpp> 00035 00036 #include <WNS/ldk/Command.hpp> 00037 #include <WNS/ldk/CommandPool.hpp> 00038 #include <WNS/service/dll/Address.hpp> 00039 00040 namespace wimemac { namespace lowerMAC { 00041 00043 class IManagerServices: 00044 public wimemac::drp::IDRPSchedulerServices, 00045 public wimemac::management::IBeaconBuilderServices 00046 { 00047 public: 00048 virtual ~IManagerServices(){}; 00049 00053 virtual wimemac::CompoundType 00054 getCompoundType(const wns::ldk::CommandPool* commandPool) const = 0; 00055 00057 virtual void 00058 setCompoundType(const wns::ldk::CommandPool* commandPool, const CompoundType type) = 0; 00059 00061 virtual wimemac::convergence::PhyMode 00062 getPhyMode(const wns::ldk::CommandPool* commandPool) const = 0; 00063 00065 virtual void 00066 setPhyMode(const wns::ldk::CommandPool* commandPool, const wimemac::convergence::PhyMode phyMode) = 0; 00067 00069 virtual wns::service::dll::UnicastAddress 00070 getReceiverAddress(const wns::ldk::CommandPool* commandPool) const = 0; 00071 00072 virtual wns::simulator::Time 00073 getBPStartTime() = 0; 00074 00075 virtual void 00076 setBPStartTime(wns::simulator::Time bpStartTime_) = 0; 00077 00079 virtual std::string 00080 getPreambleMode(const wns::ldk::CommandPool* commandPool) const = 0; 00081 00083 virtual bool 00084 isPreamble(const wns::ldk::CommandPool* commandPool) const = 0; 00085 00087 virtual bool 00088 isBeacon(const wns::ldk::CommandPool* commandPool) const = 0; 00089 00091 virtual bool 00092 isForMe(const wns::ldk::CommandPool* commandPool) const = 0; 00093 00095 virtual bool 00096 hasPayload(const wns::ldk::CommandPool* commandPool) const = 0; 00097 00098 virtual wns::simulator::Time 00099 getpsduDuration(const wns::ldk::CommandPool* commandPool) const = 0; 00100 00101 virtual void 00102 setpsduDuration(const wns::ldk::CommandPool* commandPool, const wns::simulator::Time duration) = 0; 00103 00105 virtual wns::service::dll::UnicastAddress 00106 getTransmitterAddress(const wns::ldk::CommandPool* commandPool) const = 0; 00107 00108 virtual bool getDRPchannelAccess() = 0; 00109 virtual bool getPCAchannelAccess() = 0; 00110 virtual bool getRandomUse() = 0; 00111 00112 00113 virtual wns::ldk::CommandPool* createReply(const wns::ldk::CommandPool* original) const = 0; 00114 virtual wns::ldk::CommandPool* createReply(const wns::ldk::CommandPool* original, wimemac::CompoundType compoundType) const = 0; 00115 virtual wns::ldk::CompoundPtr 00116 createCompound(const wns::service::dll::UnicastAddress transmitterAddress, 00117 const wns::service::dll::UnicastAddress receiverAddress, 00118 const CompoundType compoundType, 00119 const bool hasPayload, 00120 const wns::simulator::Time frameExchangeDuration, 00121 const bool requiresDirectReply = false) = 0; 00122 00123 virtual wns::simulator::Time getFrameExchangeDuration(const wns::ldk::CommandPool* commandPool) const = 0; 00124 virtual void setFrameExchangeDuration(const wns::ldk::CommandPool* commandPool, const wns::simulator::Time duration) = 0; 00125 00126 virtual wimemac::management::ProtocolCalculator* getProtocolCalculator() = 0; 00127 00128 }; 00129 00130 00131 } // lowerMAC 00132 } // wimemac 00133 00134 #endif // not defined WIMEMAC_LOWERMAC_IMANAGERSERVICES_HPP 00135 00136 00137
1.5.5