//Editor-Info: -*- C++ -*-
//
//Subject: TOVE project/CC
//
//File: trigger.h
//
//Version: $Revision: 1.15 $
//
//State: $State: Exp $
//
//Date: $Date: 1998/11/12 15:10:06 $
//
//Organisation:
//      University of Technology
// 
//Author:
//      Pasi Nummisalo
//
//Description:
//     
//
//Copyright:
//     University of Technology
//     Laboratory of Telecommunications and Multimedia 
//      
//Licence:
//     
//
//History:
//

#ifndef __CC_TRIGGER_H__
#define __CC_TRIGGER_H__

#include "triggerbase.h"

class ccTrigger
{
    public:
        ccTrigger(ccTriggerBase *implementation_ = 0);
        ccTrigger(const ccTrigger &other_);
        virtual ~ccTrigger(void);
        
        const ccTrigger &operator = (const ccTrigger &other_);
        int operator == (const ccTrigger &other_) const;
        int operator != (const ccTrigger &other_) const;

        virtual void setCriteria(string criteria_);
        virtual string getCriteria(void) const;
        virtual bool checkCriteria(ccProtocol *protocol_) const;
        
        virtual toveinap_TriggerTypeType getInapType(void) const;
        
        virtual string getType(void) const;

        virtual void setCategory(string category_);
        virtual string getCategory(void) const;
        virtual toveinap_DPAssignmentType getInapCategory(void) const;

        virtual void setServiceKey(toveinap_ServiceKeyType serviceKey_);
        virtual toveinap_ServiceKeyType getServiceKey(void) const;

        virtual void setAddress(string address_);
        virtual string getAddress(void) const;
        virtual void setApplicationContext(string context_);
        virtual string getApplicationContext(void) const;

    protected:
        virtual void incRefCount(void);
        virtual void decRefCount(void);
        
    private:
        ccTriggerBase *_implementation;
};

#endif

