+void RemotedSession::unmarshallAttributes(DDF& in)\r
+{\r
+ DDF attr = in.first();\r
+ while (!attr.isnull()) {\r
+ try {\r
+ m_attributes.push_back(Attribute::unmarshall(attr));\r
+ if (m_cache->m_log.isDebugEnabled())\r
+ m_cache->m_log.debug("unmarshalled attribute (ID: %s) with %d value%s",\r
+ attr.first().name(), attr.first().integer(), attr.first().integer()!=1 ? "s" : "");\r
+ }\r
+ catch (AttributeException& ex) {\r
+ const char* id = attr.first().name();\r
+ m_cache->m_log.error("error unmarshalling attribute (ID: %s): %s", id ? id : "none", ex.what());\r
+ }\r
+ attr = attr.next();\r
+ }\r
+}\r
+\r