diff sources/engine.cpp @ 0:bafff9de2a76

Initial commit since summer'07
author Vlad Glagolev <enqlave@gmail.com>
date Sun, 20 Jan 2008 19:25:25 +0300
parents
children 19227b0b7cc1
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sources/engine.cpp	Sun Jan 20 19:25:25 2008 +0300
@@ -0,0 +1,316 @@
+/**
+ * engine.cpp (2007-03-05)
+ *
+ * -- CABAL -- engine (useful functions)
+ *
+ * Copyright (c) 2007 Vlad Glagolev <enqlave@gmail.com>
+ * All rights reserved.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include "engine.h"
+
+bool daemonize()
+{
+	if (daemon (1, 1) != 0) {
+		cout << "Error: unable to daemonize into background\n";
+		exit (1);
+	} else {
+		cout << "ENGINE: successfully daemonized into background\n";
+		return daemon (1, 1) == 0;
+	}
+}
+
+time_t gettime()
+{
+	time_t t;
+	return time (&t);
+}
+
+char *eTime (time_t t)
+{
+	char *nt = asctime (localtime (&t));
+
+	nt[strlen (nt) - 1] = 0;
+
+	return nt;
+}
+
+char *eCountry (char *c)
+{
+	if (!*c)
+		return "Enter the correct code of country";
+	else
+		sscanf (c, "%s", c);
+
+	struct countries {
+		char *code;
+		char *country;
+	} countries[] = {
+		"AC", "Ascension Island",
+		"AD", "Andorra",
+		"AE", "United Arab Emirates",
+		"AF", "Afghanistan",
+		"AG", "Antigua and Barbuda",
+		"AI", "Anguilla",
+		"AL", "Albania",
+		"AM", "Armenia",
+		"AN", "Netherlands Antilles",
+		"AO", "Angola",
+		"AQ", "Antarctica",
+		"AR", "Argentina",
+		"AS", "American Samoa",
+		"AT", "Austria",
+		"AU", "Australia",
+		"AW", "Aruba",
+		"AX", "Aland Islands",
+		"AZ", "Azerbaijan",
+		"BA", "Bosnia and Herzegovina",
+		"BB", "Barbados",
+		"BD", "Bangladesh",
+		"BE", "Belgium",
+		"BF", "Burkina Faso",
+		"BG", "Bulgaria",
+		"BH", "Bahrain",
+		"BI", "Burundi",
+		"BJ", "Benin",
+		"BM", "Bermuda",
+		"BN", "Brunei Darussalam",
+		"BO", "Bolivia",
+		"BR", "Brazil",
+		"BS", "Bahamas",
+		"BT", "Bhutan",
+		"BU", "Burma",
+		"BV", "Bouvet Island",
+		"BW", "Botswana",
+		"BY", "Belarus",
+		"BZ", "Belize",
+		"CA", "Canada",
+		"CC", "Cocos (Keeling) Islands",
+		"CD", "The Democratic Republic of the Congo",
+		"CF", "Central African Republic",
+		"CG", "Congo",
+		"CH", "Switzerland",
+		"CI", "Cote d'Ivoire (Ivory Coast)",
+		"CK", "Cook Islands",
+		"CL", "Chile",
+		"CM", "Cameroon",
+		"CN", "China",
+		"CO", "Colombia",
+		"CR", "Costa Rica",
+		"CS", "Serbia and Montenegro",
+		"CU", "Cuba",
+		"CV", "Cape Verde",
+		"CX", "Christmas Island",
+		"CY", "Cyprus",
+		"CZ", "Czech Republic",
+		"DE", "Germany",
+		"DJ", "Djibouti",
+		"DK", "Denmark",
+		"DM", "Dominica",
+		"DO", "Dominican Republic",
+		"DZ", "Algeria",
+		"EC", "Ecuador",
+		"EE", "Estonia",
+		"EG", "Egypt",
+		"EH", "Western Sahara",
+		"ER", "Eritrea",
+		"ES", "Spain (including Canary Islands, Ceuta and Melilla)",
+		"ET", "Ethiopia",
+		"EU", "European Union",
+		"FI", "Finland",
+		"FJ", "Fiji",
+		"FK", "Falkland Islands (Malvinas)",
+		"FM", "Federated States of Micronesia",
+		"FO", "Faroe Islands",
+		"FR", "France",
+		"GA", "Gabon",
+		"GD", "Grenada",
+		"GE", "Georgia",
+		"GF", "French Guiana",
+		"GG", "Guernsey",
+		"GH", "Ghana",
+		"GI", "Gibraltar",
+		"GL", "Greenland",
+		"GM", "Gambia",
+		"GN", "Guinea",
+		"GP", "Guadeloupe",
+		"GQ", "Equatorial Guinea",
+		"GR", "Greece",
+		"GS", "South Georgia and the South Sandwich Islands",
+		"GT", "Guatemala",
+		"GU", "Guam",
+		"GW", "Guinea-Bissau",
+		"GY", "Guyana",
+		"HK", "Hong Kong",
+		"HM", "Heard Island and McDonald Islands",
+		"HN", "Honduras",
+		"HR", "Croatia",
+		"HT", "Haiti",
+		"HU", "Hungary",
+		"ID", "Indonesia",
+		"IE", "Ireland",
+		"IL", "Israel",
+		"IM", "Isle of Man",
+		"IN", "India",
+		"IO", "British Indian Ocean Territory (including Diego Garcia)",
+		"IQ", "Iraq",
+		"IR", "Islamic Republic of Iran",
+		"IS", "Iceland",
+		"IT", "Italy",
+		"JE", "Jersey",
+		"JM", "Jamaica",
+		"JO", "Jordan",
+		"JP", "Japan",
+		"KE", "Kenya",
+		"KG", "Kyrgyzstan",
+		"KH", "Cambodia",
+		"KI", "Kiribati",
+		"KM", "Comoros",
+		"KN", "Saint Kitts and Nevis",
+		"KP", "Democratic People's Republic of Korea (North Korea)",
+		"KR", "Republic of Korea (South Korea)",
+		"KW", "Kuwait",
+		"KY", "Cayman Islands",
+		"KZ", "Kazakhstan",
+		"LA", "Lao People's Democratic Republic",
+		"LB", "Lebanon",
+		"LC", "Saint Lucia",
+		"LI", "Liechtenstein",
+		"LK", "Sri Lanka",
+		"LR", "Liberia",
+		"LS", "Lesotho",
+		"LT", "Lithuania",
+		"LU", "Luxembourg",
+		"LV", "Latvia",
+		"LY", "Libyan Arab Jamahiriya",
+		"MA", "Morocco",
+		"MC", "Monaco",
+		"MD", "Republic of Moldova",
+		"MG", "Madagascar",
+		"MH", "Marshall Islands",
+		"MK", "Macedonia",
+		"ML", "Mali",
+		"MM", "Myanmar",
+		"MN", "Mongolia",
+		"MO", "Macao",
+		"MP", "Northern Mariana Islands",
+		"MQ", "Martinique",
+		"MR", "Mauritania",
+		"MS", "Montserrat",
+		"MT", "Malta",
+		"MU", "Mauritius",
+		"MV", "Maldives",
+		"MW", "Malawi",
+		"MX", "Mexico",
+		"MY", "Malaysia",
+		"MZ", "Mozambique",
+		"NA", "Namibia",
+		"NC", "New Caledonia",
+		"NE", "Niger",
+		"NF", "Norfolk Island",
+		"NG", "Nigeria",
+		"NI", "Nicaragua",
+		"NL", "Netherlands",
+		"NO", "Norway",
+		"NP", "Nepal",
+		"NR", "Nauru",
+		"NU", "Niue",
+		"NZ", "New Zealand",
+		"OM", "Oman",
+		"PA", "Panama",
+		"PE", "Peru",
+		"PF", "French Polynesia (including Clipperton Island)",
+		"PG", "Papua New Guinea",
+		"PH", "Philippines",
+		"PK", "Pakistan",
+		"PL", "Poland",
+		"PM", "Saint Pierre and Miquelon",
+		"PN", "Pitcairn",
+		"PR", "Puerto Rico",
+		"PS", "Palestinian Territory, Occupied",
+		"PT", "Portugal",
+		"PW", "Palau",
+		"PY", "Paraguay",
+		"QA", "Qatar",
+		"RE", "Reunion",
+		"RO", "Romania",
+		"RU", "Russian Federation",
+		"RW", "Rwanda",
+		"SA", "Saudi Arabia",
+		"SB", "Solomon Islands",
+		"SC", "Seychelles",
+		"SD", "Sudan",
+		"SE", "Sweden",
+		"SG", "Singapore",
+		"SH", "Saint Helena (including Ascension Island and Tristan da Cunha)",
+		"SI", "Slovenia",
+		"SJ", "Svalbard and Jan Mayen consisting of Svalbard and Jan Mayen",
+		"SK", "Slovakia",
+		"SL", "Sierra Leone",
+		"SM", "San Marino",
+		"SN", "Senegal",
+		"SO", "Somalia",
+		"SR", "Suriname",
+		"ST", "Sao Tome and Principe",
+		"SU", "Soviet Union",
+		"SV", "El Salvador",
+		"SY", "Syrian Arab Republic",
+		"SZ", "Swaziland",
+		"TC", "Turks and Caicos Islands",
+		"TD", "Chad",
+		"TF", "French Southern Territories",
+		"TG", "Togo",
+		"TH", "Thailand",
+		"TJ", "Tajikistan",
+		"TK", "Tokelau",
+		"TL", "Timor-Leste (East Timor)",
+		"TM", "Turkmenistan",
+		"TN", "Tunisia",
+		"TO", "Tonga",
+		"TR", "Turkey",
+		"TT", "Trinidad and Tobago",
+		"TV", "Tuvalu",
+		"TW", "Taiwan, Province of China",
+		"TZ", "United Republic of Tanzania",
+		"UA", "Ukraine",
+		"UG", "Uganda",
+		"UK", "United Kingdom",
+		"UM", "United States Minor Outlying Islands",
+		"US", "United States",
+		"UY", "Uruguay",
+		"UZ", "Uzbekistan",
+		"VA", "Holy See (Vatican City State)",
+		"VC", "Saint Vincent and the Grenadines",
+		"VE", "Venezuela",
+		"VG", "Virgin Islands, British",
+		"VI", "Virgin Islands, U.S.",
+		"VN", "Viet Nam",
+		"VU", "Vanuatu",
+		"WF", "Wallis and Futuna",
+		"WS", "Samoa",
+		"YE", "Yemen",
+		"YT", "Mayotte",
+		"ZA", "South Africa",
+		"ZM", "Zambia",
+		"ZW", "Zimbabwe",
+		0
+	};
+
+	for (int e = 0; countries[e].code; e++)
+		if (!strcasecmp (countries[e].code, c))
+			return countries[e].country;
+
+	return "Incorrect country code, try again";
+}