| 1 | //*************************************************************************** |
|---|
| 2 | // |
|---|
| 3 | // [ nCore ] |
|---|
| 4 | // |
|---|
| 5 | // Copyright (c) 2001-2008 Jean-Charles Lefebvre <jcl ATNOSPAM jcl DOT name> |
|---|
| 6 | // |
|---|
| 7 | // This file is part of nCore. |
|---|
| 8 | // |
|---|
| 9 | // This software is provided 'as-is', without any express or implied |
|---|
| 10 | // warranty. In no event will the authors be held liable for any damages |
|---|
| 11 | // arising from the use of this software. |
|---|
| 12 | // |
|---|
| 13 | // Permission is granted to anyone to use this software for any purpose, |
|---|
| 14 | // including commercial applications, and to alter it and redistribute it |
|---|
| 15 | // freely, subject to the following restrictions : |
|---|
| 16 | // |
|---|
| 17 | // 1. The origin of this software must not be misrepresented; you must not |
|---|
| 18 | // claim that you wrote the original software. If you use this software |
|---|
| 19 | // in a product, an acknowledgment in the product documentation would be |
|---|
| 20 | // appreciated but is not required. |
|---|
| 21 | // 2. Altered source versions must be plainly marked as such, and must not |
|---|
| 22 | // be misrepresented as being the original software. |
|---|
| 23 | // 3. This notice may not be removed or altered from any source distribution. |
|---|
| 24 | // |
|---|
| 25 | //*************************************************************************** |
|---|
| 26 | |
|---|
| 27 | |
|---|
| 28 | //--------------------------------------------------------------------------- |
|---|
| 29 | // Very High Priority |
|---|
| 30 | // "Do It Now !" |
|---|
| 31 | //--------------------------------------------------------------------------- |
|---|
| 32 | |
|---|
| 33 | |
|---|
| 34 | //--------------------------------------------------------------------------- |
|---|
| 35 | // Normal Priority |
|---|
| 36 | // "Do nothing in a hurry :)" |
|---|
| 37 | //--------------------------------------------------------------------------- |
|---|
| 38 | |
|---|
| 39 | |
|---|
| 40 | //--------------------------------------------------------------------------- |
|---|
| 41 | // Low Priority |
|---|
| 42 | // "Ideas which are considered" |
|---|
| 43 | //--------------------------------------------------------------------------- |
|---|
| 44 | * Networking - NetServer |
|---|
| 45 | * Handle multiple accept() at time : |
|---|
| 46 | http://www.programmersheaven.com/mb/CandCPP/245610/245610/ReadMessage.aspx |
|---|
| 47 | |
|---|
| 48 | * Networking - Multicast |
|---|
| 49 | |
|---|
| 50 | * Networking - NAT / UPnP / NLA |
|---|
| 51 | |
|---|
| 52 | * Networking - MTU |
|---|
| 53 | * Etre "MTU-size-aware", rajouter une méthode statique dans NetSocket pour |
|---|
| 54 | définir la taille de la MTU et donc la taille maximale d'un paquet. |
|---|
| 55 | * Pour le calcul de la taille totale d'un paquet, ne pas oublier de |
|---|
| 56 | soustraire la taille du raw-header (le vrai) en fonction de la famille |
|---|
| 57 | d'adressage (IPv4, IPv6) et du protocol utilisé (TCP, UDP). |
|---|
| 58 | |
|---|
| 59 | * ConfigManager |
|---|
| 60 | * Interface unique pour ConfigFile et un ConfigWinRegistry-like. |
|---|
| 61 | * Attention au support des clés multiples (i.e. avec le même nom). |
|---|
| 62 | * Créer les méthodes RegisterSettingString, RegisterSettingBool, |
|---|
| 63 | RegisterSettingInt32, RegisterSettingInt64, RegisterSettingDouble et |
|---|
| 64 | RegisterSettingEnum comme suit : |
|---|
| 65 | RegisterSettingInt32 (const StringA& strName, int32 nDefaultValue=0, int32 nMinValue=0, int32 nMaxValue=0) |
|---|
| 66 | RegisterSettingEnum (const StringA& strName, int32 nDefaultValue=0, int32 nMinValue=0, int32 nMaxValue=0) |
|---|
| 67 | * Les settings seront stockées dans une multimap. |
|---|
| 68 | * Lors d'un Load(), l'implémentation du ConfigManager charge bien toutes |
|---|
| 69 | les valeurs trouvées puis ferme la source des données (file ou registry). |
|---|
| 70 | * Ajouter une méthode/option au manager pour créer |
|---|
| 71 | |
|---|
| 72 | * Autoconf / Automake |
|---|
| 73 | Avoir une version compilable perenne sur Linux aussi ! |
|---|
| 74 | Scripts de configurations doivent être utilisable pour du cross-compiling; |
|---|
| 75 | |
|---|
| 76 | * StringA |
|---|
| 77 | Implementer les Regex Posix et Perl. |
|---|
| 78 | Ajouter les variables de controle NCORE_ENABLE_STRINGA_REGEX_POSIX et |
|---|
| 79 | NCORE_ENABLE_STRINGA_REGEX_PERL pour pouvoir les (dés)activer à la |
|---|
| 80 | compilation. |
|---|
| 81 | |
|---|
| 82 | * StringA |
|---|
| 83 | Faire une méthode pour calculer un relative path par rapport à un autre |
|---|
| 84 | path. Exemple : Je donne PathA et PathB et la méthode renvoie PathC avec : |
|---|
| 85 | PathA = c:/dir/test/file.ext |
|---|
| 86 | PathB = c:/my/very/long/path/fileB.ext |
|---|
| 87 | PathC = ../../my/very/long/path/fileB.ext |
|---|
| 88 | WARNING : Faire attention aux UNC sous Windows ("//server/share") ! |
|---|
| 89 | |
|---|
| 90 | * nCorePrivate |
|---|
| 91 | * Passer les classes privées dans une nouveau namespace à part. |
|---|
| 92 | * using namespace nCore; namespace nCorePrivate { |
|---|
| 93 | |
|---|
| 94 | * System |
|---|
| 95 | Ajouter un paramètre de récursivité à FileSystem::Delete() à l'occasion :) |
|---|
| 96 | |
|---|
| 97 | * Codecs |
|---|
| 98 | Où implémenter les codecs ? |
|---|
| 99 | Les brancher sur un objet Streamer ? |
|---|
| 100 | Non, pas de codec à ce niveau : trop générique -> useless. |
|---|
| 101 | Donc pas de sous-système de codecs pour l'instant. |
|---|
| 102 | -> Conclusion : pour l'instant les besoins sont trop vagues... |
|---|
| 103 | Les préciser puis revoir le potentiel d'implémentation. |
|---|
| 104 | |
|---|
| 105 | * NetSmtpSender - CODEC support |
|---|
| 106 | * Setup d'un ou plusieurs CODEC pour l'envoi de fichiers joints. |
|---|