/*
- * Copyright (c) 2015-2016, Intel Corporation
+ * Copyright (c) 2015-2017, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
rose_group squashable_groups = 0;
};
+/** \brief subengine info including built engine and
+* corresponding triggering rose vertices */
+struct ExclusiveSubengine {
+ aligned_unique_ptr<NFA> nfa;
+ vector<RoseVertex> vertices;
+};
+
+/** \brief exclusive info to build tamarama */
+struct ExclusiveInfo {
+ // subengine info
+ vector<ExclusiveSubengine> subengines;
+ // all the report in tamarama
+ set<ReportID> reports;
+ // assigned queue id
+ u32 queue;
+
+ // workaround a deficiency in the standard (as explained by STL @ MS) we
+ // need to tell the compiler that ExclusiveInfo is moveable-only by
+ // deleting the copy cons so that vector doesn't get confused
+ ExclusiveInfo() = default;
+ ExclusiveInfo(const ExclusiveInfo &) = delete;
+ ExclusiveInfo(ExclusiveInfo &&) = default;
+};
+
}
static
/*
- * Copyright (c) 2016, Intel Corporation
+ * Copyright (c) 2017, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
namespace ue2 {
-/** brief subengine info including built engine and
- * corresponding triggering rose vertices */
-struct ExclusiveSubengine {
- aligned_unique_ptr<NFA> nfa;
- std::vector<RoseVertex> vertices;
-};
-
-/** \brief exclusive info to build tamarama */
-struct ExclusiveInfo {
- // subengine info
- std::vector<ExclusiveSubengine> subengines;
- // all the report in tamarama
- std::set<ReportID> reports;
- // assigned queue id
- u32 queue;
-};
-
/** \brief role info structure for exclusive analysis */
template<typename role_id>
struct RoleInfo {