+ virtual void OnSyncUserMetaData(User* user, Module* proto, void* opaque, const std::string& extname, bool displayable)
+ {
+ if (extname == "callerid_data")
+ {
+ callerid_data* dat = GetData(user, false);
+ if (dat)
+ {
+ std::string str = dat->ToString(displayable);
+ proto->ProtoSendMetaData(opaque, TYPE_USER, user, extname, str);
+ }
+ }
+ }
+
+ virtual void OnDecodeMetaData(int target_type, void* target, const std::string& extname, const std::string& extdata)
+ {
+ if (target_type == TYPE_USER && extname == "callerid_data")
+ {
+ User* u = (User*)target;
+ callerid_data* dat = new callerid_data(extdata, ServerInstance);
+ u->Extend("callerid_data", dat);
+ }
+ }
+
+ virtual int OnUserPreNick(User* user, const std::string& newnick)