FEndpoint

[FEndpoint](API\Runtime\DirectLink\FEndpoint) class is the main interface for sending and receiving data with the DirectLink system.

Windows
MacOS
Linux

Inheritance Hierarchy

FNoncopyable

FEndpoint

References

Module

DirectLink

Header

/Engine/Source/Runtime/Datasmith/DirectLink/Public/DirectLinkEndpoint.h

Include

#include "DirectLinkEndpoint.h"

Syntax

class FEndpoint : public FNoncopyable

Remarks

FEndpoint class is the main interface for sending and receiving data with the DirectLink system.

Instances of this class discover themselves (through MessageBus) and can see Sources and Destinations available on each others. This is automatic and works for multiple applications. With that system, one can expose data from an application and consume it from another.

An endpoint can exposes N sources and N Destinations. That being said, a more classic setup is to have an 'exporter' process that only exposes sources, and some 'consumer' process that only have Destinations.

As a convention, 'consumers' have the responsibility to handle the connections management. Exporters have the sole responsibility to exposes their data.

Setup example:

  • Exporter process

  • Source "My First Source"

  • Source "My Second Source"

  • Consumer process

  • Destination "Viewport"

The consumer process can handle the connections between Sources and Destinations with the OpenStream and CloseStream methods.

Constructors

Name Description

Public function

FEndpoint

(
    const FString& InName
)

Destructors

Name Description

Public function

~FEndpoint()

Functions

Name Description

Public function

FDestination...

 

AddDestination

(
    const FString& Name,
    EVisibility Visibility,
    const TSharedPtr< class IConnection...
)

Add a Destination on that endpoint

Public function

void

 

AddEndpointObserver

(
    IEndpointObserver* Observer
)

Register an IEndpointObserver that will be notified periodically with the last state of the swarm.

Public function

FSourceHandl...

 

AddSource

(
    const FString& Name,
    EVisibility Visibility
)

Add a Source to that endpoint.

Public function

void

 

CloseStream

(
    const FSourceHandle& SourceId,
    const FDestinationHandle& Destinat...
)

Close a previously opened stream

Public function Const

FRawInfo

 

GetRawInfoCopy()

Get a snapshot of the current state of the DirectLink swarm.

Public function

EOpenStreamR...

 

OpenStream

(
    const FSourceHandle& SourceId,
    const FDestinationHandle& Destinat...
)

Open a Stream between a Source and a Destination

Public function

void

 

RemoveDestination

(
    const FDestinationHandle& Destinat...
)

Disconnect all streams related to that destination and removes the Destination itself from that endpoint

Public function

void

 

RemoveEndpointObserver

(
    IEndpointObserver* Observer
)

Removes a previously added observer

Public function

void

 

RemoveSource

(
    const FSourceHandle& Source
)

Closes all streams related to this Source and remove it from the endpoint.

Public function

void

 

SetSourceRoot

(
    const FSourceHandle& Source,
    ISceneGraphNode* InRoot,
    bool bSnapshot
)

Set the root of the content that should be exposed from that source.

Public function

void

 

SetVerbose

(
    bool bVerbose
)

Public function

void

 

SnapshotSource

(
    const FSourceHandle& Source
)

Use the Source root to discover the graph and snapshot the content in its current state.

Enums

Name

Description

Public enum

EOpenStreamResult

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss