/*----------------------------------------------------------------------------*/ /* Copyright (c) 2017-2018 FIRST. All Rights Reserved. */ /* Open Source Software - may be modified and shared by FRC teams. The code */ /* must be accompanied by the FIRST BSD license file in the root directory of */ /* the project. */ /*----------------------------------------------------------------------------*/ #ifndef WPIUTIL_WPI_UDPCLIENT_H_ #define WPIUTIL_WPI_UDPCLIENT_H_ #include #include "wpi/ArrayRef.h" #include "wpi/StringRef.h" #include "wpi/Twine.h" #include "wpi/mutex.h" namespace wpi { class Logger; class UDPClient { int m_lsd; std::string m_address; Logger& m_logger; public: explicit UDPClient(Logger& logger); UDPClient(const Twine& address, Logger& logger); UDPClient(const UDPClient& other) = delete; UDPClient(UDPClient&& other); ~UDPClient(); UDPClient& operator=(const UDPClient& other) = delete; UDPClient& operator=(UDPClient&& other); int start(); void shutdown(); // The passed in address MUST be a resolved IP address. int send(ArrayRef data, const Twine& server, int port); int send(StringRef data, const Twine& server, int port); }; } // namespace wpi #endif // WPIUTIL_WPI_UDPCLIENT_H_