Responder

class LLResponder : public LLThreadSafeRefCount
{
public:
	virtual ~LLResponder();
	virtual void completed(bool success) = 0;
};

class MyResponder : public LLResponder; // contains private data and overrides completed()

make_a_request("foo", new MyResponder(mydata)}; // when the request completes, MyResponder::completed() will get called