/*
LinphoneProxyConfigImpl.java
Copyright (C) 2010 Belledonne Communications, Grenoble, France
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package org.linphone.core;
import org.linphone.core.LinphoneCore.RegistrationState;
class LinphoneProxyConfigImpl implements LinphoneProxyConfig {
protected final long nativePtr;
private native int getState(long nativePtr);
private native void setExpires(long nativePtr, int delay);
boolean ownPtr = false;
protected LinphoneProxyConfigImpl(String identity,String proxy,String route, boolean enableRegister) throws LinphoneCoreException {
nativePtr = newLinphoneProxyConfig();
setIdentity(identity);
setProxy(proxy);
enableRegister(enableRegister);
ownPtr=true;
}
protected LinphoneProxyConfigImpl(long aNativePtr) {
nativePtr = aNativePtr;
ownPtr=false;
}
protected void finalize() throws Throwable {
//Log.e(LinphoneService.TAG,"fixme, should release underlying proxy config");
if (ownPtr) delete(nativePtr);
}
private native long newLinphoneProxyConfig();
private native void delete(long ptr);
private native void edit(long ptr);
private native void done(long ptr);
private native void setIdentity(long ptr,String identity);
private native String getIdentity(long ptr);
private native int setProxy(long ptr,String proxy);
private native String getProxy(long ptr);
private native void enableRegister(long ptr,boolean value);
private native boolean isRegisterEnabled(long ptr);
private native boolean isRegistered(long ptr);
private native void setDialPrefix(long ptr, String prefix);
private native String normalizePhoneNumber(long ptr,String number);
private native String getDomain(long ptr);
private native void setDialEscapePlus(long ptr, boolean value);
private native String getRoute(long ptr);
private native int setRoute(long ptr,String uri);
private native void enablePublish(long ptr,boolean enable);
private native boolean publishEnabled(long ptr);
public void enableRegister(boolean value) {
enableRegister(nativePtr,value);
}
public void done() {
done(nativePtr);
}
public void edit() {
edit(nativePtr);
}
public void setIdentity(String identity) throws LinphoneCoreException {
setIdentity(nativePtr,identity);
}
public void setProxy(String proxyUri) throws LinphoneCoreException {
if (setProxy(nativePtr,proxyUri)!=0) {
throw new LinphoneCoreException("Bad proxy address ["+proxyUri+"]");
}
}
public String normalizePhoneNumber(String number) {
return normalizePhoneNumber(nativePtr,number);
}
public void setDialPrefix(String prefix) {
setDialPrefix(nativePtr, prefix);
}
public String getDomain() {
return getDomain(nativePtr);
}
public void setDialEscapePlus(boolean value) {
setDialEscapePlus(nativePtr,value);
}
public String getIdentity() {
return getIdentity(nativePtr);
}
public String getProxy() {
return getProxy(nativePtr);
}
public boolean isRegistered() {
return isRegistered(nativePtr);
}
public boolean registerEnabled() {
return isRegisterEnabled(nativePtr);
}
public String getRoute() {
return getRoute(nativePtr);
}
public void setRoute(String routeUri) throws LinphoneCoreException {
if (setRoute(nativePtr, routeUri) != 0) {
throw new LinphoneCoreException("cannot set route ["+routeUri+"]");
}
}
public void enablePublish(boolean enable) {
enablePublish(nativePtr,enable);
}
public RegistrationState getState() {
return RegistrationState.fromInt(getState(nativePtr));
}
public void setExpires(int delay) {
setExpires(nativePtr, delay);
}
public boolean publishEnabled() {
return publishEnabled(nativePtr);
}
}