Changeset 7818 for trunk/legacy/jvmlink


Ignore:
Timestamp:
11/24/11 16:07:20 (8 years ago)
Author:
mario
Message:

use again a bit stricter types, and use const reference for some JVMLinkObjects (instead of new and delete objects)

Location:
trunk/legacy/jvmlink/src/main/c++
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/legacy/jvmlink/src/main/c++/JVMLinkClient.cpp

    r7817 r7818  
    258258} 
    259259 
    260 void JVMLinkClient::setVar(JVMLinkObject* obj) { 
     260void JVMLinkClient::setVar(const JVMLinkObject& obj) { 
    261261        sendInt(SETVAR_CMD); 
    262         sendMessage(obj->name); 
    263         sendInt((int) obj->type); 
    264         if (obj->type == ARRAY_TYPE) { 
    265                 sendInt((int) obj->insideType); 
    266                 sendInt(obj->length); 
    267                 if (obj->insideType == STRING_TYPE) { 
    268                         std::string* s = (std::string*) obj->data; 
    269                         for (int i=0; i<obj->length; i++) { 
     262        sendMessage(obj.name); 
     263        sendInt((int) obj.type); 
     264        if (obj.type == ARRAY_TYPE) { 
     265                sendInt((int) obj.insideType); 
     266                sendInt(obj.length); 
     267                if (obj.insideType == STRING_TYPE) { 
     268                        std::string* s = (std::string*) obj.data; 
     269                        for (int i=0; i<obj.length; i++) { 
    270270                                sendMessage(s[i]); 
    271271                        } 
     
    273273                else { 
    274274                        int sent = 0; 
    275                         int total = obj->size * obj->length; 
    276                         char* buf = (char*) obj->data; 
     275                        int total = obj.size * obj.length; 
     276                        char* buf = (char*) obj.data; 
    277277                        while (sent < total) { 
    278278                                sent += send(conn, buf + sent, total - sent, 0); 
     
    281281        } 
    282282        else { 
    283                 if (obj->type == STRING_TYPE) sendMessage(*(std::string*) obj->data); 
    284                 else send(conn, (char*) obj->data, obj->size, 0); 
     283                if (obj.type == STRING_TYPE) sendMessage(*(std::string*) obj.data); 
     284                else send(conn, (char*) obj.data, obj.size, 0); 
    285285        } 
    286286} 
     
    288288void JVMLinkClient::setVar(const std::string& argname, int obj) { 
    289289        debug("setVar: " << argname << " = " << obj << " (int)"); 
    290         JVMLinkObject* jvmObj = new JVMLinkObject(argname, INT_TYPE, &obj); 
    291         setVar(jvmObj); 
    292         delete jvmObj; 
     290        JVMLinkObject jvmObj(argname, INT_TYPE, &obj); 
     291        setVar(jvmObj); 
    293292} 
    294293 
    295294void JVMLinkClient::setVar(const std::string& argname, int* obj, int length) { 
    296295        debug("setVar: " << argname << " (int array)"); 
    297         JVMLinkObject* jvmObj = new JVMLinkObject(argname, INT_TYPE, length, obj); 
    298         setVar(jvmObj); 
    299         delete jvmObj; 
     296        JVMLinkObject jvmObj(argname, INT_TYPE, length, obj); 
     297        setVar(jvmObj); 
    300298} 
    301299 
    302300void JVMLinkClient::setVar(const std::string& argname, std::string* obj) { 
    303301        debug("setVar: " << argname << " = " << obj << " (string)"); 
    304         JVMLinkObject* jvmObj = new JVMLinkObject(argname, STRING_TYPE, obj); 
    305         setVar(jvmObj); 
    306         delete jvmObj; 
     302        JVMLinkObject jvmObj(argname, STRING_TYPE, obj); 
     303        setVar(jvmObj); 
    307304} 
    308305 
    309306void JVMLinkClient::setVar(const std::string& argname, std::string* obj, int length) { 
    310307        debug("setVar: " << argname << " (string array)"); 
    311         JVMLinkObject* jvmObj = new JVMLinkObject(argname, STRING_TYPE, length, obj); 
    312         setVar(jvmObj); 
    313         delete jvmObj; 
     308        JVMLinkObject jvmObj(argname, STRING_TYPE, length, obj); 
     309        setVar(jvmObj); 
    314310} 
    315311 
    316312void JVMLinkClient::setVar(const std::string& argname, char obj) { 
    317313        debug("setVar: " << argname << " = " << obj << " (char)"); 
    318         JVMLinkObject* jvmObj = new JVMLinkObject(argname, CHAR_TYPE, &obj); 
    319         setVar(jvmObj); 
    320         delete jvmObj; 
     314        JVMLinkObject jvmObj(argname, CHAR_TYPE, &obj); 
     315        setVar(jvmObj); 
    321316} 
    322317 
    323318void JVMLinkClient::setVar(const std::string& argname, char* obj, int length) { 
    324319        debug("setVar: " << argname << " (char array)"); 
    325         JVMLinkObject* jvmObj = new JVMLinkObject(argname, CHAR_TYPE, length, obj); 
    326         setVar(jvmObj); 
    327         delete jvmObj; 
     320        JVMLinkObject jvmObj(argname, CHAR_TYPE, length, obj); 
     321        setVar(jvmObj); 
    328322} 
    329323 
    330324void JVMLinkClient::setVar(const std::string& argname, Byte obj) { 
    331325        debug("setVar: " << argname << " = " << obj.data << " (byte)"); 
    332         JVMLinkObject* jvmObj = new JVMLinkObject(argname, BYTE_TYPE, &obj); 
    333         setVar(jvmObj); 
    334         delete jvmObj; 
     326        JVMLinkObject jvmObj(argname, BYTE_TYPE, &obj); 
     327        setVar(jvmObj); 
    335328} 
    336329 
    337330void JVMLinkClient::setVar(const std::string& argname, Byte* obj, int length) { 
    338331        debug("setVar: " << argname << " (byte array)"); 
    339         JVMLinkObject* jvmObj = new JVMLinkObject(argname, BYTE_TYPE, length, obj); 
    340         setVar(jvmObj); 
    341         delete jvmObj; 
     332        JVMLinkObject jvmObj(argname, BYTE_TYPE, length, obj); 
     333        setVar(jvmObj); 
    342334} 
    343335 
    344336void JVMLinkClient::setVar(const std::string& argname, float obj) { 
    345337        debug("setVar: " << argname << " = " << obj << " (float)"); 
    346         JVMLinkObject* jvmObj = new JVMLinkObject(argname, FLOAT_TYPE, &obj); 
    347         setVar(jvmObj); 
    348         delete jvmObj; 
     338        JVMLinkObject jvmObj(argname, FLOAT_TYPE, &obj); 
     339        setVar(jvmObj); 
    349340} 
    350341 
    351342void JVMLinkClient::setVar(const std::string& argname, float* obj, int length) { 
    352343        debug("setVar: " << argname << " (float array)"); 
    353         JVMLinkObject* jvmObj = new JVMLinkObject(argname, FLOAT_TYPE, length, obj); 
    354         setVar(jvmObj); 
    355         delete jvmObj; 
     344        JVMLinkObject jvmObj(argname, FLOAT_TYPE, length, obj); 
     345        setVar(jvmObj); 
    356346} 
    357347 
    358348void JVMLinkClient::setVar(const std::string& argname, bool obj) { 
    359349        debug("setVar: " << argname << " = " << obj << " (bool)"); 
    360         JVMLinkObject* jvmObj = new JVMLinkObject(argname, BOOL_TYPE, &obj); 
    361         setVar(jvmObj); 
    362         delete jvmObj; 
     350        JVMLinkObject jvmObj(argname, BOOL_TYPE, &obj); 
     351        setVar(jvmObj); 
    363352} 
    364353 
    365354void JVMLinkClient::setVar(const std::string& argname, bool* obj, int length) { 
    366355        debug("setVar: " << argname << " (bool array)"); 
    367         JVMLinkObject* jvmObj = new JVMLinkObject(argname, BOOL_TYPE, length, obj); 
    368         setVar(jvmObj); 
    369         delete jvmObj; 
     356        JVMLinkObject jvmObj(argname, BOOL_TYPE, length, obj); 
     357        setVar(jvmObj); 
    370358} 
    371359 
    372360void JVMLinkClient::setVar(const std::string& argname, double obj) { 
    373361        debug("setVar: " << argname << " = " << obj << " (double)"); 
    374         JVMLinkObject* jvmObj = new JVMLinkObject(argname, DOUBLE_TYPE, &obj); 
    375         setVar(jvmObj); 
    376         delete jvmObj; 
     362        JVMLinkObject jvmObj(argname, DOUBLE_TYPE, &obj); 
     363        setVar(jvmObj); 
    377364} 
    378365 
    379366void JVMLinkClient::setVar(const std::string& argname, double* obj, int length) { 
    380367        debug("setVar: " << argname << " (double array)"); 
    381         JVMLinkObject* jvmObj = new JVMLinkObject(argname, DOUBLE_TYPE, length, obj); 
    382         setVar(jvmObj); 
    383         delete jvmObj; 
     368        JVMLinkObject jvmObj(argname, DOUBLE_TYPE, length, obj); 
     369        setVar(jvmObj); 
    384370} 
    385371 
    386372void JVMLinkClient::setVar(const std::string& argname, long long obj) { 
    387373        debug("setVar: " << argname << " = " << obj << " (long)"); 
    388         JVMLinkObject* jvmObj = new JVMLinkObject(argname, LONG_TYPE, &obj); 
    389         setVar(jvmObj); 
    390         delete jvmObj; 
     374        JVMLinkObject jvmObj(argname, LONG_TYPE, &obj); 
     375        setVar(jvmObj); 
    391376} 
    392377 
    393378void JVMLinkClient::setVar(const std::string& argname, long long* obj, int length) { 
    394379        debug("setVar: " << argname << " (long array)"); 
    395         JVMLinkObject* jvmObj = new JVMLinkObject(argname, LONG_TYPE, length, obj); 
    396         setVar(jvmObj); 
    397         delete jvmObj; 
     380        JVMLinkObject jvmObj(argname, LONG_TYPE, length, obj); 
     381        setVar(jvmObj); 
    398382} 
    399383 
    400384void JVMLinkClient::setVar(const std::string& argname, short obj) { 
    401385        debug("setVar: " << argname << " = " << obj << " (short)"); 
    402         JVMLinkObject* jvmObj = new JVMLinkObject(argname, SHORT_TYPE, &obj); 
    403         setVar(jvmObj); 
    404         delete jvmObj; 
     386        JVMLinkObject jvmObj(argname, SHORT_TYPE, &obj); 
     387        setVar(jvmObj); 
    405388} 
    406389 
    407390void JVMLinkClient::setVar(const std::string& argname, short* obj, int length) { 
    408391        debug("setVar: " << argname << " (short array)"); 
    409         JVMLinkObject* jvmObj = new JVMLinkObject(argname, SHORT_TYPE, length, obj); 
    410         setVar(jvmObj); 
    411         delete jvmObj; 
     392        JVMLinkObject jvmObj(argname, SHORT_TYPE, length, obj); 
     393        setVar(jvmObj); 
    412394} 
    413395 
    414396void JVMLinkClient::setVarNull(const std::string& argname) { 
    415397        debug("setVarNull: " << argname); 
    416         JVMLinkObject* jvmObj = new JVMLinkObject(argname, NULL_TYPE, NULL); 
    417         setVar(jvmObj); 
    418         delete jvmObj; 
     398        JVMLinkObject jvmObj(argname, NULL_TYPE, NULL); 
     399        setVar(jvmObj); 
    419400} 
    420401 
  • trunk/legacy/jvmlink/src/main/c++/JVMLinkClient.h

    r7817 r7818  
    8686        int closeConnection(); 
    8787        JVMLinkObject* getVar(const std::string&); 
    88         void setVar(JVMLinkObject*); 
     88        void setVar(const JVMLinkObject&); 
    8989        void setVar(const std::string&, int); 
    9090        void setVar(const std::string&, int*, int); 
  • trunk/legacy/jvmlink/src/main/c++/JVMLinkObject.cpp

    r7813 r7818  
    3939 
    4040// Constructor for single primitives 
    41 JVMLinkObject::JVMLinkObject(const std::string& name, Type type, void* data) { 
     41JVMLinkObject::JVMLinkObject(const std::string& name, Type type, const void* data) { 
    4242        this->name = name; 
    4343        this->size = getSize(type); 
     
    4848 
    4949// Constructor for arrays 
    50 JVMLinkObject::JVMLinkObject(const std::string& name, Type type, int length, void* data) { 
     50JVMLinkObject::JVMLinkObject(const std::string& name, Type type, int length, const void* data) { 
    5151        this->name = name; 
    5252        this->size = getSize(type); 
  • trunk/legacy/jvmlink/src/main/c++/JVMLinkObject.h

    r7813 r7818  
    7171public: 
    7272        JVMLinkObject(const std::string&); 
    73         JVMLinkObject(const std::string&, Type, void*); 
    74         JVMLinkObject(const std::string&, Type, int, void*); 
     73        JVMLinkObject(const std::string&, Type, const void*); 
     74        JVMLinkObject(const std::string&, Type, int, const void*); 
    7575 
    7676        ~JVMLinkObject(void); 
     
    7979        int size, length; 
    8080        Type type, insideType; 
    81         void* data; 
     81        const void* data; 
    8282 
    8383        int getDataAsInt(); 
Note: See TracChangeset for help on using the changeset viewer.