00001 // 00002 // protos/lobby.h 00003 // 00004 // Copyright (c) 2008-2009, Mike Austin 00005 // All rights reserved. 00006 // 00007 00008 #ifndef _IMPULSE_LOBBY_H_ 00009 #define _IMPULSE_LOBBY_H_ 00010 00011 #include "../impulse.h" 00012 00013 namespace impulse { 00014 00015 // 00016 // class Lobby 00017 // 00018 00022 00023 class Lobby : public Frame { 00024 00025 public: 00026 00027 Lobby( Frame* proto = NULL ) : Frame( proto ) 00028 { 00029 setSlot( Symbol::at("version"), new String( "Impulse 0.5" ) ); 00030 setSlot( Symbol::at("exit"), new Method<Lobby>( "exit", &Lobby::_exit ) ); 00031 } 00032 00033 string inspect() { return "[Lobby]"; } 00034 00035 string version() 00036 { 00037 BEG( "Lobby::version()" ); 00038 00039 END( "" ); 00040 00041 return "Impulse 0.5"; 00042 } 00043 00044 protected: 00045 00046 Value _version( Array& args, Value self ) { 00047 return version(); 00048 } 00049 00050 Value _exit( Array& args, Value self ) { 00051 ::exit( 0 ); 00052 } 00053 00054 }; 00055 00056 } 00057 00058 #endif