Определение пользовательских сообщений на основе INET - PullRequest
0 голосов
/ 11 декабря 2018

Я пытаюсь определить пользовательское сообщение HTTP из базового класса Chunk в среде INET OMNET ++.

Но MSG-компилятор OMNET говорит, что блок является неизвестным классом.

Мой исходный код (HttpMessage.msg):

cplusplus {{
#include "inet/common/packet/chunk/Chunk.h"
}}
class HttpRequest extends Chunk
{
    string cookie;
}

Я пошел за другим кодом ...

cplusplus {{
#include "inet/common/packet/chunk/FieldsChunk.h"
}}
class inet::FieldsChunk;
class HttpRequest extends FieldsChunk
{
    string cookie;
}

Теперь он говорит, что "нет подходящего конструктора дляинициализация ':: inet :: FieldsChunk "

Спасибо ....

1 Ответ

0 голосов
/ 11 декабря 2018
  1. Попробуйте следующий код:

    import inet.common.INETDefs;
    import inet.common.packet.chunk.Chunk;
    namespace inet;
    
    class HttpRequest extends Chunk {
        int cookie;
    }
    
  2. Затем перейдите к Properties вашего проекта, выберите OMNeT++ |Makemake |папка src |Options... |Custom и добавьте следующую строку:

    MSGC:=$(MSGC) --msg6
    

    В качестве альтернативы вы можете просто создать в src новый текстовый файл makefrag, без расширения , с указанной выше строкой.


    Опция --msg6 сообщает компилятору сообщений, что следует использовать новый метод импорта сообщений:

    - msg6 : активировать поддержку импорта и другие экспериментальные функции.Файлы сообщений, использующие новые функции, не имеют обратной совместимости, и их необходимо обновить.Для получения дополнительной информации см. Src / nedxml / ChangeLog.Подсказка: для активации добавьте в ваш проект файл makefrag со следующим содержимым: «MSGC: = $ (MSGC) --msg6»

...