URLRequestBase Class

(ExternalControlIO::URLRequestBase)

Abstract base class for all types of URLrequests of ExternalControlBroker. More...

Public Functions

Reimplemented Public Functions

virtual void Configure(XMLElementEx *xml, ExternalControlBroker *parentComp, RequestBase *parentRequest) override

Protected Functions

std::string Encryption() const
int LastStatusCode() const
virtual long LibCURLProtocol() const = 0
std::string Method() const
std::string Protocol() const
const URLRequestBase *RootParent() const
virtual void SetConnectionOptions(LibCURLRequest &request) const
void SetLastModifiedTimestamp(const std::string &timestamp)
void SetLastRequestTimestamp()
void SetLastStatusCode(int code)
virtual bool TLSSupported() const
std::string URL() const

Reimplemented Protected Functions

virtual void FillNodeChildren(CDP::StudioAPI::NodeStream &stream) const override
virtual void ProcessRequest() override

Additional Inherited Members

Detailed Description

Abstract base class for all types of URLrequests of ExternalControlBroker.

Uses LibCURL to invoke actual requests. Derived classes must implement:

  • LibCURLProtocol() - to return CURL protocol types that are supported by this request

Derived classes can override:

  • SetConnectionOptions() - to set additional CURL options before request is invoked
  • TLSSupported() - return true if request supports TLS, so TLS options will be set before request is made

PS! This C++ class is used also for URLSubRequestBase CDP template model. For URLSubRequestBase parent URLRequestBase property values are queried recursively when child does not overwrite them.

Member Function Documentation

URLRequestBase::URLRequestBase()

Default constructs an instance of URLRequestBase.

URLRequestBase::~URLRequestBase()

Destroys the instance of URLRequestBase.

[override virtual] void URLRequestBase::Configure(XMLElementEx *xml, ExternalControlBroker *parentComp, RequestBase *parentRequest)

[protected] std::string URLRequestBase::Encryption() const

[override virtual protected] void URLRequestBase::FillNodeChildren(CDP::StudioAPI::NodeStream &stream) const

[protected] int URLRequestBase::LastStatusCode() const

[pure virtual protected] long URLRequestBase::LibCURLProtocol() const

[protected] std::string URLRequestBase::Method() const

[override virtual protected] void URLRequestBase::ProcessRequest()

[protected] std::string URLRequestBase::Protocol() const

[protected] const URLRequestBase *URLRequestBase::RootParent() const

[virtual protected] void URLRequestBase::SetConnectionOptions(LibCURLRequest &request) const

[protected] void URLRequestBase::SetLastModifiedTimestamp(const std::string &timestamp)

[protected] void URLRequestBase::SetLastRequestTimestamp()

[protected] void URLRequestBase::SetLastStatusCode(int code)

[virtual protected] bool URLRequestBase::TLSSupported() const

[protected] std::string URLRequestBase::URL() const