<commit_before>// Copyright 2015-2018 Zuse Institute Berlin
//
//    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.

#pragma once

#include "converter.hpp"
#include "exceptions.hpp"
#include "json/json.h"

#include <boost/asio.hpp>

#include <array>
#include <iostream>
#include <stdexcept>
#include <string>

namespace scalaris {

  /// represents a connection to Scalaris to execute JSON-RPC requests
  class Connection {
  protected:
    bool closed = false;
    std::string hostname;
    std::string link;
    unsigned port;

  protected:
    /**
     * creates a connection instance
     * @param _hostname the host name of the Scalaris instance
     * @param _link the URL for JSON-RPC
     * @param _port the TCP port of the Scalaris instance
     */
    Connection(const std::string& _hostname,
               const std::string& _link = "jsonrpc.yaws",
               unsigned _port = 8000);

    ~Connection() = default;
<commit_msg>cpp: remove inconvenient default destructor<commit_after>// Copyright 2015-2018 Zuse Institute Berlin
//
//    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.

#pragma once

#include "converter.hpp"
#include "exceptions.hpp"
#include "json/json.h"

#include <boost/asio.hpp>

#include <array>
#include <iostream>
#include <stdexcept>
#include <string>

namespace scalaris {

  /// represents a connection to Scalaris to execute JSON-RPC requests
  class Connection {
  protected:
    bool closed = false;
    std::string hostname;
    std::string link;
    unsigned port;

  protected:
    /**
     * creates a connection instance
     * @param _hostname the host name of the Scalaris instance
     * @param _link the URL for JSON-RPC
     * @param _port the TCP port of the Scalaris instance
     */
    Connection(const std::string& _hostname,
               const std::string& _link = "jsonrpc.yaws",
               unsigned _port = 8000);

{'fraction_non_alphanumeric': 0.09109449354180829, 'fraction_numerical': 0.010876954452753228, 'mean_word_length': 2.9503355704697984, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7195911', 'n_tokens_mistral': 818, 'n_tokens_neox': 794, 'n_words': 334}