#ifndef __BGOOBJECT_H__
#define __BGOOBJECT_H__
/* $Id: bgobject.h,v 1.1 2000/02/18 09:04:17 dpfeifle Exp $ */
#include "bgclass.h"
/* Object class identifiers
*/
//const static long BGCID_OFFSET = 471100;
//const static long BGCID_OBJECT = BGCID_OFFSET + 1;
//const static long BGCID_BGSTRING = BGCID_OBJECT + 1;
//const static long BGCID_BGSOCKET = BGCID_BGSTRING + 1;
//const static long BGCID_BGSOCKET = BGCID_BGSTRING + 1;
//const static long BGCID_BGLIST = BGCID_BGSOCKET + 1;
//const static long BGCID_BGHASHTABLE = BGCID_BGLIST + 1;
class BGString; // forward declaration needed for toString()
// ------------------------------------------------------------------
// Class: BGObject
// ------------------------------------------------------------------
class BGObject
{
public:
long
cid ( );
virtual BGString
toString ( ) = 0;
virtual unsigned long
hash ( ) = 0 ;
virtual bool
equals ( BGObject &obj ) = 0;
virtual BGString
className ( ) = 0;
};
// ------------------------------------------------------------------
// Class: BGType
// ------------------------------------------------------------------
class BGType
: public BGObject
{
public:
virtual int
compare ( BGObject &obj ) = 0;
bool
equals ( BGObject &obj ) { if (this->cid()!=obj.cid()) return false;
return (this->compare(obj)==0) ? true : false;
};
};
// ------------------------------------------------------------------
// Class: BGNumber
// ------------------------------------------------------------------
class BGNumber
: public BGType
{
public:
virtual long
longValue ( ) const = 0;
};
// ------------------------------------------------------------------
// Class: BGOctet
// ------------------------------------------------------------------
class BGOctet
: public BGType
{
public:
virtual char*
buffer ( ) const = 0;
virtual long
length ( ) const = 0;
};
#endif