//Editor-Info: -*- C++ -*-
//
//Subject: TOVE project
//
//File: codingprotocol.h
//
//Version: $Revision: 1.6 $
//
//State: $State: Exp $
//
//Date: $Date: 1998/11/03 14:46:29 $
//
//Organisation:
//      Helsinki University of Technology
//      Laboratory of Telecommunications Software and Multimedia
//
//Author:
//      Jussi Turunen
//
//Description:
//      A protocol conduit for testing. Main function of this protcol
//      is to encode messages it receives from side B (upper side) and
//      decode frames it receives from the A side (lower layer). Note
//      that this is a stateless protocol and takes advantage of 
//      pfProtocol's inheritance of pfState in the implementation of
//      Act-methods.
//
//Copyright:
//      Copyright 1999 Helsinki University of Technology
//      ALL RIGHTS RESERVED BETWEEN JANUARY 1996 AND JUNE 1999.
//
//Licence:
//
//
//History: 

#ifndef __SSCOP_CODINGPROTOCOL_H__
#define __SSCOP_CODINGPROTOCOL_H__

//static const char rcsid[] =
//    "@(#) $Header: /work/projects/tove/cvs/src/testing/testadapter/sscop/codingprotocol.h,v 1.6 1998/11/03 14:46:29 jturunen Exp $ (LBL)";


#include "pf/protocol.h"
#include "pf/state.h"
#include "iface/cpcsif/cpcsupprimitives.h"
#include "../adapter/taprimitives.h"
#include "sscoppducoder.h"

class codingProtocol : public pfProtocol,
                       public cpcsUpInputs,
                       public taInputs
{
    public:
        static pfConduit create(void);
        
        void cpcsUNITDATAindAct(cpcsUNITDATAind *messenger_,
                                pfProtocol *protocol_) const;
        void taMessengerAct(taMessenger *messenger_,
                            pfProtocol *protocol_);
        
    protected:
        codingProtocol(void);
        virtual ~codingProtocol(void);
        
    private:
//        otMessage_var _receiver;
        mutable sscopPDUcoder _coder;
};


#endif // __SSCOP_CODINGPROTOCOL_H__
