VBoxNetBaseService.h revision d1a00c93378091ef28db9d959b2d692cc8143a07
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync/* $Id$ */
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync/** @file
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync * VBoxNetUDP - IntNet Client Library.
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync */
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync/*
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync * Copyright (C) 2009 Sun Microsystems, Inc.
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync *
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync * Sun Microsystems, Inc. confidential
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync * All rights reserved
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync */
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync#ifndef ___VBoxNetBaseService_h___
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync#define ___VBoxNetBaseService_h___
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsyncclass VBoxNetBaseService
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync{
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsyncpublic:
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync VBoxNetBaseService();
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync virtual ~VBoxNetBaseService();
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync int parseArgs(int argc, char **argv);
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync int tryGoOnline(void);
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync void shutdown(void);
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync virtual void usage(void) = 0;
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync virtual void run(void) = 0;
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync inline void debugPrint( int32_t iMinLevel, bool fMsg, const char *pszFmt, ...) const;
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync void debugPrintV(int32_t iMinLevel, bool fMsg, const char *pszFmt, va_list va) const;
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsyncpublic:
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync /** @name The server configuration data members.
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync * @{ */
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync std::string m_Name;
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync std::string m_Network;
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync std::string m_TrunkName;
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync INTNETTRUNKTYPE m_enmTrunkType;
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync RTMAC m_MacAddress;
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync RTNETADDRIPV4 m_Ipv4Address;
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync /** @} */
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync /** @name The network interface
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync * @{ */
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync PSUPDRVSESSION m_pSession;
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync uint32_t m_cbSendBuf;
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync uint32_t m_cbRecvBuf;
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync INTNETIFHANDLE m_hIf; /**< The handle to the network interface. */
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync PINTNETBUF m_pIfBuf; /**< Interface buffer. */
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync /** @} */
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync /** @name Debug stuff
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync * @{ */
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync int32_t m_cVerbosity;
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync /** @} */
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync};
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync#endif