J'ai deux questions ici:scribe avec tampon de protocole et épargne avancée?
Question 1:
- Thrift peut fournir une fonctionnalité de classe interne? (voir mon exemple suivant)
- si cela est possible, l'économie d'énergie peut-elle facilement utiliser ces fonctionnalités?
Voici l'interface de scribe (scribe/if/scribe.thrift). Mais son champ de message ne peut être que de la chaîne, ce que je ne crois pas assez flexible.
#!/usr/local/bin/thrift --cpp --php
## Copyright (c) 2007-2008 Facebook
...
...
## See accompanying file LICENSE or visit the Scribe site at:
## http://developers.facebook.com/scribe/
include "fb303/if/fb303.thrift"
namespace cpp scribe.thrift
enum ResultCode
{
OK,
TRY_LATER
}
struct LogEntry
{
1: string category,
2: string message
}
service scribe extends fb303.FacebookService
{
ResultCode Log(1: list<LogEntry> messages);
}
Ce serait génial si je peux faire la chose suivante (je ne sais même pas si Thrift lui-même fournit la fonctionnalité de classe interne en fonction de son tampon document-- mais le protocole peut certainement).
enum ResultCode
{
OK,
TRY_LATER
}
struct MyLogStructure {
1: string field_name;
2: string value;
}
struct LogEntry
{
1: string category,
2: MyLogStructure message
}
service scribe extends fb303.FacebookService
{
ResultCode Log(1: list<LogEntry> messages);
}
Question 2:
- Peut tracer utiliser le tampon de protocole que la représentation interne des données facilement? (sans trop modifier le code)
- Si la réponse à la question précédente est "non", Google a-t-il ouvert sa mise en œuvre sribe?