Changeset 1162:3d7c2150b7af


Ignore:
Timestamp:
02/22/09 14:15:38 (3 years ago)
Author:
niam
Branch:
libdodo
Message:

uncrustify

Files:
74 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/cgiBasicExchange.cc

    r1160 r1162  
    5555//------------------------------------------------------------------- 
    5656 
    57 char *exchange::getenv(const char *buf) 
     57char * 
     58exchange::getenv(const char *buf) 
    5859{ 
    5960        return ::getenv(buf); 
  • trunk/src/cgiBasicServer.cc

    r1160 r1162  
    5050//------------------------------------------------------------------- 
    5151 
    52 void server::serve(serverHandler func) 
     52void 
     53server::serve(serverHandler func) 
    5354{ 
    5455        exchange cSTD; 
  • trunk/src/cgiDialogue.cc

    r1160 r1162  
    236236//------------------------------------------------------------------- 
    237237 
    238 dialogue::operator exchange*() 
     238dialogue::operator exchange 
     239*() 
    239240{ 
    240241        printHeaders(); 
     
    245246//------------------------------------------------------------------- 
    246247 
    247 void dialogue::flush() 
     248void 
     249dialogue::flush() 
    248250{ 
    249251        cgiIO.flush(); 
     
    252254//------------------------------------------------------------------- 
    253255 
    254 void dialogue::printStream(const dodoString &buf) 
     256void 
     257dialogue::printStream(const dodoString &buf) 
    255258{ 
    256259        printHeaders(); 
     
    261264//------------------------------------------------------------------- 
    262265 
    263 dodoString dialogue::getCharset() 
     266dodoString 
     267dialogue::getCharset() 
    264268{ 
    265269        unsigned long temp; 
     
    280284} 
    281285 
    282 void dialogue::print(const dodoString &buf) 
     286void 
     287dialogue::print(const dodoString &buf) 
    283288{ 
    284289        printHeaders(); 
     
    290295//------------------------------------------------------------------- 
    291296 
    292 void dialogue::makeAuth() 
     297void 
     298dialogue::makeAuth() 
    293299{ 
    294300        dodoString &httpAuthorization = ENVIRONMENT[CGI_ENVIRONMENT_HTTPAUTHORIZATION]; 
     
    399405//------------------------------------------------------------------- 
    400406 
    401 void dialogue::requestAuthentication(const dodoString &realm, 
    402                                                                          short            type) 
     407void 
     408dialogue::requestAuthentication(const dodoString &realm, 
     409                                                                short            type) 
    403410{ 
    404411        returnCode = CGI_STATUSCODE_UNAUTHORIZED; 
     
    421428//------------------------------------------------------------------- 
    422429 
    423 __cgiAuthInfo dialogue::getAuthenticationInfo() 
     430__cgiAuthInfo 
     431dialogue::getAuthenticationInfo() 
    424432{ 
    425433        __cgiAuthInfo info = 
     
    433441//------------------------------------------------------------------- 
    434442 
    435 bool dialogue::isAuthenticated(const dodoString &user, 
    436                                                            const dodoString &password) 
     443bool 
     444dialogue::isAuthenticated(const dodoString &user, 
     445                                                  const dodoString &password) 
    437446{ 
    438447        if (authInfo.type == CGI_AUTHTYPE_BASIC) 
     
    492501//------------------------------------------------------------------- 
    493502 
    494 void dialogue::cleanTmp() 
     503void 
     504dialogue::cleanTmp() 
    495505{ 
    496506        dodoMap<dodoString, __cgiFile>::iterator i(FILES.begin()), j(FILES.end()); 
     
    506516//------------------------------------------------------------------- 
    507517 
    508 void dialogue::detectMethod() 
     518void 
     519dialogue::detectMethod() 
    509520{ 
    510521        if (tools::string::iequal(ENVIRONMENT[CGI_ENVIRONMENT_REQUESTMETHOD], "GET")) 
     
    527538//------------------------------------------------------------------- 
    528539 
    529 int dialogue::getMethod() const 
     540int 
     541dialogue::getMethod() const 
    530542{ 
    531543        return method; 
     
    534546//------------------------------------------------------------------- 
    535547 
    536 void dialogue::make(dodoStringMap    &val, 
    537                                         const dodoString &string, 
    538                                         const char       *delim) 
     548void 
     549dialogue::make(dodoStringMap    &val, 
     550                           const dodoString &string, 
     551                           const char       *delim) 
    539552{ 
    540553        dodoStringArray getPair = tools::misc::split(tools::code::decodeUrl(string), delim); 
     
    556569//------------------------------------------------------------------- 
    557570 
    558 void dialogue::makeEnv() 
     571void 
     572dialogue::makeEnv() 
    559573{ 
    560574        char *env; 
     
    612626//------------------------------------------------------------------- 
    613627 
    614 void dialogue::initHeaders(dodoMap<short, dodoString> &headers) 
     628void 
     629dialogue::initHeaders(dodoMap<short, dodoString> &headers) 
    615630{ 
    616631        if (headers.size() > 0) 
     
    627642//------------------------------------------------------------------- 
    628643 
    629 void dialogue::setResponseStatus(short code) 
     644void 
     645dialogue::setResponseStatus(short code) 
    630646{ 
    631647        if (code <= CGI_STATUSCODE_HTTPVERSIONNOTSUPPORTED) 
     
    641657//------------------------------------------------------------------- 
    642658 
    643 void dialogue::printHeaders() const 
     659void 
     660dialogue::printHeaders() const 
    644661{ 
    645662        if (headersPrinted) 
     
    691708//------------------------------------------------------------------- 
    692709 
    693 void dialogue::makeContent() 
     710void 
     711dialogue::makeContent() 
    694712{ 
    695713        unsigned long inSize = tools::string::stringToUL(ENVIRONMENT[CGI_ENVIRONMENT_CONTENTLENGTH]); 
     
    707725//------------------------------------------------------------------- 
    708726 
    709 void dialogue::makePost() 
     727void 
     728dialogue::makePost() 
    710729{ 
    711730        if (content.size() == 0) 
     
    843862                                                                        switch (errno) 
    844863                                                                        { 
    845                                                                                 case EACCES: 
    846                                                                                 case EISDIR: 
    847  
    848                                                                                         file.error = CGI_POSTFILEERR_ACCESS_DENY; 
    849  
    850                                                                                         break; 
    851  
    852                                                                                 case ENAMETOOLONG: 
    853                                                                                 case ENOTDIR: 
    854  
    855                                                                                         file.error = CGI_POSTFILEERR_BAD_FILE_NAME; 
    856  
    857                                                                                         break; 
    858  
    859                                                                                 case ENOMEM: 
    860  
    861                                                                                         file.error = CGI_POSTFILEERR_NO_SPACE; 
    862  
    863                                                                                         break; 
    864  
    865                                                                                 default: 
    866  
    867                                                                                         throw exception::basic(exception::ERRMODULE_CGIDIALOGUE, DIALOGUEEX_MAKEPOST, exception::ERRNO_ERRNO, errno, strerror(errno), __LINE__, __FILE__); 
     864                                                                        case EACCES: 
     865                                                                        case EISDIR: 
     866 
     867                                                                                file.error = CGI_POSTFILEERR_ACCESS_DENY; 
     868 
     869                                                                                break; 
     870 
     871                                                                        case ENAMETOOLONG: 
     872                                                                        case ENOTDIR: 
     873 
     874                                                                                file.error = CGI_POSTFILEERR_BAD_FILE_NAME; 
     875 
     876                                                                                break; 
     877 
     878                                                                        case ENOMEM: 
     879 
     880                                                                                file.error = CGI_POSTFILEERR_NO_SPACE; 
     881 
     882                                                                                break; 
     883 
     884                                                                        default: 
     885 
     886                                                                                throw exception::basic(exception::ERRMODULE_CGIDIALOGUE, DIALOGUEEX_MAKEPOST, exception::ERRNO_ERRNO, errno, strerror(errno), __LINE__, __FILE__); 
    868887                                                                        } 
    869888                                                                } 
     
    940959//------------------------------------------------------------------- 
    941960 
    942 dodoString dialogue::request(const dodoString &varName) 
     961dodoString 
     962dialogue::request(const dodoString &varName) 
    943963{ 
    944964        dodoStringMap::iterator item = GET.find(varName); 
     
    959979//------------------------------------------------------------------- 
    960980 
    961 void dialogue::setCookie(const dodoString &name, 
    962                                                  const dodoString &value, 
    963                                                  const dodoString &expires, 
    964                                                  const dodoString &path, 
    965                                                  const dodoString &domain, 
    966                                                  bool             secure) 
     981void 
     982dialogue::setCookie(const dodoString &name, 
     983                                        const dodoString &value, 
     984                                        const dodoString &expires, 
     985                                        const dodoString &path, 
     986                                        const dodoString &domain, 
     987                                        bool             secure) 
    967988{ 
    968989        __cgiCookie temp(secure); 
     
    978999//------------------------------------------------------------------- 
    9791000 
    980 void dialogue::setCookie(const __cgiCookie &cookie) 
     1001void 
     1002dialogue::setCookie(const __cgiCookie &cookie) 
    9811003{ 
    9821004        cookies.push_back(cookie); 
  • trunk/src/cgiFastExchange.cc

    r1160 r1162  
    5757//------------------------------------------------------------------- 
    5858 
    59 void exchange::flush() 
     59void 
     60exchange::flush() 
    6061{ 
    6162        if (FCGX_FFlush(request->out) == -1) 
     
    6768//------------------------------------------------------------------- 
    6869 
    69 char *exchange::getenv(const char *buf) 
     70char * 
     71exchange::getenv(const char *buf) 
    7072{ 
    7173        return FCGX_GetParam(buf, request->envp); 
     
    7476//------------------------------------------------------------------- 
    7577 
    76 int exchange::getInDescriptor() const 
     78int 
     79exchange::getInDescriptor() const 
    7780{ 
    7881        return -1; 
     
    8184//------------------------------------------------------------------- 
    8285 
    83 int exchange::getOutDescriptor() const 
     86int 
     87exchange::getOutDescriptor() const 
    8488{ 
    8589        return -1; 
     
    8892//------------------------------------------------------------------- 
    8993 
    90 void exchange::_read(char * const a_data) 
     94void 
     95exchange::_read(char * const a_data) 
    9196{ 
    9297        memset(a_data, '\0', inSize); 
     
    97102//------------------------------------------------------------------- 
    98103 
    99 void exchange::_write(const char *const buf) 
     104void 
     105exchange::_write(const char *const buf) 
    100106{ 
    101107        if (FCGX_PutStr(buf, outSize, request->out) == -1) 
     
    107113//------------------------------------------------------------------- 
    108114 
    109 void exchange::_writeStream(const char * const data) 
     115void 
     116exchange::_writeStream(const char * const data) 
    110117{ 
    111118        unsigned long _outSize = outSize; 
     
    134141//------------------------------------------------------------------- 
    135142 
    136 unsigned long exchange::_readStream(char * const data) 
     143unsigned long 
     144exchange::_readStream(char * const data) 
    137145{ 
    138146        unsigned long _inSize = inSize++; 
  • trunk/src/cgiFastServer.cc

    r1160 r1162  
    5454//------------------------------------------------------------------- 
    5555 
    56 void dummyStackThread(dodo::cgi::exchange &data) 
     56void 
     57dummyStackThread(dodo::cgi::exchange &data) 
    5758{ 
    5859} 
     
    116117#ifdef PTHREAD_EXT 
    117118 
    118 void *server::stackThread(void *data) 
     119void * 
     120server::stackThread(void *data) 
    119121{ 
    120122        FCGX_Request request; 
     
    164166//------------------------------------------------------------------- 
    165167 
    166 void server::serve(serverHandler func) 
     168void 
     169server::serve(serverHandler func) 
    167170{ 
    168171        if (!isFastCgi()) 
     
    228231//------------------------------------------------------------------- 
    229232 
    230 bool server::isFastCgi() 
     233bool 
     234server::isFastCgi() 
    231235{ 
    232236        return !FCGX_IsCGI(); 
  • trunk/src/dataBaseAccumulator.cc

    r1160 r1162  
    6363//------------------------------------------------------------------- 
    6464 
    65 void accumulator::callFunction(const dodoString      &name, 
    66                                                            const dodoStringArray &arguments, 
    67                                                            const dodoString      &as) 
     65void 
     66accumulator::callFunction(const dodoString      &name, 
     67                                                  const dodoStringArray &arguments, 
     68                                                  const dodoString      &as) 
    6869{ 
    6970        collectedData.qType = ACCUMULATOR_REQUEST_CALL_FUNCTION; 
     
    8788//------------------------------------------------------------------- 
    8889 
    89 void accumulator::callProcedure(const dodoString      &name, 
    90                                                                 const dodoStringArray &arguments) 
     90void 
     91accumulator::callProcedure(const dodoString      &name, 
     92                                                   const dodoStringArray &arguments) 
    9193{ 
    9294        collectedData.qType = ACCUMULATOR_REQUEST_CALL_PROCEDURE; 
     
    102104//------------------------------------------------------------------- 
    103105 
    104 void accumulator::select(const dodoString      &a_table, 
    105                                                  const dodoStringArray &a_fields, 
    106                                                  const dodoString      &a_where) 
     106void 
     107accumulator::select(const dodoString      &a_table, 
     108                                        const dodoStringArray &a_fields, 
     109                                        const dodoString      &a_where) 
    107110{ 
    108111        collectedData.qType = ACCUMULATOR_REQUEST_SELECT; 
     
    126129//------------------------------------------------------------------- 
    127130 
    128 void accumulator::selectAll(const dodoString &a_table, 
    129                                                         const dodoString &a_where) 
     131void 
     132accumulator::selectAll(const dodoString &a_table, 
     133                                           const dodoString &a_where) 
    130134{ 
    131135        collectedData.qType = ACCUMULATOR_REQUEST_SELECT; 
     
    150154//------------------------------------------------------------------- 
    151155 
    152 void accumulator::insert(const dodoString    &a_table, 
    153                                                  const dodoStringMap &a_fields) 
     156void 
     157accumulator::insert(const dodoString    &a_table, 
     158                                        const dodoStringMap &a_fields) 
    154159{ 
    155160        collectedData.qType = ACCUMULATOR_REQUEST_INSERT; 
     
    177182//------------------------------------------------------------------- 
    178183 
    179 void accumulator::insert(const dodoString               &a_table, 
    180                                                  const dodoArray<dodoStringMap> &a_fields) 
     184void 
     185accumulator::insert(const dodoString               &a_table, 
     186                                        const dodoArray<dodoStringMap> &a_fields) 
    181187{ 
    182188        collectedData.qType = ACCUMULATOR_REQUEST_INSERT; 
     
    217223//------------------------------------------------------------------- 
    218224 
    219 void accumulator::insert(const dodoString      &a_table, 
    220                                                  const dodoStringArray &a_values, 
    221                                                  const dodoStringArray &a_fields) 
     225void 
     226accumulator::insert(const dodoString      &a_table, 
     227                                        const dodoStringArray &a_values, 
     228                                        const dodoStringArray &a_fields) 
    222229{ 
    223230        collectedData.qType = ACCUMULATOR_REQUEST_INSERT; 
     
    237244//------------------------------------------------------------------- 
    238245 
    239 void accumulator::insert(const dodoString                 &a_table, 
    240                                                  const dodoArray<dodoStringArray> &a_values, 
    241                                                  const dodoStringArray            &a_fields) 
     246void 
     247accumulator::insert(const dodoString                 &a_table, 
     248                                        const dodoArray<dodoStringArray> &a_values, 
     249                                        const dodoStringArray            &a_fields) 
    242250{ 
    243251        collectedData.qType = ACCUMULATOR_REQUEST_INSERT; 
     
    259267//------------------------------------------------------------------- 
    260268 
    261 void accumulator::insertSelect(const dodoString      &a_tableTo, 
    262                                                            const dodoString      &a_tableFrom, 
    263                                                            const dodoStringArray &a_fieldsTo, 
    264                                                            const dodoStringArray &a_fieldsFrom, 
    265                                                            const dodoString      &a_where) 
     269void 
     270accumulator::insertSelect(const dodoString      &a_tableTo, 
     271                                                  const dodoString      &a_tableFrom, 
     272                                                  const dodoStringArray &a_fieldsTo, 
     273                                                  const dodoStringArray &a_fieldsFrom, 
     274                                                  const dodoString      &a_where) 
    266275{ 
    267276        collectedData.qType = ACCUMULATOR_REQUEST_INSERT_SELECT; 
     
    290299//------------------------------------------------------------------- 
    291300 
    292 void accumulator::update(const dodoString    &a_table, 
    293                                                  const dodoStringMap &a_fields, 
    294                                                  const dodoString    &a_where) 
     301void 
     302accumulator::update(const dodoString    &a_table, 
     303                                        const dodoStringMap &a_fields, 
     304                                        const dodoString    &a_where) 
    295305{ 
    296306        collectedData.qType = ACCUMULATOR_REQUEST_UPDATE; 
     
    327337//------------------------------------------------------------------- 
    328338 
    329 void accumulator::update(const dodoString      &a_table, 
    330                                                  const dodoStringArray &a_values, 
    331                                                  const dodoStringArray &a_fields, 
    332                                                  const dodoString      &a_where) 
     339void 
     340accumulator::update(const dodoString      &a_table, 
     341                                        const dodoStringArray &a_values, 
     342                                        const dodoStringArray &a_fields, 
     343                                        const dodoString      &a_where) 
    333344{ 
    334345        collectedData.qType = ACCUMULATOR_REQUEST_UPDATE; 
     
    356367//------------------------------------------------------------------- 
    357368 
    358 void accumulator::del(const dodoString &a_table, 
    359                                           const dodoString &a_where) 
     369void 
     370accumulator::del(const dodoString &a_table, 
     371                                 const dodoString &a_where) 
    360372{ 
    361373        collectedData.qType = ACCUMULATOR_REQUEST_DELETE; 
     
    380392//------------------------------------------------------------------- 
    381393 
    382 void accumulator::subquery(const dodoStringArray &sub, 
    383                                                    int                   type) 
     394void 
     395accumulator::subquery(const dodoStringArray &sub, 
     396                                          int                   type) 
    384397{ 
    385398        collectedData.qType = type; 
     
    390403//------------------------------------------------------------------- 
    391404 
    392 void accumulator::limit(unsigned int a_number) 
     405void 
     406accumulator::limit(unsigned int a_number) 
    393407{ 
    394408        addFlag(collectedData.qShift, 1 << ACCUMULATOR_ADDREQUEST_LIMIT); 
     
    398412//------------------------------------------------------------------- 
    399413 
    400 void accumulator::offset(unsigned int a_number) 
     414void 
     415accumulator::offset(unsigned int a_number) 
    401416{ 
    402417        addFlag(collectedData.qShift, 1 << ACCUMULATOR_ADDREQUEST_OFFSET); 
     
    407422//------------------------------------------------------------------- 
    408423 
    409 void accumulator::order(const dodoString &order) 
     424void 
     425accumulator::order(const dodoString &order) 
    410426{ 
    411427        collectedData.order = order; 
     
    416432//------------------------------------------------------------------- 
    417433 
    418 void accumulator::group(const dodoString &group) 
     434void 
     435accumulator::group(const dodoString &group) 
    419436{ 
    420437        collectedData.group = group; 
     
    425442//------------------------------------------------------------------- 
    426443 
    427 void accumulator::having(const dodoString &having) 
     444void 
     445accumulator::having(const dodoString &having) 
    428446{ 
    429447        collectedData.having = having; 
     
    434452//------------------------------------------------------------------- 
    435453 
    436 void accumulator::join(const dodoString &table, 
    437                                            int              type, 
    438                                            const dodoString &condition) 
     454void 
     455accumulator::join(const dodoString &table, 
     456                                  int              type, 
     457                                  const dodoString &condition) 
    439458{ 
    440459        collectedData.joinTables.push_back(table); 
     
    447466//------------------------------------------------------------------- 
    448467 
    449 void accumulator::cleanCollected() 
     468void 
     469accumulator::cleanCollected() 
    450470{ 
    451471        collectedData.qType = -1; 
  • trunk/src/dataBaseMysql.cc

    r1160 r1162  
    112112//------------------------------------------------------------------- 
    113113 
    114 void mysql::connectSettings(unsigned long           a_type, 
    115                                                         const __mysqlSslOptions &options) 
     114void 
     115mysql::connectSettings(unsigned long           a_type, 
     116                                           const __mysqlSslOptions &options) 
    116117{ 
    117118        if (mysqlHandle == NULL) 
     
    135136//------------------------------------------------------------------- 
    136137 
    137 void mysql::connect(const __connectionInfo &info) 
     138void 
     139mysql::connect(const __connectionInfo &info) 
    138140{ 
    139141        collectedData.dbInfo = info; 
     
    189191//------------------------------------------------------------------- 
    190192 
    191 void mysql::disconnect() 
     193void 
     194mysql::disconnect() 
    192195{ 
    193196        if (mysqlHandle != NULL) 
     
    216219//------------------------------------------------------------------- 
    217220 
    218 dodoArray<dodo::dodoStringArray>mysql::fetchRows() const 
     221dodoArray<dodo::dodoStringArray> 
     222mysql::fetchRows() const 
    219223{ 
    220224        if (mysqlHandle == NULL) 
     
    283287//------------------------------------------------------------------- 
    284288 
    285 dodo::dodoStringArray mysql::fetchFields() const 
     289dodo::dodoStringArray 
     290mysql::fetchFields() const 
    286291{ 
    287292        if (mysqlHandle == NULL) 
     
    325330//------------------------------------------------------------------- 
    326331 
    327 __tuples mysql::fetch() const 
     332__tuples 
     333mysql::fetch() const 
    328334{ 
    329335        return __tuples(fetchRows(), fetchFields()); 
     
    332338//------------------------------------------------------------------- 
    333339 
    334 unsigned int mysql::rowsCount() const 
     340unsigned int 
     341mysql::rowsCount() const 
    335342{ 
    336343        if (mysqlHandle == NULL) 
     
    351358//------------------------------------------------------------------- 
    352359 
    353 unsigned int mysql::fieldsCount() const 
     360unsigned int 
     361mysql::fieldsCount() const 
    354362{ 
    355363        if (mysqlHandle == NULL) 
     
    370378//------------------------------------------------------------------- 
    371379 
    372 unsigned int mysql::affectedRowsCount() const 
     380unsigned int 
     381mysql::affectedRowsCount() const 
    373382{ 
    374383        if (mysqlHandle == NULL) 
     
    389398//------------------------------------------------------------------- 
    390399 
    391 void mysql::getFieldsTypes(const dodoString &table) 
     400void 
     401mysql::getFieldsTypes(const dodoString &table) 
    392402{ 
    393403        if (mysqlHandle == NULL) 
     
    495505//------------------------------------------------------------------- 
    496506 
    497 void mysql::exec(const dodoString &query, 
    498                                  bool             result) 
     507void 
     508mysql::exec(const dodoString &query, 
     509                        bool             result) 
    499510{ 
    500511        if (mysqlHandle == NULL) 
     
    562573//------------------------------------------------------------------- 
    563574 
    564 void mysql::setCharset(const dodoString &charset) 
     575void 
     576mysql::setCharset(const dodoString &charset) 
    565577{ 
    566578        if (mysqlHandle == NULL) 
     
    574586//------------------------------------------------------------------- 
    575587 
    576 void mysql::setConnectTimeout(unsigned int time) 
     588void 
     589mysql::setConnectTimeout(unsigned int time) 
    577590{ 
    578591        if (mysqlHandle == NULL) 
     
    586599//------------------------------------------------------------------- 
    587600 
    588 dodoString mysql::getCharset() const 
     601dodoString 
     602mysql::getCharset() const 
    589603{ 
    590604        if (mysqlHandle == NULL) 
     
    598612//------------------------------------------------------------------- 
    599613 
    600 dodo::dodoStringMapArray mysql::fetchFieldsToRows() const 
     614dodo::dodoStringMapArray 
     615mysql::fetchFieldsToRows() const 
    601616{ 
    602617        if (mysqlHandle == NULL) 
  • trunk/src/dataBasePostgresql.cc

    r1160 r1162  
    146146//------------------------------------------------------------------- 
    147147 
    148 void postgresql::connect(const __connectionInfo &info) 
     148void 
     149postgresql::connect(const __connectionInfo &info) 
    149150{ 
    150151        collectedData.dbInfo = info; 
     
    193194//------------------------------------------------------------------- 
    194195 
    195 void postgresql::disconnect() 
     196void 
     197postgresql::disconnect() 
    196198{ 
    197199        if (pgHandle != NULL) 
     
    220222//------------------------------------------------------------------- 
    221223 
    222 dodoArray<dodo::dodoStringArray>postgresql::fetchRows() const 
     224dodoArray<dodo::dodoStringArray> 
     225postgresql::fetchRows() const 
    223226{ 
    224227        if (pgHandle == NULL) 
     
    281284//------------------------------------------------------------------- 
    282285 
    283 dodo::dodoStringArray postgresql::fetchFields() const 
     286dodo::dodoStringArray 
     287postgresql::fetchFields() const 
    284288{ 
    285289        if (pgHandle == NULL) 
     
    320324//------------------------------------------------------------------- 
    321325 
    322 __tuples postgresql::fetch() const 
     326__tuples 
     327postgresql::fetch() const 
    323328{ 
    324329        return __tuples(fetchRows(), fetchFields()); 
     
    327332//------------------------------------------------------------------- 
    328333 
    329 unsigned int postgresql::rowsCount() const 
     334unsigned int 
     335postgresql::rowsCount() const 
    330336{ 
    331337        if (pgHandle == NULL) 
     
    346352//------------------------------------------------------------------- 
    347353 
    348 unsigned int postgresql::fieldsCount() const 
     354unsigned int 
     355postgresql::fieldsCount() const 
    349356{ 
    350357        if (pgHandle == NULL) 
     
    365372//------------------------------------------------------------------- 
    366373 
    367 unsigned int postgresql::affectedRowsCount() const 
     374unsigned int 
     375postgresql::affectedRowsCount() const 
    368376{ 
    369377        if (pgHandle == NULL) 
     
    384392//------------------------------------------------------------------- 
    385393 
    386 void postgresql::getFieldsTypes(const dodoString &table) 
     394void 
     395postgresql::getFieldsTypes(const dodoString &table) 
    387396{ 
    388397        if (pgHandle == NULL) 
     
    418427        switch (status) 
    419428        { 
    420                 case PGRES_EMPTY_QUERY: 
    421                 case PGRES_BAD_RESPONSE: 
    422                 case PGRES_NONFATAL_ERROR: 
    423                 case PGRES_FATAL_ERROR: 
    424  
    425                         throw exception::basic(exception::ERRMODULE_DATABASEPOSTGRESQL, POSTGRESQLEX_GETFIELDSTYPES, exception::ERRNO_MYSQL, status, PQerrorMessage(pgHandle), __LINE__, __FILE__); 
     429        case PGRES_EMPTY_QUERY: 
     430        case PGRES_BAD_RESPONSE: 
     431        case PGRES_NONFATAL_ERROR: 
     432        case PGRES_FATAL_ERROR: 
     433 
     434                throw exception::basic(exception::ERRMODULE_DATABASEPOSTGRESQL, POSTGRESQLEX_GETFIELDSTYPES, exception::ERRNO_MYSQL, status, PQerrorMessage(pgHandle), __LINE__, __FILE__); 
    426435        } 
    427436 
     
    502511//------------------------------------------------------------------- 
    503512 
    504 void postgresql::exec(const dodoString &query, 
    505                                           bool             result) 
     513void 
     514postgresql::exec(const dodoString &query, 
     515                                 bool             result) 
    506516{ 
    507517        if (pgHandle == NULL) 
     
    566576        switch (status) 
    567577        { 
    568                 case PGRES_EMPTY_QUERY: 
    569                 case PGRES_BAD_RESPONSE: 
    570                 case PGRES_NONFATAL_ERROR: 
    571                 case PGRES_FATAL_ERROR: 
    572  
    573                         throw exception::basic(exception::ERRMODULE_DATABASEPOSTGRESQL, POSTGRESQLEX_EXEC, exception::ERRNO_MYSQL, status, PQerrorMessage(pgHandle), __LINE__, __FILE__); 
     578        case PGRES_EMPTY_QUERY: 
     579        case PGRES_BAD_RESPONSE: 
     580        case PGRES_NONFATAL_ERROR: 
     581        case PGRES_FATAL_ERROR: 
     582 
     583                throw exception::basic(exception::ERRMODULE_DATABASEPOSTGRESQL, POSTGRESQLEX_EXEC, exception::ERRNO_MYSQL, status, PQerrorMessage(pgHandle), __LINE__, __FILE__); 
    574584        } 
    575585 
     
    586596//------------------------------------------------------------------- 
    587597 
    588 void postgresql::updateCollect() 
     598void 
     599postgresql::updateCollect() 
    589600{ 
    590601        request = statements[SQLCONSTRUCTOR_STATEMENT_UPDATE]; 
     
    711722//------------------------------------------------------------------- 
    712723 
    713 void postgresql::insertCollect() 
     724void 
     725postgresql::insertCollect() 
    714726{ 
    715727        request = statements[SQLCONSTRUCTOR_STATEMENT_INSERT]; 
     
    904916//------------------------------------------------------------------- 
    905917 
    906 dodo::dodoStringMapArray postgresql::fetchFieldsToRows() const 
     918dodo::dodoStringMapArray 
     919postgresql::fetchFieldsToRows() const 
    907920{ 
    908921        dodoStringMapArray rowsFields; 
     
    947960//------------------------------------------------------------------- 
    948961 
    949 void postgresql::setCharset(const dodoString &charset) 
     962void 
     963postgresql::setCharset(const dodoString &charset) 
    950964{ 
    951965        if (pgHandle == NULL) 
     
    963977//------------------------------------------------------------------- 
    964978 
    965 dodoString postgresql::getCharset() const 
     979dodoString 
     980postgresql::getCharset() const 
    966981{ 
    967982        if (pgHandle == NULL) 
  • trunk/src/dataBaseSqlConstructor.cc

    r1160 r1162  
    105105//------------------------------------------------------------------- 
    106106 
    107 void constructor::setFieldType(const dodoString &table, 
    108                                                            const dodoString &field, 
    109                                                            short            type) 
     107void 
     108constructor::setFieldType(const dodoString &table, 
     109                                                  const dodoString &field, 
     110                                                  short            type) 
    110111{ 
    111112        fieldTypes[collectedData.dbInfo.db + statements[SQLCONSTRUCTOR_STATEMENT_COLON] + table][field] = type; 
     
    114115//------------------------------------------------------------------- 
    115116 
    116 void constructor::additionalCollect(unsigned int     qTypeTocheck, 
    117                                                                         const dodoString &collectedString) 
     117void 
     118constructor::additionalCollect(unsigned int     qTypeTocheck, 
     119                                                           const dodoString &collectedString) 
    118120{ 
    119121        if (collectedData.qShift == ACCUMULATOR_NONE) 
     
    131133//------------------------------------------------------------------- 
    132134 
    133 void constructor::callFunctionCollect() 
     135void 
     136constructor::callFunctionCollect() 
    134137{ 
    135138        request = statements[SQLCONSTRUCTOR_STATEMENT_SELECT]; 
     
    142145//------------------------------------------------------------------- 
    143146 
    144 void constructor::callProcedureCollect() 
     147void 
     148constructor::callProcedureCollect() 
    145149{ 
    146150        request = statements[SQLCONSTRUCTOR_STATEMENT_CALL]; 
     
    153157//------------------------------------------------------------------- 
    154158 
    155 void constructor::selectCollect() 
     159void 
     160constructor::selectCollect() 
    156161{ 
    157162        if (collectedData.table.size() > 0) 
     
    171176//------------------------------------------------------------------- 
    172177 
    173 void constructor::insertCollect() 
     178void 
     179constructor::insertCollect() 
    174180{ 
    175181        request = statements[SQLCONSTRUCTOR_STATEMENT_INSERT]; 
     
    302308//------------------------------------------------------------------- 
    303309 
    304 void constructor::insertSelectCollect() 
     310void 
     311constructor::insertSelectCollect() 
    305312{ 
    306313        dodoString fieldsPartTo = tools::misc::join(collectedData.fields, statements[SQLCONSTRUCTOR_STATEMENT_COMA]); 
     
    327334//------------------------------------------------------------------- 
    328335 
    329 void constructor::updateCollect() 
     336void 
     337constructor::updateCollect() 
    330338{ 
    331339        request = statements[SQLCONSTRUCTOR_STATEMENT_UPDATE]; 
     
    422430//------------------------------------------------------------------- 
    423431 
    424 void constructor::delCollect() 
     432void 
     433constructor::delCollect() 
    425434{ 
    426435        request = statements[SQLCONSTRUCTOR_STATEMENT_DELETE]; 
     
    431440//------------------------------------------------------------------- 
    432441 
    433 void constructor::subCollect() 
     442void 
     443constructor::subCollect() 
    434444{ 
    435445        request = tools::misc::join(collectedData.subQueries, sqlQStArr[collectedData.qType - 1]); 
     
    438448//------------------------------------------------------------------- 
    439449 
    440 void constructor::joinCollect() 
     450void 
     451constructor::joinCollect() 
    441452{ 
    442453        dodoStringArray::iterator i = collectedData.joinTables.begin(), j = collectedData.joinTables.end(); 
     
    466477//------------------------------------------------------------------- 
    467478 
    468 dodoString constructor::queryCollect() 
     479dodoString 
     480constructor::queryCollect() 
    469481{ 
    470482        bool additionalActions = true; 
     
    473485        switch (collectedData.qType) 
    474486        { 
    475                 case ACCUMULATOR_REQUEST_SELECT: 
    476  
    477                         selectCollect(); 
    478                         selectAction = true; 
    479  
    480                         break; 
    481  
    482                 case ACCUMULATOR_REQUEST_INSERT: 
    483  
    484                         insertCollect(); 
    485                         additionalActions = false; 
    486  
    487                         break; 
    488  
    489                 case ACCUMULATOR_REQUEST_UPDATE: 
    490  
    491                         updateCollect(); 
    492  
    493                         break; 
    494  
    495                 case ACCUMULATOR_REQUEST_DELETE: 
    496  
    497                         delCollect(); 
    498  
    499                         break; 
    500  
    501                 case ACCUMULATOR_REQUEST_INSERT_SELECT: 
    502  
    503                         insertSelectCollect(); 
    504                         selectAction = true; 
    505  
    506                         break; 
    507  
    508                 case SUBREQUEST_UNION: 
    509                 case SUBREQUEST_UNION_ALL: 
    510                 case SUBREQUEST_MINUS: 
    511                 case SUBREQUEST_INTERSECT: 
    512  
    513                         subCollect(); 
    514                         additionalActions = false; 
    515  
    516                         break; 
    517  
    518                 case ACCUMULATOR_REQUEST_CALL_FUNCTION: 
    519  
    520                         callFunctionCollect(); 
    521                         selectAction = true; 
    522  
    523                         break; 
    524  
    525                 case ACCUMULATOR_REQUEST_CALL_PROCEDURE: 
    526  
    527                         callProcedureCollect(); 
    528  
    529                         break; 
    530  
    531                 default: 
    532  
    533                         additionalActions = false; 
     487        case ACCUMULATOR_REQUEST_SELECT: 
     488 
     489                selectCollect(); 
     490                selectAction = true; 
     491 
     492                break; 
     493 
     494        case ACCUMULATOR_REQUEST_INSERT: 
     495 
     496                insertCollect(); 
     497                additionalActions = false; 
     498 
     499                break; 
     500 
     501        case ACCUMULATOR_REQUEST_UPDATE: 
     502 
     503                updateCollect(); 
     504 
     505                break; 
     506 
     507        case ACCUMULATOR_REQUEST_DELETE: 
     508 
     509                delCollect(); 
     510 
     511                break; 
     512 
     513        case ACCUMULATOR_REQUEST_INSERT_SELECT: 
     514 
     515                insertSelectCollect(); 
     516                selectAction = true; 
     517 
     518                break; 
     519 
     520        case SUBREQUEST_UNION: 
     521        case SUBREQUEST_UNION_ALL: 
     522        case SUBREQUEST_MINUS: 
     523        case SUBREQUEST_INTERSECT: 
     524 
     525                subCollect(); 
     526                additionalActions = false; 
     527 
     528                break; 
     529 
     530        case ACCUMULATOR_REQUEST_CALL_FUNCTION: 
     531 
     532                callFunctionCollect(); 
     533                selectAction = true; 
     534 
     535                break; 
     536 
     537        case ACCUMULATOR_REQUEST_CALL_PROCEDURE: 
     538 
     539                callProcedureCollect(); 
     540 
     541                break; 
     542 
     543        default: 
     544 
     545                additionalActions = false; 
    534546        } 
    535547 
     
    557569//------------------------------------------------------------------- 
    558570 
    559 dodoString constructor::escapeFields(const dodoString &data) 
     571dodoString 
     572constructor::escapeFields(const dodoString &data) 
    560573{ 
    561574        dodoString temp; 
     
    587600//------------------------------------------------------------------- 
    588601 
    589 dodoString constructor::joinFields(const dodoStringArray &fields, 
    590                                                                    const dodoString      &separator, 
    591                                                                    const dodoString      &frame, 
    592                                                                    int                   limit) 
     602dodoString 
     603constructor::joinFields(const dodoStringArray &fields, 
     604                                                const dodoString      &separator, 
     605                                                const dodoString      &frame, 
     606                                                int                   limit) 
    593607{ 
    594608        int k(0); 
  • trunk/src/dataBaseSqlite.cc

    r1160 r1162  
    8888//------------------------------------------------------------------- 
    8989 
    90 void sqlite::connect(const __connectionInfo &info) 
     90void 
     91sqlite::connect(const __connectionInfo &info) 
    9192{ 
    9293        collectedData.dbInfo = info; 
     
    127128//------------------------------------------------------------------- 
    128129 
    129 void sqlite::disconnect() 
     130void 
     131sqlite::disconnect() 
    130132{ 
    131133        if (sqliteHandle != NULL) 
     
    157159//------------------------------------------------------------------- 
    158160 
    159 dodoArray<dodo::dodoStringArray>sqlite::fetchRows() const 
     161dodoArray<dodo::dodoStringArray> 
     162sqlite::fetchRows() const 
    160163{ 
    161164        if (sqliteHandle == NULL) 
     
    193196                switch (sqlite3_step(sqliteResult)) 
    194197                { 
    195                         case SQLITE_BUSY: 
    196  
    197                                 continue; 
    198  
    199                         case SQLITE_DONE: 
    200  
    201                                 iterate = false; 
    202  
    203                                 break; 
    204  
    205                         case SQLITE_ERROR: 
    206  
    207                                 throw exception::basic(exception::ERRMODULE_DATABASESQLITE, SQLITEEX_FETCHROWS, exception::ERRNO_SQLITE, sqlite3_errcode(sqliteHandle), sqlite3_errmsg(sqliteHandle), __LINE__, __FILE__); 
    208  
    209                         case SQLITE_ROW: 
    210  
    211                                 rowsPart.clear(); 
     198                case SQLITE_BUSY: 
     199 
     200                        continue; 
     201 
     202                case SQLITE_DONE: 
     203 
     204                        iterate = false; 
     205 
     206                        break; 
     207 
     208                case SQLITE_ERROR: 
     209 
     210                        throw exception::basic(exception::ERRMODULE_DATABASESQLITE, SQLITEEX_FETCHROWS, exception::ERRNO_SQLITE, sqlite3_errcode(sqliteHandle), sqlite3_errmsg(sqliteHandle), __LINE__, __FILE__); 
     211 
     212                case SQLITE_ROW: 
     213 
     214                        rowsPart.clear(); 
    212215 
    213216#ifndef USE_DEQUE 
    214                                 rowsPart.reserve(numFields); 
    215 #endif 
    216  
    217                                 for (i = 0; i < numFields; ++i) 
    218                                 { 
    219                                         switch (sqlite3_column_type(sqliteResult, i)) 
    220                                         { 
    221                                                 case SQLITE_INTEGER: 
    222  
    223                                                         rowsPart.push_back(tools::string::iToString(sqlite3_column_int(sqliteResult, i))); 
    224  
    225                                                         break; 
    226  
    227                                                 case SQLITE_FLOAT: 
    228  
    229                                                         rowsPart.push_back(tools::string::dToString(sqlite3_column_double(sqliteResult, i))); 
    230  
    231                                                         break; 
    232  
    233                                                 case SQLITE_TEXT: 
    234  
    235                                                         rowsPart.push_back(dodoString((const char *)sqlite3_column_text(sqliteResult, i), sqlite3_column_bytes(sqliteResult, i))); 
    236  
    237                                                         break; 
    238  
    239                                                 case SQLITE_BLOB: 
    240  
    241                                                         rowsPart.push_back(dodoString((const char *)sqlite3_column_blob(sqliteResult, i), sqlite3_column_bytes(sqliteResult, i))); 
    242  
    243                                                         break; 
    244  
    245                                                 case SQLITE_NULL: 
    246                                                 default: 
    247  
    248                                                         rowsPart.push_back(statements[SQLCONSTRUCTOR_STATEMENT_NULL]); 
    249  
    250                                                         break; 
    251                                         } 
    252                                 } 
    253  
    254                                 rows.push_back(rowsPart); 
    255  
    256                                 break; 
     217                        rowsPart.reserve(numFields); 
     218#endif 
     219 
     220                        for (i = 0; i < numFields; ++i) 
     221                        { 
     222                                switch (sqlite3_column_type(sqliteResult, i)) 
     223                                { 
     224                                case SQLITE_INTEGER: 
     225 
     226                                        rowsPart.push_back(tools::string::iToString(sqlite3_column_int(sqliteResult, i))); 
     227 
     228                                        break; 
     229 
     230                                case SQLITE_FLOAT: 
     231 
     232                                        rowsPart.push_back(tools::string::dToString(sqlite3_column_double(sqliteResult, i))); 
     233 
     234                                        break; 
     235 
     236                                case SQLITE_TEXT: 
     237 
     238                                        rowsPart.push_back(dodoString((const char *)sqlite3_column_text(sqliteResult, i), sqlite3_column_bytes(sqliteResult, i))); 
     239 
     240                                        break; 
     241 
     242                                case SQLITE_BLOB: 
     243 
     244                                        rowsPart.push_back(dodoString((const char *)sqlite3_column_blob(sqliteResult, i), sqlite3_column_bytes(sqliteResult, i))); 
     245 
     246                                        break; 
     247 
     248                                case SQLITE_NULL: 
     249                                default: 
     250 
     251                                        rowsPart.push_back(statements[SQLCONSTRUCTOR_STATEMENT_NULL]); 
     252 
     253                                        break; 
     254                                } 
     255                        } 
     256 
     257                        rows.push_back(rowsPart); 
     258 
     259                        break; 
    257260                } 
    258261        } 
     
    267270//------------------------------------------------------------------- 
    268271 
    269 dodo::dodoStringArray sqlite::fetchFields() const 
     272dodo::dodoStringArray 
     273sqlite::fetchFields() const 
    270274{ 
    271275        if (sqliteHandle == NULL) 
     
    306310//------------------------------------------------------------------- 
    307311 
    308 __tuples sqlite::fetch() const 
     312__tuples 
     313sqlite::fetch() const 
    309314{ 
    310315        return __tuples(fetchRows(), fetchFields()); 
     
    313318//------------------------------------------------------------------- 
    314319 
    315 unsigned int sqlite::rowsCount() const 
     320unsigned int 
     321sqlite::rowsCount() const 
    316322{ 
    317323        if (sqliteHandle == NULL) 
     
    333339                        switch (result) 
    334340                        { 
    335                                 case SQLITE_BUSY: 
    336  
    337                                         continue; 
    338  
    339                                 case SQLITE_DONE: 
    340  
    341                                         iterate = false; 
    342  
    343                                         break; 
    344  
    345                                 case SQLITE_ERROR: 
    346  
    347                                         throw exception::basic(exception::ERRMODULE_DATABASESQLITE, SQLITEEX_FETCHROWS, exception::ERRNO_SQLITE, sqlite3_errcode(sqliteHandle), sqlite3_errmsg(sqliteHandle), __LINE__, __FILE__); 
    348  
    349                                 case SQLITE_ROW: 
    350  
    351                                         ++numRows; 
    352  
    353                                         break; 
     341                        case SQLITE_BUSY: 
     342 
     343                                continue; 
     344 
     345                        case SQLITE_DONE: 
     346 
     347                                iterate = false; 
     348 
     349                                break; 
     350 
     351                        case SQLITE_ERROR: 
     352 
     353                                throw exception::basic(exception::ERRMODULE_DATABASESQLITE, SQLITEEX_FETCHROWS, exception::ERRNO_SQLITE, sqlite3_errcode(sqliteHandle), sqlite3_errmsg(sqliteHandle), __LINE__, __FILE__); 
     354 
     355                        case SQLITE_ROW: 
     356 
     357                                ++numRows; 
     358 
     359                                break; 
    354360                        } 
    355361                } 
     
    365371//------------------------------------------------------------------- 
    366372 
    367 unsigned int sqlite::fieldsCount() const 
     373unsigned int 
     374sqlite::fieldsCount() const 
    368375{ 
    369376        if (sqliteHandle == NULL) 
     
    384391//------------------------------------------------------------------- 
    385392 
    386 unsigned int sqlite::affectedRowsCount() const 
     393unsigned int 
     394sqlite::affectedRowsCount() const 
    387395{ 
    388396        if (sqliteHandle == NULL) 
     
    403411//------------------------------------------------------------------- 
    404412 
    405 void sqlite::getFieldsTypes(const dodoString &table) 
     413void 
     414sqlite::getFieldsTypes(const dodoString &table) 
    406415{ 
    407416        if (sqliteHandle == NULL) 
     
    558567                switch (sqlite3_step(sqliteResult)) 
    559568                { 
    560                         case SQLITE_BUSY: 
    561  
    562                                 continue; 
    563  
    564                         case SQLITE_DONE: 
    565  
    566                                 iterate = false; 
    567  
    568                                 break; 
    569  
    570                         case SQLITE_ERROR: 
    571  
    572                                 throw exception::basic(exception::ERRMODULE_DATABASESQLITE, SQLITEEX_GETFIELDSTYPES, exception::ERRNO_SQLITE, sqlite3_errcode(sqliteHandle), sqlite3_errmsg(sqliteHandle), __LINE__, __FILE__); 
    573  
    574                         case SQLITE_ROW: 
    575  
    576                                 columnName = (const char *)sqlite3_column_text(sqliteResult, 1); 
    577                                 columnType = (const char *)sqlite3_column_text(sqliteResult, 2); 
    578  
    579                                 field = types->second.find(columnName); 
    580  
    581                                 if (field == fieldsEnd) 
    582                                 { 
    583                                         if (strcasestr(columnType, "char") != NULL || 
    584                                                 strcasestr(columnType, "date") != NULL || 
    585                                                 strcasestr(columnType, "time") != NULL || 
    586                                                 strcasestr(columnType, "text") != NULL || 
    587                                                 strcasestr(columnType, "enum") != NULL || 
    588                                                 strcasestr(columnType, "set") != NULL) 
    589                                         { 
    590                                                 types->second.insert(make_pair(dodoString(columnName), sql::FIELDTYPE_TEXT)); 
     569                case SQLITE_BUSY: 
     570 
     571                        continue; 
     572 
     573                case SQLITE_DONE: 
     574 
     575                        iterate = false; 
     576 
     577                        break; 
     578 
     579                case SQLITE_ERROR: 
     580 
     581                        throw exception::basic(exception::ERRMODULE_DATABASESQLITE, SQLITEEX_GETFIELDSTYPES, exception::ERRNO_SQLITE, sqlite3_errcode(sqliteHandle), sqlite3_errmsg(sqliteHandle), __LINE__, __FILE__); 
     582 
     583                case SQLITE_ROW: 
     584 
     585                        columnName = (const char *)sqlite3_column_text(sqliteResult, 1); 
     586                        columnType = (const char *)sqlite3_column_text(sqliteResult, 2); 
     587 
     588                        field = types->second.find(columnName); 
     589 
     590                        if (field == fieldsEnd) 
     591                        { 
     592                                if (strcasestr(columnType, "char") != NULL || 
     593                                        strcasestr(columnType, "date") != NULL || 
     594                                        strcasestr(columnType, "time") != NULL || 
     595                                        strcasestr(columnType, "text") != NULL || 
     596                                        strcasestr(columnType, "enum") != NULL || 
     597                                        strcasestr(columnType, "set") != NULL) 
     598                                { 
     599                                        types->second.insert(make_pair(dodoString(columnName), sql::FIELDTYPE_TEXT)); 
     600                                } 
     601                                else 
     602                                { 
     603                                        if (strcasestr(columnType, "blob") != NULL) 
     604                                        { 
     605                                                types->second.insert(make_pair(dodoString(columnName), sql::FIELDTYPE_BINARY)); 
    591606                                        } 
    592607                                        else 
    593608                                        { 
    594                                                 if (strcasestr(columnType, "blob") != NULL) 
    595                                                 { 
    596                                                         types->second.insert(make_pair(dodoString(columnName), sql::FIELDTYPE_BINARY)); 
    597                                                 } 
    598                                                 else 
    599                                                 { 
    600                                                         types->second.insert(make_pair(dodoString(columnName), sql::FIELDTYPE_NUMERIC)); 
    601                                                 } 
    602                                         } 
     609                                                types->second.insert(make_pair(dodoString(columnName), sql::FIELDTYPE_NUMERIC)); 
     610                                        } 
     611                                } 
     612                        } 
     613                        else 
     614                        { 
     615                                if (strcasestr(columnType, "char") != NULL || 
     616                                        strcasestr(columnType, "date") != NULL || 
     617                                        strcasestr(columnType, "time") != NULL || 
     618                                        strcasestr(columnType, "text") != NULL || 
     619                                        strcasestr(columnType, "enum") != NULL || 
     620                                        strcasestr(columnType, "set") != NULL) 
     621                                { 
     622                                        field->second = sql::FIELDTYPE_TEXT; 
    603623                                } 
    604624                                else 
    605625                                { 
    606                                         if (strcasestr(columnType, "char") != NULL || 
    607                                                 strcasestr(columnType, "date") != NULL || 
    608                                                 strcasestr(columnType, "time") != NULL || 
    609                                                 strcasestr(columnType, "text") != NULL || 
    610                                                 strcasestr(columnType, "enum") != NULL || 
    611                                                 strcasestr(columnType, "set") != NULL) 
    612                                         { 
    613                                                 field->second = sql::FIELDTYPE_TEXT; 
     626                                        if (strcasestr(columnType, "blob") != NULL) 
     627                                        { 
     628                                                field->second = sql::FIELDTYPE_BINARY; 
    614629                                        } 
    615630                                        else 
    616631                                        { 
    617                                                 if (strcasestr(columnType, "blob") != NULL) 
    618                                                 { 
    619                                                         field->second = sql::FIELDTYPE_BINARY; 
    620                                                 } 
    621                                                 else 
    622                                                 { 
    623                                                         field->second = sql::FIELDTYPE_NUMERIC; 
    624                                                 } 
    625                                         } 
    626                                 } 
    627  
    628                                 break; 
     632                                                field->second = sql::FIELDTYPE_NUMERIC; 
     633                                        } 
     634                                } 
     635                        } 
     636 
     637                        break; 
    629638                } 
    630639        } 
     
    643652//------------------------------------------------------------------- 
    644653 
    645 void sqlite::exec(const dodoString &query, 
    646                                   bool             result) 
     654void 
     655sqlite::exec(const dodoString &query, 
     656                         bool             result) 
    647657{ 
    648658        if (sqliteHandle == NULL) 
     
    715725//------------------------------------------------------------------- 
    716726 
    717 void sqlite::updateCollect() 
     727void 
     728sqlite::updateCollect() 
    718729{ 
    719730        request = statements[SQLCONSTRUCTOR_STATEMENT_UPDATE]; 
     
    840851//------------------------------------------------------------------- 
    841852 
    842 void sqlite::insertCollect() 
     853void 
     854sqlite::insertCollect() 
    843855{ 
    844856        request = statements[SQLCONSTRUCTOR_STATEMENT_INSERT]; 
     
    10331045//------------------------------------------------------------------- 
    10341046 
    1035 dodo::dodoStringMapArray sqlite::fetchFieldsToRows() const 
     1047dodo::dodoStringMapArray 
     1048sqlite::fetchFieldsToRows() const 
    10361049{ 
    10371050        if (sqliteHandle == NULL) 
     
    10651078                switch (sqlite3_step(sqliteResult)) 
    10661079                { 
    1067                         case SQLITE_BUSY: 
    1068  
    1069                                 continue; 
    1070  
    1071                         case SQLITE_DONE: 
    1072  
    1073                                 iterate = false; 
    1074  
    1075                                 break; 
    1076  
    1077                         case SQLITE_ERROR: 
    1078  
    1079                                 throw exception::basic(exception::ERRMODULE_DATABASESQLITE, SQLITEEX_FETCHFIELDSTOROWS, exception::ERRNO_SQLITE, sqlite3_errcode(sqliteHandle), sqlite3_errmsg(sqliteHandle), __LINE__, __FILE__); 
    1080  
    1081                         case SQLITE_ROW: 
    1082  
    1083                                 rowFieldsPart.clear(); 
    1084  
    1085                                 for (i = 0; i < numFields; ++i) 
    1086                                 { 
    1087                                         switch (sqlite3_column_type(sqliteResult, i)) 
    1088                                         { 
    1089                                                 case SQLITE_INTEGER: 
    1090  
    1091                                                         rowFieldsPart.insert(make_pair(sqlite3_column_name(sqliteResult, i), tools::string::iToString(sqlite3_column_int(sqliteResult, i)))); 
    1092  
    1093                                                         break; 
    1094  
    1095                                                 case SQLITE_FLOAT: 
    1096  
    1097                                                         rowFieldsPart.insert(make_pair(sqlite3_column_name(sqliteResult, i), tools::string::dToString(sqlite3_column_double(sqliteResult, i)))); 
    1098  
    1099                                                         break; 
    1100  
    1101                                                 case SQLITE_TEXT: 
    1102  
    1103                                                         rowFieldsPart.insert(make_pair(sqlite3_column_name(sqliteResult, i), dodoString((const char *)sqlite3_column_text(sqliteResult, i), sqlite3_column_bytes(sqliteResult, i)))); 
    1104  
    1105                                                         break; 
    1106  
    1107                                                 case SQLITE_BLOB: 
    1108  
    1109                                                         rowFieldsPart.insert(make_pair(sqlite3_column_name(sqliteResult, i), dodoString((const char *)sqlite3_column_blob(sqliteResult, i), sqlite3_column_bytes(sqliteResult, i)))); 
    1110  
    1111                                                         break; 
    1112  
    1113                                                 case SQLITE_NULL: 
    1114                                                 default: 
    1115  
    1116                                                         rowFieldsPart.insert(make_pair(dodoString(sqlite3_column_name(sqliteResult, i)), statements[SQLCONSTRUCTOR_STATEMENT_NULL])); 
    1117  
    1118                                                         break; 
    1119                                         } 
    1120                                 } 
    1121  
    1122                                 rowsFields.push_back(rowFieldsPart); 
    1123  
    1124                                 break; 
     1080                case SQLITE_BUSY: 
     1081 
     1082                        continue; 
     1083 
     1084                case SQLITE_DONE: 
     1085 
     1086                        iterate = false; 
     1087 
     1088                        break; 
     1089 
     1090                case SQLITE_ERROR: 
     1091 
     1092                        throw exception::basic(exception::ERRMODULE_DATABASESQLITE, SQLITEEX_FETCHFIELDSTOROWS, exception::ERRNO_SQLITE, sqlite3_errcode(sqliteHandle), sqlite3_errmsg(sqliteHandle), __LINE__, __FILE__); 
     1093 
     1094                case SQLITE_ROW: 
     1095 
     1096                        rowFieldsPart.clear(); 
     1097 
     1098                        for (i = 0; i < numFields; ++i) 
     1099                        { 
     1100                                switch (sqlite3_column_type(sqliteResult, i)) 
     1101                                { 
     1102                                case SQLITE_INTEGER: 
     1103 
     1104                                        rowFieldsPart.insert(make_pair(sqlite3_column_name(sqliteResult, i), tools::string::iToString(sqlite3_column_int(sqliteResult, i)))); 
     1105 
     1106                                        break; 
     1107 
     1108                                case SQLITE_FLOAT: 
     1109 
     1110                                        rowFieldsPart.insert(make_pair(sqlite3_column_name(sqliteResult, i), tools::string::dToString(sqlite3_column_double(sqliteResult, i)))); 
     1111 
     1112                                        break; 
     1113 
     1114                                case SQLITE_TEXT: 
     1115 
     1116                                        rowFieldsPart.insert(make_pair(sqlite3_column_name(sqliteResult, i), dodoString((const char *)sqlite3_column_text(sqliteResult, i), sqlite3_column_bytes(sqliteResult, i)))); 
     1117 
     1118                                        break; 
     1119 
     1120                                case SQLITE_BLOB: 
     1121 
     1122                                        rowFieldsPart.insert(make_pair(sqlite3_column_name(sqliteResult, i), dodoString((const char *)sqlite3_column_blob(sqliteResult, i), sqlite3_column_bytes(sqliteResult, i)))); 
     1123 
     1124                                        break; 
     1125 
     1126                                case SQLITE_NULL: 
     1127                                default: 
     1128 
     1129                                        rowFieldsPart.insert(make_pair(dodoString(sqlite3_column_name(sqliteResult, i)), statements[SQLCONSTRUCTOR_STATEMENT_NULL])); 
     1130 
     1131                                        break; 
     1132                                } 
     1133                        } 
     1134 
     1135                        rowsFields.push_back(rowFieldsPart); 
     1136 
     1137                        break; 
    11251138                } 
    11261139        } 
  • trunk/src/dataFormatJsonNode.cc

    r1160 r1162  
    7979//------------------------------------------------------------------- 
    8080 
    81 void node::setString(const dodoString &value) 
     81void 
     82node::setString(const dodoString &value) 
    8283{ 
    8384        valueDataType = DATATYPE_STRING; 
     
    8889//------------------------------------------------------------------- 
    8990 
    90 void node::setBoolean(bool value) 
     91void 
     92node::setBoolean(bool value) 
    9193{ 
    9294        valueDataType = DATATYPE_BOOLEAN; 
     
    9799//------------------------------------------------------------------- 
    98100 
    99 void node::setNumeric(long value) 
     101void 
     102node::setNumeric(long value) 
    100103{ 
    101104        valueDataType = DATATYPE_NUMERIC; 
     
    106109//------------------------------------------------------------------- 
    107110 
    108 void node::setNull() 
     111void 
     112node::setNull() 
    109113{ 
    110114        valueDataType = DATATYPE_NULL; 
     
    113117//------------------------------------------------------------------- 
    114118 
    115 void node::addArrayElement(const node &value) 
     119void 
     120node::addArrayElement(const node &value) 
    116121{ 
    117122        valueDataType = DATATYPE_ARRAY; 
     
    122127//------------------------------------------------------------------- 
    123128 
    124 void node::addObjectMember(const dodoString &name, 
    125                                                    const node       &value) 
     129void 
     130node::addObjectMember(const dodoString &name, 
     131                                          const node       &value) 
    126132{ 
    127133        valueDataType = DATATYPE_OBJECT; 
     
    132138//------------------------------------------------------------------- 
    133139 
    134 void node::setArray(const dodoArray<node> &value) 
     140void 
     141node::setArray(const dodoArray<node> &value) 
    135142{ 
    136143        valueDataType = DATATYPE_ARRAY; 
     
    141148//------------------------------------------------------------------- 
    142149 
    143 void node::setObject(const dodoMap<dodoString, node, dodoMapStringCompare> &value) 
     150void 
     151node::setObject(const dodoMap<dodoString, node, dodoMapStringCompare> &value) 
    144152{ 
    145153        valueDataType = DATATYPE_OBJECT; 
     
    181189//------------------------------------------------------------------- 
    182190 
    183 short node::getType() 
     191short 
     192node::getType() 
    184193{ 
    185194        return valueDataType; 
     
    188197//------------------------------------------------------------------- 
    189198 
    190 dodoString node::getString() 
     199dodoString 
     200node::getString() 
    191201{ 
    192202        if (valueDataType != DATATYPE_STRING) 
     
    200210//------------------------------------------------------------------- 
    201211 
    202 bool node::getBoolean() 
     212bool 
     213node::getBoolean() 
    203214{ 
    204215        if (valueDataType != DATATYPE_BOOLEAN) 
     
    212223//------------------------------------------------------------------- 
    213224 
    214 long node::getNumeric() 
     225long 
     226node::getNumeric() 
    215227{ 
    216228        if (valueDataType != DATATYPE_NUMERIC) 
     
    224236//------------------------------------------------------------------- 
    225237 
    226 dodoArray<node>node::getArray() 
     238dodoArray<node> 
     239node::getArray() 
    227240{ 
    228241        if (valueDataType != DATATYPE_ARRAY) 
     
    236249//------------------------------------------------------------------- 
    237250 
    238 dodoMap<dodoString, node, dodo::dodoMapStringCompare>node::getObject() 
     251dodoMap<dodoString, node, dodo::dodoMapStringCompare> 
     252node::getObject() 
    239253{ 
    240254        if (valueDataType != DATATYPE_OBJECT) 
     
    248262//------------------------------------------------------------------- 
    249263 
    250 bool node::isNull() 
     264bool 
     265node::isNull() 
    251266{ 
    252267        return (valueDataType == DATATYPE_NULL); 
     
    255270//------------------------------------------------------------------- 
    256271 
    257 void node::clear() 
     272void 
     273node::clear() 
    258274{ 
    259275        stringValue.clear(); 
  • trunk/src/dataFormatJsonProcessor.cc

    r1160 r1162  
    4444//------------------------------------------------------------------- 
    4545 
    46 dodoString processor::make(const node &root) 
     46dodoString 
     47processor::make(const node &root) 
    4748{ 
    4849        switch (root.valueDataType) 
    4950        { 
    50                 case DATATYPE_STRING: 
    51                 { 
    52                         dodoString jsonObject = "\""; 
    53                         dodoString stringValue = root.stringValue; 
    54                         tools::string::replace("\"", "\\\"", stringValue); 
    55                         jsonObject.append(stringValue); 
    56                         jsonObject.append("\""); 
    57  
    58                         return jsonObject; 
    59                 } 
    60  
    61                 case DATATYPE_OBJECT: 
    62                 { 
    63                         dodoString jsonObject = "{"; 
    64  
    65                         dodoMap<dodoString, node, dodoMapStringCompare>::const_iterator i = root.objectValue.begin(), j = root.objectValue.end(); 
    66                         if (i != j) 
    67                         { 
    68                                 for (--j; i != j; ++i) 
    69                                 { 
    70                                         jsonObject.append("\""); 
    71                                         jsonObject.append(i->first); 
    72                                         jsonObject.append("\":"); 
    73  
    74                                         jsonObject.append(make(i->second)); 
    75                                         jsonObject.append(","); 
    76                                 } 
     51        case DATATYPE_STRING: 
     52        { 
     53                dodoString jsonObject = "\""; 
     54                dodoString stringValue = root.stringValue; 
     55                tools::string::replace("\"", "\\\"", stringValue); 
     56                jsonObject.append(stringValue); 
     57                jsonObject.append("\""); 
     58 
     59                return jsonObject; 
     60        } 
     61 
     62        case DATATYPE_OBJECT: 
     63        { 
     64                dodoString jsonObject = "{"; 
     65 
     66                dodoMap<dodoString, node, dodoMapStringCompare>::const_iterator i = root.objectValue.begin(), j = root.objectValue.end(); 
     67                if (i != j) 
     68                { 
     69                        for (--j; i != j; ++i) 
     70                        { 
    7771                                jsonObject.append("\""); 
    7872                                jsonObject.append(i->first); 
     
    8074 
    8175                                jsonObject.append(make(i->second)); 
    82                         } 
    83  
    84                         jsonObject.append("}"); 
    85  
    86                         return jsonObject; 
    87                 } 
    88  
    89                 case DATATYPE_ARRAY: 
    90                 { 
    91                         dodoString jsonObject = "["; 
    92  
    93                         dodoArray<node>::const_iterator i = root.arrayValue.begin(), j = root.arrayValue.end(); 
    94                         if (i != j) 
    95                         { 
    96                                 --j; 
    97                                 for (; i != j; ++i) 
    98                                 { 
    99                                         jsonObject.append(make(*i)); 
    100                                         jsonObject.append(","); 
    101                                 } 
     76                                jsonObject.append(","); 
     77                        } 
     78                        jsonObject.append("\""); 
     79                        jsonObject.append(i->first); 
     80                        jsonObject.append("\":"); 
     81 
     82                        jsonObject.append(make(i->second)); 
     83                } 
     84 
     85                jsonObject.append("}"); 
     86 
     87                return jsonObject; 
     88        } 
     89 
     90        case DATATYPE_ARRAY: 
     91        { 
     92                dodoString jsonObject = "["; 
     93 
     94                dodoArray<node>::const_iterator i = root.arrayValue.begin(), j = root.arrayValue.end(); 
     95                if (i != j) 
     96                { 
     97                        --j; 
     98                        for (; i != j; ++i) 
     99                        { 
    102100                                jsonObject.append(make(*i)); 
    103                         } 
    104  
    105                         jsonObject.append("]"); 
    106  
    107                         return jsonObject; 
    108                 } 
    109  
    110                 case DATATYPE_NUMERIC: 
    111  
    112                         return tools::string::lToString(root.numericValue); 
    113  
    114                 case DATATYPE_BOOLEAN: 
    115  
    116                         return root.booleanValue ? "true" : "false"; 
    117  
    118                 case DATATYPE_NULL: 
    119                 default: 
    120  
    121                         return "null"; 
     101                                jsonObject.append(","); 
     102                        } 
     103                        jsonObject.append(make(*i)); 
     104                } 
     105 
     106                jsonObject.append("]"); 
     107 
     108                return jsonObject; 
     109        } 
     110 
     111        case DATATYPE_NUMERIC: 
     112 
     113                return tools::string::lToString(root.numericValue); 
     114 
     115        case DATATYPE_BOOLEAN: 
     116 
     117                return root.booleanValue ? "true" : "false"; 
     118 
     119        case DATATYPE_NULL: 
     120        default: 
     121 
     122                return "null"; 
    122123        } 
    123124 
     
    127128//------------------------------------------------------------------- 
    128129 
    129 unsigned long processor::processArray(dodoArray<node>  &jnode, 
    130                                                                           const dodoString &root, 
    131                                                                           unsigned long    pos) 
     130unsigned long 
     131processor::processArray(dodoArray<node>  &jnode, 
     132                                                const dodoString &root, 
     133                                                unsigned long    pos) 
    132134{ 
    133135        jnode.clear(); 
     
    142144                switch (root[i]) 
    143145                { 
    144                         case ' ': 
    145                         case '\r': 
    146                         case '\n': 
    147                         case '\t': 
     146                case ' ': 
     147                case '\r': 
     148                case '\n': 
     149                case '\t': 
     150 
     151                        break; 
     152 
     153                case '[': 
     154 
     155                        if (initial) 
     156                        { 
     157                                initial = false; 
     158                        } 
     159                        else 
     160                        { 
     161                                i = processValue(subNode, root, i); 
     162 
     163                                jnode.push_back(subNode); 
     164                        } 
     165 
     166                        break; 
     167 
     168                case ']': 
     169 
     170                        return i; 
     171 
     172                case ',': 
     173 
     174                        break; 
     175 
     176                default: 
     177 
     178                        i = processValue(subNode, root, i); 
     179 
     180                        jnode.push_back(subNode); 
     181                } 
     182        } 
     183 
     184        return i; 
     185} 
     186 
     187//------------------------------------------------------------------- 
     188 
     189unsigned long 
     190processor::processValue(node             &node, 
     191                                                const dodoString &root, 
     192                                                unsigned long    pos) 
     193{ 
     194        node.clear(); 
     195 
     196        unsigned long i(pos), j(root.size()); 
     197        for (; i < j; ++i) 
     198        { 
     199                switch (root[i]) 
     200                { 
     201                case ' ': 
     202                case '\r': 
     203                case '\n': 
     204                case '\t': 
     205 
     206                        break; 
     207 
     208                case '"': 
     209 
     210                        node.valueDataType = DATATYPE_STRING; 
     211 
     212                        return processString(node.stringValue, root, i); 
     213 
     214                case '{': 
     215 
     216                        node.valueDataType = DATATYPE_OBJECT; 
     217 
     218                        return processObject(node.objectValue, root, i); 
     219 
     220                case '[': 
     221 
     222                        node.valueDataType = DATATYPE_ARRAY; 
     223 
     224                        return processArray(node.arrayValue, root, i); 
     225 
     226                case 't': 
     227                case 'f': 
     228 
     229                        node.valueDataType = DATATYPE_BOOLEAN; 
     230 
     231                        return processBoolean(node.booleanValue, root, i); 
     232 
     233                case 'n': 
     234 
     235                        node.valueDataType = DATATYPE_NULL; 
     236 
     237                        return processNull(root, i); 
     238 
     239                default: 
     240 
     241                        node.valueDataType = DATATYPE_NUMERIC; 
     242 
     243                        return processNumeric(node.numericValue, root, i); 
     244                } 
     245        } 
     246} 
     247 
     248//------------------------------------------------------------------- 
     249 
     250unsigned long 
     251processor::processBoolean(bool             &node, 
     252                                                  const dodoString &root, 
     253                                                  unsigned long    pos) 
     254{ 
     255        if ((root.size() - pos) < 4) 
     256        { 
     257                throw exception::basic(exception::ERRMODULE_DATAFORMATJSONPROCESSOR, PROCESSOREX_PROCESSBOOLEAN, exception::ERRNO_LIBDODO, PROCESSOREX_MALFORMEDJSONBOOLEAN, DATAFORMATJSONPROCESSOREX_MALFORMEDJSONBOOLEAN_STR, __LINE__, __FILE__); 
     258        } 
     259 
     260        if (root[pos] == 't' && root[pos + 1] == 'r' && root[pos + 2] == 'u' && root[pos + 3] == 'e') 
     261        { 
     262                node = true; 
     263 
     264                return pos + 3; 
     265        } 
     266        else 
     267        { 
     268                if (root[pos] == 'f' && root[pos + 1] == 'a' && root[pos + 2] == 'l' && root[pos + 3] == 's' && root[pos + 4] == 'e') 
     269                { 
     270                        node = false; 
     271 
     272                        return pos + 4; 
     273                } 
     274                else 
     275                { 
     276                        throw exception::basic(exception::ERRMODULE_DATAFORMATJSONPROCESSOR, PROCESSOREX_PROCESSBOOLEAN, exception::ERRNO_LIBDODO, PROCESSOREX_MALFORMEDJSONBOOLEAN, DATAFORMATJSONPROCESSOREX_MALFORMEDJSONBOOLEAN_STR, __LINE__, __FILE__); 
     277                } 
     278        } 
     279 
     280        return pos; 
     281} 
     282 
     283//------------------------------------------------------------------- 
     284 
     285unsigned long 
     286processor::processNull(const dodoString &root, 
     287                                           unsigned long    pos) 
     288{ 
     289        if ((root.size() - pos) < 4) 
     290        { 
     291                throw exception::basic(exception::ERRMODULE_DATAFORMATJSONPROCESSOR, PROCESSOREX_PROCESSNULL, exception::ERRNO_LIBDODO, PROCESSOREX_MALFORMEDJSONNULL, DATAFORMATJSONPROCESSOREX_MALFORMEDJSONNULL_STR, __LINE__, __FILE__); 
     292        } 
     293 
     294        if (root[pos] == 'n' && root[pos + 1] == 'u' && root[pos + 2] == 'l' && root[pos + 3] == 'l') 
     295        { 
     296                return pos + 3; 
     297        } 
     298        else 
     299        { 
     300                throw exception::basic(exception::ERRMODULE_DATAFORMATJSONPROCESSOR, PROCESSOREX_PROCESSNULL, exception::ERRNO_LIBDODO, PROCESSOREX_MALFORMEDJSONNULL, DATAFORMATJSONPROCESSOREX_MALFORMEDJSONNULL_STR, __LINE__, __FILE__); 
     301        } 
     302 
     303        return pos; 
     304} 
     305 
     306//------------------------------------------------------------------- 
     307 
     308unsigned long 
     309processor::processNumeric(long             &node, 
     310                                                  const dodoString &root, 
     311                                                  unsigned long    pos) 
     312{ 
     313        dodoString numeric; 
     314 
     315        unsigned long i(pos), j(root.size()); 
     316        for (; i < j; ++i) 
     317        { 
     318                switch (root[i]) 
     319                { 
     320                case ' ': 
     321                case '\r': 
     322                case '\n': 
     323                case '\t': 
     324 
     325                        break; 
     326 
     327                case '1': 
     328                case '2': 
     329                case '3': 
     330                case '4': 
     331                case '5': 
     332                case '6': 
     333                case '7': 
     334                case '8': 
     335                case '9': 
     336                case '0': 
     337                case '+': 
     338                case '-': 
     339                case 'e': 
     340                case 'E': 
     341 
     342                        numeric.append(1, root[i]); 
     343 
     344                        break; 
     345 
     346                case ',': 
     347                case ']': 
     348                case '}': 
     349 
     350                        node = tools::string::stringToL(numeric); 
     351 
     352                        return i - 1; 
     353 
     354                default: 
     355 
     356                        throw exception::basic(exception::ERRMODULE_DATAFORMATJSONPROCESSOR, PROCESSOREX_PROCESSNUMERIC, exception::ERRNO_LIBDODO, PROCESSOREX_MALFORMEDJSONNUMERIC, DATAFORMATJSONPROCESSOREX_MALFORMEDJSONNUMERIC_STR, __LINE__, __FILE__); 
     357                } 
     358        } 
     359 
     360 
     361        return i; 
     362} 
     363 
     364//------------------------------------------------------------------- 
     365 
     366unsigned long 
     367processor::processObject(dodoMap<dodoString, node, dodoMapStringCompare> &jnode, 
     368                                                 const dodoString &root, 
     369                                                 unsigned long pos) 
     370{ 
     371        jnode.clear(); 
     372 
     373        short state = JSON_STATE_OBJECT_INITIAL; 
     374 
     375        node subNodeValue; 
     376        dodoString subNodeName; 
     377 
     378        unsigned long i(pos), j(root.size()); 
     379        for (; i < j; ++i) 
     380        { 
     381                switch (root[i]) 
     382                { 
     383                case ' ': 
     384                case '\r': 
     385                case '\n': 
     386                case '\t': 
     387                case ':': 
     388                case ',': 
     389 
     390                        break; 
     391 
     392                case '{': 
     393 
     394                        if (state == JSON_STATE_OBJECT_INITIAL) 
     395                        { 
     396                                state = JSON_STATE_OBJECT_OBJECTNAME; 
    148397 
    149398                                break; 
    150  
    151                         case '[': 
    152  
     399                        } 
     400                        else 
     401                        { 
     402                                if (state == JSON_STATE_OBJECT_OBJECTVALUE) 
     403                                { 
     404                                        subNodeValue.clear(); 
     405 
     406                                        subNodeValue.valueDataType = DATATYPE_OBJECT; 
     407 
     408                                        i = processObject(subNodeValue.objectValue, root, i); 
     409                                        jnode.insert(make_pair(subNodeName, subNodeValue)); 
     410 
     411                                        state = JSON_STATE_OBJECT_OBJECTNAME; 
     412 
     413                                        break; 
     414                                } 
     415                        } 
     416 
     417                case '}': 
     418 
     419                        return i; 
     420 
     421                case '"': 
     422 
     423                        if (state == JSON_STATE_OBJECT_OBJECTNAME) 
     424                        { 
     425                                i = processString(subNodeName, root, i); 
     426 
     427                                state = JSON_STATE_OBJECT_OBJECTVALUE; 
     428 
     429                                break; 
     430                        } 
     431                        else 
     432                        { 
     433                                if (state == JSON_STATE_OBJECT_OBJECTVALUE) 
     434                                { 
     435                                        subNodeValue.clear(); 
     436 
     437                                        subNodeValue.valueDataType = DATATYPE_STRING; 
     438 
     439                                        i = processString(subNodeValue.stringValue, root, i); 
     440                                        jnode.insert(make_pair(subNodeName, subNodeValue)); 
     441 
     442                                        state = JSON_STATE_OBJECT_OBJECTNAME; 
     443 
     444                                        break; 
     445                                } 
     446                        } 
     447 
     448                default: 
     449 
     450                        if (state == JSON_STATE_OBJECT_OBJECTVALUE) 
     451                        { 
     452                                i = processValue(subNodeValue, root, i); 
     453                                jnode.insert(make_pair(subNodeName, subNodeValue)); 
     454 
     455                                state = JSON_STATE_OBJECT_OBJECTNAME; 
     456                        } 
     457                } 
     458        } 
     459 
     460        return i; 
     461} 
     462 
     463//------------------------------------------------------------------- 
     464 
     465node 
     466processor::processString(const dodoString &root) 
     467{ 
     468        node node; 
     469 
     470        node.valueDataType = DATATYPE_OBJECT; 
     471        processObject(node.objectValue, root, 0); 
     472 
     473        return node; 
     474} 
     475 
     476//------------------------------------------------------------------- 
     477 
     478node 
     479processor::processFile(const dodoString &path) 
     480{ 
     481        node node; 
     482 
     483        node.valueDataType = DATATYPE_OBJECT; 
     484        processObject(node.objectValue, tools::filesystem::getFileContents(path), 0); 
     485 
     486        return node; 
     487} 
     488 
     489//------------------------------------------------------------------- 
     490 
     491dodoString 
     492processor::fromMap(const dodoStringMap &root) 
     493{ 
     494        node nodeDef; 
     495        node subNodeDef; 
     496 
     497        nodeDef.valueDataType = DATATYPE_OBJECT; 
     498        subNodeDef.valueDataType = DATATYPE_STRING; 
     499 
     500        dodoStringMap::const_iterator i = root.begin(), j = root.end(); 
     501        for (; i != j; ++i) 
     502        { 
     503                subNodeDef.stringValue = i->second; 
     504                nodeDef.objectValue.insert(make_pair(i->first, subNodeDef)); 
     505        } 
     506 
     507        return make(nodeDef); 
     508} 
     509 
     510//------------------------------------------------------------------- 
     511 
     512dodo::dodoStringMap 
     513processor::toMap(const dodoString &jnode) 
     514{ 
     515        node JSON = processString(jnode); 
     516 
     517        dodoStringMap map; 
     518 
     519        dodoMap<dodoString, node, dodoMapStringCompare>::iterator i = JSON.objectValue.begin(), j = JSON.objectValue.end(); 
     520        for (; i != j; ++i) 
     521        { 
     522                map.insert(make_pair(i->first, i->second.stringValue)); 
     523        } 
     524 
     525        return map; 
     526} 
     527 
     528//------------------------------------------------------------------- 
     529 
     530unsigned long 
     531processor::processString(dodoString       &jnode, 
     532                                                 const dodoString &root, 
     533                                                 unsigned long    pos) 
     534{ 
     535        jnode.clear(); 
     536 
     537        bool escape = false; 
     538        bool initial = true; 
     539 
     540        unsigned long i(pos), j(root.size()); 
     541        for (; i < j; ++i) 
     542        { 
     543                switch (root[i]) 
     544                { 
     545                case '\\': 
     546 
     547                        if (!escape) 
     548                        { 
     549                                escape = true; 
     550 
     551                                break; 
     552                        } 
     553 
     554                case '"': 
     555 
     556                        if (!escape) 
     557                        { 
    153558                                if (initial) 
    154559                                { 
    155560                                        initial = false; 
    156                                 } 
    157                                 else 
    158                                 { 
    159                                         i = processValue(subNode, root, i); 
    160  
    161