| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #ifndef VSTARCAM_FINDER_H
- #define VSTARCAM_FINDER_H
- #include <asio.hpp>
- #include <condition_variable>
- #include <mutex>
- #include <string>
- namespace VStarCam {
- class Finder
- {
- public:
- explicit Finder(const std::string& ipAddress);
- ~Finder();
- int GetPort(const std::string& ipAddress);
- private:
- bool Timeout() const;
- bool PortFound();
- void ProcessMessage(const std::string& message);
- std::string GetString(std::string::const_iterator& it) const;
- void Advance(std::string::const_iterator& it) const;
- std::string StringToHex(const std::string& input) const;
- private:
- asio::system_timer::time_point m_startTime;
- asio::system_timer::duration m_timeout;
- mutable std::mutex m_mutex;
- std::condition_variable m_condition;
- std::string m_sourceAddress;
- std::string m_targetAddress;
- int m_sourcePort;
- int m_targetPort;
- int m_port;
- };
- } // namespace VStarCam
- #endif // UTIL_VSTARCAMFINDER_H
|