Commit 3646bea8 authored by lw's avatar lw

*** empty log message ***

parent 9f25dc2f
......@@ -6,13 +6,13 @@
void *
wb_orepdbs::operator new(size_t size, wb_vrepdbs *v)
{
return (void *)v->new_wb_repdbs(size);
return (void *)v->new_wb_orepdbs(size);
}
void
wb_orepdbs::operator delete(void *p, size_t size, wb_vrepdbs *v)
wb_orepdbs::operator delete(void *p, wb_vrepdbs *v)
{
v->delete_wb_orepdbs(size, p);
v->delete_wb_orepdbs(p);
}
......@@ -49,6 +49,22 @@ pwr_tOid wb_orepdbs::oid() const
return m_o->oid;
}
pwr_tVid wb_orepdbs::vid() const
{
if (m_o == 0)
throw wb_error_str("No current object");
return m_o->oid.vid;
}
pwr_tOix wb_orepdbs::oix() const
{
if (m_o == 0)
throw wb_error_str("No current object");
return m_o->oid.oix;
}
pwr_tOid wb_orepdbs::poid() const
{
if (m_o == 0)
......@@ -57,6 +73,38 @@ pwr_tOid wb_orepdbs::poid() const
return m_o->poid;
}
pwr_tOid wb_orepdbs::foid() const
{
if (m_o == 0)
throw wb_error_str("No current object");
return pwr_cNOid;
}
pwr_tOid wb_orepdbs::loid() const
{
if (m_o == 0)
throw wb_error_str("No current object");
return pwr_cNOid;
}
pwr_tOid wb_orepdbs::boid() const
{
if (m_o == 0)
throw wb_error_str("No current object");
return pwr_cNOid;
}
pwr_tOid wb_orepdbs::aoid() const
{
if (m_o == 0)
throw wb_error_str("No current object");
return pwr_cNOid;
}
pwr_tCid wb_orepdbs::cid() const
{
if (m_o == 0)
......@@ -73,6 +121,12 @@ char * const wb_orepdbs::name()
return m_o->name;
}
bool wb_orepdbs::isOffspringOf(const wb_orep *o) const
{
return false;
}
wb_orep *wb_orepdbs::after(pwr_tStatus *sts) const
{
return m_vrep->after(sts, (wb_orep*)this);
......
......@@ -15,6 +15,8 @@ class wb_orepdbs : public wb_orep
friend class wb_bdrep;
friend class wb_adrep;
friend class wb_tdrep;
friend class wb_vrepdbs;
public:
......@@ -23,7 +25,7 @@ public:
~wb_orepdbs();
void* operator new(size_t size, wb_vrepdbs *v);
void operator delete(void *p, size_t size, wb_vrepdbs *v);
void operator delete(void *p, wb_vrepdbs *v);
virtual pwr_tOid oid() const;
virtual pwr_tVid vid() const;
......
......@@ -13,18 +13,41 @@ wb_vrep *wb_vrepdbs::ref()
return this;
}
#if 1
wb_vrepdbs::wb_vrepdbs(const char *fileName)
{
strcpy(m_fileName, fileName);
m_isDbsenvLoaded = false;
}
dbs_sEnv *
wb_vrepdbs::dbsenv()
{
dbs_sEnv *ep;
pwr_tStatus sts;
if (!m_isDbsenvLoaded) {
ep = dbs_Map(&sts, &m_dbsenv, m_fileName);
if (!ep) {
}
m_isDbsenvLoaded = true;
} else {
ep = &m_dbsenv;
}
dbs_sEnv *ep =dbs_Map(&sts, &m_dbsenv, fileName);
if (!ep)
ep = 0;
return ep;
}
bool
wb_vrepdbs::load()
{
return dbsenv() != 0;
}
wb_orep *wb_vrepdbs::object(pwr_tStatus *sts, pwr_tOid oid)
wb_orep *
wb_vrepdbs::object(pwr_tStatus *sts, pwr_tOid oid)
{
dbs_sObject *op = dbs_OidToObject(sts, &m_dbsenv, oid);
if (op == 0)
......@@ -33,7 +56,8 @@ wb_orep *wb_vrepdbs::object(pwr_tStatus *sts, pwr_tOid oid)
return new (this) wb_orepdbs(op);
}
wb_orep *wb_vrepdbs::object(pwr_tStatus *sts, wb_orep *parent, wb_name name)
wb_orep *
wb_vrepdbs::object(pwr_tStatus *sts, wb_orep *parent, wb_name name)
{
#if 0
dbs_sName n;
......@@ -228,4 +252,64 @@ wb_srep *wb_vrepdbs::newSession()
{
return (wb_srep*)0;
}
#endif
wb_orep *
wb_vrepdbs::object(pwr_tStatus *)
{
return 0;
}
bool
wb_vrepdbs::isLocal(wb_orep *) const
{
return false;
}
pwr_tCid
wb_vrepdbs::cid() const
{
return 0;
}
pwr_tVid
wb_vrepdbs::vid() const
{
return 0;
}
wb_merep *wb_vrepdbs::merep() const
{
return 0;
}
bool wb_vrepdbs::createSnapshot(char *)
{
return false;
}
void wb_vrepdbs::iterObject(wb_dbs *)
{
}
void wb_vrepdbs::iterRbody(wb_dbs *)
{
}
void wb_vrepdbs::iterDbody(wb_dbs *)
{
}
wb_orepdbs *
wb_vrepdbs::new_wb_orepdbs(size_t size)
{
wb_orepdbs *o = (wb_orepdbs *) calloc(1, size);
o->m_vrep = this;
return o;
}
void
wb_vrepdbs::delete_wb_orepdbs(void *p)
{
free(p);
}
......@@ -16,10 +16,14 @@ public:
unsigned int m_nSession;
unsigned int m_nRef;
dbs_sEnv m_dbsenv;
char m_fileName[200];
bool m_isDbsenvLoaded;
dbs_sEnv m_dbsenv;
wb_vrepdbs(const char *fileName);
dbs_sEnv *dbsenv();
bool load();
virtual void unref();
virtual wb_vrep *ref();
......@@ -75,11 +79,23 @@ public:
virtual wb_srep *newSession();
virtual bool isLocal(wb_orep *o);
virtual pwr_tVid vid() const;
wb_orepdbs *new_wb_repdbs(size_t size);
void delete_wb_orepdbs(size_t size, void *p);
wb_orepdbs *new_wb_orepdbs(size_t size);
void delete_wb_orepdbs(void *p);
virtual wb_vrep *next () const;
virtual wb_orep *object (pwr_tStatus *);
virtual bool isLocal (wb_orep *) const;
virtual pwr_tCid cid () const;
virtual wb_merep *merep () const;
virtual bool createSnapshot (char *);
virtual void iterObject (wb_dbs *);
virtual void iterRbody (wb_dbs *);
virtual void iterDbody (wb_dbs *);
};
#endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment