//Editor-Info: -*- C++ -*-
//
//Subject: TOVE project
//
//File: uniteststate.cpp
//
//Version: $Revision: 1.9 $
//
//State: $State: Exp $
//
//Date: $Date: 1998/10/16 05:10:56 $
//
//Organisation:
//      Helsinki University of Technology
//      Laboratory of Telecommunications Software and Multimedia
//
//Author:
//      Jari Pusa
//
//Description:
//
//
//Copyright:
//
//
//Licence:
//
//
//History: 

#include "uniteststate.h"

uniTestState *uniTestState :: _only = 0;

uniTestState :: uniTestState(void)
    : sigUpInputs(),
      pfState()
{
    return;
}

uniTestState :: ~uniTestState(void)
{
    return;
}

uniTestState *uniTestState :: instance(void)
{
    if (_only == 0)
    {
        _only = new uniTestState();
    }

    return _only;
}

void uniTestState :: sigSETUPindAct(sigSETUPind *message_,
                                     pfProtocol *protocol_)
{
    cout << "Tester : sigSETUPind" << endl; 
    message_->print();
    
    uniTestAdapter *protocol = (uniTestAdapter *)protocol_;
    protocol->sendPROCEEDINGreq(*message_);
    protocol->sendSETUPresp(*message_);
    return;
}

void uniTestState :: sigPROCEEDINGindAct(sigPROCEEDINGind *message_,
                                          pfProtocol *protocol_)
{
    cout << "Tester : sigPROCEEDINGind" << endl;
    message_->print();
    
    return;
}

void uniTestState :: sigSETUPconfAct(sigSETUPconf *message_,
                                      pfProtocol *protocol_)
{
    uniTestAdapter *protocol = (uniTestAdapter *)protocol_;
    cout << "Tester : sigSETUPconf" << endl;
    message_->print();

    //cout << "Tester : RELEASING CONNECTION" << endl;
    //protocol->sendRELEASEreq();

    cout << "Tester : Adding party" << endl;
    protocol->sendADD_PARTYreq();
    
    return;
}

void uniTestState :: sigSETUP_COMPLETEindAct(sigSETUP_COMPLETEind *message_,
                                             pfProtocol *protocol_)
{
    cout << "Tester : sigSETUP_COMPLETEind" << endl;
    message_->print();

    return;
}

void uniTestState :: sigRELEASEindAct(sigRELEASEind *message_,
                                       pfProtocol *protocol_)
{
    uniTestAdapter *protocol = (uniTestAdapter *)protocol_;

    cout << "Tester : sigRELEASEind" << endl;
    message_->print();

    protocol->sendRELEASEresp(*message_);
    
    return;
}

void uniTestState :: sigRELEASEconfAct(sigRELEASEconf *message_,
                                        pfProtocol *protocol_)
{
    cout << "Tester : sigRELEASEconf" << endl;
    message_->print();

    return;
}


void uniTestState :: sigRESETindAct(sigRESETind *message_,
                                     pfProtocol *protocol_)
{
    cout << "Tester : sigRESETind" << endl;
    message_->print();

    return;
}

void uniTestState :: sigRESETconfAct(sigRESETconf *message_,
                                      pfProtocol *protocol_)
{
    cout << "Tester : sigRESETconf" << endl;
    message_->print();

    return;
}

void uniTestState :: sigRESET_ERRORindAct(sigRESET_ERRORind *message_,
                                           pfProtocol *protocol_)
{
    cout << "Tester : sigRESET_ERRORind" << endl;
    message_->print();

    return;
}


void uniTestState :: uniADD_PARTYreqAct(uniADD_PARTYreq *message_,
                                        pfProtocol *protocol_)
{
    cout << "Tester : uniADD_PARTYreq" << endl;
    message_->print();

    return;
}

void uniTestState :: uniADD_PARTYrespAct(uniADD_PARTYresp *message_,
                                         pfProtocol *protocol_)
{
    uniTestAdapter *protocol = (uniTestAdapter *)protocol_;

    cout << "Tester : uniADD_PARTYresp" << endl;
    message_->print();

    // Release connection
    protocol->sendRELEASEreq();
    
    return;
}

void uniTestState :: uniADD_PARTYerrorAct(uniADD_PARTYerror *message_,
                                          pfProtocol *protocol_)
{
    cout << "Tester : uniADD_PARTYerror" << endl;
    message_->print();

    return;
}

void uniTestState :: uniDROP_PARTYreqAct(uniDROP_PARTYreq *message_,
                                         pfProtocol *protocol_)
{
    cout << "Tester : uniDROP_PARTYreq" << endl;
    message_->print();

    return;
}

void uniTestState :: uniDROP_PARTYrespAct(uniDROP_PARTYresp *message_,
                                          pfProtocol *protocol_)
{
    cout << "Tester : uniDROP_PARTYresp" << endl;
    message_->print();

    return;
}

void uniTestState :: uniSTATUSreqAct(uniSTATUSreq *message_,
                                     pfProtocol *protocol_)
{
    cout << "Tester : uniSTATUSreq" << endl;
    message_->print();

    return;
}

void uniTestState :: uniSTATUSrespAct(uniSTATUSresp *message_,
                                      pfProtocol *protocol_)
{
    cout << "Tester : uniSTATUSresp" << endl;
    message_->print();

    return;
}

void uniTestState :: uniTESTtimeoutAct(pfProtocol *protocol_)
{
    cout << "TEST timeout" << endl;
    uniTestAdapter *protocol = (uniTestAdapter*) protocol_;
    protocol->sendSETUPreq();
    return;
}


