Maybe callbacks are too much trouble to bother with, but there
are other areas for improvement. For instance, this patch
(against xorp.ct) saves around 30KB, and it should help
run-time and stack usage as well.
diff --git a/libxipc/xrl_error.cc b/libxipc/xrl_error.cc
index fd96af1..b6626f1 100644
--- a/libxipc/xrl_error.cc
+++ b/libxipc/xrl_error.cc
@@ -116,3 +116,6 @@ XrlError::error_msg() const
{
return _errlet->error_msg();
}
+
+
+XrlCmdError XrlCmdError::_xce_ok(XrlError::OKAY());
diff --git a/libxipc/xrl_error.hh b/libxipc/xrl_error.hh
index 44dd2fb..4ad2f26 100644
--- a/libxipc/xrl_error.hh
+++ b/libxipc/xrl_error.hh
@@ -179,7 +179,7 @@ public:
* still return OKAY(), but the return list should indicate the
* error.
*/
- static const XrlCmdError OKAY() { return XrlError::OKAY(); }
+ static const XrlCmdError& OKAY() { return _xce_ok; }
/**
* Return value when the method arguments are incorrect.
@@ -215,11 +215,12 @@ public:
/**
* @return note associated with origin of error (i.e., the reason).
*/
- string note() const { return _xrl_error.note(); }
+ const string& note() const { return _xrl_error.note(); }
private:
XrlCmdError(const XrlError& xe) : _xrl_error(xe) {}
XrlError _xrl_error;
+ static XrlCmdError _xce_ok;
};
^L
diff --git a/libxipc/xrl_sender.hh b/libxipc/xrl_sender.hh
index 991d40a..123bcec 100644
--- a/libxipc/xrl_sender.hh
+++ b/libxipc/xrl_sender.hh
@@ -30,6 +30,7 @@ class XrlError;
/**
* Base for classes able to transport Xrls.
+ * See xrl_router.hh for implementor of this base class.
*/
class XrlSender {
public:
--
Ben Greear <[email protected]>
Candela Technologies Inc http://www.candelatech.com
_______________________________________________
Xorp-hackers mailing list
[email protected]
http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-hackers