--- /dev/null
+/*
+ * Copyright (c) 2022 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "idlc/gen_cion/default_java_transportable.h"
+
+#include <utility>
+
+#include "idlc/gen/replace_all.h"
+
+namespace {
+
+constexpr const char __SERVER_ACCEPT[] = "<SERVER>.acceptRequest(peerInfo);";
+
+constexpr const char __SERVER_STOP[] = "<SERVER>.stop();";
+
+constexpr const char __SERVER_REJECT[] =
+ "<SERVER>.rejectRequest(<PEER>, <REASON>);";
+
+constexpr const char __CLIENT_TRY_CONNECT[] =
+ "<CLIENT>.tryConnect(<PEER>, this);";
+
+constexpr const char __CLIENT_DISCONNECT[] =
+ "<CLIENT>.disconnect();";
+
+constexpr const char __CLIENT_TRY_DISCOVERY[] =
+ "<CLIENT>.tryDiscovery(this);";
+
+constexpr const char __CLIENT_STOP_DISCOVERY[] =
+ "<CLIENT>.stopDiscovery();";
+
+constexpr const char __CLIENT_SEND_ASYNC[] =
+ "<CLIENT>.sendPayloadAsync(<PAYLOAD>, this);";
+
+constexpr const char __CLIENT_SEND[] =
+R"__java_cb(try {
+ return <CLIENT>.sendData(<DATA>, <DATA_SIZE>);
+ } catch (SocketTimeoutException e) {
+ e.printStackTrace();
+ }
+ return null;)__java_cb";
+
+constexpr const char __SERVER_SEND_ASYNC[] =
+ "<SERVER>.sendPayloadAsync(<PAYLOAD>, this);";
+
+constexpr const char __GROUP_PUBLISH[] = "<GROUP>.publish(<DATA>);";
+
+constexpr const char __GROUP_SUBSCRIBE[] = "<GROUP>.subscribe(this);";
+
+constexpr const char __GROUP_UNSUBSCRIBE[] = "<GROUP>.unsubscribe();";
+
+constexpr const char __SERVER_LISTEN[] =
+ "<SERVER>.listen(this);";
+
+constexpr const char __SERVER_DISCONNECT[] = "<SERVER>.disconnect(<PEER>);";
+
+constexpr const char __PEER_INFO_GET_APPID[] =
+ "<PEER>.getAppId()";
+
+constexpr const char __PEER_INFO_GET_UUID[] =
+ "<PEER>.getUuid()";
+
+} // namespace
+
+namespace tidl {
+
+std::string DefaultJavaTransportable::GenInclude() const {
+ return "import org.tizen.cion.*;";
+}
+
+std::string DefaultJavaTransportable::GenClientChannel() const {
+ return "ClientChannel";
+}
+
+std::string DefaultJavaTransportable::GenServerChannel() const {
+ return "ServerChannel";
+}
+
+std::string DefaultJavaTransportable::GenGroupChannel() const {
+ return "GroupChannel";
+}
+
+std::string DefaultJavaTransportable::GenClientSendAsync(std::string client,
+ std::string payload) const {
+ return std::string(ReplaceAll(__CLIENT_SEND_ASYNC, {
+ { "<CLIENT>", client },
+ { "<PAYLOAD>", payload} }));
+}
+
+std::string DefaultJavaTransportable::GenClientSend(std::string client,
+ std::string data, std::string data_size) const {
+ return std::string(ReplaceAll(__CLIENT_SEND, {
+ { "<CLIENT>", client },
+ { "<DATA>", data},
+ { "<DATA_SIZE>", data_size} }));
+}
+
+std::string DefaultJavaTransportable::GenServerSendAsync(std::string server,
+ std::string payload) const {
+ return std::string(ReplaceAll(__SERVER_SEND_ASYNC, {
+ { "<SERVER>", server },
+ { "<PAYLOAD>", payload} }));
+}
+
+std::string DefaultJavaTransportable::GenPeerInfoType() const {
+ return "PeerInfo";
+}
+
+std::string DefaultJavaTransportable::GenSecurityType() const {
+ return "SecurityInfo";
+}
+
+std::string DefaultJavaTransportable::GenClientTryConnect(std::string client,
+ std::string peer) const {
+ return std::string(ReplaceAll(__CLIENT_TRY_CONNECT, {
+ { "<CLIENT>", client },
+ { "<PEER>", peer } }));
+}
+
+std::string DefaultJavaTransportable::GenClientDisconnect(
+ std::string client) const {
+ return std::string(ReplaceAll(__CLIENT_DISCONNECT, {
+ { "<CLIENT>", client } }));
+}
+
+std::string DefaultJavaTransportable::GenClientTryDiscovery(
+ std::string client) const {
+ return std::string(ReplaceAll(__CLIENT_TRY_DISCOVERY, {
+ { "<CLIENT>", client } }));
+}
+
+std::string DefaultJavaTransportable::GenClientStopDiscovery(
+ std::string client) const {
+ return std::string(ReplaceAll(__CLIENT_STOP_DISCOVERY, {
+ { "<CLIENT>", client } }));
+}
+
+std::string DefaultJavaTransportable::GenClientExtraHeader() const {
+ return "";
+}
+
+std::string DefaultJavaTransportable::GenClientExtraBody() const {
+ return "";
+}
+
+std::string DefaultJavaTransportable::GenServerExtraHeader() const {
+ return "";
+}
+
+std::string DefaultJavaTransportable::GenServerExtraBody() const {
+ return "";
+}
+
+std::string DefaultJavaTransportable::GenServerAccept(
+ std::string server) const {
+ return std::string(ReplaceAll(__SERVER_ACCEPT, {
+ { "<SERVER>", server } }));
+}
+
+std::string DefaultJavaTransportable::GenServerStop(
+ std::string server) const {
+ return std::string(ReplaceAll(__SERVER_STOP, {
+ { "<SERVER>", server } }));
+}
+
+std::string DefaultJavaTransportable::GenServerReject(std::string server,
+ std::string peer, std::string reason) const {
+ return std::string(ReplaceAll(__SERVER_REJECT, {
+ { "<SERVER>", server },
+ { "<PEER>", peer },
+ { "<REASON>", reason } }));
+}
+
+std::string DefaultJavaTransportable::GenGroupPublish(
+ std::string group, std::string data) const {
+ return std::string(ReplaceAll(__GROUP_PUBLISH, {
+ { "<GROUP>", group },
+ { "<DATA>", data } }));
+}
+
+std::string DefaultJavaTransportable::GenGroupSubscribe(
+ std::string group) const {
+ return std::string(ReplaceAll(__GROUP_SUBSCRIBE, {
+ { "<GROUP>", group } }));
+}
+
+std::string DefaultJavaTransportable::GenGroupUnsubscribe(
+ std::string group) const {
+ return std::string(ReplaceAll(__GROUP_UNSUBSCRIBE, {
+ { "<GROUP>", group } }));
+}
+
+std::string DefaultJavaTransportable::GenServerListen(std::string server) const {
+ return std::string(ReplaceAll(__SERVER_LISTEN, {
+ {"<SERVER>", server} }));
+}
+
+std::string DefaultJavaTransportable::GenServerDisconnect(std::string server,
+ std::string peer) const {
+ return std::string(ReplaceAll(__SERVER_DISCONNECT, {
+ { "<SERVER>", server },
+ { "<PEER>", peer } }));
+}
+
+std::string DefaultJavaTransportable::GenPeerInfoGetAppID(
+ std::string peer) const {
+ return std::string(ReplaceAll(__PEER_INFO_GET_APPID, {
+ { "<PEER>", peer} }));
+}
+
+std::string DefaultJavaTransportable::GenPeerInfoGetUUID(
+ std::string peer) const {
+ return std::string(ReplaceAll(__PEER_INFO_GET_UUID, {
+ { "<PEER>", peer} }));
+}
+
+} // namespace tidl
--- /dev/null
+/*
+ * Copyright (c) 2022 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef IDLC_GEN_CION_DEFAULT_JAVA_TRANSPORTABLE_H_
+#define IDLC_GEN_CION_DEFAULT_JAVA_TRANSPORTABLE_H_
+
+#include <string>
+
+#include "idlc/gen_cion/java_transportable.h"
+
+namespace tidl {
+
+class DefaultJavaTransportable : public JavaTransportable {
+ public:
+ virtual ~DefaultJavaTransportable() = default;
+ std::string GenInclude() const override;
+ std::string GenClientChannel() const override;
+ std::string GenServerChannel() const override;
+ std::string GenGroupChannel() const override;
+ std::string GenClientSendAsync(std::string client,
+ std::string payload) const override;
+ std::string GenClientSend(std::string client, std::string data,
+ std::string data_size) const override;
+ std::string GenServerSendAsync(std::string server,
+ std::string payload) const override;
+ std::string GenPeerInfoType() const override;
+ std::string GenSecurityType() const override;
+ std::string GenClientTryConnect(std::string client,
+ std::string peer) const override;
+ std::string GenClientDisconnect(std::string client) const override;
+ std::string GenClientTryDiscovery(std::string client) const override;
+ std::string GenClientStopDiscovery(std::string client) const override;
+ std::string GenClientExtraHeader() const override;
+ std::string GenClientExtraBody() const override;
+ std::string GenServerExtraHeader() const override;
+ std::string GenServerExtraBody() const override;
+ std::string GenServerAccept(std::string server) const override;
+ std::string GenServerStop(std::string server) const override;
+ std::string GenServerReject(std::string server,
+ std::string peer, std::string reason) const override;
+ std::string GenGroupPublish(std::string group, std::string data) const override;
+ std::string GenGroupSubscribe(std::string group) const override;
+ std::string GenGroupUnsubscribe(std::string group) const override;
+ std::string GenServerListen(std::string server) const override;
+ std::string GenServerDisconnect(std::string server,
+ std::string peer) const override;
+ std::string GenPeerInfoGetAppID(std::string peer) const override;
+ std::string GenPeerInfoGetUUID(std::string peer) const override;
+};
+
+} // namespace tidl
+
+#endif // IDLC_GEN_CION_DEFAULT_JAVA_TRANSPORTABLE_H_
namespace tidl {
JavaCionGeneratorBase::JavaCionGeneratorBase(std::shared_ptr<Document> doc)
- : Generator(doc) {
+ : CionPluginBase(std::move(doc)) {
type_map_ = {
{"char", "byte"}, {"int", "int"}, {"short", "short"},
{"long", "long"}, {"string", "String"}, {"bool", "boolean"},
void JavaCionGeneratorBase::GenCallbackStub(std::ofstream& stream,
const Declaration& decl, const std::string& id) {
std::string str;
- str = ReplaceAll(CB_CALLBACK_CLASS_STUB, "<CLS_NAME>", decl.GetID());
+ str = ReplaceAll(CB_CALLBACK_CLASS_STUB, {
+ { "<CLS_NAME>", decl.GetID() },
+ { "<PEER_INFO_T>", GetTransportable().Java().GenPeerInfoType() }
+ });
str = ReplaceAll(str, "<CALLBACK_PARAMS>",
GetParameters(decl.GetParameters()));
str = ReplaceAll(str, "<IFACE_NAME>",id);
#include "idlc/ast/type.h"
#include "idlc/ast/structure.h"
-#include "idlc/gen/generator.h"
+#include "idlc/gen_cion/cion_plugin_base.h"
namespace tidl {
-class JavaCionGeneratorBase : public Generator {
+class JavaCionGeneratorBase : public CionPluginBase {
public:
explicit JavaCionGeneratorBase(std::shared_ptr<Document> doc);
virtual ~JavaCionGeneratorBase() = default;
R"__java_cb(
import android.content.Context;
-import org.tizen.cion.*;
+<INCLUDE>
import java.net.SocketTimeoutException;
*/
public abstract class ClientBase implements DiscoveryCallback,
ClientConnectionLifecycleCallback, PayloadAsyncResultCallback {
- private ClientChannel mClient;
+ private <CLIENT_CHANNEL> mClient;
private Context mContext;
* @param serviceName Service name
*/
public ClientBase(Context mContext, String serviceName) {
- mClient = new ClientChannel(mContext, serviceName);
+ mClient = new <CLIENT_CHANNEL>(mContext, serviceName);
this.mContext = mContext;
}
* @param serviceName Service name
* @param sec Security information
*/
- public ClientBase(Context mContext, String serviceName, SecurityInfo sec) {
- mClient = new ClientChannel(mContext, serviceName, sec);
+ public ClientBase(Context mContext, String serviceName, <SECURITY_T> sec) {
+ mClient = new <CLIENT_CHANNEL>(mContext, serviceName, sec);
this.mContext = mContext;
}
* Disconnects server
*/
public void disconnect() {
- mClient.disconnect();
+ <CLIENT_DISCONNECT>
}
/**
* Connects the server
* @param peer Server information
*/
- public void tryConnect(PeerInfo peer) {
- mClient.tryConnect(peer, this);
+ public void tryConnect(<PEER_INFO_T> peer) {
+ <CLIENT_TRY_CONNECT>
}
/**
* Finds available servers
*/
public void tryDiscovery() {
- mClient.tryDiscovery(this);
+ <CLIENT_TRY_DISCOVERY>
}
/**
* Stops finding servers
*/
public void stopDiscovery() {
- mClient.stopDiscovery();
+ <CLIENT_STOP_DISCOVERY>
}
/**
* @param payload Data payload
*/
public void sendAsync(DataPayload payload) {
- mClient.sendPayloadAsync(payload, this);
+ <CLIENT_SEND_ASYNC>
}
/**
* @param payload File payload
*/
public void sendAsync(FilePayload payload) {
- mClient.sendPayloadAsync(payload, this);
+ <CLIENT_SEND_ASYNC>
}
/**
* @return Received data
*/
public byte[] sendData(byte[] data) {
- try {
- return mClient.sendData(data, 5000);
- } catch (SocketTimeoutException e) {
- e.printStackTrace();
- }
- return null;
+ <CLIENT_SEND>
}
@Override
- public final void onLost(PeerInfo peerInfo) {
+ public final void onLost(<PEER_INFO_T> peerInfo) {
}
}
R"__java_cb(
import android.content.Context;
-import org.tizen.cion.*;
+<INCLUDE>
/**
* Abstract class for making a server
*/
public abstract class ServerBase implements ServerConnectionLifecycleCallback,
PayloadAsyncResultCallback {
- private ServerChannel mServer;
+ private <SERVER_CHANNEL> mServer;
private Context mContext;
* @param mDisplayName Display name
*/
public ServerBase(Context mContext, String mServiceName, String mDisplayName) {
- mServer = new ServerChannel(mContext, mServiceName, mDisplayName);
+ mServer = new <SERVER_CHANNEL>(mContext, mServiceName, mDisplayName);
this.mContext = mContext;
this.mServiceName = mServiceName;
this.mDisplayName = mDisplayName;
* @param mDisplayName Display name
* @param sec Security information
*/
- public ServerBase(Context mContext, String mServiceName, String mDisplayName, SecurityInfo sec) {
- mServer = new ServerChannel(mContext, mServiceName, mDisplayName, sec);
+ public ServerBase(Context mContext, String mServiceName, String mDisplayName, <SECURITY_T> sec) {
+ mServer = new <SERVER_CHANNEL>(mContext, mServiceName, mDisplayName, sec);
this.mContext = mContext;
this.mServiceName = mServiceName;
this.mDisplayName = mDisplayName;
* Waits clients
*/
public void listen() {
- mServer.listen(this);
+ <SERVER_LISTEN>
}
/**
* Stops waiting clients
*/
public void stop() {
- mServer.stop();
+ <SERVER_STOP>
}
/**
* Disconnects the connected client
* @param peerInfo Client information
*/
- public void disconnect(PeerInfo peerInfo) {
- mServer.disconnect(peerInfo);
+ public void disconnect(<PEER_INFO_T> peerInfo) {
+ <SERVER_DISCONNECT>
}
/**
* Accepts the client
* @param peerInfo Client information
*/
- public void accept(PeerInfo peerInfo) {
- mServer.acceptRequest(peerInfo);
+ public void accept(<PEER_INFO_T> peerInfo) {
+ <SERVER_ACCEPT>
}
/**
* @param peerInfo Client information
* @param reason The reason for rejecting the client
*/
- public void reject(PeerInfo peerInfo, String reason) {
- mServer.rejectRequest(peerInfo, reason);
+ public void reject(<PEER_INFO_T> peerInfo, String reason) {
+ <SERVER_REJECT>
}
/**
* @param payload Data
*/
public void sendPayloadAsync(IPayload payload) {
- mServer.sendPayloadAsync(payload, this);
+ <SERVER_SEND_ASYNC>
}
}
R"__java_cb(
import android.content.Context;
-import org.tizen.cion.*;
+<INCLUDE>
import java.net.SocketTimeoutException;
* Abstract class for making a group
*/
public abstract class GroupBase implements GroupConnectionLifecycleCallback{
- private GroupChannel mGroup;
+ private <GROUP_CHANNEL> mGroup;
private Context mContext;
* @param topicName Topic name
*/
public GroupBase(Context mContext, String topicName) {
- mGroup = new GroupChannel(mContext, topicName);
+ mGroup = new <GROUP_CHANNEL>(mContext, topicName);
this.mContext = mContext;
}
* @param topicName Topic name
* @param sec Security information
*/
- public GroupBase(Context mContext, String topicName, SecurityInfo sec) {
- mGroup = new GroupChannel(mContext, topicName, sec);
+ public GroupBase(Context mContext, String topicName, <SECURITY_T> sec) {
+ mGroup = new <GROUP_CHANNEL>(mContext, topicName, sec);
this.mContext = mContext;
}
* Subscribes the topic.
*/
public void subscribe() {
- mGroup.subscribe(this);
+ <GROUP_SUBSCRIBE>
}
/**
* Unsubscribes the topic.
*/
public void unsubscribe() {
- mGroup.unsubscribe();
+ <GROUP_UNSUBSCRIBE>
}
/**
* @param data Data payload
*/
public void publish(IPayload data) {
- mGroup.publish(data);
+ <GROUP_PUBLISH>
}
}
const char CB_CALLBACK_CLASS_STUB[] =
R"__java_cb(
public static final class <CLS_NAME> extends DelegatorBase {
- private PeerInfo mPeerInfo;
+ private <PEER_INFO_T> mPeerInfo;
private WeakReference<ServiceBase> mService;
private <IFACE_NAME> mServerBase;
- public <CLS_NAME>(PeerInfo info, WeakReference<ServiceBase> service) {
+ public <CLS_NAME>(<PEER_INFO_T> info, WeakReference<ServiceBase> service) {
super(DelegatorBase.<IFACE_NAME>_<DELEGATOR_NAME>__, false);
this.mPeerInfo = info;
this.mService = service;
stream << std::endl;
stream << "import org.tizen.gen." << FileName + ".common.*;" << NLine(2);
- stream << "import org.tizen.cion.*;" << NLine(1)
+ stream << GetTransportable().Java().GenInclude() << NLine(1)
<< "import android.content.Context;" << NLine(1)
<< "import java.util.ArrayList;" << NLine(1)
<< "import java.util.LinkedList;" << NLine(1)
}
void JavaCionGroupGen::GenEvents(std::ofstream& stream, const Interface& iface) {
- stream << CB_EVENT_METHODS << NLine(1);
+ stream << ReplaceAll(CB_EVENT_METHODS,
+ "<PEER_INFO_T>", GetTransportable().Java().GenPeerInfoType()) << NLine(1);
for (const auto& decl : iface.GetDeclarations())
GenEvent(stream, iface, *decl);
<< decl.GetID() << " request is delivered."
<< NLine(1) << Tab(1) << "*/" << NLine(1);
- stream << Tab(1) << "public abstract void On" << decl.GetID() << "(PeerInfo peerInfo, ";
+ stream << Tab(1) << "public abstract void On" << decl.GetID() << "(" << GetTransportable().Java().GenPeerInfoType() << " peerInfo, ";
GenParameters(stream, decl.GetParameters());
stream << ");" << NLine(1);
}
bool securityCheck = false;
std::string m = "public $$(Context context, String topicName) {\n";
- m += Tab(1) + "super(context, topicName, new SecurityInfo(";
+ m += Tab(1) + "super(context, topicName, new "
+ + GetTransportable().Java().GenSecurityType() + "(";
for (const auto& attr : iface.GetAttributes()) {
if (attr->GetKey() == "ca_path") {
void JavaCionGroupGen::GenCionPayloadReceivedEvent(std::ofstream& stream,
const Interface& iface) {
- stream << CB_ON_PAYLOAD_RECEIVED_FRONT;
+ stream << ReplaceAll(CB_ON_PAYLOAD_RECEIVED_FRONT,
+ "<PEER_INFO_T>", GetTransportable().Java().GenPeerInfoType());
for (const auto& i : iface.GetDeclarations()) {
if (i->GetMethodType() == Declaration::MethodType::DELEGATE ||
* This method will be invoked when another peer left from the current group.
*/
@Override
- public void onLeft(PeerInfo peerInfo) {
+ public void onLeft(<PEER_INFO_T> peerInfo) {
}
/**
* This method will be invoked when another peer joined from the current group.
*/
@Override
- public void onJoined(PeerInfo peerInfo) {
+ public void onJoined(<PEER_INFO_T> peerInfo) {
}
)__java_cb";
const char CB_ON_PAYLOAD_RECEIVED_FRONT[] =
R"__java_cb( @Override
- public final void onPayloadReceived(PeerInfo peerInfo, IPayload payload) {
+ public final void onPayloadReceived(<PEER_INFO_T> peerInfo, IPayload payload) {
if(payload.getType() == IPayload.PayloadType.PAYLOAD_FILE) {
return;
}
stream.open(fname + "/GroupBase.java");
stream << "package org.tizen.gen." << FileName + ".group;" << NLine(2);
- stream << DEFAULT_GROUP_REPO;
+ stream << ReplaceAll(DEFAULT_GROUP_REPO, {
+ { "<INCLUDE>", GetTransportable().Java().GenInclude() },
+ { "<GROUP_CHANNEL>", GetTransportable().Java().GenGroupChannel() },
+ { "<GROUP_SUBSCRIBE>",
+ GetTransportable().Java().GenGroupSubscribe("mGroup") },
+ { "<GROUP_UNSUBSCRIBE>",
+ GetTransportable().Java().GenGroupUnsubscribe("mGroup") },
+ { "<GROUP_PUBLISH>",
+ GetTransportable().Java().GenGroupPublish("mGroup", "data") },
+ { "<SECURITY_T>", GetTransportable().Java().GenSecurityType() }
+ });
stream.close();
}
}
stream << std::endl;
stream << "import org.tizen.gen." << FileName + ".common.*;" << NLine(2);
- stream << "import org.tizen.cion.*;" << NLine(1)
+ stream << GetTransportable().Java().GenInclude() << NLine(1)
<< "import android.content.Context;" << NLine(1)
<< "import java.util.ArrayList;" << NLine(1)
<< "import java.util.LinkedList;" << NLine(1)
GenCallbacks(stream, iface, true);
GenDelegateId(stream, iface);
GenMethodId(stream, iface);
- stream << CB_EVENT_METHODS;
+ stream << ReplaceAll(CB_EVENT_METHODS,
+ "<PEER_INFO_T>", GetTransportable().Java().GenPeerInfoType());
GenSerializer(stream);
GenListSerializer(stream);
GenShareFile(stream, iface, true);
bool securityCheck = false;
std::string m = "public $$(Context context, String serviceName) {\n";
- m += Tab(1) + "super(context, serviceName, new SecurityInfo(";
+ m += Tab(1) + "super(context, serviceName, new "
+ + GetTransportable().Java().GenSecurityType() + "(";
for (const auto& attr : iface.GetAttributes()) {
if (attr->GetKey() == "ca_path") {
* @param result Connection result
*/
@Override
- public void onConnectionResult(PeerInfo peerInfo, ConnectionResult result) {
+ public void onConnectionResult(<PEER_INFO_T> peerInfo, ConnectionResult result) {
if (result.status == ConnectionResult.ConnectionStatus.CONNECTION_OK) {
mOnline = true;
}
* @param peerInfo Server information
*/
@Override
- public void onDisconnected(PeerInfo peerInfo) {
+ public void onDisconnected(<PEER_INFO_T> peerInfo) {
mOnline = false;
}
* @param peerInfo Server information
*/
@Override
- public void onDiscovered(PeerInfo peerInfo) {
+ public void onDiscovered(<PEER_INFO_T> peerInfo) {
}
@Override
stream.open(fname + "/ClientBase.java");
stream << "package org.tizen.gen." << FileName + ".client;" << NLine(2);
- stream << DEFAULT_PROXY_REPO;
+ stream << ReplaceAll(DEFAULT_PROXY_REPO, {
+ { "<INCLUDE>", GetTransportable().Java().GenInclude() },
+ { "<PEER_INFO_T>", GetTransportable().Java().GenPeerInfoType() },
+ { "<CLIENT_CHANNEL>", GetTransportable().Java().GenClientChannel() },
+ { "<CLIENT_SEND_ASYNC>", GetTransportable().Java()
+ .GenClientSendAsync("mClient", "payload") },
+ { "<CLIENT_SEND>", GetTransportable().Java()
+ .GenClientSend("mClient", "data", "5000") },
+ { "<CLIENT_DISCONNECT>", GetTransportable().Java()
+ .GenClientDisconnect("mClient") },
+ { "<CLIENT_TRY_CONNECT>", GetTransportable().Java()
+ .GenClientTryConnect("mClient", "peer") },
+ { "<CLIENT_TRY_DISCOVERY>", GetTransportable().Java()
+ .GenClientTryDiscovery("mClient") },
+ { "<CLIENT_STOP_DISCOVERY>", GetTransportable().Java()
+ .GenClientStopDiscovery("mClient") },
+ { "<SECURITY_T>", GetTransportable().Java().GenSecurityType() }
+ });
stream.close();
}
}
stream << std::endl;
stream << "import org.tizen.gen." << FileName + ".common.*;" << NLine(2);
- stream << "import org.tizen.cion.*;" << NLine(1)
+ stream << GetTransportable().Java().GenInclude() << NLine(1)
<< "import android.content.Context;" << NLine(1)
<< "import java.lang.ref.WeakReference;" << NLine(1)
<< "import java.util.ArrayList;" << NLine(1)
}
void JavaCionStubGen::GenServiceBase(std::ofstream& stream, const Interface& iface) {
- stream << CB_SERVICE_BASE_FRONT;
+ stream << ReplaceAll(CB_SERVICE_BASE_FRONT,
+ "<PEER_INFO_T>", GetTransportable().Java().GenPeerInfoType());
GenDeclarations(stream, iface.GetDeclarations());
stream << AddIndent(TAB_SIZE * 1, "}\n");
}
void JavaCionStubGen::GenReceivedSyncEvent(std::ofstream& stream,
const Interface& iface) {
- stream << CB_ON_RECEIVED_SYNC_EVENT_FRONT;
+ stream << ReplaceAll(CB_ON_RECEIVED_SYNC_EVENT_FRONT, {
+ { "<PEER_INFO_T>", GetTransportable().Java().GenPeerInfoType() },
+ { "<PEER_INFO_GET_APPID1>",
+ GetTransportable().Java().GenPeerInfoGetAppID("i.mClient") },
+ { "<PEER_INFO_GET_APPID2>",
+ GetTransportable().Java().GenPeerInfoGetAppID("info") },
+ { "<PEER_INFO_GET_UUID1>",
+ GetTransportable().Java().GenPeerInfoGetUUID("i.mClient") },
+ { "<PEER_INFO_GET_UUID2>",
+ GetTransportable().Java().GenPeerInfoGetUUID("info") },
+ });
for (const auto& i : iface.GetDeclarations()) {
if (i->GetMethodType() != Declaration::MethodType::SYNC)
continue;
void JavaCionStubGen::GenReceivedAsyncEvent(std::ofstream& stream,
const Interface& iface) {
- stream << CB_ON_RECEIVED_ASYNC_EVENT_FRONT;
+ stream << ReplaceAll(CB_ON_RECEIVED_ASYNC_EVENT_FRONT, {
+ { "<PEER_INFO_T>", GetTransportable().Java().GenPeerInfoType() },
+ { "<PEER_INFO_GET_APPID1>",
+ GetTransportable().Java().GenPeerInfoGetAppID("i.mClient") },
+ { "<PEER_INFO_GET_APPID2>",
+ GetTransportable().Java().GenPeerInfoGetAppID("info") },
+ { "<PEER_INFO_GET_UUID1>",
+ GetTransportable().Java().GenPeerInfoGetUUID("i.mClient") },
+ { "<PEER_INFO_GET_UUID2>",
+ GetTransportable().Java().GenPeerInfoGetUUID("info") },
+ });
for (const auto& i : iface.GetDeclarations()) {
if (i->GetMethodType() != Declaration::MethodType::ASYNC)
continue;
}
void JavaCionStubGen::GenConnectionRequestedEvent(std::ofstream& stream) {
- stream << CB_ON_CONNECTIONREQUESTED_EVENT;
+ stream << ReplaceAll(CB_ON_CONNECTIONREQUESTED_EVENT,
+ "<PEER_INFO_T>", GetTransportable().Java().GenPeerInfoType());
}
void JavaCionStubGen::GenConnectedEvent(std::ofstream& stream) {
- stream << CB_ON_CONNECTED_EVENT;
+ stream << ReplaceAll(CB_ON_CONNECTED_EVENT, {
+ { "<PEER_INFO_T>", GetTransportable().Java().GenPeerInfoType() },
+ { "<PEER_INFO_GET_APPID1>", GetTransportable().Java()
+ .GenPeerInfoGetAppID("i.mConnectionRequestClient") },
+ { "<PEER_INFO_GET_APPID2>", GetTransportable().Java()
+ .GenPeerInfoGetAppID("peerInfo") },
+ { "<PEER_INFO_GET_UUID1>", GetTransportable().Java()
+ .GenPeerInfoGetUUID("i.mConnectionRequestClient") },
+ { "<PEER_INFO_GET_UUID2>", GetTransportable().Java()
+ .GenPeerInfoGetUUID("peerInfo") },
+ });
}
void JavaCionStubGen::GenDisconnectedEvent(std::ofstream& stream) {
- stream << CB_ON_DISCONNECTED_EVENT;
+ stream << ReplaceAll(CB_ON_DISCONNECTED_EVENT, {
+ { "<PEER_INFO_T>", GetTransportable().Java().GenPeerInfoType() },
+ { "<PEER_INFO_GET_APPID1>",
+ GetTransportable().Java().GenPeerInfoGetAppID("i.mClient") },
+ { "<PEER_INFO_GET_APPID2>",
+ GetTransportable().Java().GenPeerInfoGetAppID("peerInfo") },
+ { "<PEER_INFO_GET_UUID1>",
+ GetTransportable().Java().GenPeerInfoGetUUID("i.mClient") },
+ { "<PEER_INFO_GET_UUID2>",
+ GetTransportable().Java().GenPeerInfoGetUUID("peerInfo") },
+ });
}
void JavaCionStubGen::GenCtor(std::ofstream& stream, const Interface& iface) {
bool securityCheck = false;
std::string m = "public $$(Context context, String serviceName, String displayName) {\n";
- m += Tab(1) + "super(context, serviceName, displayName, new SecurityInfo(";
+ m += Tab(1) + "super(context, serviceName, displayName, new "
+ + GetTransportable().Java().GenSecurityType() + "(";
for (const auto& attr : iface.GetAttributes()) {
if (attr->GetKey() == "ca_path") {
private String mDisplayName;
- private PeerInfo mClient;
+ private <PEER_INFO_T> mClient;
- private PeerInfo mConnectionRequestClient;
+ private <PEER_INFO_T> mConnectionRequestClient;
private ServerBase mServerBase;
* Gets client information
* @return Client information
*/
- public PeerInfo getClient() {
+ public <PEER_INFO_T> getClient() {
return mClient;
}
const char CB_ON_RECEIVED_ASYNC_EVENT_FRONT[] =
R"__java_cb(
@Override
- public final void onPayloadReceived(PeerInfo info, IPayload data, PayloadTransferStatus status) {
+ public final void onPayloadReceived(<PEER_INFO_T> info, IPayload data, PayloadTransferStatus status) {
try {
CionParcel p;
ServiceBase b = null;
if (i.mClient == null)
continue;
- if (i.mClient.getAppId().equals(info.getAppId()) &&
- i.mClient.getUuid().equals(info.getUuid())) {
+ if (<PEER_INFO_GET_APPID1>.equals(<PEER_INFO_GET_APPID2>) &&
+ <PEER_INFO_GET_UUID1>.equals(<PEER_INFO_GET_UUID2>)) {
b = i;
break;
}
const char CB_ON_RECEIVED_SYNC_EVENT_FRONT[] =
R"__java_cb(
@Override
- public final byte[] onDataReceived(PeerInfo info, byte[] data) {
+ public final byte[] onDataReceived(<PEER_INFO_T> info, byte[] data) {
CionParcel p;
byte[] returnData = new byte[0];
if (i.mClient == null)
continue;
- if (i.mClient.getAppId().equals(info.getAppId()) &&
- i.mClient.getUuid().equals(info.getUuid())) {
+ if (<PEER_INFO_GET_APPID1>.equals(<PEER_INFO_GET_APPID2>) &&
+ <PEER_INFO_GET_UUID1>.equals(<PEER_INFO_GET_UUID2>)) {
b = i;
break;
}
const char CB_ON_CONNECTIONREQUESTED_EVENT[] =
R"__java_cb(
@Override
- public void onConnectionRequest(PeerInfo peerInfo) {
+ public void onConnectionRequest(<PEER_INFO_T> peerInfo) {
ServiceBase s;
try {
final Object o = mServiceType.newInstance();
const char CB_ON_CONNECTED_EVENT[] =
R"__java_cb(
@Override
- public void onConnectionResult(PeerInfo peerInfo, ConnectionResult result) {
+ public void onConnectionResult(<PEER_INFO_T> peerInfo, ConnectionResult result) {
for (ServiceBase i : mServices) {
if (i.mConnectionRequestClient == null)
continue;
- if (i.mConnectionRequestClient.getAppId().equals(peerInfo.getAppId()) &&
- i.mConnectionRequestClient.getUuid().equals(peerInfo.getUuid())) {
+ if (<PEER_INFO_GET_APPID1>.equals(<PEER_INFO_GET_APPID2>) &&
+ <PEER_INFO_GET_UUID1>.equals(<PEER_INFO_GET_UUID2>)) {
if (result.status == ConnectionResult.ConnectionStatus.CONNECTION_OK) {
i.mClient = i.mConnectionRequestClient;
i.mConnectionRequestClient = null;
const char CB_ON_DISCONNECTED_EVENT[] =
R"__java_cb(
@Override
- public void onDisconnected(PeerInfo peerInfo) {
+ public void onDisconnected(<PEER_INFO_T> peerInfo) {
for (ServiceBase i : mServices) {
if (i.mClient == null)
continue;
- if (i.mClient.getAppId().equals(peerInfo.getAppId()) &&
- i.mClient.getUuid().equals(peerInfo.getUuid())) {
+ if (<PEER_INFO_GET_APPID1>.equals(<PEER_INFO_GET_APPID2>) &&
+ <PEER_INFO_GET_UUID1>.equals(<PEER_INFO_GET_UUID2>)) {
i.onTerminate();
mServices.remove(i);
break;
stream.open(fname + "/ServerBase.java");
stream << "package org.tizen.gen." << FileName << ".server;" << NLine(2);
- stream << DEFAULT_STUB_REPO << NLine(1);
+ stream << ReplaceAll(DEFAULT_STUB_REPO, {
+ { "<INCLUDE>", GetTransportable().Java().GenInclude() },
+ { "<PEER_INFO_T>", GetTransportable().Java().GenPeerInfoType() },
+ { "<SERVER_CHANNEL>", GetTransportable().Java().GenServerChannel() },
+ { "<SERVER_SEND_ASYNC>", GetTransportable().Java().GenServerSendAsync("mServer", "payload") },
+ { "<SERVER_LISTEN>", GetTransportable().Java().GenServerListen("mServer") },
+ { "<SERVER_ACCEPT>", GetTransportable().Java().GenServerAccept("mServer") },
+ { "<SERVER_STOP>", GetTransportable().Java().GenServerStop("mServer") },
+ { "<SERVER_DISCONNECT>", GetTransportable().Java()
+ .GenServerDisconnect("mServer", "peerInfo") },
+ { "<SERVER_REJECT>", GetTransportable().Java()
+ .GenServerReject("mServer", "peerInfo", "reason") },
+ { "<SECURITY_T>", GetTransportable().Java().GenSecurityType() }
+ }) << NLine(1);
stream.close();
}
}
class JavaTransportable {
public:
virtual ~JavaTransportable() = default;
+ virtual std::string GenInclude() const = 0;
+ virtual std::string GenClientChannel() const = 0;
+ virtual std::string GenServerChannel() const = 0;
+ virtual std::string GenGroupChannel() const = 0;
+ virtual std::string GenClientSendAsync(std::string client,
+ std::string payload) const = 0;
+ virtual std::string GenClientSend(std::string client, std::string data,
+ std::string data_size) const = 0;
+ virtual std::string GenServerSendAsync(std::string server,
+ std::string payload) const = 0;
+ virtual std::string GenPeerInfoType() const = 0;
+ virtual std::string GenSecurityType() const = 0;
+ virtual std::string GenClientTryConnect(std::string client,
+ std::string peer) const = 0;
+ virtual std::string GenClientDisconnect(std::string client) const = 0;
+ virtual std::string GenClientTryDiscovery(std::string client) const = 0;
+ virtual std::string GenClientStopDiscovery(std::string client) const = 0;
+ virtual std::string GenClientExtraHeader() const = 0;
+ virtual std::string GenClientExtraBody() const = 0;
+ virtual std::string GenServerExtraHeader() const = 0;
+ virtual std::string GenServerExtraBody() const = 0;
+ virtual std::string GenServerAccept(std::string server) const = 0;
+ virtual std::string GenServerStop(std::string server) const = 0;
+ virtual std::string GenServerReject(std::string server,
+ std::string peer, std::string reason) const = 0;
+ virtual std::string GenGroupPublish(std::string group, std::string data) const = 0;
+ virtual std::string GenGroupSubscribe(std::string group) const = 0;
+ virtual std::string GenGroupUnsubscribe(std::string group) const = 0;
+ virtual std::string GenServerListen(std::string server) const = 0;
+ virtual std::string GenServerDisconnect(std::string server,
+ std::string peer) const = 0;
+ virtual std::string GenPeerInfoGetAppID(std::string peer) const = 0;
+ virtual std::string GenPeerInfoGetUUID(std::string peer) const = 0;
};
} // namespace tidl
#include "idlc/gen_cion/default_c_transportable.h"
#include "idlc/gen_cion/default_cpp_transportable.h"
+#include "idlc/gen_cion/default_java_transportable.h"
namespace tidl {
C_.reset(new DefaultCTransportable());
Cpp_.reset(new DefaultCppTransportable());
// Cs_.reset(new DefaultCsTransportable());
- // Java_.reset(new DefaultJavaTransportable());
+ Java_.reset(new DefaultJavaTransportable());
} else {
// TODO
}