#ifndef BTP_LAYER_H
#define BTP_LAYER_H
#include "Layer.h"
#include "BTPTypes.h"
#include "BTPCodec.h"
class BTPPort;

class BTPLayer : public TLayer<BTPPort> {
    BTPACodec *_a;
    BTPBCodec *_b;
  public:
    BTPLayer():TLayer<BTPPort>(){};
    void sendMsg(const BTPA&, const Params& param);
    void sendMsg(const BTPB&, const Params& param);
    
    void receiveToAllPorts(const BTPA& m, const Params& param);
    void receiveToAllPorts(const BTPB& m, const Params& param);

    virtual void sendData(const OCTETSTRING& data, const Params& params);
    virtual void receiveData(const OCTETSTRING& data, const Params& info);
};

#endif