CARLA
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
FAsyncDataStreamTmpl< T > Class Template Reference

A streaming channel for sending sensor data to clients, supports sending data asynchronously. More...

#include <AsyncDataStream.h>

Public Types

using StreamType = T
 

Public Member Functions

 FAsyncDataStreamTmpl (FAsyncDataStreamTmpl &&)=default
 
double GetSensorTimestamp ()
 return the timestamp of the sensor
 
FTransform GetSensorTransform ()
 return the transform of the sensor
 
uint64_t GetSensorType ()
 return the type of sensor of this stream
 
auto GetToken () const
 Return the token that allows subscribing to this stream.
 
carla::Buffer PopBufferFromPool ()
 Pop a Buffer from the pool.
 
template<typename SensorT , typename... ArgsT>
void Send (SensorT &Sensor, ArgsT &&... Args)
 Send some data down the stream.
 
template<typename SensorT , typename... ArgsT>
void SerializeAndSend (SensorT &Sensor, ArgsT &&... Args)
 
void SetFrameNumber (uint64_t FrameNumber)
 allow to change the frame number of the header
 
void SetTimestamp (double Timestamp)
 allow to change the timestamp of the header
 
void SetTransform (carla::rpc::Transform Transform)
 allow to change the transform of the header
 

Private Member Functions

template<typename SensorT >
 FAsyncDataStreamTmpl (const SensorT &InSensor, double Timestamp, StreamType InStream)
 

Private Attributes

carla::Buffer Header
 
StreamType Stream
 

Friends

class FDataStreamTmpl< T >
 

Detailed Description

template<typename T>
class FAsyncDataStreamTmpl< T >

A streaming channel for sending sensor data to clients, supports sending data asynchronously.

Data sent by the "Send" functions is passed to the serializer registered with the sensor at carla::sensor:SensorRegistry before being sent down the stream.

Warning
This is a single-use object, a new one needs to be created for each new message.

FAsyncDataStream also has a pool of carla::Buffer that allows reusing the allocated memory, use it whenever possible.

Definition at line 37 of file AsyncDataStream.h.

Member Typedef Documentation

◆ StreamType

template<typename T >
using FAsyncDataStreamTmpl< T >::StreamType = T

Definition at line 41 of file AsyncDataStream.h.

Constructor & Destructor Documentation

◆ FAsyncDataStreamTmpl() [1/2]

template<typename T >
FAsyncDataStreamTmpl< T >::FAsyncDataStreamTmpl ( FAsyncDataStreamTmpl< T > &&  )
default

◆ FAsyncDataStreamTmpl() [2/2]

template<typename T >
template<typename SensorT >
FAsyncDataStreamTmpl< T >::FAsyncDataStreamTmpl ( const SensorT &  InSensor,
double  Timestamp,
StreamType  InStream 
)
inlineexplicitprivate
Precondition
This functions needs to be called in the game-thread.

Definition at line 18 of file AsyncDataStreamImpl.h.

References FCarlaEngine::GetFrameCounter().

Member Function Documentation

◆ GetSensorTimestamp()

template<typename T >
double FAsyncDataStreamTmpl< T >::GetSensorTimestamp ( )
inline

return the timestamp of the sensor

Definition at line 136 of file AsyncDataStream.h.

◆ GetSensorTransform()

template<typename T >
FTransform FAsyncDataStreamTmpl< T >::GetSensorTransform ( )
inline

◆ GetSensorType()

template<typename T >
uint64_t FAsyncDataStreamTmpl< T >::GetSensorType ( )
inline

return the type of sensor of this stream

Definition at line 112 of file AsyncDataStream.h.

References carla::Buffer::data(), FAsyncDataStreamTmpl< T >::Header, and carla::sensor::s11n::SensorHeaderSerializer::Header::sensor_type.

◆ GetToken()

template<typename T >
auto FAsyncDataStreamTmpl< T >::GetToken ( ) const
inline

Return the token that allows subscribing to this stream.

Definition at line 46 of file AsyncDataStream.h.

References FAsyncDataStreamTmpl< T >::Stream.

◆ PopBufferFromPool()

template<typename T >
carla::Buffer FAsyncDataStreamTmpl< T >::PopBufferFromPool ( )
inline

Pop a Buffer from the pool.

Buffers in the pool can reuse the memory allocated by previous messages, significantly improving performance for big messages.

Definition at line 54 of file AsyncDataStream.h.

References FAsyncDataStreamTmpl< T >::Stream.

◆ Send()

template<typename T >
template<typename SensorT , typename... ArgsT>
void FAsyncDataStreamTmpl< T >::Send ( SensorT &  Sensor,
ArgsT &&...  Args 
)
inline

Send some data down the stream.

Definition at line 192 of file AsyncDataStream.h.

References carla::BufferView::CreateFrom(), and FDataStreamTmpl< T >::Stream.

◆ SerializeAndSend()

template<typename T >
template<typename SensorT , typename... ArgsT>
void FAsyncDataStreamTmpl< T >::SerializeAndSend ( SensorT &  Sensor,
ArgsT &&...  Args 
)
inline

◆ SetFrameNumber()

template<typename T >
void FAsyncDataStreamTmpl< T >::SetFrameNumber ( uint64_t  FrameNumber)
inline

◆ SetTimestamp()

template<typename T >
void FAsyncDataStreamTmpl< T >::SetTimestamp ( double  Timestamp)
inline

◆ SetTransform()

template<typename T >
void FAsyncDataStreamTmpl< T >::SetTransform ( carla::rpc::Transform  Transform)
inline

Friends And Related Symbol Documentation

◆ FDataStreamTmpl< T >

template<typename T >
friend class FDataStreamTmpl< T >
friend

Definition at line 136 of file AsyncDataStream.h.

Member Data Documentation

◆ Header

template<typename T >
carla::Buffer FAsyncDataStreamTmpl< T >::Header
private

◆ Stream

template<typename T >
StreamType FAsyncDataStreamTmpl< T >::Stream
private

The documentation for this class was generated from the following files: