1 package org.linphone.core;
2 
3 
4 public class LinphoneEventImpl implements LinphoneEvent {
5 	private Object mUserContext;
6 	private long mNativePtr;
7 
LinphoneEventImpl(long nativePtr)8 	protected LinphoneEventImpl(long nativePtr){
9 		mNativePtr=nativePtr;
10 	}
11 
getEventName(long nativeptr)12 	private native String getEventName(long nativeptr);
13 	@Override
getEventName()14 	public synchronized String getEventName() {
15 		return getEventName(mNativePtr);
16 	}
17 
acceptSubscription(long nativeptr)18 	private native int acceptSubscription(long nativeptr);
19 	@Override
acceptSubscription()20 	public synchronized void acceptSubscription() {
21 		synchronized(getCore()){
22 			acceptSubscription(mNativePtr);
23 		}
24 	}
25 
denySubscription(long nativeptr, int reason)26 	private native int denySubscription(long nativeptr, int reason);
27 	@Override
denySubscription(Reason reason)28 	public synchronized void denySubscription(Reason reason) {
29 		synchronized(getCore()){
30 			denySubscription(mNativePtr,reason.mValue);
31 		}
32 	}
33 
notify(long nativeptr, String type, String subtype, byte data[], String encoding)34 	private native int notify(long nativeptr, String type, String subtype, byte data[], String encoding);
35 	@Override
notify(LinphoneContent content)36 	public void notify(LinphoneContent content) {
37 		synchronized(getCore()){
38 			notify(mNativePtr,content.getType(),content.getSubtype(),content.getData(),content.getEncoding());
39 		}
40 	}
41 
updateSubscribe(long nativePtr, String type, String subtype, byte data[], String encoding)42 	private native int updateSubscribe(long nativePtr, String type, String subtype, byte data[], String encoding);
43 	@Override
updateSubscribe(LinphoneContent content)44 	public void updateSubscribe(LinphoneContent content) {
45 		synchronized(getCore()){
46 			updateSubscribe(mNativePtr,content.getType(), content.getSubtype(),content.getData(),content.getEncoding());
47 		}
48 	}
49 
updatePublish(long nativePtr, String type, String subtype, byte data[], String encoding)50 	private native int updatePublish(long nativePtr, String type, String subtype, byte data[], String encoding);
51 	@Override
updatePublish(LinphoneContent content)52 	public void updatePublish(LinphoneContent content) {
53 		synchronized(getCore()){
54 			updatePublish(mNativePtr,content.getType(), content.getSubtype(),content.getData(),content.getEncoding());
55 		}
56 	}
57 
terminate(long nativePtr)58 	private native int terminate(long nativePtr);
59 	@Override
terminate()60 	public void terminate() {
61 		synchronized(getCore()){
62 			terminate(mNativePtr);
63 		}
64 	}
65 
getReason(long nativePtr)66 	private native int getReason(long nativePtr);
67 	@Override
getReason()68 	public synchronized Reason getReason() {
69 		return Reason.fromInt(getReason(mNativePtr));
70 	}
71 
72 	@Override
setUserContext(Object obj)73 	public synchronized void setUserContext(Object obj) {
74 		mUserContext=obj;
75 	}
76 
77 	@Override
getUserContext()78 	public synchronized Object getUserContext() {
79 		return mUserContext;
80 	}
81 
getSubscriptionDir(long nativeptr)82 	private native int getSubscriptionDir(long nativeptr);
83 	@Override
getSubscriptionDir()84 	public synchronized SubscriptionDir getSubscriptionDir() {
85 		return SubscriptionDir.fromInt(getSubscriptionDir(mNativePtr));
86 	}
87 
getSubscriptionState(long nativeptr)88 	private native int getSubscriptionState(long nativeptr);
89 	@Override
getSubscriptionState()90 	public synchronized SubscriptionState getSubscriptionState() {
91 		try {
92 			return SubscriptionState.fromInt(getSubscriptionState(mNativePtr));
93 		} catch (LinphoneCoreException e) {
94 			// TODO Auto-generated catch block
95 			e.printStackTrace();
96 		}
97 		return SubscriptionState.Error;
98 	}
unref(long nativeptr)99 	private native void unref(long nativeptr);
finalize()100 	protected void finalize(){
101 		unref(mNativePtr);
102 	}
103 
addCustomHeader(long ptr, String name, String value)104 	private native void addCustomHeader(long ptr, String name, String value);
105 	@Override
addCustomHeader(String name, String value)106 	public synchronized void addCustomHeader(String name, String value) {
107 		addCustomHeader(mNativePtr, name, value);
108 	}
109 
getCustomHeader(long ptr, String name)110 	private native String getCustomHeader(long ptr, String name);
111 	@Override
getCustomHeader(String name)112 	public synchronized String getCustomHeader(String name) {
113 		return getCustomHeader(mNativePtr, name);
114 	}
115 
sendSubscribe(long ptr, String type, String subtype, byte data [], String encoding)116 	private native void sendSubscribe(long ptr, String type, String subtype, byte data [], String encoding);
117 	@Override
sendSubscribe(LinphoneContent body)118 	public void sendSubscribe(LinphoneContent body) {
119 		synchronized(getCore()){
120 			if (body != null)
121 				sendSubscribe(mNativePtr, body.getType(), body.getSubtype(), body.getData(), body.getEncoding());
122 			else
123 				sendSubscribe(mNativePtr, null, null, null, null);
124 		}
125 	}
126 
sendPublish(long ptr, String type, String subtype, byte data [], String encoding)127 	private native void sendPublish(long ptr, String type, String subtype, byte data [], String encoding);
128 	@Override
sendPublish(LinphoneContent body)129 	public void sendPublish(LinphoneContent body) {
130 		synchronized(getCore()){
131 			if (body != null)
132 				sendPublish(mNativePtr, body.getType(), body.getSubtype(), body.getData(), body.getEncoding());
133 			else
134 				sendPublish(mNativePtr, null, null, null, null);
135 		}
136 	}
getErrorInfo(long nativePtr)137 	private native long getErrorInfo(long nativePtr);
138 	@Override
getErrorInfo()139 	public synchronized ErrorInfo getErrorInfo() {
140 		return new ErrorInfoImpl(getErrorInfo(mNativePtr));
141 	}
142 
getCore(long nativePtr)143 	private native Object getCore(long nativePtr);
144 	@Override
getCore()145 	public synchronized LinphoneCore getCore() {
146 		return (LinphoneCore)getCore(mNativePtr);
147 	}
148 
149 }
150