shared-memory/main/main.cpp

59 lines
2.0 KiB
C++
Raw Normal View History

2019-11-06 13:07:33 +01:00
#include <cstdlib>
#include <signal.h>
#include "../src/SharedMemory.h"
#include <sys/shm.h>
#include <iostream>
2019-11-13 13:49:02 +01:00
#include "vkvm.hpp"
2019-11-06 13:07:33 +01:00
int main(int argc, char** argv) {
2019-11-13 13:49:02 +01:00
vkvm::initialize(0);
initSharedMemory();
2019-11-06 13:07:33 +01:00
struct sigaction sigIntHandler;
sigIntHandler.sa_handler = deleteSharedMemory;
sigemptyset(&sigIntHandler.sa_mask);
sigIntHandler.sa_flags = 0;
sigaction(SIGINT, &sigIntHandler, nullptr);
2019-11-13 13:49:02 +01:00
vkvm::setDefaultValues();
2019-11-06 13:07:33 +01:00
std::atexit(deleteSharedMemory);
std::string eingabe;
2019-11-13 13:49:02 +01:00
while(eingabe != "exit") {
std::cout << "cmd# ";
std::cin >> eingabe;
//if verschieden information ausgaben
if(eingabe == "info")
{
2019-11-07 18:05:59 +01:00
std::cout << "OUTPUT ------------------------ OUTPUT\n" << std::endl;
2019-11-13 13:49:02 +01:00
std::cout << "memory ID: " << shmget(vkvm::impl.sharedMemoryKey, 0, 0) << std::endl;
std::cout << "Max memory Size: " << Max_Memory_Size << std::endl;
2019-11-07 18:05:59 +01:00
std::cout << "OUTPUT ------------------------ OUTPUT\n" << std::endl;
//Memory that is used now
//outprint of all memory
} else if(eingabe == "write") {
std::cout << "text: ";
std::cin >> eingabe;
2019-11-13 13:49:02 +01:00
vkvm::setText(eingabe);
//write a bitMap for example 2 (width) * 2 (high) * 3 (color) in Schared Memory
/*
char bitMap[12] = {0};
for(int i = 0; i < sizeof(bitMap); i++)
bitMap[i] = 'y';
writeSharedMemory(bitMap, sizeof(bitMap),1);
*/
} else if(eingabe == "read") {
2019-11-13 13:49:02 +01:00
auto str = vkvm::getText();
std::cout << str << std::endl;
/*
char content[12] = {0};
std::cout << "key "<< impl.sharedMemoryKey << std::endl;
getSharedMemory(content, sizeof(content), 1);
std::cout << content << std::endl;
*/
} else if (eingabe != "exit"){
std::cout << eingabe << " <- is not a known command" << std::endl;
}
}
2019-11-06 13:07:33 +01:00
return 0;
}