#pragma once

/**
 * \file Network.h
 * \brief File containing the blitz::network::NetworkInitializer class
 */

#include "TCPSocket.h"

namespace blitz {

/**
 * \namespace blitz::network
 * \brief Namespace containing all classes related to networking
 */
namespace network {

/**
 * \class NetworkInitializer
 * \brief Class used to initialize the network (only does something on Windows).
 * \note This class is meant to be created only once in your program. \n
 * 	The easiest thing to do is to create an instance of this class at the top of your **main.cpp**.
 */
class NetworkInitializer : private NonCopyable {
  public:
	/**
	 * \brief Creates the networking context
	 */
	NetworkInitializer();
	/**
	 * \brief Destroys the networking context
	 */
	~NetworkInitializer();
};

}  // namespace network
}  // namespace blitz