17 #ifndef ASTRA_STREAMSET_HPP
18 #define ASTRA_STREAMSET_HPP
21 #include "capi/astra_core.h"
22 #include "StreamReader.hpp"
27 static const char* ASTRA_DEFAULT_DEVICE_URI =
"device/default";
44 setRef_ = std::make_shared<StreamSetRef>(uri);
49 : setRef_(other.setRef_)
54 this->setRef_ = rhs.setRef_;
60 char uri[ASTRA_STREAMSET_URI_MAX_LENGTH];
61 astra_streamset_get_uri(setRef_->connection_handle(), uri, ASTRA_STREAMSET_URI_MAX_LENGTH);
62 return std::string(uri);
65 bool is_valid() {
return setRef_ !=
nullptr; }
69 bool isAvailable =
false;
70 if (setRef_ ==
nullptr || setRef_->connection_handle() ==
nullptr)
74 astra_streamset_is_available(setRef_->connection_handle(), &isAvailable);
79 astra_streamsetconnection_t get_handle()
const {
return setRef_->connection_handle(); }
83 using StreamSetRefPtr = std::shared_ptr<StreamSetRef>;
86 public std::enable_shared_from_this<StreamSetRef>
89 StreamSetRef(std::string uri)
96 astra_streamset_open(uri_.c_str(), &connection_);
99 bool is_connected() {
return connection_ !=
nullptr; }
104 astra_streamset_close(&connection_);
107 astra_streamsetconnection_t connection_handle()
const {
return connection_; }
110 astra_streamsetconnection_t connection_{
nullptr};
114 StreamSetRefPtr setRef_;
122 return lhs.setRef_ == rhs.setRef_;
125 inline bool operator!=(
const StreamSet& lhs,
const StreamSet& rhs)
127 return !(lhs == rhs);
130 StreamReader StreamSet::create_reader()
132 if (!setRef_->is_connected())
135 astra_reader_t reader;
136 astra_reader_create(get_handle(), &reader);
138 return StreamReader(reader);
Stream Reader class
Definition: StreamReader.hpp:39
Stream Set Class
Definition: StreamSet.hpp:36
bool operator!=(const ImageStreamMode &lhs, const ImageStreamMode &rhs)
compare is ImageStreamMode not equal
Definition: Image.hpp:247
bool operator==(const ImageStreamMode &lhs, const ImageStreamMode &rhs)
compare is ImageStreamMode equal
Definition: Image.hpp:230