michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #pragma once michael@0: michael@0: #include "CC_Common.h" michael@0: michael@0: #include michael@0: michael@0: extern "C" michael@0: { michael@0: #include "ccapi_types.h" michael@0: } michael@0: michael@0: namespace CSF michael@0: { michael@0: class ECC_API CC_DeviceInfo michael@0: { michael@0: public: michael@0: NS_INLINE_DECL_THREADSAFE_REFCOUNTING(CC_DeviceInfo) michael@0: protected: michael@0: CC_DeviceInfo() { } michael@0: michael@0: public: michael@0: //Base class needs dtor to be declared as virtual michael@0: virtual ~CC_DeviceInfo() {}; michael@0: michael@0: /** michael@0: gets the device name michael@0: @returns - the device name as an std::string michael@0: */ michael@0: virtual std::string getDeviceName() = 0; michael@0: michael@0: /** michael@0: gets the service state michael@0: @param [in] handle - reference to device info michael@0: @returns cc_service_state_t - INS/OOS michael@0: */ michael@0: virtual cc_service_state_t getServiceState() = 0; michael@0: michael@0: /** michael@0: gets the service cause michael@0: @param [in] handle - reference to device info michael@0: @returns cc_service_cause_t - reason for service state michael@0: */ michael@0: virtual cc_service_cause_t getServiceCause() = 0; michael@0: michael@0: /** michael@0: gets vector of CC_CallPtr from this CC_DeviceInfo michael@0: michael@0: @returns vector containing the CC_CallPtrs michael@0: */ michael@0: virtual std::vector getCalls () = 0; michael@0: michael@0: /** michael@0: gets list of handles to calls on the device by state michael@0: @param [in] handle - reference to device info michael@0: @param [in] state - call state for which the calls are requested michael@0: @param [out] handles - array of call handle to be returned michael@0: @param [in,out] count number allocated in array/elements returned michael@0: @returns michael@0: */ michael@0: // void getCallsByState (cc_call_state_t state, michael@0: // cc_call_handle_t handles[], cc_uint16_t *count); michael@0: michael@0: /** michael@0: gets vector of CC_LinePtr from this CC_DeviceInfo michael@0: michael@0: @returns vector containing the CC_LinePtrs michael@0: */ michael@0: virtual std::vector getLines () = 0; michael@0: michael@0: /** michael@0: gets vector of features on the device michael@0: michael@0: @returns michael@0: */ michael@0: virtual std::vector getFeatures () = 0; michael@0: michael@0: /** michael@0: gets handles of call agent servers michael@0: michael@0: @returns michael@0: */ michael@0: virtual std::vector getCallServers () = 0; michael@0: michael@0: /** michael@0: gets call server name michael@0: @param [in] handle - handle of call server michael@0: @returns name of the call server michael@0: NOTE: The memory for return string doesn't need to be freed it will be freed when the info reference is freed michael@0: */ michael@0: // cc_string_t getCallServerName (cc_callserver_ref_t handle); michael@0: michael@0: /** michael@0: gets call server mode michael@0: @param [in] handle - handle of call server michael@0: @returns - mode of the call server michael@0: */ michael@0: // cc_cucm_mode_t getCallServerMode (cc_callserver_ref_t handle); michael@0: michael@0: /** michael@0: gets calls erver name michael@0: @param [in] handle - handle of call server michael@0: @returns status of the call server michael@0: */ michael@0: // cc_ccm_status_t getCallServerStatus (cc_callserver_ref_t handle); michael@0: michael@0: /** michael@0: get the NOTIFICATION PROMPT michael@0: @param [in] handle - reference to device info michael@0: @returns michael@0: */ michael@0: // cc_string_t getNotifyPrompt (); michael@0: michael@0: /** michael@0: get the NOTIFICATION PROMPT PRIORITY michael@0: @param [in] handle - reference to device info michael@0: @returns michael@0: */ michael@0: // cc_uint32_t getNotifyPromptPriority (); michael@0: michael@0: /** michael@0: get the NOTIFICATION PROMPT Progress michael@0: @param [in] handle - reference to device info michael@0: @returns michael@0: */ michael@0: // cc_uint32_t getNotifyPromptProgress (); michael@0: michael@0: private: michael@0: // Cannot copy - clients should be passing the pointer not the object. michael@0: CC_DeviceInfo& operator=(const CC_DeviceInfo& rhs); michael@0: CC_DeviceInfo(const CC_DeviceInfo&); michael@0: }; michael@0: };