From d22d2b4785e2f4eafc8dda2ae032931f89c7e45f Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Mon, 5 Jun 2017 16:48:29 +0200 Subject: - Added new interface between applications and library: - Application retrieve resources using the common HTTP url format. - Translation between network names and application names performed by the library - Added basic error handling - Added utils for http connections - Added support for differetn build types (DEBUG, RELEASE, RELEASE with debug symbols, RELEASE with min size executable) - Added support for iOS Change-Id: I8ba2a5d8bd70a4f7721e1bbc2efe3fb81ed2c98c Signed-off-by: Mauro Sardara --- apps/consumers/icnet_consumer_dash.cc | 217 ---------------------------------- 1 file changed, 217 deletions(-) delete mode 100755 apps/consumers/icnet_consumer_dash.cc (limited to 'apps/consumers/icnet_consumer_dash.cc') diff --git a/apps/consumers/icnet_consumer_dash.cc b/apps/consumers/icnet_consumer_dash.cc deleted file mode 100755 index 4ec4a2c9..00000000 --- a/apps/consumers/icnet_consumer_dash.cc +++ /dev/null @@ -1,217 +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 "icnet_socket_consumer.h" - -#define DEFAULT_BETA 0.99 -#define DEFAULT_GAMMA 0.07 - -namespace icnet { - -class CallbackContainer { - public: - CallbackContainer() - : work_(new boost::asio::io_service::work(io_service_)), - handler_(std::async(std::launch::async, [this]() { io_service_.run(); })) { - seen_manifest_segments_ = 0; - seen_data_segments_ = 0; - byte_counter_ = 0; - } - - ~CallbackContainer() { - work_.reset(); - } - - void processPayload(ConsumerSocket &c, const uint8_t *buffer, size_t bufferSize) { - std::cout << "Content retrieved!! Size: " << bufferSize << std::endl; - } - - bool verifyData(ConsumerSocket &c, const ContentObject &contentObject) { - if (contentObject.getContentType() == PayloadType::DATA) { - std::cout << "VERIFY CONTENT" << std::endl; - } else if (contentObject.getContentType() == PayloadType::MANIFEST) { - std::cout << "VERIFY MANIFEST" << std::endl; - } - - return true; - } - - void processLeavingInterest(ConsumerSocket &c, const Interest &interest) { - // std::cout << "LEAVES " << interest.getName().toUri() << std::endl; - } - - private: - int seen_manifest_segments_; - int seen_data_segments_; - int byte_counter_; - boost::asio::io_service io_service_; - std::shared_ptr work_; - std::future handler_; -}; - -class Verificator { - public: - Verificator() { - }; - - ~Verificator() { - } - - bool onPacket(ConsumerSocket &c, const ContentObject &contentObject) { - return true; - } - -}; - -void becomeDaemon() { - pid_t process_id = 0; - pid_t sid = 0; - - // Create child process - process_id = fork(); - - // Indication of fork() failure - if (process_id < 0) { - printf("fork failed!\n"); - // Return failure in exit status - exit(EXIT_FAILURE); - } - - // PARENT PROCESS. Need to kill it. - if (process_id > 0) { - printf("process_id of child process %d \n", process_id); - // return success in exit status - exit(EXIT_SUCCESS); - } - - //unmask the file mode - umask(0); - - //set new session - sid = setsid(); - if (sid < 0) { - // Return failure - exit(EXIT_FAILURE); - } - - // Change the current working directory to root. - chdir("/"); - - // Close stdin. stdout and stderr - close(STDIN_FILENO); - close(STDOUT_FILENO); - close(STDERR_FILENO); - - // Really start application -} - -int main(int argc, char **argv) { - double beta = DEFAULT_BETA; - double drop_factor = DEFAULT_GAMMA; - bool daemon = false; - bool rtt_stats = false; - int n_segment = 427; - bool looping = false; - - int opt; - while ((opt = getopt(argc, argv, "b:d:DRn:l")) != -1) { - switch (opt) { - case 'b': - beta = std::stod(optarg); - break; - case 'd': - drop_factor = std::stod(optarg); - break; - case 'D': - daemon = true; - break; - case 'R': - rtt_stats = true; - break; - case 'n': - n_segment = std::stoi(optarg); - break; - case 'l': - looping = true; - break; - default: - exit(EXIT_FAILURE); - } - } - - std::string name = "ccnx:/webserver/get/sintel/18000"; - - if (argv[optind] == 0) { - std::cerr << "Using default name ccnx:/webserver/sintel/18000" << std::endl; - } else { - name = argv[optind]; - } - - if (daemon) { - becomeDaemon(); - } - - ConsumerSocket c(Name(name.c_str()), TransportProtocolAlgorithms::RAAQM); - - CallbackContainer stubs; - Verificator verificator; - - c.setSocketOption(GeneralTransportOptions::INTEREST_LIFETIME, 1001); - c.setSocketOption(RaaqmTransportOptions::BETA_VALUE, beta); - c.setSocketOption(RaaqmTransportOptions::DROP_FACTOR, drop_factor); - c.setSocketOption(GeneralTransportOptions::MAX_INTEREST_RETX, 10); - c.setSocketOption(OtherOptions::VIRTUAL_DOWNLOAD, true); - c.setSocketOption(RaaqmTransportOptions::RTT_STATS, rtt_stats); - - c.setSocketOption(ConsumerCallbacksOptions::CONTENT_OBJECT_TO_VERIFY, - (ConsumerContentObjectVerificationCallback) std::bind(&Verificator::onPacket, - &verificator, - std::placeholders::_1, - std::placeholders::_2)); - - c.setSocketOption(ConsumerCallbacksOptions::CONTENT_RETRIEVED, - (ConsumerContentCallback) std::bind(&CallbackContainer::processPayload, - &stubs, - std::placeholders::_1, - std::placeholders::_2, - std::placeholders::_3)); - - c.setSocketOption(ConsumerCallbacksOptions::INTEREST_OUTPUT, - (ConsumerInterestCallback) std::bind(&CallbackContainer::processLeavingInterest, - &stubs, - std::placeholders::_1, - std::placeholders::_2)); - - do { - std::stringstream ss; - for (int i = 1; i < n_segment; i++) { - ss << "ccnx:/seg_" << i << ".m4s"; - auto str = ss.str(); - c.consume(Name(str)); - ss.str(""); - } - } while (looping); - - c.stop(); - - return 0; - -} - -} // end namespace icnet - -int main(int argc, char **argv) { - return icnet::main(argc, argv); -} -- cgit 1.2.3-korg