//Editor-Info: -*- C++ -*-
//
//Subject: TOVE project
//
//File: testing/testadapter/uni/unicodingstate.h
//
//Version: $Revision: 1.3 $
//
//State: $State: Exp $
//
//Date: $Date: 1998/10/06 10:49:13 $
//
//Organisation:
//      Helsinki University of Technology
//      Laboratory of Telecommunications Software and Multimedia
//
//Author:
//      Jussi Turunen
//
//Description:
//      codingstate has a state machine similar to unicoordprotocol's.
//      The states should be the same and their functionality should be
//      the same except for the UNI-specific functionality.
//
//Copyright:
//      Copyright 1999 Helsinki University of Technology
//      ALL RIGHTS RESERVED BETWEEN JANUARY 1996 AND JUNE 1999.
//
//Licence:
//
//
//History: 

#ifndef __UNI_UNICODINGSTATE_H__
#define __UNI_UNICODINGSTATE_H__

class pfProtocol;


#include "pf/state.h"
#include "../adapter/taprimitives.h"
#include "iface/uaalif/uaalupprimitives.h"

class uniCodingState : public pfState,
                       public taInputs,
                       public uaalUpInputs
{
    public:
        static uniCodingState *instance(void);
        
        // virtual taMessengerAct method
        virtual void taMessengerAct(
            taMessenger *messenger_,
            pfProtocol *protocol_);
        
        // virtual uaalUpInputAct methods
        virtual void uaalESTABLISHindAct(
            uaalESTABLISHind *message_,
            pfProtocol *protocol_);
        virtual void uaalESTABLISHconfAct(
            uaalESTABLISHconf *message_,
            pfProtocol *protocol_);
        virtual void uaalRELEASEindAct(
            uaalRELEASEind *message_,
            pfProtocol *protocol_);
        virtual void uaalRELEASEconfAct(
            uaalRELEASEconf *message_,
            pfProtocol *protocol_);
        virtual void uaalDATAindAct(
            uaalDATAind *message_,
            pfProtocol *protocol_);
        virtual void uaalUNITDATAindAct(
            uaalUNITDATAind *message_,
            pfProtocol *protocol_);
    protected:
        uniCodingState(void);
        virtual ~uniCodingState(void);

    private:


        static uniCodingState *_only;
};

#endif // __UNI_UNICODINGSTATE_H__
