#ifndef INDIBASE_H
#define INDIBASE_H
#include "indiapi.h"
#include "indidevapi.h"
#define MAXRBUF 2048
/**
* \namespace INDI
\brief Namespace to encapsulate INDI client, device, and mediator classes
- BaseClient: Base class for INDI clients. By subclassing BaseClient, client can easily connect to INDI server
and handle device communication, command, and notifcation.
- BaseMediator: Abstract class to provide interface for event notifications in INDI::BaseClient.
- BaseDriver: Base class for all INDI virtual driver as handled and stored in INDI::BaseClient.
- DefaultDriver: INDI::BaseDriver with extended functionality such as debug, simulation, and configuration support.
It is \e only used by drivers directly, it cannot be used by clients.
*/
namespace INDI
{
class BaseMediator;
class BaseClient;
class BaseDriver;
class DefaultDriver;
}
/**
* \class INDI::BaseMediator
\brief Meditates event notification as generated by devices and passed to clients.
*/
class INDI::BaseMediator
{
public:
/** \brief Emmited when a new device is created from INDI server.
*/
virtual void newDevice() =0;
/** \brief Emmited when a new BLOB value arrives from INDI server.
\param bp Pointer to filled and process BLOB.
*/
virtual void newBLOB(IBLOB *bp) =0;
/** \brief Emmited when a new switch value arrives from INDI server.
\param svp Pointer to a switch vector property.
*/
virtual void newSwitch(ISwitchVectorProperty *svp) =0;
/** \brief Emmited when a new number value arrives from INDI server.
\param nvp Pointer to a number vector property.
*/
virtual void newNumber(INumberVectorProperty *nvp) =0;
/** \brief Emmited when a new text value arrives from INDI server.
\param tvp Pointer to a text vector property.
*/
virtual void newText(ITextVectorProperty *tvp) =0;
/** \brief Emmited when a new light value arrives from INDI server.
\param lvp Pointer to a light vector property.
*/
virtual void newLight(ILightVectorProperty *lvp) =0;
/** \brief Emmited when the server gets disconnected.
*/
virtual void serverDisconnected() =0;
};
#endif // INDIBASE_H