# Path: minindn/apps/application.py
# class Application(object):
#     def __init__(self, node):
#         self.node = node
#         self.process = None
#         self.logfile = None
#         self.homeDir = self.node.params['params']['homeDir']
# 
#         # Make directory for log file
#         self.logDir = '{}/log'.format(self.homeDir)
#         self.node.cmd('mkdir -p {}'.format(self.logDir))
# 
#     def start(self, command, logfile, envDict=None):
#         if self.process is None:
#             self.logfile = open('{}/{}'.format(self.logDir, logfile), 'w')
#             self.process = getPopen(self.node, command.split(), envDict,
#                                     stdout=self.logfile, stderr=self.logfile)
# 
#     def stop(self):
#         if self.process is not None:
#             self.process.kill()
#             self.process = None
#         if self.logfile is not None:
#             self.logfile.close()


from minindn.apps.application import Application
from mininet.log import debug
#
# Mini-NDN is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Mini-NDN is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Mini-NDN, e.g., in COPYING.md file.
# If not, see <http://www.gnu.org/licenses/>.



class Tshark(Application):
    """
    Logging utility to dump network traffic of a node to a PCAP file.

    The app is based on the command line tool tshark and requires tshark to be installed on the system.
    """

    def __init__(self, node, logFolder="./", singleLogFile=False):
        """
        :param logFolder Folder, where PCAP files are stored.
        :param singleLogFile Single PCAP file per node, or individual PCAP for each interface
        """


# Path: minindn/apps/application.py
# class Application(object):
#     def __init__(self, node):
#         self.node = node
#         self.process = None
#         self.logfile = None
#         self.homeDir = self.node.params['params']['homeDir']
# 
#         # Make directory for log file
#         self.logDir = '{}/log'.format(self.homeDir)
#         self.node.cmd('mkdir -p {}'.format(self.logDir))
# 
#     def start(self, command, logfile, envDict=None):
#         if self.process is None:
#             self.logfile = open('{}/{}'.format(self.logDir, logfile), 'w')
#             self.process = getPopen(self.node, command.split(), envDict,
#                                     stdout=self.logfile, stderr=self.logfile)
# 
#     def stop(self):
#         if self.process is not None:
#             self.process.kill()
#             self.process = None
#         if self.logfile is not None:
#             self.logfile.close()


# Path: minindn/apps/tshark.py
from minindn.apps.application import Application
from mininet.log import debug

#
# Mini-NDN is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Mini-NDN is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Mini-NDN, e.g., in COPYING.md file.
# If not, see <http://www.gnu.org/licenses/>.



class Tshark(Application):
    """
    Logging utility to dump network traffic of a node to a PCAP file.

    The app is based on the command line tool tshark and requires tshark to be installed on the system.
    """

    def __init__(self, node, logFolder="./", singleLogFile=False):
        """
        :param logFolder Folder, where PCAP files are stored.
        :param singleLogFile Single PCAP file per node, or individual PCAP for each interface
        """


        Application.__init__(self, node)