aboutsummaryrefslogtreecommitdiff
path: root/mod/mod-repository-root
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2017-04-19 20:48:38 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2017-04-19 20:57:18 +0300
commitefb9c3e0e6b612d5bfadc7a2b984c14b5439335c (patch)
treeafac11df4d8c5e1079b367a2cfd17008a317147a /mod/mod-repository-root
parent6be5bc707876ece1cd09d7c304ba559512ef5257 (diff)
Fix repository root module to handle retries properly
Diffstat (limited to 'mod/mod-repository-root')
-rw-r--r--mod/mod-repository-root9
1 files changed, 9 insertions, 0 deletions
diff --git a/mod/mod-repository-root b/mod/mod-repository-root
index e028fb8..57db93a 100644
--- a/mod/mod-repository-root
+++ b/mod/mod-repository-root
@@ -23,6 +23,8 @@ namespace brep
public:
repository_root ();
+ // Copy constructible-only type.
+ //
// Create a shallow copy (handling instance) if initialized and a deep
// copy (context exemplar) otherwise.
//
@@ -54,6 +56,13 @@ namespace brep
shared_ptr<package_version_details> package_version_details_;
shared_ptr<repository_details> repository_details_;
shared_ptr<options::repository_root> options_;
+
+ // Sub-module the request is dispatched to. Initially is NULL. It is set
+ // by the first call to handle() to a deep copy of the selected exemplar.
+ // The subsequent calls of handle() (that may take place after the retry
+ // exception is thrown) will use the existing handler instance.
+ //
+ unique_ptr<module> handler_;
};
}