SNode.C
Loading...
Searching...
No Matches
core::pipe::Sink Class Referenceabstract

#include <Sink.h>

Inheritance diagram for core::pipe::Sink:
Collaboration diagram for core::pipe::Sink:

Public Member Functions

 Sink (Sink &)=delete
 
Sinkoperator= (Sink &)=delete
 

Protected Member Functions

 Sink ()=default
 
 Sink (Sink &&) noexcept=default
 
Sinkoperator= (Sink &&) noexcept=default
 
virtual ~Sink ()
 
bool isStreaming ()
 
void stop ()
 

Private Member Functions

void pipe (Source *source)
 
void streamData (const char *chunk, std::size_t chunkLen)
 
void streamEof ()
 
void streamError (int errnum)
 
void disconnect (const Source *source)
 
virtual void onSourceConnect (Source *source)=0
 
virtual void onSourceData (const char *chunk, std::size_t chunkLen)=0
 
virtual void onSourceEof ()=0
 
virtual void onSourceError (int errnum)=0
 

Private Attributes

Sourcesource = nullptr
 

Friends

class Source
 

Detailed Description

Definition at line 35 of file Sink.h.

Constructor & Destructor Documentation

◆ Sink() [1/3]

core::pipe::Sink::Sink ( Sink & )
delete

◆ Sink() [2/3]

core::pipe::Sink::Sink ( )
protecteddefault

◆ Sink() [3/3]

core::pipe::Sink::Sink ( Sink && )
protecteddefaultnoexcept

◆ ~Sink()

core::pipe::Sink::~Sink ( )
protectedvirtual

Definition at line 30 of file Sink.cpp.

30 {
31 if (source != nullptr) {
32 source->disconnect(this);
33 }
34 }
Source * source
Definition Sink.h:68
void disconnect(const Sink *sink)
Definition Source.cpp:59

Member Function Documentation

◆ disconnect()

void core::pipe::Sink::disconnect ( const Source * source)
private

Definition at line 64 of file Sink.cpp.

64 {
65 if (source == this->source) {
66 this->source = nullptr;
67 }
68 }

◆ isStreaming()

bool core::pipe::Sink::isStreaming ( )
protected

Definition at line 42 of file Sink.cpp.

42 {
43 return source != nullptr;
44 }

◆ onSourceConnect()

virtual void core::pipe::Sink::onSourceConnect ( Source * source)
privatepure virtual

◆ onSourceData()

virtual void core::pipe::Sink::onSourceData ( const char * chunk,
std::size_t chunkLen )
privatepure virtual

◆ onSourceEof()

virtual void core::pipe::Sink::onSourceEof ( )
privatepure virtual

◆ onSourceError()

virtual void core::pipe::Sink::onSourceError ( int errnum)
privatepure virtual

◆ operator=() [1/2]

Sink & core::pipe::Sink::operator= ( Sink && )
protecteddefaultnoexcept

◆ operator=() [2/2]

Sink & core::pipe::Sink::operator= ( Sink & )
delete

◆ pipe()

void core::pipe::Sink::pipe ( Source * source)
private

Definition at line 36 of file Sink.cpp.

36 {
37 this->source = source;
38
40 }
virtual void onSourceConnect(Source *source)=0

◆ stop()

void core::pipe::Sink::stop ( )
protected

Definition at line 46 of file Sink.cpp.

46 {
47 if (source != nullptr) {
48 source->disconnect(this);
49 }
50 }

◆ streamData()

void core::pipe::Sink::streamData ( const char * chunk,
std::size_t chunkLen )
private

Definition at line 52 of file Sink.cpp.

52 {
53 onSourceData(chunk, chunkLen);
54 }
virtual void onSourceData(const char *chunk, std::size_t chunkLen)=0

◆ streamEof()

void core::pipe::Sink::streamEof ( )
private

Definition at line 56 of file Sink.cpp.

56 {
58 }
virtual void onSourceEof()=0

◆ streamError()

void core::pipe::Sink::streamError ( int errnum)
private

Definition at line 60 of file Sink.cpp.

60 {
61 onSourceError(errnum);
62 }
virtual void onSourceError(int errnum)=0

Friends And Related Symbol Documentation

◆ Source

friend class Source
friend

Definition at line 70 of file Sink.h.

Member Data Documentation

◆ source

Source* core::pipe::Sink::source = nullptr
private

Definition at line 68 of file Sink.h.


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