Source code for pyopendds.DataReader
from __future__ import annotations
from .Topic import Topic
from .constants import StatusKind
from .util import TimeDurationType, normalize_time_duration
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from .Subscriber import Subscriber
[docs]class DataReader:
[docs] def __init__(self, subscriber: Subscriber, topic: Topic, qos=None, listener=None):
self.topic = topic
self.qos = qos
self.listener = listener
self.subscriber = subscriber
subscriber.readers.append(self)
from _pyopendds import create_datareader
create_datareader(self, subscriber, topic)
def wait_for(self, status: StatusKind, timeout: TimeDurationType):
from _pyopendds import datareader_wait_for
return datareader_wait_for(self, status, *normalize_time_duration(timeout))
def take_next_sample(self):
return self.topic._ts_package.take_next_sample(self)