bool DataSpace::ListPushRight( char* key, int keylen, char* val, int vallen, bool ops /*= true */ ) { void* pkey = JK_MALLOC( keylen+1 ); if ( !pkey ) { DISPMSG_ERROR( "malloc memory failed!\n"); return false; } void* pval = JK_MALLOC( vallen+1 ); if ( !pval ) { DISPMSG_ERROR( "malloc memory failed!\n"); JK_FREE( pkey ); return false; } JK_MEMCPY_S(pkey,keylen+1,key,keylen+1); JK_MEMCPY_S(pval,vallen+1,val,vallen+1); moly_list_type* pDList = (moly_list_type*)m_normalDict.GetElement( pkey ); if ( pDList ) { if ( NULL == pDList->RPush( (char*)pval ) ) { JK_FREE( pkey ); JK_FREE( pval ); return false; } if ( ops ) { Operation ( LOG_CMD_LIST_RPUSH, pkey, pval ); Replication ( LOG_CMD_LIST_RPUSH, key, pval ); } return true; } pDList = JK_NEW(moly_list_type); if ( !pDList ) { DISPMSG_ERROR( "malloc memory failed!\n"); JK_FREE( pkey ); JK_FREE( pval ); return false; } if( NULL == pDList->RPush( (char*)pval ) ) { JK_FREE( pkey ); JK_FREE( pval ); JK_DELETE( moly_list_type, pDList ); return false; } if ( !m_normalDict.AddElement(pkey, pDList ) ) { JK_FREE( pkey ); JK_FREE( pval ); JK_DELETE( moly_list_type, pDList ); return false; } if ( ops ) { Operation ( LOG_CMD_LIST_RPUSH, pkey, pval ); Replication ( LOG_CMD_LIST_RPUSH, key, pval ); } return true; }
void NetInterface::DestroyConnectedObject( NetworkObject *pNetworkObject ) { JK_DELETE(ClientAgent, pNetworkObject); }