aboutsummaryrefslogtreecommitdiffstats
path: root/iget_android/app/src/main/jni/iget-wrapper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'iget_android/app/src/main/jni/iget-wrapper.cpp')
-rw-r--r--iget_android/app/src/main/jni/iget-wrapper.cpp137
1 files changed, 0 insertions, 137 deletions
diff --git a/iget_android/app/src/main/jni/iget-wrapper.cpp b/iget_android/app/src/main/jni/iget-wrapper.cpp
deleted file mode 100644
index 57849378..00000000
--- a/iget_android/app/src/main/jni/iget-wrapper.cpp
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * 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 "iget-wrapper.hpp"
-
-#include <stdlib.h>
-#include <boost/property_tree/info_parser.hpp>
-#include <boost/thread.hpp>
-#include <mutex>
-#include <icnet/icnet_socket_consumer.h>
-#include <boost/date_time/posix_time/posix_time.hpp>
-#include <android/log.h>
-
-typedef boost::posix_time::ptime Time;
-typedef boost::posix_time::time_duration TimeDuration;
-
-Time t1(boost::posix_time::microsec_clock::local_time());
-
-class CallbackContainer
-{
- public:
- CallbackContainer():
- work(new boost::asio::io_service::work(m_ioService)),
- m_handler(std::async(std::launch::async, [this]() { m_ioService.run(); }))
- {
- m_seenManifestSegments = 0;
- m_seenDataSegments = 0;
- m_byteCounter = 0;
- }
-
- ~CallbackContainer()
- {
- work.reset();
- }
-
- void processPayload(icnet::ConsumerSocket &c, const uint8_t *buffer, size_t bufferSize)
- {
- icnet::Name m_name;
- c.getSocketOption(icnet::GeneralTransportOptions::NAME_PREFIX, m_name);
- std::string filename = destinationPathString + "/" + m_name.toString().substr(1 + m_name.toString().find_last_of("/"));
-
- m_ioService.dispatch([buffer, bufferSize, filename]() {
- Time t3(boost::posix_time::microsec_clock::local_time());
- std::ofstream file(filename.c_str(), std::ofstream::binary);
- file.write((char *) buffer, bufferSize);
- file.close();
- Time t2(boost::posix_time::microsec_clock::local_time());
- TimeDuration dt = t2 - t1;
- TimeDuration dt3 = t3 - t1;
- long msec = dt.total_milliseconds();
- long msec3 = dt3.total_milliseconds();
- __android_log_print(ANDROID_LOG_INFO, "ProcessPayLoad", "Elapsed Time: %.2f seconds -- %.2f [Mbps] -- %.2f", msec/1000.0, bufferSize*8/msec/1000.0, bufferSize*8/msec3/1000.0);
- });
- }
-
- bool verifyData(icnet::ConsumerSocket &c, const icnet::ContentObject &content_object)
- {
- if (content_object.getContentType() == icnet::PayloadType::DATA) {
- __android_log_print(ANDROID_LOG_INFO, "VerifyData", "VERIFY CONTENT");
- } else if (content_object.getContentType() == icnet::PayloadType::MANIFEST) {
- __android_log_print(ANDROID_LOG_INFO, "VerifyData", "VERIFY MANIFEST");
- }
- return true;
- }
-
- void processLeavingInterest(icnet::ConsumerSocket &c, const icnet::Interest &interest)
- {
- //std::cout << "LEAVES " << interest.getName().toUri() << std::endl;
- }
-
- void setDestinationPathString(std::string destinationPathString)
- {
-
- this->destinationPathString = destinationPathString;
- __android_log_print(ANDROID_LOG_ERROR, "setDestinationPathString", "xxx destinationPathString %s", this->destinationPathString.c_str());
- }
-
- private:
- std::string destinationPathString;
- int m_seenManifestSegments;
- int m_seenDataSegments;
- int m_byteCounter;
- boost::asio::io_service m_ioService;
- std::shared_ptr<boost::asio::io_service::work> work;
- std::future<void> m_handler;
-};
-
-
-JNIEXPORT void JNICALL
-Java_com_cisco_ccnx_service_CCNxService_startIGet(JNIEnv *env, jobject obj, jstring downloadPath, jstring destinationPath)
-{
- jboolean isCopy;
- const char *downloadPathChar = env->GetStringUTFChars(downloadPath, &isCopy);
- jboolean isCopyDestinatioPathChar;
- const char *destinationPathChar = env->GetStringUTFChars(destinationPath, &isCopyDestinatioPathChar);
- std::string destinationPathString(destinationPathChar, strlen(destinationPathChar));
- std::string url(downloadPathChar, strlen(downloadPathChar));
- std::string locator = "";
- std::string path = "";
- std::string name = "";
- size_t found = 0;
- size_t pathBegin = 0;
- found = url.find("//");
- pathBegin = url.find('/', found+2);
- locator = url.substr(found+2, pathBegin - (found+2));
- path = url.substr(pathBegin, std::string::npos);
- name = "ccnx:/" + locator + "/get" + path;
- icnet::ConsumerSocket c(icnet::Name(name.c_str()), icnet::TransportProtocolAlgorithms::RAAQM);
- CallbackContainer stubs;
- stubs.setDestinationPathString(destinationPathString);
- c.setSocketOption(icnet::ConsumerCallbacksOptions::CONTENT_RETRIEVED,
- (icnet::ConsumerContentCallback) std::bind(&CallbackContainer::processPayload,
- &stubs,
- std::placeholders::_1,
- std::placeholders::_2,
- std::placeholders::_3));
- c.setSocketOption(icnet::ConsumerCallbacksOptions::INTEREST_OUTPUT,
- (icnet::ConsumerInterestCallback) std::bind(&CallbackContainer::processLeavingInterest,
- &stubs,
- std::placeholders::_1,
- std::placeholders::_2));
- c.consume(icnet::Name());
- c.stop();
-}
-