//Editor-Info: -*- C++ -*-
//
//Subject: TOVE project/CC
//
//File: trigger_digitstring.cpp
//
//Version: $Revision: 1.17 $
//
//State: $State: Exp $
//
//Date: $Date: 1998/11/11 16:09:53 $
//
//Organisation:
//      University of Technology
// 
//Author:
//      Pasi Nummisalo
//
//Description:
//     
//
//Copyright:
//     University of Technology
//     Laboratory of Telecommunications and Multimedia 
//      
//Licence:
//     
//
//History:
//

#include "ccprotocol.h"
#include "trigger_digitstring.h"

ccTriggerDigitString :: ccTriggerDigitString(void)
    : _criteria(getDefaultCriteria())
{
    _category = toveinap_officeBased;
    _serviceKey = getDefaultServiceKey();
    return;
}

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

//
//Functions: static functions 
//
//Description:
//   Get default values
//

string ccTriggerDigitString :: getStaticType(void)
{
    string type("customizedAccess");
    return type;
}

string ccTriggerDigitString :: getDefaultCriteria(void)
{
    string criteria("ALL");
    return criteria;
}

string  ccTriggerDigitString :: getDefaultCategory(void)
{
    string category = getOfficeCategoryString();
    return category;    
}

toveinap_ServiceKeyType ccTriggerDigitString :: getDefaultServiceKey(void)
{
    toveinap_ServiceKeyType serviceKey = 1;
    return serviceKey;    
}

void ccTriggerDigitString :: getInfo(ccIf_TriggerType &trigger_)
{
    string tmpStr;

    tmpStr = getStaticType();
    trigger_.type = CORBA_string_dup(tmpStr.c_str());

    tmpStr = getDefaultCriteria(); 
    trigger_.criteria = CORBA_string_dup(tmpStr.c_str());

    tmpStr = getDefaultCategory();
    trigger_.category = CORBA_string_dup(tmpStr.c_str());
    
    trigger_.serviceKey = getDefaultServiceKey();
    
    return;
}

//
//Functions: criteria manipulation
//
//Description:
//   
//

void ccTriggerDigitString :: setCriteria(string criteria_)
{
    _criteria = criteria_;
    return;
}

bool ccTriggerDigitString :: checkCriteria(
    ccProtocol *protocol_) const
{
    bool result = 0;

    string number = protocol_->getCalledPartyNumber();

    if (_criteria == getDefaultCriteria())
    {
        result = 1;
    }
    
    if (_criteria == number)
    {
        result = 1;
    }
    
    return result;
}

string ccTriggerDigitString :: getCriteria(void) const
{
    return _criteria;
}


//
//Functions: 
//
//Description:
//   
//

toveinap_TriggerTypeType ccTriggerDigitString :: getInapType() const
{
    return toveinap_trigger_customizedAccess;
}


string ccTriggerDigitString :: getType(void) const
{
    string result(getStaticType());
    return result;
}




