Commit cb1840e1 authored by filatov's avatar filatov
Browse files

Add makefiles for tests, use real BTP packets

parent 2948d1dd
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -27,18 +27,19 @@ class Layer {

template <typename TPort> class TLayer : public Layer {
  typedef std::vector<TPort*> TPortList;
  typedef typename std::vector<TPort*>::iterator TPortListIterator;
  TPortList upperPorts;
  
  public:
    TLayer(){}
    void addUpperPort(TPort*);
    void removeUpperPort(TPort*);
/*
    template <typename Msg> void receiveToAllPorts(Msg* m, const Param& param) {
      for(TPortList::iterator it=upperPorts.begin(); it<upperPorts.end(); ++it){

    template <typename T> void receiveToAllPorts(const T& m, const Params& param) {
      for(TPortListIterator it=upperPorts.begin(); it<upperPorts.end(); ++it){
        (*it)->receiveMsg(m, param);
      }
    }
*/
};

class LayerFactory {
+14 −0
Original line number Diff line number Diff line
PROJECTROOT  = ..
BUILDROOT    = ../../bin
PROJECT      = its-framework
DEBUG        = yes
testdir      = tests
srcdir       = src

alibs        = $(PROJECT)

sources       := LayerFactory.cpp
headers       := Codec.h Layer.h
includes      := . ..

include ../common.mk
+2 −11
Original line number Diff line number Diff line
#include "BTPCodec.h"

int BTPACodec::encode (const BTPA& msg, OCTETSTRING& data)
int BTPCodec::encode (const LibItsBtp__TypesAndValues::BtpPacket& msg, OCTETSTRING& data)
{
 return 0;
}
int BTPACodec::decode (const OCTETSTRING& data, BTPA& msg)
{
 return 0;
}

int BTPBCodec::encode (const BTPB& msg, OCTETSTRING& data)
{
 return 0;
}
int BTPBCodec::decode (const OCTETSTRING& data, BTPB& msg)
int BTPCodec::decode (const OCTETSTRING& data, LibItsBtp__TypesAndValues::BtpPacket& msg)
{
 return 0;
}
+4 −8
Original line number Diff line number Diff line
@@ -3,14 +3,10 @@
#include "BTPTypes.h"
#include "Codec.h"

class BTPACodec : public Codec<BTPA> {
  virtual int encode (const BTPA& msg, OCTETSTRING& data);
  virtual int decode (const OCTETSTRING& data, BTPA& msg);
};

class BTPBCodec : public Codec<BTPB> {
  virtual int encode (const BTPB& msg, OCTETSTRING& data);
  virtual int decode (const OCTETSTRING& data, BTPB& msg);
class BTPCodec : public Codec<LibItsBtp__TypesAndValues::BtpPacket> {
public:
  virtual int encode (const LibItsBtp__TypesAndValues::BtpPacket&, OCTETSTRING& data);
  virtual int decode (const OCTETSTRING& data, LibItsBtp__TypesAndValues::BtpPacket&);
};

#endif
+10 −13
Original line number Diff line number Diff line
#include "BTPLayer.h"
#include "BTPPort.h"

void BTPLayer::sendMsg(const BTPA& m, const Params& params){
void BTPLayer::sendMsg(const LibItsBtp__TypesAndValues::BtpPacket& m, const Params& params){
  OCTETSTRING data;
  _a.encode(m, data);
  _codec.encode(m, data);
  sendData(data, Params());
}

void BTPLayer::sendMsg(const BTPB& m, const Params& params){
  OCTETSTRING data;
  _b.encode(m, data);
  sendData(data, Params());
}
void BTPLayer::sendData(const OCTETSTRING& data, const Params& params){
  sendToAllLayers(data, params);
}

void BTPLayer::receiveData(const OCTETSTRING& data, const Params& info)
{
 BTPB b;
 BTPA a;
 receiveToAllPorts(a, Params());
 receiveToAllPorts(b, Params());
 receiveToAllLayers(data, Params()); //a.payload shall be sent!
  LibItsBtp__TypesAndValues::BtpPacket p;
  _codec.decode(data, p);
  receiveToAllPorts(p, info);
  if(p.payload().is_present()){
    receiveToAllLayers(p.payload()().rawPayload(), info);
  }
}

class BTPFactory : public LayerFactory {
@@ -33,8 +30,8 @@ public:

BTPFactory::BTPFactory()
{
  StackFactory::getInstance()->registerLayerFactory("BTP", this);
  // register factory
  StackFactory::getInstance()->registerLayerFactory("BTP", this);
}

Layer * BTPFactory::createLayer(const std::string & type, const std::string & param)
Loading