class Poa
C++
class Poa
Portable Object Adapter: holds servants and routes incoming calls to
them. Create one with Rpc::create_poa(); see the POA guide for the
threading options.
include/nprpc/nprpc.hpp:342
Constructors
Methods
virtual ObjectId activate_object(ObjectServant *obj, ObjectActivationFlags activation_flags, SessionContext *ctx = nullptr) = 0
Activate an object servant in this POA. Throws: std::runtime_error if the object cannot be activated.
obj- The object servant to activate.
activation_flags- Flags that control how the object is activated.
ctx- Optional session context for session-specific activation.
Returns The object ID of the activated object.
include/nprpc/nprpc.hpp:390
virtual ObjectId activate_object_with_id(oid_t object_id, ObjectServant *obj, ObjectActivationFlags activation_flags, SessionContext *ctx = nullptr) = 0
Activate an object servant with a user-supplied object ID. Available only when POA is configured with ObjectIdPolicy::UserSupplied.
include/nprpc/nprpc.hpp:398
virtual void deactivate_object(oid_t object_id) = 0
Deactivate an object servant in this POA. Throws: std::runtime_error if the object cannot be deactivated.
object_id- The ID of the object to deactivate.
include/nprpc/nprpc.hpp:408
const DispatchExecutor &dispatch_executor() const noexcept
Optional executor used for servant dispatch (empty = transport thread).
include/nprpc/nprpc.hpp:351
poa_idx_t get_index() const noexcept
This POA's index within the process.
include/nprpc/nprpc.hpp:411
bool requires_off_transport_dispatch() const noexcept
True when transport layers should not run this POA's dispatch inline (custom executor and/or NeverBlockTransport).
include/nprpc/nprpc.hpp:376
void set_dispatch_executor(DispatchExecutor ex) noexcept
Replaces the executor set by PoaBuilder::with_dispatch_executor.
include/nprpc/nprpc.hpp:357
void set_transport_affinity(PoaPolicy::TransportAffinity a) noexcept
Replaces the affinity set by PoaBuilder::with_transport_affinity.
include/nprpc/nprpc.hpp:369
PoaPolicy::TransportAffinity transport_affinity() const noexcept
Whether dispatch may run on the transport thread.
include/nprpc/nprpc.hpp:363