[Date Prev][Date Next][Thread Prev][Thread Next][Author Index][Date Index][Thread Index]

New CommXcvr::send code



A record (approximately) as it appeared on the board.  Not intended to
be understood yet by those not in the meeting

void CommXcvr::send (Heaper * obj)
{
	SPTR(Heaper) sobj;
	IntegerVar objNum;

	if (sobj = this->fetchEntryFor(obj)) {
		this->send(obj);
	} else if (obj->isByProxy()) {
		objNum = myCommHandler->assignNumberFor(obj);
		this->startInstance(obj->getProxyCategory());
		this->send(myCommHandler);
		obj->sendProxyTo(this);
		this->endInstance();
	} else {
		this->assignNumberFor(obj);
		this->startInstance(obj->getCategory());
		obj->sendSelfTo(this);
		this->endInstance();
	}
}

Given:

CLASS(Foo,Heaper) {
	PROXY:
		virtual void zip () DEFERRED_SUBR;
	public:
		LEAF int zap ();
	COPY(Foo):
		int myI;
};

Generate:

void Foo::sendProxyTo (CommXcvr * trans)
{
	this->Foo::sendSelfTo(trans);
}