本文整理汇总了C++中JObject::GetProperty方法的典型用法代码示例。如果您正苦于以下问题:C++ JObject::GetProperty方法的具体用法?C++ JObject::GetProperty怎么用?C++ JObject::GetProperty使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类JObject
的用法示例。
在下文中一共展示了JObject::GetProperty方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnRead
void OnRead(uv_stream_t* handle, ssize_t nread, const uv_buf_t* buf) {
TcpWrap* tcp_wrap = reinterpret_cast<TcpWrap*>(handle->data);
IOTJS_ASSERT(tcp_wrap != NULL);
// tcp handle
JObject jtcp = tcp_wrap->jobject();
IOTJS_ASSERT(jtcp.IsObject());
// socket object
JObject jsocket = jtcp.GetProperty("owner");
IOTJS_ASSERT(jsocket.IsObject());
// onread callback
JObject jonread = jtcp.GetProperty("onread");
IOTJS_ASSERT(jonread.IsFunction());
JArgList jargs(4);
jargs.Add(jsocket);
jargs.Add(JVal::Number((int)nread));
jargs.Add(JVal::Bool(false));
if (nread <= 0) {
if (buf->base != NULL) {
ReleaseBuffer(buf->base);
}
if (nread < 0) {
if (nread == UV__EOF) {
jargs.Set(2, JVal::Bool(true));
}
MakeCallback(jonread, JObject::Null(), jargs);
}
return;
}
JObject jbuffer(CreateBuffer(static_cast<size_t>(nread)));
BufferWrap* buffer_wrap = BufferWrap::FromJBuffer(jbuffer);
buffer_wrap->Copy(buf->base, nread);
jargs.Add(jbuffer);
MakeCallback(jonread, JObject::Null(), jargs);
ReleaseBuffer(buf->base);
}
示例2: OnConnection
// A client socket wants to connect to this server.
// Parameters:
// * uv_stream_t* handle - server handle
// * int status - status code
static void OnConnection(uv_stream_t* handle, int status) {
// Server tcp wrapper.
TcpWrap* tcp_wrap = reinterpret_cast<TcpWrap*>(handle->data);
IOTJS_ASSERT(tcp_wrap->tcp_handle() == reinterpret_cast<uv_tcp_t*>(handle));
// Tcp object
JObject jtcp = tcp_wrap->jobject();
IOTJS_ASSERT(jtcp.IsObject());
// `onconnection` callback.
JObject jonconnection = jtcp.GetProperty("onconnection");
IOTJS_ASSERT(jonconnection.IsFunction());
// The callback takes two parameter
// [0] status
// [1] client tcp object
JArgList args(2);
args.Add(JVal::Number(status));
if (status == 0) {
// Create client socket handle wrapper.
JObject jcreate_tcp = jtcp.GetProperty("createTCP");
IOTJS_ASSERT(jcreate_tcp.IsFunction());
JObject jclient_tcp = jcreate_tcp.CallOk(JObject::Null(),
JArgList::Empty());
IOTJS_ASSERT(jclient_tcp.IsObject());
TcpWrap* tcp_wrap = reinterpret_cast<TcpWrap*>(jclient_tcp.GetNative());
uv_stream_t* client_handle =
reinterpret_cast<uv_stream_t*>(tcp_wrap->tcp_handle());
int err = uv_accept(handle, client_handle);
if (err) {
return;
}
args.Add(jclient_tcp);
}
MakeCallback(jonconnection, jtcp, args);
}
示例3: ExtractStrings
void JStringServer::ExtractStrings()
{
FILE* fp = fopen( "strings.txt", "wt" );
if (!fp)
{
return;
}
m_Dictionary.clear();
// extract text strings
JObjectIterator it( JCore::s_pInstance );
JString val, hash;
while (it)
{
JObject* pObj = *it;
if (pObj->HasName( "system" ))
{
it.breadth_next();
continue;
}
++it;
bool bRes = pObj->GetProperty( "text", val );
if (!bRes || val.size() == 0 || val[0] == '#')
{
continue;
}
if (!HasCyrillics( val.c_str() ))
{
continue;
}
HashString( val.c_str(), hash );
JStringDictionary::iterator location = m_Dictionary.find( hash );
JString taggedHash = "#";
taggedHash += hash;
pObj->SetProperty( "text", taggedHash.c_str() );
if (location != m_Dictionary.end())
{
if (val == (*location).second)
{
continue;
}
assert( false );
}
fprintf( fp, "%s %s\n", hash.c_str(), val.c_str() );
m_Dictionary[hash] = val;
}
fclose( fp );
// save scripts
g_pPersistServer->SaveScripts();
}
示例4: AfterClose
// Socket close result handler.
static void AfterClose(uv_handle_t* handle) {
HandleWrap* tcp_wrap = HandleWrap::FromHandle(handle);
IOTJS_ASSERT(tcp_wrap != NULL);
// tcp object.
JObject jtcp = tcp_wrap->jobject();
IOTJS_ASSERT(jtcp.IsObject());
// callback function.
JObject jcallback = jtcp.GetProperty("onclose");
if (jcallback.IsFunction()) {
MakeCallback(jcallback, JObject::Null(), JArgList::Empty());
}
}
示例5: FnGet
int JLuaServer::FnGet( lua_State* pLua )
{
if (lua_gettop( pLua ) < 2 || lua_gettop( pLua ) > 3)
{
rlog.err( "LUA: Incorrect command usage: <get>. "
"Function takes 2 or 3 arguments (<objectRef>|<objectName>, <propName>, [tag]), but %d is provided",
lua_gettop( pLua ) );
lua_settop( pLua, 0 );
lua_pushnil( pLua );
return 1;
}
JObject* pObj = NULL;
const char* pPath = lua_tostring( pLua, 1 );
if (pPath)
{
JLuaThread* pThread = reinterpret_cast<JLuaThread*>( pLua->userdata );
assert( pThread->m_pLua == pLua );
JObject* pRootObj = pThread->m_pRootObj;
pObj = g_pObjectServer->FindObject( pPath, NULL, pRootObj );
}
else
{
pObj = reinterpret_cast<JObject*>( lua_touserdata( pLua, 1 ) );
}
const char* pPropName = lua_tostring( pLua, 2 );
int tag = -1;
if (lua_isnumber( pLua, 3 ))
{
tag = (int)lua_tonumber( pLua, 3 );
}
if (!pObj)
{
rlog.warn( "LUA: Trying to call <get> for the nil object. Nil is returned." );
lua_pushnil( pLua );
return 1;
}
static JString val;
bool bRes = pObj->GetProperty( pPropName, val, tag );
if (!bRes)
{
rlog.err( "LUA: Could not get property '%s' for object '%s' of type '%s'.",
pPropName, pObj->GetName(), pObj->ClassName() );
}
lua_pushstring( pLua, val.c_str() );
return 1;
} // JLuaServer::FnGet
示例6: MakeStatObject
JObject MakeStatObject(uv_stat_t* statbuf) {
#define X(name) \
JObject name((int)statbuf->st_##name); \
X(dev)
X(mode)
X(nlink)
X(uid)
X(gid)
X(rdev)
#undef X
#define X(name) \
JObject name((double)statbuf->st_##name); \
X(blksize)
X(ino)
X(size)
X(blocks)
#undef X
Module* module = GetBuiltinModule(MODULE_FS);
JObject* fs = module->module;
JObject createStat = fs->GetProperty("createStat");
JArgList args(10);
args.Add(dev);
args.Add(mode);
args.Add(nlink);
args.Add(uid);
args.Add(gid);
args.Add(rdev);
args.Add(blksize);
args.Add(ino);
args.Add(size);
args.Add(blocks);
JResult jstat_res(createStat.Call(JObject::Null(), args));
IOTJS_ASSERT(jstat_res.IsOk());
return jstat_res.value();
}
示例7: MakeStatObject
JObject MakeStatObject(uv_stat_t* statbuf) {
Module* module = GetBuiltinModule(MODULE_FS);
IOTJS_ASSERT(module != NULL);
JObject* fs = module->module;
IOTJS_ASSERT(fs != NULL);
JObject createStat = fs->GetProperty("_createStat");
IOTJS_ASSERT(createStat.IsFunction());
JObject jstat;
#define X(statobj, name) \
JObject name((int32_t)statbuf->st_##name); \
statobj.SetProperty(#name, name); \
X(jstat, dev)
X(jstat, mode)
X(jstat, nlink)
X(jstat, uid)
X(jstat, gid)
X(jstat, rdev)
#undef X
#define X(statobj, name) \
JObject name((double)statbuf->st_##name); \
statobj.SetProperty(#name, name); \
X(jstat, blksize)
X(jstat, ino)
X(jstat, size)
X(jstat, blocks)
#undef X
JArgList jargs(1);
jargs.Add(jstat);
JResult jstat_res(createStat.Call(JObject::Null(), jargs));
IOTJS_ASSERT(jstat_res.IsOk());
return jstat_res.value();
}