aboutsummaryrefslogtreecommitdiff
path: root/bbot/bootstrap-manifest.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2017-04-18 13:29:50 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2017-04-18 13:29:50 +0200
commit0e2f76b6f0ecb4b4c00a4c8001843b3c54bc08ad (patch)
tree3f0735a7b7e0be27823b23e24806fe9650548dc6 /bbot/bootstrap-manifest.cxx
parent1804e3e8cf3b8f1bb14e197dada1697c40bed144 (diff)
Finish agent and worker logic
Diffstat (limited to 'bbot/bootstrap-manifest.cxx')
-rw-r--r--bbot/bootstrap-manifest.cxx155
1 files changed, 0 insertions, 155 deletions
diff --git a/bbot/bootstrap-manifest.cxx b/bbot/bootstrap-manifest.cxx
index d08322a..6a0ff8d 100644
--- a/bbot/bootstrap-manifest.cxx
+++ b/bbot/bootstrap-manifest.cxx
@@ -17,78 +17,6 @@ namespace bbot
using serialization = manifest_serialization;
using name_value = manifest_name_value;
- // toolchain_manifest
- //
- toolchain_manifest::
- toolchain_manifest (parser& p, bool iu)
- : toolchain_manifest (p, p.next (), iu)
- {
- // Make sure this is the end.
- //
- name_value nv (p.next ());
- if (!nv.empty ())
- throw parsing (p.name (), nv.name_line, nv.name_column,
- "single toolchain manifest expected");
- }
-
- toolchain_manifest::
- toolchain_manifest (parser& p, name_value nv, bool iu)
- {
- auto bad_name = [&p, &nv] (const string& d)
- {
- throw parsing (p.name (), nv.name_line, nv.name_column, d);
- };
-
- auto bad_value = [&p, &nv] (const string& d)
- {
- throw parsing (p.name (), nv.value_line, nv.value_column, d);
- };
-
- // Make sure this is the start and we support the version.
- //
- if (!nv.name.empty ())
- bad_name ("start of toolchain manifest expected");
-
- if (nv.value != "1")
- bad_value ("unsupported format version");
-
- // Parse the toolchain manifest.
- //
- for (nv = p.next (); !nv.empty (); nv = p.next ())
- {
- string& n (nv.name);
- string& v (nv.value);
-
- if (n == "id")
- {
- if (!id.empty ())
- bad_name ("toolchain id redefinition");
-
- if (v.empty ())
- bad_value ("empty toolchain id");
-
- id = move (v);
- }
- else if (!iu)
- bad_name ("unknown name '" + n + "' in toolchain manifest");
- }
-
- // Verify all non-optional values were specified.
- //
- if (id.empty ())
- bad_value ("no toolchain id specified");
- }
-
- void toolchain_manifest::
- serialize (serializer& s) const
- {
- // @@ Should we check that all non-optional values are specified?
- //
- s.next ("", "1"); // Start of manifest.
- s.next ("id", id);
- s.next ("", ""); // End of manifest.
- }
-
// bootstrap_manifest
//
bootstrap_manifest::
@@ -181,87 +109,4 @@ namespace bbot
s.next ("", ""); // End of manifest.
}
-
- // bootstrapped_machine_manifest
- //
- bootstrapped_machine_manifest::
- bootstrapped_machine_manifest (parser& p, bool iu)
- {
- name_value nv (p.next ());
-
- auto bad_name = [&p, &nv] (const string& d)
- {
- throw parsing (p.name (), nv.name_line, nv.name_column, d);
- };
-
- auto bad_value = [&p, &nv] (const string& d)
- {
- throw parsing (p.name (), nv.value_line, nv.value_column, d);
- };
-
- // Make sure this is the start and we support the version.
- //
- if (!nv.name.empty ())
- bad_name ("start of bootstrapped machine manifest expected");
-
- if (nv.value != "1")
- bad_value ("unsupported format version");
-
- // Parse the bootstrapped machine manifest. Currently there is no values
- // expected.
- //
- for (nv = p.next (); !nv.empty (); nv = p.next ())
- {
- if (!iu)
- bad_name ("unknown name '" + nv.name +
- "' in bootstrapped machine manifest");
- }
-
- nv = p.next ();
- if (nv.empty ())
- bad_value ("machine manifest expected");
-
- machine = machine_manifest (p, nv, iu);
-
- if (!machine.mac)
- bad_name ("mac address must be present in machine manifest");
-
- nv = p.next ();
- if (nv.empty ())
- bad_value ("toolchain manifest expected");
-
- toolchain = toolchain_manifest (p, nv, iu);
-
- nv = p.next ();
- if (nv.empty ())
- bad_value ("bootstrap manifest expected");
-
- bootstrap = bootstrap_manifest (p, nv, iu);
-
- // Make sure this is the end.
- //
- nv = p.next ();
- if (!nv.empty ())
- throw parsing (p.name (), nv.name_line, nv.name_column,
- "single bootstrapped machine manifest expected");
- }
-
- void bootstrapped_machine_manifest::
- serialize (serializer& s) const
- {
- // @@ Should we check that all non-optional values are specified?
- //
- s.next ("", "1"); // Start of manifest.
- s.next ("", ""); // End of manifest.
-
- if (!machine.mac)
- throw serialization (s.name (),
- "mac address must be present in machine manifest");
-
- machine.serialize (s);
- toolchain.serialize (s);
- bootstrap.serialize (s);
-
- s.next ("", ""); // End of stream.
- }
}