Thanks for reply.
Strings are immutable so thats ok. A class instance that isn't immutable isn't.

It's not a class instance, it's a class type. Something like `cast(Sprite) null` in parameters. It can be replaced by string "Sprite", but in this case I can't use receive() as it is. E.g.

send(tid,gameobjectId,"Sprite","reload");
//must call sprite.reload();

send(tid,gameobjectId,"Animation","reload");
//must call animation.reload();

Just have separate receiving functions per the data type.
But both messages are (int, string, string) so they can't be separate by different receiving functions. It will be better if messages was (int, Sprite, string) / (int, Animation, string). And it solves my problem. :) But I don't know how to achieve this.


In other words Variant is overkill.
It basically just wraps a piece of data so that it can be passed around without knowing its type. Which in this case is bad. You would end up having to know the datatype to do anything with it anyway.
Then I need something like Variant[] to store this data in array.

MyVariant[] args;
if(args[0] == typeid(int))
{
    if(args[1] == "Sprite") {}
    if(args[1] == "Animation") {}
}
etc.

I'm trying to make something like messages in Smalltalk (?), but between threads. Thread can receive anything and thread decides what to do on its own.

Reply via email to