diff --git a/src/EventHandler.cc b/src/EventHandler.cc
index 9928df9a8b..3f70a81b51 100644
--- a/src/EventHandler.cc
+++ b/src/EventHandler.cc
@@ -4,6 +4,7 @@
#include "Func.h"
#include "Scope.h"
#include "NetVar.h"
+#include "ID.h"
#include "broker/Manager.h"
#include "broker/Data.h"
diff --git a/src/Frame.cc b/src/Frame.cc
index d3ab29f5f5..01bba1a679 100644
--- a/src/Frame.cc
+++ b/src/Frame.cc
@@ -10,6 +10,7 @@
#include "IntrusivePtr.h"
#include "Trigger.h"
#include "Val.h"
+#include "ID.h"
vector g_frame_stack;
diff --git a/src/Val.cc b/src/Val.cc
index e28b69385b..595c208f8a 100644
--- a/src/Val.cc
+++ b/src/Val.cc
@@ -31,6 +31,7 @@
#include "Conn.h"
#include "Reporter.h"
#include "IPAddr.h"
+#include "Var.h" // for internal_type()
#include "broker/Data.h"
diff --git a/src/broker/Data.cc b/src/broker/Data.cc
index 9ab45c7fdb..8733f1b686 100644
--- a/src/broker/Data.cc
+++ b/src/broker/Data.cc
@@ -3,6 +3,7 @@
#include "Desc.h"
#include "IntrusivePtr.h"
#include "RE.h"
+#include "Var.h" // for internal_type()
#include "Scope.h"
#include "module_util.h"
#include "3rdparty/doctest.h"
@@ -1172,6 +1173,14 @@ IntrusivePtr bro_broker::DataVal::castTo(BroType* t)
return data_to_val(data, t);
}
+BroType* bro_broker::DataVal::ScriptDataType()
+ {
+ if ( ! script_data_type )
+ script_data_type = internal_type("Broker::Data");
+
+ return script_data_type;
+ }
+
IMPLEMENT_OPAQUE_VALUE(bro_broker::DataVal)
broker::expected bro_broker::DataVal::DoSerialize() const
diff --git a/src/broker/Data.h b/src/broker/Data.h
index 5d55de56b6..d15613c852 100644
--- a/src/broker/Data.h
+++ b/src/broker/Data.h
@@ -4,7 +4,6 @@
#include "Reporter.h"
#include "Frame.h"
#include "Expr.h"
-#include "Var.h" // for internal_type()
template
class IntrusivePtr;
@@ -111,13 +110,7 @@ public:
// Returns the Bro type that scripts use to represent a Broker data
// instance. This may be wrapping the opaque value inside another
// type.
- static BroType* ScriptDataType()
- {
- if ( ! script_data_type )
- script_data_type = internal_type("Broker::Data");
-
- return script_data_type;
- }
+ static BroType* ScriptDataType();
broker::data data;
diff --git a/src/broker/Manager.h b/src/broker/Manager.h
index 0cbde06090..284f5a7538 100644
--- a/src/broker/Manager.h
+++ b/src/broker/Manager.h
@@ -17,11 +17,11 @@
#include
#include
-#include "NetVar.h"
#include "iosource/IOSource.h"
#include "logging/WriterBackend.h"
class Frame;
+class Func;
namespace bro_broker {
diff --git a/src/broker/Store.cc b/src/broker/Store.cc
index 20020375eb..c542ff45c2 100644
--- a/src/broker/Store.cc
+++ b/src/broker/Store.cc
@@ -1,11 +1,28 @@
#include "Store.h"
#include "Desc.h"
+#include "Var.h" // for internal_type()
#include "broker/Manager.h"
namespace bro_broker {
OpaqueType* opaque_of_store_handle;
+EnumVal* query_status(bool success)
+ {
+ static EnumType* store_query_status = nullptr;
+ static int success_val;
+ static int failure_val;
+
+ if ( ! store_query_status )
+ {
+ store_query_status = internal_type("Broker::QueryStatus")->AsEnumType();
+ success_val = store_query_status->Lookup("Broker", "SUCCESS");
+ failure_val = store_query_status->Lookup("Broker", "FAILURE");
+ }
+
+ return store_query_status->GetVal(success ? success_val : failure_val);
+ }
+
void StoreHandleVal::ValDescribe(ODesc* d) const
{
//using BifEnum::Broker::BackendType;
diff --git a/src/broker/Store.h b/src/broker/Store.h
index fd8f0911d5..48c435191e 100644
--- a/src/broker/Store.h
+++ b/src/broker/Store.h
@@ -2,8 +2,6 @@
#include "broker/store.bif.h"
#include "broker/data.bif.h"
-#include "Type.h"
-#include "Var.h" // for internal_type()
#include "OpaqueVal.h"
#include "Trigger.h"
@@ -20,21 +18,7 @@ extern OpaqueType* opaque_of_store_handle;
* @param success whether the query status should be set to success or failure.
* @return a Broker::QueryStatus value.
*/
-inline EnumVal* query_status(bool success)
- {
- static EnumType* store_query_status = nullptr;
- static int success_val;
- static int failure_val;
-
- if ( ! store_query_status )
- {
- store_query_status = internal_type("Broker::QueryStatus")->AsEnumType();
- success_val = store_query_status->Lookup("Broker", "SUCCESS");
- failure_val = store_query_status->Lookup("Broker", "FAILURE");
- }
-
- return store_query_status->GetVal(success ? success_val : failure_val);
- }
+EnumVal* query_status(bool success);
/**
* @return a Broker::QueryResult value that has a Broker::QueryStatus indicating
diff --git a/src/iosource/Manager.cc b/src/iosource/Manager.cc
index 1161171743..49c0fb50b8 100644
--- a/src/iosource/Manager.cc
+++ b/src/iosource/Manager.cc
@@ -14,6 +14,7 @@
#include "PktDumper.h"
#include "plugin/Manager.h"
#include "broker/Manager.h"
+#include "NetVar.h"
#include "util.h"