//Editor-Info: -*- C++ -*-
//
//Subject: TOVE project/CC
//
//File: ccostate.h
//
//Version: $Revision: 1.10 $
//
//State: $State: Exp $
//
//Date: $Date: 1998/12/03 11:31:52 $
//
//Organisation:
//      University of Technology
// 
//Author:
//      Pasi Nummisalo
//
//Description:
//     
//
//Copyright:
//     University of Technology
//     Laboratory of Telecommunications and Multimedia 
//      
//Licence:
//     
//
//History:
//

#ifndef __CC_O_STATE_H__
#define __CC_O_STATE_H__

#include "ccstate.h"
#include "iface/swif/swcallbackmessages.h"


class ccOstate : public ccState,
                 public swCallbackInputs
{
    public:
        // Entry action
        virtual void proceed(ccProtocol *protocol_) = 0;
       
        // From down
        virtual void sigRELEASEindAct(sigRELEASEind *messenger_,
                                      pfProtocol *protocol_);
        
        virtual void sigRELEASEconfAct(sigRELEASEconf *messenger_,
                                       pfProtocol *protocol_);
        // From other side
        virtual void ccRELEASEpduAct(ccRELEASEpdu *messenger_,
                                     ccProtocol *protocol_);

        virtual void ccRELEASE_ACTIVEpduAct(ccRELEASE_ACTIVEpdu *messenger_,
                                            ccProtocol *protocol_);

        virtual void ccSETUPpduAct(ccSETUPpdu *messenger_,
                                   ccProtocol *protocol_);

        virtual void ccALERTINGpduAct(ccALERTINGpdu *messenger_,
                                      ccProtocol *protocol_);

        // From FCF
        virtual void swSuccessMessageAct(swSuccessMessage *messenger_, 
                                         pfProtocol *protocol_);
        virtual void swFailureMessageAct(swFailureMessage *messenger_, 
                                         pfProtocol *protocol_);
        
        
    protected:
        ccOstate(void);
        virtual ~ccOstate(void);
                
};

#endif

