ae7831c5adb71bdf2ef86aa7aa8dc19402b3345evboxsync * INATNetwork implementation header, lives in VBoxSVC.
4b8518be25a866f7de85889a2d827d7a479e1411vboxsync * Copyright (C) 2006-2013 Oracle Corporation
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync * available from http://www.virtualbox.org. This file is free software;
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync * you can redistribute it and/or modify it under the terms of the GNU
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync * General Public License (GPL) as published by the Free Software
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
152b12e401b58b34fbdbf2a4510152b67884ee89vboxsyncclass NATNetworkServiceRunner: public NetworkServiceRunner
152b12e401b58b34fbdbf2a4510152b67884ee89vboxsync NATNetworkServiceRunner(): NetworkServiceRunner(NATSR_EXECUTABLE_NAME){}
4b8518be25a866f7de85889a2d827d7a479e1411vboxsync HRESULT i_saveSettings(settings::NATNetwork &data);
4b8518be25a866f7de85889a2d827d7a479e1411vboxsync // Wrapped INATNetwork properties
4b8518be25a866f7de85889a2d827d7a479e1411vboxsync HRESULT getNetworkName(com::Utf8Str &aNetworkName);
4b8518be25a866f7de85889a2d827d7a479e1411vboxsync HRESULT setNetworkName(const com::Utf8Str &aNetworkName);
4b8518be25a866f7de85889a2d827d7a479e1411vboxsync HRESULT setIPv6Prefix(const com::Utf8Str &aIPv6Prefix);
4b8518be25a866f7de85889a2d827d7a479e1411vboxsync HRESULT getAdvertiseDefaultIPv6RouteEnabled(BOOL *aAdvertiseDefaultIPv6RouteEnabled);
4b8518be25a866f7de85889a2d827d7a479e1411vboxsync HRESULT setAdvertiseDefaultIPv6RouteEnabled(BOOL aAdvertiseDefaultIPv6RouteEnabled);
4b8518be25a866f7de85889a2d827d7a479e1411vboxsync HRESULT getEventSource(ComPtr<IEventSource> &aEventSource);
4b8518be25a866f7de85889a2d827d7a479e1411vboxsync HRESULT getPortForwardRules4(std::vector<com::Utf8Str> &aPortForwardRules4);
4b8518be25a866f7de85889a2d827d7a479e1411vboxsync HRESULT getLocalMappings(std::vector<com::Utf8Str> &aLocalMappings);
4b8518be25a866f7de85889a2d827d7a479e1411vboxsync HRESULT getPortForwardRules6(std::vector<com::Utf8Str> &aPortForwardRules6);
4b8518be25a866f7de85889a2d827d7a479e1411vboxsync // wrapped INATNetwork methods
4b8518be25a866f7de85889a2d827d7a479e1411vboxsync HRESULT addLocalMapping(const com::Utf8Str &aHostid,
4b8518be25a866f7de85889a2d827d7a479e1411vboxsync // Internal methods
4b8518be25a866f7de85889a2d827d7a479e1411vboxsync int i_findFirstAvailableOffset(ADDRESSLOOKUPTYPE, uint32_t *);
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync typedef std::map<Utf8Str, settings::NATRule> NATRuleMap;
6d73c66200a04223ae56a22ff221ec32193717a5vboxsync typedef NATRuleMap::const_iterator constNATRuleMapIterator;
4b8518be25a866f7de85889a2d827d7a479e1411vboxsync void i_getPortForwardRulesFromMap(std::vector<Utf8Str> &aPortForwardRules, NATRuleMap& aRules);
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync /** weak VirtualBox parent */
ae7831c5adb71bdf2ef86aa7aa8dc19402b3345evboxsync#endif // !____H_H_NATNETWORKIMPL