<commit_before>#ifndef __TOPOLOGY_H_INCLUDED__
#define __TOPOLOGY_H_INCLUDED__

// forward declared dependencies

// include dependencies
#include <string>
#include <vector>
#include <map>

#include <arpa/inet.h>

#include "network.h"
#include "container.h"


// declarations

#define FLAG_START "<"
#define FLAG_END ">"
#define FLAG_TERMINATE_START "</"

#define TAG_START_COMMENT "<!--"
#define TAG_END_COMMENT "-->"

#define TAG_TOPOLOGY "topology" 
#define TAG_CONTAINER "container" 
#define TAG_NETWORK "network"

#define TAG_COMMON_NAME "name"

#define TAG_CONTAINER_INTERFACE "interface"
#define TAG_CONTAINER_POSITION "position"
#define TAG_CONTAINER_OS "os"

#define TAG_INTERFACE_IP "ip"

#define TAG_NETWORK_TYPE "type"
#define TAG_NETWORK_CONNECTED "connected"

class Topology {
	std::map<std::string, ns3lxc::Network> networks;
	std::map<std::string, ns3lxc::Container> containers;
	std::map<std::string, ns3lxc::Connection> connections;
	std::map<std::string, ns3lxc::Application> applications;
};

Topology parseTopology(std::string topology_path);

#endif<commit_msg>Added tags<commit_after>#ifndef __TOPOLOGY_H_INCLUDED__
#define __TOPOLOGY_H_INCLUDED__

// forward declared dependencies

// include dependencies
#include <string>
#include <vector>
#include <map>

#include <arpa/inet.h>

#include "network.h"
#include "container.h"
#include "application.h"

// declarations

// NOTE: these tags can also be used plurally (checks for tag + "s")
#define TAG_INCLUDE "include" 
#define TAG_CONTAINER "container" 
#define TAG_NETWORK "network"
#define TAG_APPLICATION "application"
#define TAG_CONNECTION "connection"
#define TAG_POSITION "position"
#define TAG_IFACE "iface"
#define TAG_IFACES_ACCEPTED "ifacesAccepted"
#define TAG_IFACES_PROVIDED "ifacesProvided"

#define TAG_COMMON_NAME "name"

#define TAG_INTERFACE_IP "ip"

#define TAG_NETWORK_TYPE "type"
#define TAG_NETWORK_CONNECTED "connected"

class Topology {
	std::map<std::string, ns3lxc::Network> networks;
	std::map<std::string, ns3lxc::Container> containers;
	std::map<std::string, ns3lxc::Connection> connections;
	std::map<std::string, ns3lxc::Application> applications;
};

Topology parseTopology(std::string topology_path);

#endif
{'fraction_non_alphanumeric': 0.12229241877256318, 'fraction_numerical': 0.0036101083032490976, 'mean_word_length': 7.593023255813954, 'pattern_counts': {'":': 0, '<': 22, '<?xml version=': 0, '>': 21, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, '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': '5973586', 'n_tokens_mistral': 822, 'n_tokens_neox': 776, 'n_words': 173}