actor-framework / actor-framework/benchmarks

Add Mindroid benchmark

Abierto
#1 0 comentarios 0 reacciones 0 asignados Ver en GitHub
idea
Lenguaje dominante
C++
Estrellas
26
Forks
15
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

[Mindroid](https://github.com/Himmele/Mindroid) seems to offer actor-like semantics as well. It would be nice to compare against it at some point. Here is a hello world example:

```
#include
#include "mindroid/os/Message.h"
#include "mindroid/os/Handler.h"
#include "mindroid/os/LooperThread.h"

using namespace mindroid;

static const int SAY_HELLO = 0;
static const int SAY_WORLD = 1;
static const int QUIT = 2;

class HelloHandler : public Handler
{
public:
HelloHandler(const sp& worldHandler) :
mWorldHandler(worldHandler), mCounter(0) {}

virtual void handleMessage(const sp& msg) {
switch (msg->what) {
case SAY_HELLO:
mCounter++;
if (mCounter <= 1000) {
printf("Hello ");
sp sayWorld =
mWorldHandler->obtainMessage(SAY_WORLD);
sayWorld->metaData()->putObject("SayHello",
obtainMessage(SAY_HELLO));
sayWorld->sendToTarget();
} else {
mWorldHandler->obtainMessage(QUIT)
->sendToTarget();
Looper::myLooper()->quit();
}
break;
}
}

private:
sp mWorldHandler;
int mCounter;
};

class WorldHandler : public Handler
{
public:
virtual void handleMessage(const sp& msg) {
switch (msg->what) {
case SAY_WORLD:
printf("World!\n");
msg->metaData()
->getObject("SayHello")
->sendToTarget();
break;
case QUIT:
Looper::myLooper()->quit();
break;
}
}
};

int main() {
sp< LooperThread > wlt =
new LooperThread();
wlt->start();

Looper::prepare();
sp hh = new HelloHandler(wlt->getHandler());
hh->obtainMessage(SAY_HELLO)->sendToTarget();
Looper::loop();

return 0;
}
```

Source: http://himmele.blogspot.de/2012/11/concurrent-hello-world-in-go-erlang.html

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.