+bool CAIsUnicastServerStarted(const u_arraylist_t *serverInfoList, const char *ipAddress,
+ uint16_t port);
+
+/**
+ * Used to get the port number based on given information.
+ *
+ * @param[in] serverInfoList Server information list.
+ * @param[in] ipAddress Ip address of the server.
+ * @param[in] isSecured specifies whether to get secured or normal unicast server port.
+ *
+ * @return positive value on success and 0 on error.
+ */
+uint16_t CAGetServerPort(const u_arraylist_t *serverInfoList, const char *ipAddress,
+ bool isSecured);
+
+/**
+ * Used to get the socket fd for given server information.
+ *
+ * @param[in] serverInfoList Server information list.
+ * @param[in] isMulticast To check whether it is multicast server or not.
+ * @param[in] endpoint network address
+
+ * @return positive value on success and -1 on error.
+ */
+int CAGetSocketFdForUnicastServer(const u_arraylist_t *serverInfoList,
+ bool isMulticast, const CAEndpoint_t *endpoint);
+
+/**
+ * Used to add the server information into serverinfo list.
+ *
+ * @param[in/out] serverInfoList server information list.
+ * @param[in] info server informations like ip, port.
+ *
+ * @return ::CA_STATUS_OK or Appropriate error code.
+ * @retval ::CA_STATUS_OK Successful.
+ * @retval ::CA_STATUS_INVALID_PARAM Invalid input data.
+ * @retval ::CA_STATUS_FAILED Initialization failed.
+ */
+CAResult_t CAAddServerInfo(u_arraylist_t *serverInfoList, CAServerInfo_t *info);
+
+/**
+ * Used to remove the server information based on socket fd from server info list.
+ *
+ * @param[in/out] serverInfoList server information list.
+ * @param[in] sockFd Socket descriptor.
+ */
+void CARemoveServerInfo(u_arraylist_t *serverInfoList, int sockFd);
+
+/**
+ * Used to clear the memory of network interface list.
+ * Memory pointed by infoList will become invalid after this function call.
+ *
+ * @param[in] infoList Network interface list.
+ */
+void CAClearNetInterfaceInfoList(u_arraylist_t *infoList);
+
+/**
+ * Used to clear the memory of server info list.
+ * Memory pointed by serverInfoList will become invalid after this function call.
+ *
+ * @param[in] infoList Server information list.
+ */
+void CAClearServerInfoList(u_arraylist_t *serverInfoList);
+
+/**
+ * Convert address from binary to string.
+ * @param[in] ipaddr IP address info.
+ * @param[out] host address string (must be CA_IPADDR_SIZE).
+ * @param[out] port host order port number.
+ */
+void CAConvertAddrToName(const struct sockaddr_storage *sockaddr, char *host, uint16_t *port);
+
+/**
+ * Convert address from string to binary.
+ * @param[in] host address string.
+ * @param[in] port host order port number.
+ * @param[out] ipaddr IP address info.
+ */
+void CAConvertNameToAddr(const char *host, uint16_t port, struct sockaddr_storage *sockaddr);
+
+#ifdef __ANDROID__
+/**
+ * To set context of JNI Application.
+ * This must be called by the Android API before CA Initialization.
+ * @param[in] env JNI interface pointer.
+ * @param[in] context context object.
+ */
+void CANativeJNISetContext(JNIEnv *env, jobject context);
+
+/**
+ * To set jvm object.
+ * This must be called by the Android API before CA Initialization.
+ * @param[in] jvm jvm object.
+ */
+void CANativeJNISetJavaVM(JavaVM *jvm);
+
+/**
+ * To get context.
+ * Called by adapters to get Application context.
+ * @return context object.
+ */
+jobject CANativeJNIGetContext();
+
+/**
+ * To get JVM object.
+ * Called from adapters to get JavaVM object.
+ * @return JVM object.
+ */
+JavaVM *CANativeJNIGetJavaVM();
+#endif
+