#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <iostream>
#include "myModule.h"
#include <pthread.h>
using namespace std;
mymodule mymod;
static void* StartNetWrapper(void * arg)
{
cout << "Starting Net" << endl;
mymod.StartNetRunning();
}
void printMenu()
{
cout << "\n[q]uit, [s]tatistics : " << flush;
}
/**
* main program
*/
int main(int argc, char *argv[])
{
pthread_t th_running;
int i=0; // counter variable;
int running=true;
char inputstr[500];
mymod.Init();
mymod.NetJoin(0);
pthread_create(&th_running, NULL, StartNetWrapper, NULL);
while (running)
{
printMenu();
cin >> inputstr;
switch (inputstr[0])
{
case 'q':
running = false;
break;
case 's':
mymod.printStats();
break;
default:
cout<<"Not a valid option."<<endl;
break;
}
}
cout << "Calling for graceful shutdown" << endl;
mymod.StopNetRunning();
pthread_join(th_running, NULL);
cout << "Shutdown packet capture loop gracefully" << endl;
return 0;
}
</pre> |