added c++ doc and replaced ifndef with pragma once
This commit is contained in:
		@@ -1,30 +1,24 @@
 | 
				
			|||||||
cmake_minimum_required(VERSION 3.7)
 | 
					cmake_minimum_required(VERSION 3.7)
 | 
				
			||||||
project(iprefresher VERSION 1.0.1 DESCRIPTION "mylib description")
 | 
					project(iprefresher VERSION 1.0.1 DESCRIPTION "Dynu ip refresher")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
set(CMAKE_CXX_STANDARD 17)
 | 
					set(CMAKE_CXX_STANDARD 17)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
find_package(CURL REQUIRED)
 | 
					find_package(CURL REQUIRED)
 | 
				
			||||||
include_directories(${CURL_INCLUDE_DIR})
 | 
					include_directories(${CURL_INCLUDE_DIR} inc)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_library(api
 | 
					add_library(api
 | 
				
			||||||
        src/api/API.h
 | 
					 | 
				
			||||||
        src/api/API.cpp
 | 
					        src/api/API.cpp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        src/api/Hashmap.h
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        src/api/TelegramAPI.cpp
 | 
					        src/api/TelegramAPI.cpp
 | 
				
			||||||
        src/api/TelegramAPI.h
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        src/api/DynuAPI.cpp
 | 
					        src/api/DynuAPI.cpp
 | 
				
			||||||
        src/api/DynuAPI.h
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        src/api/IPAPI.cpp
 | 
					        src/api/IPAPI.cpp
 | 
				
			||||||
        src/api/IPAPI.h
 | 
					 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_library(logger
 | 
					add_library(logger
 | 
				
			||||||
        src/Logger.cpp
 | 
					        src/Logger.cpp
 | 
				
			||||||
        src/Logger.h
 | 
					 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -33,6 +27,9 @@ set(SOURCE
 | 
				
			|||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_executable(iprefresher  ${SOURCE})
 | 
					add_executable(iprefresher  ${SOURCE})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# LINK generated LIBS #
 | 
				
			||||||
target_link_libraries(iprefresher api logger ${CURL_LIBRARIES} )
 | 
					target_link_libraries(iprefresher api logger ${CURL_LIBRARIES} )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# INSTALL to SYSTEM #
 | 
				
			||||||
install (TARGETS iprefresher DESTINATION bin)
 | 
					install (TARGETS iprefresher DESTINATION bin)
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										26
									
								
								inc/Logger.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								inc/Logger.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
				
			|||||||
 | 
					//
 | 
				
			||||||
 | 
					// Created by lukas on 05.05.19.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Logger {
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * log messages to logfile
 | 
				
			||||||
 | 
					     * @param text message
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    void logToLogfile(std::string text);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * safe ip to temp file
 | 
				
			||||||
 | 
					     * @param ip ip address to save
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    void safeip(std::string ip);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * read ip from file
 | 
				
			||||||
 | 
					     * @return read ip
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    std::string readip();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
							
								
								
									
										32
									
								
								inc/api/API.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								inc/api/API.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					//
 | 
				
			||||||
 | 
					// Created by lukas on 06.04.19.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <string>
 | 
				
			||||||
 | 
					#include "Hashmap.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class API {
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Simple API get request
 | 
				
			||||||
 | 
					     * @param myurl api url
 | 
				
			||||||
 | 
					     * @return return string of server
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    std::string request(std::string myurl);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * complex request with post/get and header information support
 | 
				
			||||||
 | 
					     * @param myurl base request url
 | 
				
			||||||
 | 
					     * @param post boolean (false=get)
 | 
				
			||||||
 | 
					     * @param map post/get fields
 | 
				
			||||||
 | 
					     * @param headers header fields
 | 
				
			||||||
 | 
					     * @return return string of server
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    std::string request(std::string myurl, bool post, Hashmap<std::string, std::string> &map, std::vector<std::string> &headers);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    static size_t write_data(void *buffer, size_t size, size_t buffersize, FILE *stream);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@@ -2,14 +2,18 @@
 | 
				
			|||||||
// Created by lukas on 18.06.19.
 | 
					// Created by lukas on 18.06.19.
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef IPREFRESHER_DYNUAPI_H
 | 
					#pragma once
 | 
				
			||||||
#define IPREFRESHER_DYNUAPI_H
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "API.h"
 | 
					#include "API.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class DynuAPI : API{
 | 
					class DynuAPI : API{
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * refresh the ip of domain on Dynu server
 | 
				
			||||||
 | 
					     * @param ip new ip
 | 
				
			||||||
 | 
					     * @return request status
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    int refreshIp(std::string ip);
 | 
					    int refreshIp(std::string ip);
 | 
				
			||||||
private:
 | 
					private:
 | 
				
			||||||
    const std::string dynuapikey = "88vNpMfDhMM2YYDNfWR1DNYfRX9W6fYg";
 | 
					    const std::string dynuapikey = "88vNpMfDhMM2YYDNfWR1DNYfRX9W6fYg";
 | 
				
			||||||
@@ -17,6 +21,3 @@ private:
 | 
				
			|||||||
    const std::string domainid = "8506047"; //id of the dynu domain
 | 
					    const std::string domainid = "8506047"; //id of the dynu domain
 | 
				
			||||||
    const std::string domainname = "luki.dynu.net";
 | 
					    const std::string domainname = "luki.dynu.net";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif //IPREFRESHER_DYNUAPI_H
 | 
					 | 
				
			||||||
@@ -2,8 +2,7 @@
 | 
				
			|||||||
// Created by lukas on 07.04.19.
 | 
					// Created by lukas on 07.04.19.
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef QT5PROJECT_HASHMAP_H
 | 
					#pragma once
 | 
				
			||||||
#define QT5PROJECT_HASHMAP_H
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <iostream>
 | 
					#include <iostream>
 | 
				
			||||||
@@ -12,12 +11,31 @@
 | 
				
			|||||||
template<class keytype, class valuetype>
 | 
					template<class keytype, class valuetype>
 | 
				
			||||||
class Hashmap {
 | 
					class Hashmap {
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * add key-value pair to hashmap
 | 
				
			||||||
 | 
					     * @param key keyvalue
 | 
				
			||||||
 | 
					     * @param value valuevalue
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    void add(keytype key, keytype value);
 | 
					    void add(keytype key, keytype value);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * get key of specific position
 | 
				
			||||||
 | 
					     * @param position int position
 | 
				
			||||||
 | 
					     * @return responding key object
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    keytype getKey(int position);
 | 
					    keytype getKey(int position);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * get value of specific position
 | 
				
			||||||
 | 
					     * @param position int position
 | 
				
			||||||
 | 
					     * @return responding value object
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    valuetype getValue(int position);
 | 
					    valuetype getValue(int position);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * get size of Hashmap
 | 
				
			||||||
 | 
					     * @return size of Hashmap
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    int size();
 | 
					    int size();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
private:
 | 
					private:
 | 
				
			||||||
@@ -45,6 +63,3 @@ template<class keytype, class valuetype>
 | 
				
			|||||||
int Hashmap<keytype, valuetype>::size() {
 | 
					int Hashmap<keytype, valuetype>::size() {
 | 
				
			||||||
    return (int) (keys.size());
 | 
					    return (int) (keys.size());
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif //QT5PROJECT_HASHMAP_H
 | 
					 | 
				
			||||||
@@ -2,17 +2,16 @@
 | 
				
			|||||||
// Created by lukas on 18.06.19.
 | 
					// Created by lukas on 18.06.19.
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef IPREFRESHER_IPAPI_H
 | 
					#pragma once
 | 
				
			||||||
#define IPREFRESHER_IPAPI_H
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <string>
 | 
					#include <string>
 | 
				
			||||||
#include "API.h"
 | 
					#include "API.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class IPAPI : API{
 | 
					class IPAPI : API{
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * get global ip of current internet connection
 | 
				
			||||||
 | 
					     * @return  global ip
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    std::string getGlobalIp();
 | 
					    std::string getGlobalIp();
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif //IPREFRESHER_IPAPI_H
 | 
					 | 
				
			||||||
@@ -2,8 +2,7 @@
 | 
				
			|||||||
// Created by lukas on 08.05.19.
 | 
					// Created by lukas on 08.05.19.
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef IPREFRESHER_TELEGRAMAPI_H
 | 
					#pragma once
 | 
				
			||||||
#define IPREFRESHER_TELEGRAMAPI_H
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <string>
 | 
					#include <string>
 | 
				
			||||||
@@ -11,12 +10,13 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
class TelegramAPI : API {
 | 
					class TelegramAPI : API {
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * send telegram Message to predefined destination
 | 
				
			||||||
 | 
					     * @param text message
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    void sendMessage(std::string text);
 | 
					    void sendMessage(std::string text);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
private:
 | 
					private:
 | 
				
			||||||
    const std::string apikey = "717213769:AAHan1nSXhUsxLJAN1Dv8Oc0z8wqwDdYPn4";
 | 
					    const std::string apikey = "717213769:AAHan1nSXhUsxLJAN1Dv8Oc0z8wqwDdYPn4";
 | 
				
			||||||
    const std::string chatid = "618154204";
 | 
					    const std::string chatid = "618154204";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif //IPREFRESHER_TELEGRAMAPI_H
 | 
					 | 
				
			||||||
							
								
								
									
										20
									
								
								src/Logger.h
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								src/Logger.h
									
									
									
									
									
								
							@@ -1,20 +0,0 @@
 | 
				
			|||||||
//
 | 
					 | 
				
			||||||
// Created by lukas on 05.05.19.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifndef IPREFRESHER_LOGGER_H
 | 
					 | 
				
			||||||
#define IPREFRESHER_LOGGER_H
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class Logger {
 | 
					 | 
				
			||||||
public:
 | 
					 | 
				
			||||||
    void logToLogfile(std::string text);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    void safeip(std::string ip);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    std::string readip();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif //IPREFRESHER_LOGGER_H
 | 
					 | 
				
			||||||
@@ -2,8 +2,8 @@
 | 
				
			|||||||
// Created by lukas on 06.04.19.
 | 
					// Created by lukas on 06.04.19.
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "API.h"
 | 
					#include "api/API.h"
 | 
				
			||||||
#include "Hashmap.h"
 | 
					#include "api/Hashmap.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <string>
 | 
					#include <string>
 | 
				
			||||||
#include <iostream>
 | 
					#include <iostream>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,23 +0,0 @@
 | 
				
			|||||||
//
 | 
					 | 
				
			||||||
// Created by lukas on 06.04.19.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifndef IPREFRESHER_API_H
 | 
					 | 
				
			||||||
#define IPREFRESHER_API_H
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include <string>
 | 
					 | 
				
			||||||
#include "Hashmap.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class API {
 | 
					 | 
				
			||||||
public:
 | 
					 | 
				
			||||||
    std::string request(std::string myurl);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    std::string request(std::string myurl, bool post, Hashmap<std::string, std::string> &map, std::vector<std::string> &headers);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
private:
 | 
					 | 
				
			||||||
    static size_t write_data(void *buffer, size_t size, size_t buffersize, FILE *stream);
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif //IPREFRESHER_API_H
 | 
					 | 
				
			||||||
@@ -2,7 +2,7 @@
 | 
				
			|||||||
// Created by lukas on 18.06.19.
 | 
					// Created by lukas on 18.06.19.
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "DynuAPI.h"
 | 
					#include "api/DynuAPI.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int DynuAPI::refreshIp(std:: string ip) {
 | 
					int DynuAPI::refreshIp(std:: string ip) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,7 +2,7 @@
 | 
				
			|||||||
// Created by lukas on 18.06.19.
 | 
					// Created by lukas on 18.06.19.
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "IPAPI.h"
 | 
					#include "api/IPAPI.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
std::string IPAPI::getGlobalIp() {
 | 
					std::string IPAPI::getGlobalIp() {
 | 
				
			||||||
    return request("https://api.ipify.org");
 | 
					    return request("https://api.ipify.org");
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,7 +2,7 @@
 | 
				
			|||||||
// Created by lukas on 08.05.19.
 | 
					// Created by lukas on 08.05.19.
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "TelegramAPI.h"
 | 
					#include "api/TelegramAPI.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void TelegramAPI::sendMessage(std::string text) {
 | 
					void TelegramAPI::sendMessage(std::string text) {
 | 
				
			||||||
    Hashmap<std::string, std::string> args;
 | 
					    Hashmap<std::string, std::string> args;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user