bool from_remote_zone) override;
};
+/// Defines control classes that call the low level service layer that handles
+/// storage, svc classes implement the low level object operations. Ctl classes
+/// can span over multiple service classes, for eg. User Ctl classes need to
+/// update the user indices when buckets are added/removed RoleCtl classes may
+/// need to update the RGW Account class that a role has been added deleted
+/// under an account.
class RGWRoleCtl {
struct Svc {
RGWSI_Role *role {nullptr};
virtual int read_info(RGWSI_MetaBackend::Context *ctx,
const std::string& role_id,
- rgw::sal::RGWRole *role,
+ rgw::sal::RGWRole *role, // out param
RGWObjVersionTracker * const objv_tracker,
real_time * const pmtime,
std::map<std::string, bufferlist> * pattrs,
const DoutPrefixProvider *dpp) = 0;
virtual int list_roles_by_path_prefix(RGWSI_MetaBackend::Context *ctx,
- const std::string& path,
- const std::string& tenant,
- std::vector<rgw::sal::RGWRole>& roles,
- optional_yield y,
+ const std::string& path,
+ const std::string& tenant,
+ std::vector<rgw::sal::RGWRole>& roles, // out param
+ optional_yield y,
const DoutPrefixProvider *dpp) = 0;
};