Library: RemotingNG/JSONRPC
Package: JSONRPC
Header: Poco/RemotingNG/JSONRPC/Listener.h
The RemotingNG Listener implementation for the JSONRPC transport.
For more information, please see the Transport class.
Direct Base Classes: Poco::RemotingNG::Listener
All Base Classes: Poco::RefCountedObject, Poco::RemotingNG::Listener
Member Functions: createURI, enableCORS, enableChunkedTransferEncoding, enableCompression, getCORSAllowedOrigin, handlesURI, isCORSEnabled, isChunkedTransferEncodingEnabled, isCompressionEnabled, protocol, registerObject, setCORSAllowedOrigin, start, stop, unregisterObject
Inherited Functions: createURI, duplicate, endPoint, handlesURI, protocol, referenceCount, registerObject, release, start, stop, unregisterObject
typedef Poco::AutoPtr < Listener > Ptr;
Listener(
const std::string & endPoint,
Protocol proto
);
Creates a Listener for the given endpoint, which must be in <host>:<port> format.
The value specified for proto determines the URI scheme used by createURI().
Note that the Listener instance created by this constructor does not actually accept requests itself. It merely registers an endpoint in the ORB. A Poco::Net::HTTPServer must be created for accepting SOAP requests using a JSONRPCRequestHandler.
Listener(
const std::string & endPoint,
Poco::Net::HTTPServerParams::Ptr pParams = new Poco::Net::HTTPServerParams
);
Creates a Listener for the given endpoint, which must be in <host>:<port> format.
This constructor will create a Poco::Net::HTTPServer instance for handling incoming JSONRPC requests, using a Poco::Net::ServerSocket bound to endPoint.
Listener(
const std::string & endPoint,
const Poco::Net::ServerSocket & socket,
Poco::Net::HTTPServerParams::Ptr pParams = new Poco::Net::HTTPServerParams
);
Creates a Listener for the given endpoint, which must be in <host>:<port> format.
This constructor will create a Poco::Net::HTTPServer instance using the given server socket for handling incoming JSONRPC requests. The given server socket can be a Poco::Net::ServerSocket or a Poco::Net::SecureServerSocket which must be bound to a socket address corresponding to the given endPoint.
~Listener();
Destroys the Listener.
std::string createURI(
const Poco::RemotingNG::Identifiable::TypeId & typeId,
const Poco::RemotingNG::Identifiable::ObjectId & objectId
);
void enableCORS(
bool enable = true
);
Enables or disables CORS (Cross Origin Resource Sharing). Default is disabled.
void enableChunkedTransferEncoding(
bool enable = true
);
Enables or disables chunked transfer encoding for responses. Default is enabled.
void enableCompression(
bool enable = true
);
Enables or disables GZIP compression for responses. Default is enabled.
Note that chunked transfer encoding must also be enabled in order to allow compression.
const std::string & getCORSAllowedOrigin() const;
Retuns the CORS allowed origin.
See setCORSAllowedOrigin() for more information.
bool handlesURI(
const std::string & uri
);
See also: Poco::RemotingNG::Listener::handlesURI()
bool isCORSEnabled() const;
Returns true if and only if CORS is enabled.
bool isChunkedTransferEncodingEnabled() const;
Returns true if and only if chunked transfer encoding is enabled for responses.
bool isCompressionEnabled() const;
Returns true if and only if GZIP compression is enabled for responses.
const std::string & protocol() const;
See also: Poco::RemotingNG::Listener::protocol()
void registerObject(
Poco::RemotingNG::RemoteObject::Ptr pRemoteObject,
Poco::RemotingNG::Skeleton::Ptr pSkeleton
);
void setCORSAllowedOrigin(
const std::string & origin
);
Sets the CORS allowed origin.
Can be empty (default), an asterisk ("*"), or a specific origin in the form of a complete http(s) URL ("http://domain.com").
In case of an empty origin specified here, all origins will be accepted and the origin specified by the client will simply be echoed back. If an asterisk is specified, again, all origins will be accepted, but the asterisk will be sent back to the client in the "Access-Control-Allow-Origin" header. If any other origin is given, the origin presented by the client must exactly match the specified origin for the request to be accepted.
void start();
See also: Poco::RemotingNG::Listener::start()
void stop();
See also: Poco::RemotingNG::Listener::stop()
void unregisterObject(
Poco::RemotingNG::RemoteObject::Ptr pRemoteObject
);