首页 > 编程语言 >linphone-PresencePerson.java文件分析

linphone-PresencePerson.java文件分析

时间:2023-05-29 14:33:05浏览次数:34  
标签:mNativePtr java private nativePtr long PresencePerson linphone public native


说明

同上一张PresenceService和PresenceActivity的分析,但是不明白的是, 为啥PresencePerson函数跟PresenceModel的函数很类似。唯一我现在能想到的原因是,每个Person主要存储。《—-放弃了,往后看吧。

UML类图

linphone-PresencePerson.java文件分析_ide

PresencePersonImpl.java

package org.linphone.core;

public class PresencePersonImpl implements PresencePerson {
    private long mNativePtr;

    protected PresencePersonImpl(long nativePtr) {
        mNativePtr = nativePtr;
    }

    private native long newPresencePersonImpl(String id);
    protected PresencePersonImpl(String id) {
        mNativePtr = newPresencePersonImpl(id);
    }

    private native void unref(long nativePtr);
    protected void finalize() {
        unref(mNativePtr);
    }

    private native String getId(long nativePtr);
    @Override
    public String getId() {
        return getId(mNativePtr);
    }

    private native int setId(long nativePtr, String id);
    @Override
    public int setId(String id) {
        return setId(mNativePtr, id);
    }

    private native long getNbActivities(long nativePtr);
    @Override
    public long getNbActivities() {
        return getNbActivities(mNativePtr);
    }

    private native Object getNthActivity(long nativePtr, long idx);
    @Override
    public PresenceActivity getNthActivity(long idx) {
        return (PresenceActivity)getNthActivity(mNativePtr, idx);
    }

    private native int addActivity(long nativePtr, long activityPtr);
    @Override
    public int addActivity(PresenceActivity activity) {
        return addActivity(mNativePtr, activity.getNativePtr());
    }

    private native int clearActivities(long nativePtr);
    @Override
    public int clearActivities() {
        return clearActivities(mNativePtr);
    }

    private native long getNbNotes(long nativePtr);
    @Override
    public long getNbNotes() {
        return getNbNotes(mNativePtr);
    }

    private native Object getNthNote(long nativePtr, long idx);
    @Override
    public PresenceNote getNthNote(long idx) {
        return (PresenceNote)getNthNote(mNativePtr, idx);
    }

    private native int addNote(long nativePtr, long notePtr);
    @Override
    public int addNote(PresenceNote note) {
        return addNote(mNativePtr, note.getNativePtr());
    }

    private native int clearNotes(long nativePtr);
    @Override
    public int clearNotes() {
        return clearNotes(mNativePtr);
    }

    private native long getNbActivitiesNotes(long nativePtr);
    @Override
    public long getNbActivitiesNotes() {
        return getNbActivitiesNotes(mNativePtr);
    }

    private native Object getNthActivitiesNote(long nativePtr, long idx);
    @Override
    public PresenceNote getNthActivitiesNote(long idx) {
        return (PresenceNote)getNthActivitiesNote(mNativePtr, idx);
    }

    private native int addActivitiesNote(long nativePtr, long notePtr);
    @Override
    public int addActivitiesNote(PresenceNote note) {
        return addActivitiesNote(mNativePtr, note.getNativePtr());
    }

    private native int clearActivitesNotes(long nativePtr);
    @Override
    public int clearActivitesNotes() {
        return clearActivitesNotes(mNativePtr);
    }

    public long getNativePtr() {
        return mNativePtr;
    }
}


标签:mNativePtr,java,private,nativePtr,long,PresencePerson,linphone,public,native
From: https://blog.51cto.com/u_11797608/6370727

相关文章

  • linphone-PresenceActivity.java文件分析
    说明此类的对象供PresenceModel使用UML类图PresenceActivityImpl.javapackageorg.linphone.core;publicclassPresenceActivityImplimplementsPresenceActivity{privatelongmNativePtr;protectedPresenceActivityImpl(longnativePtr){mNativePtr=......
  • 什么是 JavaScript 里的循环引用(circular references)
    JavaScript的循环引用(circularreferences)是指在对象之间存在相互引用的情况,形成一个闭环,导致对象无法被完全释放和垃圾回收。循环引用发生在当一个对象的属性或成员引用另一个对象,并且这个被引用的对象又直接或间接地引用回原始对象,从而形成一个循环。当存在循环引用时,JavaScrip......
  • 详谈Java中Properties配置类怎么用
    本文将为大家详细讲解Java中Properties配置类怎么用,这是我们进行开发时经常用到的知识点,也是大家在学习Java中很重要的一个知识点,更是我们在面试时有可能会问到的问题!文章较长,干货满满,建议大家收藏慢慢学习。文末有本文重点总结,主页有全系列文章分享。技术类问题,欢迎大家和我们一......
  • 译文:理解Java中的弱引用
    不久之前,我面试了一些求职Java高级开发工程师的应聘者。我常常会面试他们说,“你能给我介绍一些Java中得弱引用吗?”,如果面试者这样说,“嗯,是不是垃圾回收有关的?”,我就会基本满意了,我并不期待回答是一篇诘究本末的论文描述。然而事与愿违,我很吃惊的发现,在将近20多个有着平均5年开发经......
  • Java:Double Brace Initialization
    在我刚刚接触现在这个产品的时候,我就在我们的代码中接触到了对DoubleBraceInitialization的使用。那段代码用来初始化一个集合:1finalSet<String>exclusions=newHashSet<String>(){{2add(‘Alice’);3add(‘Bob’);4add(‘Marine’);5}};......
  • java编码转换过程
    java编码转换过程我们总是用一个java类文件和用户进行最直接的交互(输入、输出),这些交互内容包含的文字可能会包含中文。无论这些java类是与数据库交互,还是与前端页面交互,他们的生命周期总是这样的:1、程序员在操作系统上通过编辑器编写程序代码并且以.java的格式保存操作系统中,这些文......
  • javaWeb中的编码解码
    在上篇博客中LZ介绍了前面两种场景(IO、内存)中的Java编码解码操作,其实在这两种场景中我们只需要在编码解码过程中设置正确的编码解码方式一般而言是不会出现乱码的。对于我们从事java开发的人而言,其实最容易也是产生乱码最多的地方就是web部分。首先我们来看在javaWeb中有哪些地方存......
  • java是如何编码解码的
    编码&解码在java中主要有四个场景需要进行编码解码操作:1:I/O操作2:内存3:数据库4:javaWeb下面主要介绍前面两种场景,数据库部分只要设置正确编码格式就不会有什么问题,javaWeb场景过多需要了解URL、get、POST的编码,servlet的解码,所以javaWeb场景下节LZ介绍。I/O操作在前面LZ就提过乱码问......
  • Java中的Copy-On-Write容器
    Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,......
  • java线程池
    1.JDK中的Executor框架是基于生产者-消费者模式的线程池,提交任务的线程是生产者,执行任务的线程是消费者。Executor线程池可以用于异步任务执行,而且支持很多不同类型任务执行策略,同时为任务提交和任务执行之间的解耦提供了标准方法。Executor线程池支持如下三种线程执行策略:(1).顺序......