//Editor-Info: -*- C++ -*-
//
//Subject: TOVE project / gsmpswitch
//
//File: gsmpswitchactivestate.h
//
//Version: $Revision: 1.1 $
//
//State: $State: Exp $
//
//Date: $Date: 1998/08/03 11:40:42 $
//
//Organisation:
//      Helsinki University of Technology
//      Laboratory of Telecommunications Software and Multimedia
//
//Author:
//      Sami Raatikainen
//
//Description:
//
//
//Copyright:
//
//
//Licence:
//
//
//History: 


#ifndef __GSMPSWITCH_GSMPSWITCHACTIVESTATE_H__
#define __GSMPSWITCH_GSMPSWITCHACTIVESTATE_H__

#include "protocol/gsmp/gsmpexceptions.h"
#include "gsmpswitchstate.h"

class gsmpSwitchActiveState : public gsmpSwitchState 
{
    public:
        static gsmpSwitchActiveState *instance(void)
            throw (pfMemoryAllocationException);
        virtual ~gsmpSwitchActiveState(void);

        
        // Actions for incoming messages

        // Actions for GSMP Connection Management Messages

        virtual void gsmpAddBranchMessageAct(gsmpAddBranchMessage *message_,
                                             pfProtocol *protocol_);
        
        virtual void gsmpDeleteBranchMessageAct(
            gsmpDeleteBranchMessage *message_,
            pfProtocol *protocol_);
        
        virtual void gsmpDeleteTreeMessageAct(gsmpDeleteTreeMessage *message_,
                                              pfProtocol *protocol_)
            throw (pfNullPointerException);
        
        virtual void gsmpVerifyTreeMessageAct(gsmpVerifyTreeMessage *message_,
                                              pfProtocol *protocol_)
            throw (pfNullPointerException);
        
        virtual void gsmpDeleteAllMessageAct(gsmpDeleteAllMessage *message_,
                                             pfProtocol *protocol_)
            throw (pfNullPointerException);
        
        virtual void gsmpMoveBranchMessageAct(gsmpMoveBranchMessage *message_,
                                              pfProtocol *protocol_)
            throw (pfNullPointerException);

        // Actions for GSMP Port Management Messages


        // Actions for GSMP Statistics Messages

           
        // Actions for GSMP Configuration Messages

        virtual void gsmpSwitchConfigurationRequestMessageAct(
            gsmpSwitchConfigurationRequestMessage *message_,
            pfProtocol *protocol_) throw (pfNullPointerException);
        
        virtual void gsmpPortConfigurationRequestMessageAct(
            gsmpPortConfigurationRequestMessage *message_,
            pfProtocol *protocol_);
        
        virtual void gsmpAllPortsConfigurationRequestMessageAct(
            gsmpAllPortsConfigurationRequestMessage *message_,
            pfProtocol *protocol_);


    protected:
        gsmpSwitchActiveState(void);
        
    private:
        static gsmpSwitchActiveState *_only;
};

#endif // __GSMPSWITCH_GSMPSWITCHACTIVESTATE_H__



