#ifndef EBASEARRAYOF_H
#define EBASEARRAYOF_H

#include <iostream>
using namespace std;

class estr;
class evar;

#include "ebasearray.h"

class ebasearrayof : public ebasearray
{
 public:
   virtual void json_serial(estr& data) const;

   virtual void serial(estr& data) const;
   virtual size_t unserial(const estr& data,size_t i=0);
   virtual void serial(const efile& f) const;
   virtual bool unserial(const efile& f);

   virtual ~ebasearrayof();

//   virtual size_t size() const=0;
//   virtual evar getvar(size_t i) const=0;

//   virtual ebasearray values()=0;
//   virtual ebasearray keys()=0;

   virtual void addvar(evar& key,evar& var)=0;
   virtual evar getvarByKey(const evar& key) const=0;
   virtual evar getvarkey(size_t i) const=0;
   virtual long findvarkey(const evar& key,long i=0) const;
};

ostream& operator<<(ostream& stream,const ebasearrayof& arr);

#endif

