//Editor-Info: -*- C++ -*-
//
//Subject: TOVE project/CC
//
//File: triggerbase.h
//
//Version: $Revision: 1.7 $
//
//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_BASE_H__
#define __CC_TRIGGER_BASE_H__

#include "triggerif.h"

class ccTriggerBase : ccTriggerInterface
{
    public:
        ccTriggerBase(void); 
        virtual ~ccTriggerBase(void);

        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 setApplicationContext(string context_);
        virtual string getApplicationContext(void) const;

        virtual void setAddress(string address_);
        virtual string getAddress(void) const;
        
    protected:
        friend class ccTrigger;

        static string getOfficeCategoryString(void);
        static string getGroupCategoryString(void);
        
        virtual void incRefCount(void);
        virtual void decRefCount(void);
        virtual int noReference(void) const;

        toveinap_DPAssignmentType _category;
        toveinap_ServiceKeyType _serviceKey;

        string _applicationContext;
        string _address;
        
    private:
        long _refCount;
};

#endif // __CC_TRIGGER_BASE_H__
