QVariant SailorgramContactsModel::data(const QModelIndex &proxyIndex, int role) const
{
    QModelIndex sourceindex = this->mapToSource(proxyIndex);

    if(role == SailorgramContactsModel::FirstLetterRole)
    {
        UserObject* user = this->_telegramdialoglistmodel->data(sourceindex, TelegramDialogListModel::RoleUserItem).value<UserObject*>();
        return !user->firstName().isEmpty() ? user->firstName().mid(0, 1).toUpper() : user->lastName().mid(0, 1).toUpper();
    }

    return this->_telegramdialoglistmodel->data(sourceindex, role);
}
 JNIEXPORT jobject JNICALL Java_com_opensdk_framework_NativeInvoker_nativeGetLoginInfo(JNIEnv*  env, jobject thiz, jstring pluginKey)
 {
     std::string strPluginKey = PluginJniHelper::jstring2string(pluginKey);
     PluginProtocol* pPlugin = PluginUtils::getPluginPtr(strPluginKey);
     PluginUtils::outputLog("ProtocolUser", "nativeOnActionResult(), Get plugin ptr : %p", pPlugin);
     UserObject* userObject = dynamic_cast<UserObject*>(pPlugin);
     jobject loginInfo;
     if (userObject != NULL)
     {
         loginInfo=PluginUtils::createJavaMapObject(userObject->getLoginInfo());
     }else{           
         PluginUtils::outputLog("ProtocolUser", "plugin %s is null", pPlugin->getPluginName());
         loginInfo=PluginUtils::createJavaMapObject(NULL);
     }
     
     return loginInfo;
 }
Beispiel #3
0
void UserObject::popActionResult()
{
    for(std::vector<UserActionResult>::iterator iter=_actionResultList.begin();iter!=_actionResultList.end();){
        UserObject* userObject = dynamic_cast<UserObject*>(PluginUtils::getPluginPtr(iter->pluginKey));
        if(userObject){
            UserActionListener* listener = userObject->getActionListener();
            if(listener){
                listener->onActionResult(userObject,iter->resultCode, iter->msg.c_str());
                
                //remove from record
                iter=_actionResultList.erase(iter);
                continue;
            }
        }
        
        ++iter;
    }
}
//----------------------------------------------------------------------------------------------
int ObjectSerializer::DeserializePair(char* p_fieldAddress, TypeNode* p_type, fstream& p_eye)
{
    // Pointer to pair is not supported
    _ASSERTE(p_type->Indirection == false);

    UserObject* object = reinterpret_cast<UserObject*>(p_fieldAddress);
    object->InitializeAddresses();

    Iterator* addresses = object->GetIterator();
    unsigned* addr32;
    for(int memberIdx = 0; addresses->MoveNext(); ++memberIdx)
    {
        addr32 = reinterpret_cast<unsigned*>(addresses->Current());
        DeserializeType(reinterpret_cast<char*>(*addr32), p_type->TemplateArguments[memberIdx], p_eye);
    }

    return object->TypeSize();
}
Beispiel #5
0
void Property::set(const UserObject& object, const Value& value) const
{
    // Check if the property is writable
    if (!writable(object))
        PONDER_ERROR(ForbiddenWrite(name()));

    // Here we don't call setValue directly, we rather let the user object do it
    // and add any processing needed for proper propagation of the modification
    object.set(*this, value);
}
    JNIEXPORT void JNICALL Java_com_opensdk_framework_NativeInvoker_nativeOnActionResult(JNIEnv*  env, jobject thiz, jstring pluginKey, jint ret, jstring msg)
    {
        std::string strMsg = PluginJniHelper::jstring2string(msg);
        std::string strPluginKey = PluginJniHelper::jstring2string(pluginKey);
        PluginProtocol* pPlugin = PluginUtils::getPluginPtr(strPluginKey);
        PluginUtils::outputLog("ProtocolUser", "nativeOnActionResult(), Get plugin ptr : %p", pPlugin);
        UserObject* userObject = dynamic_cast<UserObject*>(pPlugin);
        if (userObject != NULL)
        {
            PluginUtils::outputLog("ProtocolUser", "nativeOnActionResult(), Get plugin name : %s", pPlugin->getPluginName());

            UserActionListener* listener = userObject->getActionListener();
            if (NULL != listener)
            {
                listener->onActionResult(userObject, (UserActionResultCode) ret, strMsg.c_str());
            }
            else
            {
                UserActionResult result={
                    (UserActionResultCode)ret,
                    strMsg,
                    strPluginKey
                };
                
                UserObject::pushActionResult(result);
                
                PluginUtils::outputLog("ProtocolUser","Listener of plugin %s not set correctly", pPlugin->getPluginName());
            }

        }else{
            
            UserActionResult result={
                (UserActionResultCode)ret,
                strMsg,
                strPluginKey
            };
            
            UserObject::pushActionResult(result);
            
            PluginUtils::outputLog("ProtocolUser", "plugin %s is null", pPlugin->getPluginName());
        }
    }
//----------------------------------------------------------------------------------------------
int ObjectSerializer::DeserializeUserDefinedType(char* p_fieldAddress, TypeNode* p_type, bool p_isPtr, fstream& p_eye)
{
    int     size = 0;
    UserObject* object = NULL;
    bool    isNull = false;

    if(p_isPtr)
    {
        unsigned* addr32;
        p_eye.read(reinterpret_cast<char*>(&isNull), sizeof(bool));
        addr32 = reinterpret_cast<unsigned*>(p_fieldAddress);

        if(!isNull)
        {
            string  typeName;
            char    buffer[MaxTypeNameLength + 1];

            p_eye.read(buffer, MaxTypeNameLength + 1);
            typeName = buffer;
            object = static_cast<UserObject*>(g_ObjectFactory.GetObject(typeName)->Prototype());

            PerformLateBinding(object, p_type);

            object->InitializeAddresses();

            Iterator* addresses = object->GetIterator();
            unsigned* addr32;
            for(int memberIdx = 0; addresses->MoveNext(); ++memberIdx)
            {
                _ASSERTE(memberIdx < p_type->Children.size());
                addr32 = reinterpret_cast<unsigned*>(addresses->Current());
                DeserializeType(reinterpret_cast<char*>(*addr32), p_type->Children[memberIdx].Ptr32, p_eye);
            }
        }

        *addr32 = reinterpret_cast<unsigned>(object);
        size = sizeof(unsigned);
    }
    else
    {
        object = reinterpret_cast<UserObject*>(p_fieldAddress);
        object->InitializeAddresses();

        Iterator* addresses = object->GetIterator();
        unsigned* addr32;
        for(int memberIdx = 0; addresses->MoveNext(); ++memberIdx)
        {
            _ASSERTE(memberIdx < p_type->Children.size());
            addr32 = reinterpret_cast<unsigned*>(addresses->Current());
            DeserializeType(reinterpret_cast<char*>(*addr32), p_type->Children[memberIdx].Ptr32, p_eye);
        }

        size = object->TypeSize();
    }

    return size;
}
QVariant SailorgramContactsModel::data(const QModelIndex &proxyIndex, int role) const
{
    if(!this->_telegramcontactsmodel)
        return QVariant();

    QModelIndex sourceindex = this->mapToSource(proxyIndex);

    if((role == SailorgramContactsModel::UserRole) || (role == SailorgramContactsModel::LetterRole))
    {
        ContactObject* contact = this->_telegramcontactsmodel->data(sourceindex, TelegramContactsModel::ItemRole).value<ContactObject*>();
        TelegramQml* telegram = this->_telegramcontactsmodel->telegram();
        UserObject* user = telegram->user(contact->userId());

        if(role == SailorgramContactsModel::UserRole)
            return QVariant::fromValue(user);

        // Letter Role
        return !user->firstName().isEmpty() ? user->firstName().mid(0, 1).toUpper() : user->lastName().mid(0, 1).toUpper();
    }
    else if(role == SailorgramContactsModel::ContactRole)
        return this->_telegramcontactsmodel->data(sourceindex, TelegramContactsModel::ItemRole);

    return this->_telegramcontactsmodel->data(sourceindex, role);
}
Beispiel #9
0
 /**
  * \brief Special case of user objects: check metaclass and bound type
  */
 bool operator()(const UserObject& obj)
 {
     const Class* targetClass = classByTypeSafe<T>();
     return targetClass && (*targetClass == obj.getClass());
 }
//----------------------------------------------------------------------------------------------
int ObjectSerializer::SerializeUserDefinedType(char* p_fieldAddress, TypeNode* p_type, bool p_isPtr, fstream& p_pen)
{
    int     size = 0;
    UserObject* object = NULL;
    bool    isNull = false;
    if(p_isPtr)
    {
        int         length = 0;
        string      typeName;
        char        buffer[MaxTypeNameLength + 1];
        unsigned*   addr32 = reinterpret_cast<unsigned*>(p_fieldAddress);

        isNull = (NULL == *addr32);
        p_pen.write(reinterpret_cast<char*>(&isNull), sizeof(bool));

        if(!isNull)
        {
            object = reinterpret_cast<UserObject*>(*addr32);

            typeName = g_ObjectFactory.FromCName(object->CName());

            PerformLateBinding(object, p_type);

            length = typeName.size();
            _ASSERTE(length <= MaxTypeNameLength);
            strcpy(buffer, typeName.c_str());
            buffer[length] = 0;
            p_pen.write(buffer, MaxTypeNameLength + 1);

            object->InitializeAddresses();

            Iterator* addresses = object->GetIterator();
            unsigned* addr32;
            for(int memberIdx = 0; addresses->MoveNext(); ++memberIdx)
            {
                _ASSERTE(memberIdx < p_type->Children.size());
                addr32 = reinterpret_cast<unsigned*>(addresses->Current());
                SerializeType(reinterpret_cast<char*>(*addr32), p_type->Children[memberIdx].Ptr32, p_pen);
            }
        }
        size = sizeof(unsigned);
    }
    else
    {
        object = reinterpret_cast<UserObject*>(p_fieldAddress);
        object->InitializeAddresses();

        Iterator* addresses = object->GetIterator();
        unsigned* addr32;
        for(int memberIdx = 0; addresses->MoveNext(); ++memberIdx)
        {
            _ASSERTE(memberIdx < p_type->Children.size());
            addr32 = reinterpret_cast<unsigned*>(addresses->Current());
            SerializeType(reinterpret_cast<char*>(*addr32), p_type->Children[memberIdx].Ptr32, p_pen);
        }

        size = object->TypeSize();
    }

    return size;
}