From 6f708bd73e525d2871ebba2c076f448610b34f74 Mon Sep 17 00:00:00 2001 From: JustinAJ Date: Wed, 2 Dec 2015 02:07:09 -0500 Subject: [PATCH] Updated name in copyright notices. Added files missing in previous commit: HTTP.h, HTTP_Server.h --- Jupiter/ArrayList.h | 4 +- Jupiter/Base64.cpp | 4 +- Jupiter/Base64.h | 4 +- Jupiter/Base64C.c | 4 +- Jupiter/CString.h | 4 +- Jupiter/CString_Imp.h | 4 +- Jupiter/Command.cpp | 4 +- Jupiter/Command.h | 4 +- Jupiter/DLList.h | 4 +- Jupiter/DataBuffer.cpp | 4 +- Jupiter/DataBuffer.h | 4 +- Jupiter/DataBuffer_Imp.h | 4 +- Jupiter/Database.cpp | 4 +- Jupiter/Database.h | 4 +- Jupiter/File.cpp | 4 +- Jupiter/File.h | 4 +- Jupiter/Functions.c | 4 +- Jupiter/Functions.h | 4 +- Jupiter/HTTP.h | 176 ++++++++++++++++++++++++++++++++ Jupiter/HTTP_Server.cpp | 4 +- Jupiter/HTTP_Server.h | 114 +++++++++++++++++++++ Jupiter/INIFile.cpp | 4 +- Jupiter/INIFile.h | 4 +- Jupiter/IRC.cpp | 4 +- Jupiter/IRC.h | 4 +- Jupiter/IRC_Client.cpp | 4 +- Jupiter/IRC_Client.h | 4 +- Jupiter/IRC_Numerics.h | 4 +- Jupiter/IRC_Server.cpp | 4 +- Jupiter/IRC_Server.h | 4 +- Jupiter/InvalidIndex.h | 4 +- Jupiter/Jupiter.cpp | 6 +- Jupiter/Jupiter.h | 4 +- Jupiter/Jupiter.rc | Bin 4570 -> 4572 bytes Jupiter/Jupiter.vcxproj | 3 + Jupiter/Jupiter.vcxproj.filters | 15 +++ Jupiter/List.h | 4 +- Jupiter/Plugin.cpp | 4 +- Jupiter/Plugin.h | 4 +- Jupiter/Queue.cpp | 4 +- Jupiter/Queue.h | 4 +- Jupiter/Readable_String.h | 4 +- Jupiter/Readable_String_Imp.h | 4 +- Jupiter/Reference_String.h | 4 +- Jupiter/Reference_String_Imp.h | 4 +- Jupiter/Rehash.cpp | 4 +- Jupiter/Rehash.h | 4 +- Jupiter/SLList.h | 4 +- Jupiter/SecureSocket.cpp | 4 +- Jupiter/SecureSocket.h | 4 +- Jupiter/Shift_String.h | 4 +- Jupiter/Shift_String_Imp.h | 4 +- Jupiter/Socket.cpp | 4 +- Jupiter/Socket.h | 4 +- Jupiter/String.h | 4 +- Jupiter/String_Imp.h | 4 +- Jupiter/String_Type.h | 4 +- Jupiter/String_Type_Imp.h | 4 +- Jupiter/TCPSocket.cpp | 4 +- Jupiter/TCPSocket.h | 4 +- Jupiter/Thinker.h | 4 +- Jupiter/Timer.cpp | 4 +- Jupiter/Timer.h | 4 +- Jupiter/UDPSocket.cpp | 4 +- Jupiter/UDPSocket.h | 4 +- Release/Jupiter.lib | Bin 302612 -> 302612 bytes 66 files changed, 429 insertions(+), 121 deletions(-) create mode 100644 Jupiter/HTTP.h create mode 100644 Jupiter/HTTP_Server.h diff --git a/Jupiter/ArrayList.h b/Jupiter/ArrayList.h index 964b860..4890366 100644 --- a/Jupiter/ArrayList.h +++ b/Jupiter/ArrayList.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _ARRAYLIST_H_HEADER diff --git a/Jupiter/Base64.cpp b/Jupiter/Base64.cpp index 49ead92..654e27b 100644 --- a/Jupiter/Base64.cpp +++ b/Jupiter/Base64.cpp @@ -1,5 +1,5 @@ /** - * Copyright (C) 2014-2015 Justin James. + * Copyright (C) 2014-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #include "Base64.h" diff --git a/Jupiter/Base64.h b/Jupiter/Base64.h index 437e028..22c15fe 100644 --- a/Jupiter/Base64.h +++ b/Jupiter/Base64.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2014-2015 Justin James. + * Copyright (C) 2014-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _BASE64_H_HEADER diff --git a/Jupiter/Base64C.c b/Jupiter/Base64C.c index 7449f1c..a550636 100644 --- a/Jupiter/Base64C.c +++ b/Jupiter/Base64C.c @@ -1,5 +1,5 @@ /** - * Copyright (C) 2014-2015 Justin James. + * Copyright (C) 2014-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #include "Base64.h" diff --git a/Jupiter/CString.h b/Jupiter/CString.h index 9e333e9..84bd562 100644 --- a/Jupiter/CString.h +++ b/Jupiter/CString.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _CSTRING_H_HEADER diff --git a/Jupiter/CString_Imp.h b/Jupiter/CString_Imp.h index 811be7f..8f54edb 100644 --- a/Jupiter/CString_Imp.h +++ b/Jupiter/CString_Imp.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _CSTRING_IMP_H_HEADER diff --git a/Jupiter/Command.cpp b/Jupiter/Command.cpp index 4c0c9b7..b09ec3c 100644 --- a/Jupiter/Command.cpp +++ b/Jupiter/Command.cpp @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #include diff --git a/Jupiter/Command.h b/Jupiter/Command.h index e8ed406..6d618e7 100644 --- a/Jupiter/Command.h +++ b/Jupiter/Command.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _COMMAND_H_HEADER diff --git a/Jupiter/DLList.h b/Jupiter/DLList.h index 4ea9793..be9c096 100644 --- a/Jupiter/DLList.h +++ b/Jupiter/DLList.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _DLLIST_H_HEADER diff --git a/Jupiter/DataBuffer.cpp b/Jupiter/DataBuffer.cpp index 23eebe8..f3350a4 100644 --- a/Jupiter/DataBuffer.cpp +++ b/Jupiter/DataBuffer.cpp @@ -1,5 +1,5 @@ /** - * Copyright (C) 2015 Justin James. + * Copyright (C) 2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #include diff --git a/Jupiter/DataBuffer.h b/Jupiter/DataBuffer.h index 773ae2e..5542c49 100644 --- a/Jupiter/DataBuffer.h +++ b/Jupiter/DataBuffer.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2015 Justin James. + * Copyright (C) 2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _DATABUFFER_H_HEADER diff --git a/Jupiter/DataBuffer_Imp.h b/Jupiter/DataBuffer_Imp.h index 26fdd3d..75ae8f4 100644 --- a/Jupiter/DataBuffer_Imp.h +++ b/Jupiter/DataBuffer_Imp.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2015 Justin James. + * Copyright (C) 2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _DATABUFFER_IMP_H_HEADER diff --git a/Jupiter/Database.cpp b/Jupiter/Database.cpp index 337ae36..0da7a64 100644 --- a/Jupiter/Database.cpp +++ b/Jupiter/Database.cpp @@ -1,5 +1,5 @@ /** - * Copyright (C) 2015 Justin James. + * Copyright (C) 2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #include "Database.h" diff --git a/Jupiter/Database.h b/Jupiter/Database.h index 5ff29fb..e8bd7bd 100644 --- a/Jupiter/Database.h +++ b/Jupiter/Database.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2015 Justin James. + * Copyright (C) 2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _DATABASE_H_HEADER diff --git a/Jupiter/File.cpp b/Jupiter/File.cpp index bc64de4..48e453c 100644 --- a/Jupiter/File.cpp +++ b/Jupiter/File.cpp @@ -1,5 +1,5 @@ /** - * Copyright (C) 2014-2015 Justin James. + * Copyright (C) 2014-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #include diff --git a/Jupiter/File.h b/Jupiter/File.h index 1f62b9f..f55cd4c 100644 --- a/Jupiter/File.h +++ b/Jupiter/File.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2014-2015 Justin James. + * Copyright (C) 2014-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _FILE_H_HEADER diff --git a/Jupiter/Functions.c b/Jupiter/Functions.c index 208f18b..7d13074 100644 --- a/Jupiter/Functions.c +++ b/Jupiter/Functions.c @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #include // malloc diff --git a/Jupiter/Functions.h b/Jupiter/Functions.h index d94073f..409018f 100644 --- a/Jupiter/Functions.h +++ b/Jupiter/Functions.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _FUNCTIONS_H_HEADER diff --git a/Jupiter/HTTP.h b/Jupiter/HTTP.h new file mode 100644 index 0000000..6210c5b --- /dev/null +++ b/Jupiter/HTTP.h @@ -0,0 +1,176 @@ +/** + * Copyright (C) 2015 Jessica James. + * + * Permission to use, copy, modify, and/or 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. + * + * Written by Jessica James + */ + +#if !defined _HTTP_H_HEADER +#define _HTTP_H_HEADER + +/** + * @file HTTP.h + * @brief Defines constants related to HTTP + */ + +#include "Reference_String.h" + +namespace Jupiter +{ + namespace HTTP + { + /** + * @brief HTTP status codes + */ + namespace Status + { + /** Informational (1xx) */ + static const int CONTINUE = 100; + static const int SWITCHING_PROTOCOLS = 101; + static const int PROCESSING = 102; // RFC 2518 + + /** Success (2xx) */ + static const int OK = 200; + static const int CREATED = 201; + static const int ACCEPTED = 202; + static const int NONAUTH_INFO = 203; // HTTP/1.1 + static const int NO_CONTENT = 204; + static const int RESET_CONTENT = 205; + static const int PARTIAL_CONTENT = 206; // RFC 7233 + static const int MULTI_STATUS = 207; // RFC 4918 + static const int ALREADY_REPORTED = 208; // RFC 5842 + static const int IM_USED = 226; // RFC 3229 + + /** Redirection (3xx) */ + static const int MULTIPLE_CHOICES = 300; + static const int MOVED_PERMANENTLY = 301; + static const int FOUND = 302; + static const int SEE_OTHER = 303; // HTTP/1.1 + static const int NOT_MODIFIED = 304; // RFC 7232 + static const int USE_PROXY = 305; // HTTP/1.1 + static const int SWITCH_PROXY = 306; // No longer used + static const int TEMPORARY_REDIRECT = 307; // HTTP/1.1 + static const int PERMANENT_REDIRECT = 308; // RFC 7538 + static const int RESUME_INCOMPLETE = 308; // Google + + /** Client Error (4xx) */ + static const int BAD_REQUEST = 400; + static const int UNAUTHORIZED = 401; // RFC 7235 + static const int PAYMENT_REQUIRED = 402; + static const int FORBIDDEN = 403; + static const int NOT_FOUND = 404; + static const int METHOD_NOT_ALLOWED = 405; + static const int NOT_ACCEPTABLE = 406; + static const int PROXY_AUTHENTICATION_REQUIRED = 407; // RFC 7235 + static const int REQUEST_TIMEOUT = 408; + static const int CONFLICT = 409; + static const int GONE = 410; + static const int LENGTH_REQUIRED = 411; + static const int PRECONDITION_FAILED = 412; // RFC 7232 + static const int PAYLOAD_TOO_LARGE = 413; // RFC 7231 + static const int REQUEST_URI_TOO_LONG = 414; + static const int UNSUPPORTED_MEDIA_TYPE = 415; + static const int REQUESTED_RANGE_NOT_SATISFIABLE = 416; // RFC 7233 + static const int EXPECTATION_FAILED = 417; + static const int IM_A_TEAPOT = 418; // RFC 2324 + static const int AUTHENTICATION_TIMEOUT = 419; // Non-RFC + static const int METHOD_FAILURE = 420; // Spring Framework + static const int ENHANCE_YOUR_CALM = 420; // Twitter + static const int MISDIRECTED_REQUEST = 421; // RFC 7540 + static const int UNPROCESSABLE_ENTITY = 422; // RFC 4918 + static const int LOCKED = 423; // RFC 4918 + static const int FAILED_DEPENDENCY = 424; // RFC 4918 + static const int UPGRADE_REQUIRED = 426; + static const int PRECONDITION_REQUIRED = 428; // RFC 6585 + static const int TOO_MANY_REQUESTS = 429; // RFC 6585 + static const int REQUEST_HEADER_FIELDS_TOO_LARGE = 431; // RFC 6585 + static const int LOGIN_TIMEOUT = 440; // Microsoft + static const int NO_RESPONSE = 444; // Nginx + static const int RETRY_WITH = 449; // Microsoft + static const int BLOCKED_BY_WINDOWS_PARENTAL_CONTROLS = 450; // Microsoft + static const int UNAVAILABLE_FOR_LEGAL_REASONS = 451; // "A New HTTP Status Code for Legally-restricted Resources" + static const int REDIRECT = 451; // Microsoft + static const int REQUEST_HEADER_TOO_LARGE = 494; // Nginx + static const int CERT_ERROR = 495; // Nginx + static const int NO_CERT = 496; // Nginx + static const int HTTP_TO_HTTPS = 497; // Nginx + static const int TOKEN_INVALID = 498; // Esri + static const int CLIENT_CLOSED_REQUEST = 499; // Nginx + static const int TOKEN_REQUIRED = 499; // Esri + + /** Server Error (5xx) */ + static const int INTERNAL_SERVER_ERROR = 500; + static const int NOT_IMPLEMENTED = 501; + static const int BAD_GATEWAY = 502; + static const int SERVICE_UNAVAIABLE = 503; + static const int GATEWAY_TIMEOUT = 504; + static const int HTTP_VERSION_NOT_SUPPORTED = 505; + static const int VARIANT_ALSO_NEGOTIATES = 506; // RFC 2295 + static const int INSUFFICIENT_STORAGE = 507; // RFC 4918 + static const int LOOP_DETECTED = 508; // RFC 5842 + static const int BANDWIDTH_LIMIT_EXCEEDED = 509; // Apache + static const int NOT_EXTENDED = 510; // RFC 2774 + static const int NETWORK_AUTHENTICATION_REQUIRED = 511; // RFC 6585 + static const int UNKNOWN_ERROR = 520; // Non-RFC + static const int ORIGIN_CONNECTION_TIMEOUT = 522; // CloudFlare + static const int NETWORK_READ_TIMEOUT = 598; // Microsoft + static const int NETWORK_CONNECTION_TIMEOUT = 599; // Microsoft + } // Jupiter::HTTP::Status namespace + + /** + * @brief Content-type field values + */ + namespace Content + { + /** + * @brief Content-Language values + * TODO: Implement all ISO 639-1 translations + */ + namespace Language + { + static STRING_LITERAL_AS_NAMED_REFERENCE(ENGLISH, "en"); + static STRING_LITERAL_AS_NAMED_REFERENCE(FRENCH, "fr"); + static STRING_LITERAL_AS_NAMED_REFERENCE(GERMAN, "gr"); + static STRING_LITERAL_AS_NAMED_REFERENCE(RUSSIAN, "ru"); + static STRING_LITERAL_AS_NAMED_REFERENCE(JAPANESE, "ja"); + static STRING_LITERAL_AS_NAMED_REFERENCE(CHINESE, "zh"); + } + + /** + * @brief Content-Type values + * Note: This is not an exhaustive/exclusive list of values + */ + namespace Type + { + namespace Text + { + namespace Charset + { + static STRING_LITERAL_AS_NAMED_REFERENCE(ASCII, "ascii"); + static STRING_LITERAL_AS_NAMED_REFERENCE(UTF8, "utf-8"); + } + + static STRING_LITERAL_AS_NAMED_REFERENCE(HTML, "text/html"); + static STRING_LITERAL_AS_NAMED_REFERENCE(PLAIN, "text/plain"); + } + namespace Application + { + static STRING_LITERAL_AS_NAMED_REFERENCE(OCTET_STREAM, "application/octet-stream"); + } + } + } + } // Jupiter::HTTP namespace +} // Jupiter namespace + +#endif // _HTTP_H_HEADER \ No newline at end of file diff --git a/Jupiter/HTTP_Server.cpp b/Jupiter/HTTP_Server.cpp index 647327d..6bff1a8 100644 --- a/Jupiter/HTTP_Server.cpp +++ b/Jupiter/HTTP_Server.cpp @@ -1,5 +1,5 @@ /** - * Copyright (C) 2015 Justin James. + * Copyright (C) 2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #include diff --git a/Jupiter/HTTP_Server.h b/Jupiter/HTTP_Server.h new file mode 100644 index 0000000..6c8980d --- /dev/null +++ b/Jupiter/HTTP_Server.h @@ -0,0 +1,114 @@ +/** + * Copyright (C) 2015 Jessica James. + * + * Permission to use, copy, modify, and/or 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. + * + * Written by Jessica James + */ + +#if !defined _HTTP_SERVER_H_HEADER +#define _HTTP_SERVER_H_HEADER + +/** + * @file HTTP_Server.h + * @brief Provides an interface to distribute data using HTTP. + */ + +#include "Jupiter.h" +#include "Thinker.h" +#include "Readable_String.h" +#include "ArrayList.h" + +namespace Jupiter +{ + namespace HTTP + { + class JUPITER_API Server : public Thinker + { + public: // Jupiter::Thinker + virtual int think(); + + public: // Server + typedef Jupiter::ReadableString *HTTPFunction(const Jupiter::ReadableString ¶meters); + static const Jupiter::ReadableString &global_namespace; + static const Jupiter::ReadableString &server_string; + + struct JUPITER_API Content + { + Jupiter::HTTP::Server::HTTPFunction *function; // function to generate content data + Jupiter::StringS name; // name of the content + unsigned int name_checksum; // name.calcChecksum() + const Jupiter::ReadableString *language = nullptr; // Pointer to a constant (or otherwise managed) string + const Jupiter::ReadableString *type = nullptr; // Pointer to a constant (or otherwise managed) string + const Jupiter::ReadableString *charset = nullptr; // Pointer to a constant (or otherwise managed) string + + virtual Jupiter::ReadableString *execute(const Jupiter::ReadableString ¶meters); + + Content(const Jupiter::ReadableString &in_name, Jupiter::HTTP::Server::HTTPFunction in_function); + }; + + class JUPITER_API Directory + { + public: + Jupiter::ArrayList directories; + Jupiter::ArrayList content; + Jupiter::StringS name; + unsigned int name_checksum; + + virtual void hook(const Jupiter::ReadableString &path, Content *in_content); + virtual bool remove(const Jupiter::ReadableString &name); + virtual bool has(const Jupiter::ReadableString &name); + virtual Jupiter::HTTP::Server::Content *find(const Jupiter::ReadableString &name); + virtual Jupiter::ReadableString *execute(const Jupiter::ReadableString &name, const Jupiter::ReadableString ¶meters); + + Directory(const Jupiter::ReadableString &in_name); + virtual ~Directory(); + }; + + class JUPITER_API Host : public Directory + { + public: + /*virtual bool remove(const Jupiter::ReadableString &name); + virtual bool has(const Jupiter::ReadableString &name); + virtual Jupiter::HTTP::Server::Content *find(const Jupiter::ReadableString &name); + //virtual Jupiter::HTTP::Server::Directory *find_directory(const Jupiter::ReadableString &name); + virtual Jupiter::ReadableString *execute(const Jupiter::ReadableString &name, const Jupiter::ReadableString ¶meters);*/ + + Host(const Jupiter::ReadableString &in_name); + }; + + void hook(const Jupiter::ReadableString &host, const Jupiter::ReadableString &path, Content *in_content); + bool remove(const Jupiter::ReadableString &host); + bool remove(const Jupiter::ReadableString &host, const Jupiter::ReadableString &name); + bool has(const Jupiter::ReadableString &host); + bool has(const Jupiter::ReadableString &host, const Jupiter::ReadableString &name); + Content *find(const Jupiter::ReadableString &name); + Content *find(const Jupiter::ReadableString &host, const Jupiter::ReadableString &name); + Jupiter::ReadableString *execute(const Jupiter::ReadableString &name, const Jupiter::ReadableString ¶meters); + Jupiter::ReadableString *execute(const Jupiter::ReadableString &host, const Jupiter::ReadableString &name, const Jupiter::ReadableString ¶meters); + + bool bind(const Jupiter::ReadableString &hostname, uint16_t port = 80); + bool tls_bind(const Jupiter::ReadableString &hostname, uint16_t port = 443); + + Server(); + Server(Jupiter::HTTP::Server &&source); + ~Server(); + /** Private members */ + private: + struct Data; + Data *data_; + }; // Jupiter::HTTP::Server class + } // Jupiter::HTTP namespace +} // Jupiter namespace + +#endif // _HTTP_SERVER_H_HEADER \ No newline at end of file diff --git a/Jupiter/INIFile.cpp b/Jupiter/INIFile.cpp index c6ce0ac..7dc0b23 100644 --- a/Jupiter/INIFile.cpp +++ b/Jupiter/INIFile.cpp @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #include diff --git a/Jupiter/INIFile.h b/Jupiter/INIFile.h index 45419cc..e9632da 100644 --- a/Jupiter/INIFile.h +++ b/Jupiter/INIFile.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _INIFILE_H_HEADER diff --git a/Jupiter/IRC.cpp b/Jupiter/IRC.cpp index 19e3858..c6aa744 100644 --- a/Jupiter/IRC.cpp +++ b/Jupiter/IRC.cpp @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #include "IRC.h" diff --git a/Jupiter/IRC.h b/Jupiter/IRC.h index 37f7a46..ed34aa8 100644 --- a/Jupiter/IRC.h +++ b/Jupiter/IRC.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _IRC_H_HEADER diff --git a/Jupiter/IRC_Client.cpp b/Jupiter/IRC_Client.cpp index c536076..6282bf0 100644 --- a/Jupiter/IRC_Client.cpp +++ b/Jupiter/IRC_Client.cpp @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #include diff --git a/Jupiter/IRC_Client.h b/Jupiter/IRC_Client.h index 3564459..0bf99a2 100644 --- a/Jupiter/IRC_Client.h +++ b/Jupiter/IRC_Client.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _IRC_CLIENT_H_HEADER diff --git a/Jupiter/IRC_Numerics.h b/Jupiter/IRC_Numerics.h index 6c598bb..5ae7b43 100644 --- a/Jupiter/IRC_Numerics.h +++ b/Jupiter/IRC_Numerics.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _IRC_NUMERICS_H_HEADER diff --git a/Jupiter/IRC_Server.cpp b/Jupiter/IRC_Server.cpp index cfcd6ad..2ef2dc8 100644 --- a/Jupiter/IRC_Server.cpp +++ b/Jupiter/IRC_Server.cpp @@ -1,5 +1,5 @@ /** - * Copyright (C) 2014-2015 Justin James. + * Copyright (C) 2014-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #include "IRC_Server.h" diff --git a/Jupiter/IRC_Server.h b/Jupiter/IRC_Server.h index 1cc69ca..edf969c 100644 --- a/Jupiter/IRC_Server.h +++ b/Jupiter/IRC_Server.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2014-2015 Justin James. + * Copyright (C) 2014-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _IRC_SERVER_H_HEADER diff --git a/Jupiter/InvalidIndex.h b/Jupiter/InvalidIndex.h index 5753425..c1798aa 100644 --- a/Jupiter/InvalidIndex.h +++ b/Jupiter/InvalidIndex.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2014-2015 Justin James. + * Copyright (C) 2014-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _INVALIDINDEX_H_HEADER diff --git a/Jupiter/Jupiter.cpp b/Jupiter/Jupiter.cpp index a4dfb72..e20c633 100644 --- a/Jupiter/Jupiter.cpp +++ b/Jupiter/Jupiter.cpp @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #include "Jupiter.h" @@ -21,7 +21,7 @@ extern "C" { const char *Jupiter_version = JUPITER_VERSION; - const char *Jupiter_copyright = "Copyright (C) 2013-2015 Justin James. ISC License."; + const char *Jupiter_copyright = "Copyright (C) 2013-2015 Jessica James. ISC License."; } const char *Jupiter::version = Jupiter_version; diff --git a/Jupiter/Jupiter.h b/Jupiter/Jupiter.h index c26e58c..6ac7a01 100644 --- a/Jupiter/Jupiter.h +++ b/Jupiter/Jupiter.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined JUPITER_API diff --git a/Jupiter/Jupiter.rc b/Jupiter/Jupiter.rc index 276381b7af30490274b1ce050f0a229b11ef0ce3..f85aa48a24d6d8b2f1beea2f1c727eb6b74fb25d 100644 GIT binary patch delta 24 ecmcbmd`Ef14KD6fhGHPhWJqR6-29O1CmR59ItZ@- delta 38 ucmcbkd`o%54KC4AhGK>ihD?S$1_cH$hD3&3hE#^)$s4(KH_LDzU;_Z?M+*Z0 diff --git a/Jupiter/Jupiter.vcxproj b/Jupiter/Jupiter.vcxproj index 9c6a10f..7b097f2 100644 --- a/Jupiter/Jupiter.vcxproj +++ b/Jupiter/Jupiter.vcxproj @@ -185,6 +185,7 @@ + @@ -215,6 +216,8 @@ + + diff --git a/Jupiter/Jupiter.vcxproj.filters b/Jupiter/Jupiter.vcxproj.filters index 4947af3..96d0ab6 100644 --- a/Jupiter/Jupiter.vcxproj.filters +++ b/Jupiter/Jupiter.vcxproj.filters @@ -49,6 +49,12 @@ {aef2e303-8a68-4cf9-8464-c4aef776d3f3} + + {790badaf-80b5-40b0-8de1-a71f4c523074} + + + {7a4d818a-481e-467c-a3e3-d6d0e7dde244} + @@ -129,6 +135,9 @@ Source Files\Files + + Source Files\HTTP + @@ -254,6 +263,12 @@ Header Files\DataBuffer + + Header Files\HTTP + + + Header Files\HTTP + diff --git a/Jupiter/List.h b/Jupiter/List.h index 94e3926..8ef6e61 100644 --- a/Jupiter/List.h +++ b/Jupiter/List.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _LIST_H_HEADER diff --git a/Jupiter/Plugin.cpp b/Jupiter/Plugin.cpp index 13121c0..b5c183a 100644 --- a/Jupiter/Plugin.cpp +++ b/Jupiter/Plugin.cpp @@ -1,5 +1,5 @@ /** - * Copyright (C) 2014-2015 Justin James. + * Copyright (C) 2014-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #include diff --git a/Jupiter/Plugin.h b/Jupiter/Plugin.h index c0aec58..fa93f0e 100644 --- a/Jupiter/Plugin.h +++ b/Jupiter/Plugin.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2014-2015 Justin James. + * Copyright (C) 2014-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _PLUGIN_H_HEADER diff --git a/Jupiter/Queue.cpp b/Jupiter/Queue.cpp index ec1425e..ef46fcc 100644 --- a/Jupiter/Queue.cpp +++ b/Jupiter/Queue.cpp @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #include "Queue.h" diff --git a/Jupiter/Queue.h b/Jupiter/Queue.h index 04df1be..3ec450a 100644 --- a/Jupiter/Queue.h +++ b/Jupiter/Queue.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _QUEUE_H_HEADER diff --git a/Jupiter/Readable_String.h b/Jupiter/Readable_String.h index 669d01b..8529de0 100644 --- a/Jupiter/Readable_String.h +++ b/Jupiter/Readable_String.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2014-2015 Justin James. + * Copyright (C) 2014-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _READABLE_STRING_H_HEADER diff --git a/Jupiter/Readable_String_Imp.h b/Jupiter/Readable_String_Imp.h index 6d94896..88e6754 100644 --- a/Jupiter/Readable_String_Imp.h +++ b/Jupiter/Readable_String_Imp.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2014-2015 Justin James. + * Copyright (C) 2014-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _READABLE_STRING_IMP_H_HEADER diff --git a/Jupiter/Reference_String.h b/Jupiter/Reference_String.h index a2598a0..56dfd6c 100644 --- a/Jupiter/Reference_String.h +++ b/Jupiter/Reference_String.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2014-2015 Justin James. + * Copyright (C) 2014-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _REFERENCE_STRING_H_HEADER diff --git a/Jupiter/Reference_String_Imp.h b/Jupiter/Reference_String_Imp.h index 011dd41..76bb02b 100644 --- a/Jupiter/Reference_String_Imp.h +++ b/Jupiter/Reference_String_Imp.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2014-2015 Justin James. + * Copyright (C) 2014-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _REFERENCE_STRING_IMP_H_HEADER diff --git a/Jupiter/Rehash.cpp b/Jupiter/Rehash.cpp index 1df403b..7117c68 100644 --- a/Jupiter/Rehash.cpp +++ b/Jupiter/Rehash.cpp @@ -1,5 +1,5 @@ /** - * Copyright (C) 2014-2015 Justin James. + * Copyright (C) 2014-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #include "Rehash.h" diff --git a/Jupiter/Rehash.h b/Jupiter/Rehash.h index 8162962..a3ad218 100644 --- a/Jupiter/Rehash.h +++ b/Jupiter/Rehash.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2014-2015 Justin James. + * Copyright (C) 2014-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _REHASH_H_HEADER diff --git a/Jupiter/SLList.h b/Jupiter/SLList.h index 6ad1955..a18bf6d 100644 --- a/Jupiter/SLList.h +++ b/Jupiter/SLList.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _SLLIST_H_HEADER diff --git a/Jupiter/SecureSocket.cpp b/Jupiter/SecureSocket.cpp index 199b2cf..31212d9 100644 --- a/Jupiter/SecureSocket.cpp +++ b/Jupiter/SecureSocket.cpp @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #include // std::move diff --git a/Jupiter/SecureSocket.h b/Jupiter/SecureSocket.h index d829616..52f9c32 100644 --- a/Jupiter/SecureSocket.h +++ b/Jupiter/SecureSocket.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _SECURESOCKET_H_HEADER diff --git a/Jupiter/Shift_String.h b/Jupiter/Shift_String.h index cb83010..632c216 100644 --- a/Jupiter/Shift_String.h +++ b/Jupiter/Shift_String.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2014-2015 Justin James. + * Copyright (C) 2014-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _SHIFT_STRING_H_HEADER diff --git a/Jupiter/Shift_String_Imp.h b/Jupiter/Shift_String_Imp.h index 85e43fa..bb8e4c6 100644 --- a/Jupiter/Shift_String_Imp.h +++ b/Jupiter/Shift_String_Imp.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2014-2015 Justin James. + * Copyright (C) 2014-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _SHIFT_STRING_IMP_H_HEADER diff --git a/Jupiter/Socket.cpp b/Jupiter/Socket.cpp index dfb5ad3..9532b7a 100644 --- a/Jupiter/Socket.cpp +++ b/Jupiter/Socket.cpp @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #include diff --git a/Jupiter/Socket.h b/Jupiter/Socket.h index 44f9e3d..377f9d6 100644 --- a/Jupiter/Socket.h +++ b/Jupiter/Socket.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _SOCKET_H_HEADER diff --git a/Jupiter/String.h b/Jupiter/String.h index 4fddd48..cb4afb0 100644 --- a/Jupiter/String.h +++ b/Jupiter/String.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _STRING_H_HEADER diff --git a/Jupiter/String_Imp.h b/Jupiter/String_Imp.h index f763018..8fdfd31 100644 --- a/Jupiter/String_Imp.h +++ b/Jupiter/String_Imp.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _STRING_IMP_H_HEADER diff --git a/Jupiter/String_Type.h b/Jupiter/String_Type.h index 1d619a3..da35d96 100644 --- a/Jupiter/String_Type.h +++ b/Jupiter/String_Type.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _STRING_TYPE_H_HEADER diff --git a/Jupiter/String_Type_Imp.h b/Jupiter/String_Type_Imp.h index 7b62a9f..89da0c2 100644 --- a/Jupiter/String_Type_Imp.h +++ b/Jupiter/String_Type_Imp.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2014-2015 Justin James. + * Copyright (C) 2014-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _STRING_TYPE_IMP_H_HEADER diff --git a/Jupiter/TCPSocket.cpp b/Jupiter/TCPSocket.cpp index 5f3cc99..94f6c69 100644 --- a/Jupiter/TCPSocket.cpp +++ b/Jupiter/TCPSocket.cpp @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #include // std::move diff --git a/Jupiter/TCPSocket.h b/Jupiter/TCPSocket.h index 7b0dac4..b2a1328 100644 --- a/Jupiter/TCPSocket.h +++ b/Jupiter/TCPSocket.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _TCPSOCKET_H_HEADER diff --git a/Jupiter/Thinker.h b/Jupiter/Thinker.h index 917dd57..d4cbfa8 100644 --- a/Jupiter/Thinker.h +++ b/Jupiter/Thinker.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _THINKER_H_HEADER diff --git a/Jupiter/Timer.cpp b/Jupiter/Timer.cpp index 6d76125..c602446 100644 --- a/Jupiter/Timer.cpp +++ b/Jupiter/Timer.cpp @@ -1,5 +1,5 @@ /** - * Copyright (C) 2014-2015 Justin James. + * Copyright (C) 2014-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #include "Timer.h" diff --git a/Jupiter/Timer.h b/Jupiter/Timer.h index 258cb9d..59ad266 100644 --- a/Jupiter/Timer.h +++ b/Jupiter/Timer.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2014-2015 Justin James. + * Copyright (C) 2014-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _TIMER_H_HEADER diff --git a/Jupiter/UDPSocket.cpp b/Jupiter/UDPSocket.cpp index 8dd59cf..2b09efd 100644 --- a/Jupiter/UDPSocket.cpp +++ b/Jupiter/UDPSocket.cpp @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #include "UDPSocket.h" diff --git a/Jupiter/UDPSocket.h b/Jupiter/UDPSocket.h index aa34f9d..ed579a8 100644 --- a/Jupiter/UDPSocket.h +++ b/Jupiter/UDPSocket.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2015 Justin James. + * Copyright (C) 2013-2015 Jessica James. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -13,7 +13,7 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Written by Justin James + * Written by Jessica James */ #if !defined _UDPSOCKET_H_HEADER diff --git a/Release/Jupiter.lib b/Release/Jupiter.lib index f94723ceda1d4ae94c59772d969615bfd92b2fb3..45b63c67ef6d88763d65dae0ee98f42cc5585398 100644 GIT binary patch delta 23241 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 EA2G=pg#Z8m delta 23283 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 R%y8A_AVWsMx0~I>{|A)qs^9