00001 // this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*- 00002 00003 // -- BEGIN LICENSE BLOCK ---------------------------------------------- 00004 // This file is part of FZIs ic_workspace. 00005 // 00006 // This program is free software licensed under the LGPL 00007 // (GNU LESSER GENERAL PUBLIC LICENSE Version 3). 00008 // You can find a copy of this license in LICENSE folder in the top 00009 // directory of the source code. 00010 // 00011 // © Copyright 2014 FZI Forschungszentrum Informatik, Karlsruhe, Germany 00012 // 00013 // -- END LICENSE BLOCK ------------------------------------------------ 00014 00015 //---------------------------------------------------------------------- 00022 //---------------------------------------------------------------------- 00023 #ifndef ICL_COMM_INTERFACE_ADDRESS_H_INCLUDED 00024 #define ICL_COMM_INTERFACE_ADDRESS_H_INCLUDED 00025 00026 #include <boost/asio/ip/address.hpp> 00027 #include <icl_core/BaseTypes.h> 00028 #include <icl_core/Multimap.h> 00029 00030 #include "icl_comm/ImportExport.h" 00031 00032 namespace icl_comm { 00033 00034 struct ICL_COMM_IMPORT_EXPORT InterfaceAddress 00035 { 00037 InterfaceAddress(const boost::asio::ip::address& interface_address = boost::asio::ip::address(), 00038 const boost::asio::ip::address& interface_netmask = boost::asio::ip::address()); 00039 00041 boost::asio::ip::address interface_address; 00043 boost::asio::ip::address interface_netmask; 00044 }; 00045 00047 typedef icl_core::Multimap<icl_core::String, InterfaceAddress> InterfaceAddressMap; 00048 00049 extern InterfaceAddressMap getInterfaceAddresses(bool ipv6_support = false); 00050 00051 } 00052 00053 #endif