namespace Gd { namespace App { class RandomImpl : public Random { public: virtual uint32_t generate(uint32_t max) { return cpe_rand_dft(max); } }; Random & Random::instance(Application & app, cpe_hash_string_t name) { Random * r = dynamic_cast<Random *>( &app.nmManager().object(name)); if (r == NULL) { APP_CTX_THROW_EXCEPTION(app, ::std::runtime_error, "Random cast fail!"); } return *r; } static cpe_hash_string_buf s_Event_DEFAULT_NAME_buf = CPE_HS_BUF_MAKE("AppRandom"); cpe_hash_string_t Random::DEFAULT_NAME = (cpe_hash_string_t)s_Event_DEFAULT_NAME_buf; }}
#include <assert.h> #include "cpe/pal/pal_external.h" #include "cpe/cfg/cfg_read.h" #include "cpe/nm/nm_manage.h" #include "cpe/nm/nm_read.h" #include "gd/app/app_context.h" #include "gd/app/app_module.h" #include "weibo/data/weibo_manage.h" #include "weibo_internal_ops.h" static void weibo_manage_clear(nm_node_t node); static cpe_hash_string_buf s_weibo_manage_default_name = CPE_HS_BUF_MAKE("weibo_manage"); struct nm_node_type s_nm_node_type_weibo_manage = { "weibo_manage", weibo_manage_clear }; weibo_manage_t weibo_manage_create( gd_app_context_t app, const char * name, mem_allocrator_t alloc, error_monitor_t em) { weibo_manage_t mgr; nm_node_t mgr_node; if (name == 0) name = cpe_hs_data((cpe_hash_string_t)&s_weibo_manage_default_name);