Skip to content

sg_client/sg_result_collector.hpp

Collects inference results via GeniusSDK processing status polling. More...

Namespaces

Name
sgns
sgns::neoswarm
sgns::neoswarm::network

Classes

Name
struct sgns::neoswarm::network::SGResultCollectorConfig
class sgns::neoswarm::network::SGResultCollector
Collects inference results via GeniusSDK processing status polling.

Detailed Description

Collects inference results via GeniusSDK processing status polling.

Date: 2026-05-28

Source code

#ifndef NEOSWARM_NETWORK_SG_CLIENT_SGRESULTCOLLECTOR_HPP
#define NEOSWARM_NETWORK_SG_CLIENT_SGRESULTCOLLECTOR_HPP

#include "common/error.hpp"
#include <chrono>
#include <cstdint>
#include <future>
#include <memory>
#include <string>
#include <vector>

namespace sgns::neoswarm::network
{
    struct SGResultCollectorConfig
    {
        std::chrono::seconds m_resultTimeout{ 120 };
    };

    class SGResultCollector
    {
        public:
        explicit SGResultCollector( SGResultCollectorConfig cfg = {} );
        ~SGResultCollector();

        outcome::result<std::vector<uint8_t>> PollForResult( std::chrono::seconds timeout );

        outcome::result<std::vector<uint8_t>> PollForResult();

        std::future<outcome::result<std::vector<uint8_t>>> PollForResultAsync( std::chrono::seconds timeout );

        std::future<outcome::result<std::vector<uint8_t>>> PollForResultAsync();

        private:
        struct Impl;
        std::unique_ptr<Impl> m_impl;
    };

} // namespace sgns::neoswarm::network

#endif // NEOSWARM_NETWORK_SG_CLIENT_SGRESULTCOLLECTOR_HPP

Updated on 2026-07-25 at 22:56:57 +0000