The model is two classes, base and derived, and both have corresponding interfaces, Ibase and Iderived.   When I go to implement the derived class, I am getting ambiguous access errors, I am wondering if the mod compiler is messing me up.  Here is the base interface (ICSData):
	
	- __interface ICSData 
- { 
- 	virtual CSBase* state() = 0; 
-   
- 	virtual bool Load() = 0; 
- 	virtual bool Unload() = 0; 
- 	virtual bool Connect() = 0;	 
- 	virtual bool Disconnect() = 0; 
-   
- 	virtual int GetBatteryLevel() = 0; 
- 	virtual bool AcquireImage(long itemId, const QString& filepath) = 0; 
-   
- 	virtual void onCameraDisconnected(long srcID) = 0; 
- 	virtual void onCameraConnected(long srcID) = 0; 
- 	virtual void onBatteryLevelChange(int percentage) = 0; 
- 	virtual void-  onImageCaptured (long-  itemId,  QString-  name,  QDateTime-  captureTime ) = 0- ; 
 
- 	virtual void onProcessReset(long itemId, int maximum) = 0; 
- 	virtual void onProcessSetValue(long itemId, int value) = 0; 
-   
- 	virtual const QString& lastError() const = 0; 
- 	virtual void setLastError(const QString& value) = 0; 
- }; 
        __interface ICSData
{
	virtual CSBase* state() = 0;
	virtual bool Load() = 0;
	virtual bool Unload() = 0;
	virtual bool Connect() = 0;	
	virtual bool Disconnect() = 0;
	virtual int GetBatteryLevel() = 0;
	virtual bool AcquireImage(long itemId, const QString& filepath) = 0;
	virtual void onCameraDisconnected(long srcID) = 0;
	virtual void onCameraConnected(long srcID) = 0;
	virtual void onBatteryLevelChange(int percentage) = 0;
	virtual void onImageCaptured(long itemId, QString name, QDateTime captureTime) = 0;
	virtual void onProcessReset(long itemId, int maximum) = 0;
	virtual void onProcessSetValue(long itemId, int value) = 0;
	virtual const QString& lastError() const = 0;
	virtual void setLastError(const QString& value) = 0;
};
To copy to clipboard, switch view to plain text mode 
  
And here is the base class:
	
	- class CSData  : public QObject- ,  public-  ICSData 
- { 
- 	Q_OBJECT 
-   
- public: 
- 	~CSData(); 
-   
- 	CSBase* state() { return _state; }		 
- 	void setState(CSBase* val) { _state = val; } 
-   
- 	CSBase* csUnloaded(); 
- 	CSBase* csInitialized(); 
- 	CSBase* csConnected(); 
- 	CSBase* csCaptured(); 
-   
- 	virtual void onCameraDisconnected(long srcID); 
- 	virtual void onCameraConnected(long srcID); 
- 	virtual void onBatteryLevelChange(int percentage); 
- 	virtual void onProcessReset(long itemId, int maximum); 
- 	virtual void onProcessSetValue(long itemId, int value); 
-   
-   
- 	virtual const QString& lastError() const; 
- 	virtual void setLastError(const QString& value); 
-   
- signals: 
- 	void cameraDisconnected(long srcID); 
- 	void cameraConnected(long srcID); 
- 	void batteryLevelChange(int percentage); 
- 	void processReset(long itemId, int maximum); 
- 	void processSetValue(long itemId, int value); 
-   
- protected: 
-   
- private: 
- 	CSBase		*	_state;		 
-   
- 	CSUnloaded		*	_csUnloaded; 
- 	CSInitialized	*	_csInitialized; 
- 	CSConnected	*	_csConnected; 
- 	CSCaptured		*	_csCaptured; 
- }; 
        class CSData : public QObject, public ICSData
{
	Q_OBJECT
public:
	CSData(QObject *parent);
	~CSData();
	CSBase* state() { return _state; }		
	void setState(CSBase* val) { _state = val; }
	CSBase* csUnloaded();
	CSBase* csInitialized();
	CSBase* csConnected();
	CSBase* csCaptured();
	virtual void onCameraDisconnected(long srcID);
	virtual void onCameraConnected(long srcID);
	virtual void onBatteryLevelChange(int percentage);
	virtual void onImageCaptured(long itemId, QString name, QDateTime captureTime);
	virtual void onProcessReset(long itemId, int maximum);
	virtual void onProcessSetValue(long itemId, int value);
	virtual QMessageBox::StandardButton uiRequest(const QString& prompt, const QString& detail, QMessageBox::StandardButtons buttons, QMessageBox::StandardButton defaultButton = QMessageBox::NoButton);
	virtual const QString& lastError() const;
	virtual void setLastError(const QString& value);
signals:
	void cameraDisconnected(long srcID);
	void cameraConnected(long srcID);
	void batteryLevelChange(int percentage);
	void imageCaptured(long itemId, QString name, QDateTime captureTime);
	void processReset(long itemId, int maximum);
	void processSetValue(long itemId, int value);
protected:
	QString		_lastError;
private:
	CSBase		*	_state;		
	CSUnloaded		*	_csUnloaded;
	CSInitialized	*	_csInitialized;
	CSConnected	*	_csConnected;
	CSCaptured		*	_csCaptured;
};
To copy to clipboard, switch view to plain text mode 
  
These are the methods causing problems:
onCameraDisconnected
onCameraConnected
onBatteryLevelChange
onImageCaptured
onProcessReset
onProcessSetValue
uiRequest
lastError
setLastError
For the record, I MUST have the interfaces because of circular references elsewhere in the code.
Sam
				
			
Bookmarks