tried enum support - doesn't yet work due to internal bro interface problems...

This commit is contained in:
Bernhard Amann 2011-11-14 17:18:28 -08:00
parent c8a713da3d
commit 1a642f3568
3 changed files with 8 additions and 1 deletions

View file

@ -828,6 +828,7 @@ HashKey* InputMgr::HashLogVals(const int num_elements, const LogVal* const *vals
break;
case TYPE_STRING:
case TYPE_ENUM:
{
length += val->val.string_val->size();
break;
@ -883,6 +884,7 @@ HashKey* InputMgr::HashLogVals(const int num_elements, const LogVal* const *vals
break;
case TYPE_STRING:
case TYPE_ENUM:
{
memcpy(data+position, val->val.string_val->c_str(), val->val.string_val->length());
position += val->val.string_val->size();
@ -958,6 +960,10 @@ Val* InputMgr::LogValToVal(const LogVal* val, TypeTag request_type) {
return new SubNetVal(val->val.subnet_val.net, val->val.subnet_val.width);
break;
case TYPE_ENUM:
reporter->InternalError("Sorry, Enums reading does not yet work, missing internal inferface");
default:
reporter->InternalError("unsupported type for input_read");
}

View file

@ -129,7 +129,6 @@ bool InputReaderAscii::GetLine(string& str) {
// read the entire file and send appropriate thingies back to InputMgr
bool InputReaderAscii::DoUpdate() {
// dirty, fix me. (well, apparently after trying seeking, etc - this is not that bad)
if ( file && file->is_open() ) {
file->close();
@ -198,6 +197,7 @@ bool InputReaderAscii::DoUpdate() {
//bzero(val, sizeof(LogVal));
switch ( currMapping.type ) {
case TYPE_ENUM:
case TYPE_STRING:
val->val.string_val = new string(s);
break;

View file

@ -51,3 +51,4 @@ function Input::__remove_filter%(id: Log::ID, name: string%) : bool
bool res = input_mgr->RemoveFilter(id->AsEnumVal(), name->AsString()->CheckString());
return new Val( res, TYPE_BOOL);
%}