コード例 #1
0
ファイル: DictImpl.cpp プロジェクト: EgoIncarnate/fe-devel
 void DictImpl::encodeJSON( void const *data, JSON::Encoder &encoder ) const
 {
   RC::ConstHandle<StringImpl> keyImplAsStringImpl;
   if ( isString( m_keyImpl->getType() ) )
     keyImplAsStringImpl = RC::ConstHandle<StringImpl>::StaticCast( m_keyImpl );
   
   JSON::ObjectEncoder objectEncoder = encoder.makeObject();
   bits_t const *bits = *reinterpret_cast<bits_t const * const *>( data );
   if ( bits )
   {
     node_t *node = bits->firstNode;
     while ( node )
     {
       void const *keyData = immutableKeyData( node );
       void const *valueData = immutableValueData( node );
       if ( keyImplAsStringImpl )
       {
         JSON::Encoder memberEncoder = objectEncoder.makeMember( keyImplAsStringImpl->getValueData( keyData ), keyImplAsStringImpl->getValueLength( keyData ) );
         m_valueImpl->encodeJSON( valueData, memberEncoder );
       }
       else
       {
         Util::SimpleString encodedKey;
         {
           JSON::Encoder encodedKeyEncoder( &encodedKey );
           m_keyImpl->encodeJSON( keyData, encodedKeyEncoder );
         }
         JSON::Encoder memberEncoder = objectEncoder.makeMember( encodedKey );
         m_valueImpl->encodeJSON( valueData, memberEncoder );
       }
       node = node->bitsNextNode;
     }
   }
 }
コード例 #2
0
ファイル: MethodOp.cpp プロジェクト: nikelin/PublicStable
 void MethodOp::appendJSONMembers( JSON::ObjectEncoder const &jsonObjectEncoder, bool includeLocation ) const
 {
   Expr::appendJSONMembers( jsonObjectEncoder, includeLocation );
   m_expr->appendJSON( jsonObjectEncoder.makeMember( "expr" ), includeLocation );
   jsonObjectEncoder.makeMember( "methodName" ).makeString( m_name );
   m_args->appendJSON( jsonObjectEncoder.makeMember( "args" ), includeLocation );
 }
コード例 #3
0
 void CreateArrayGenerator::appendJSONMembers( JSON::ObjectEncoder const &jsonObjectEncoder, bool includeLocation ) const
 {
   Expr::appendJSONMembers( jsonObjectEncoder, includeLocation );
   m_count->appendJSON( jsonObjectEncoder.makeMember( "count" ), includeLocation );
   jsonObjectEncoder.makeMember( "operatorName" ).makeString( m_operatorName );
   m_shared->appendJSON( jsonObjectEncoder.makeMember( "shared" ), includeLocation );
 }
コード例 #4
0
 void ContainerLoop::appendJSONMembers( JSON::ObjectEncoder const &jsonObjectEncoder, bool includeLocation ) const
 {
   Statement::appendJSONMembers( jsonObjectEncoder, includeLocation );
   m_dictExpr->appendJSON( jsonObjectEncoder.makeMember( "dictExpr" ), includeLocation );
   jsonObjectEncoder.makeMember( "keyName" ).makeString( m_keyName );
   if ( m_valueName.length() > 0 )
     jsonObjectEncoder.makeMember( "valueName" ).makeString( m_valueName );
   m_body->appendJSON( jsonObjectEncoder.makeMember( "body" ), includeLocation );
 }
コード例 #5
0
 void ProducerWrapper::toJSON( JSON::Encoder &jsonEncoder ) const
 {
   JSON::ObjectEncoder jsonObjectEncoder = jsonEncoder.makeObject();
   
   {
     JSON::Encoder typeNameEncoder = jsonObjectEncoder.makeMember( "kind" );
     typeNameEncoder.makeString( getKind() );
   }
  
   toJSONImpl( jsonObjectEncoder );
 }
コード例 #6
0
ファイル: Inst.cpp プロジェクト: EgoIncarnate/fe-devel
 void Inst::jsonDesc( JSON::Encoder &resultEncoder ) const
 {
   JSON::ObjectEncoder resultObjectEncoder = resultEncoder.makeObject();
   {
     JSON::Encoder memberEncoder = resultObjectEncoder.makeMember( "code", 4 );
     memberEncoder.makeString( m_code );
   }
   {
     JSON::Encoder memberEncoder = resultObjectEncoder.makeMember( "jsConstants", 11 );
     memberEncoder.makeString( m_jsConstants );
   }
 }
コード例 #7
0
 void ArrayCacheWrapper::toJSONImpl( JSON::ObjectEncoder &objectEncoder ) const
 {
   {
     JSON::Encoder inputEncoder = objectEncoder.makeMember( "input" );
     m_inputArrayProducer->toJSON( inputEncoder );
   }
 }
コード例 #8
0
 JSONProduceAsyncUserdata( RC::Handle<ValueProducerWrapper> const &valueProducerWrapper_, int32_t serial )
   : valueProducerWrapper( valueProducerWrapper_ )
   , notifyJSONArg( new Util::SimpleString )
   , notifyJSONArgEncoder( notifyJSONArg )
   , notifyJSONArgObjectEncoder( notifyJSONArgEncoder.makeObject() )
 {
   notifyJSONArgObjectEncoder.makeMember( "serial" ).makeInteger( serial );
 }
コード例 #9
0
    void ArrayTransformWrapper::toJSONImpl( JSON::ObjectEncoder &objectEncoder ) const
    {
      {
        JSON::Encoder jg = objectEncoder.makeMember( "input" );
        m_inputArrayProducer->toJSON( jg );
      }

      {
        JSON::Encoder jg = objectEncoder.makeMember( "operator" );
        m_operator->toJSON( jg );
      }

      if ( m_sharedValueProducer )
      {
        JSON::Encoder jg = objectEncoder.makeMember( "shared" );
        m_sharedValueProducer->toJSON( jg );
      }
    }
コード例 #10
0
    void ResourceLoadNode::onProgress( char const *mimeType, size_t done, size_t total, void *userData )
    {
      if( (size_t)userData != m_streamGeneration )
        return;

      size_t prevSize = m_fabricResourceStreamData.getDataSize();
      if ( total < prevSize )
        m_fabricResourceStreamData.resizeData( total );

      if( done < total )
      {
        std::vector<std::string> src;
        src.push_back( "DG" );
        src.push_back( getName() );

        Util::SimpleString json;
        {
            JSON::Encoder jsonEncoder( &json );
            JSON::ObjectEncoder jsonObjectEncoder = jsonEncoder.makeObject();
          {
              JSON::Encoder memberEncoder = jsonObjectEncoder.makeMember( "received", 8 );
              memberEncoder.makeInteger( done );
          }
          {
              JSON::Encoder memberEncoder = jsonObjectEncoder.makeMember( "total", 5 );
              memberEncoder.makeInteger( total );
          }
        }
        getContext()->jsonNotify( src, "resourceLoadProgress", 20, &json );
      }
      else
      {
        m_fabricResourceStreamData.setMIMEType( mimeType );
        m_inProgress = false;//[JeromeCG 20111221] Important: set m_inProgress to false since setResourceData's notifications can trigger an evaluation
        setResourceData( NULL, true );
      }
    }
コード例 #11
0
ファイル: ConstString.cpp プロジェクト: EgoIncarnate/fe-devel
 void ConstString::appendJSONMembers( JSON::ObjectEncoder const &jsonObjectEncoder, bool includeLocation ) const
 {
   Expr::appendJSONMembers( jsonObjectEncoder, includeLocation );
   jsonObjectEncoder.makeMember( "value" ).makeString( m_value );
 }
コード例 #12
0
 void ReturnStatement::appendJSONMembers( JSON::ObjectEncoder const &jsonObjectEncoder, bool includeLocation ) const
 {
   Statement::appendJSONMembers( jsonObjectEncoder, includeLocation );
   if ( m_expr )
     m_expr->appendJSON( jsonObjectEncoder.makeMember( "expr" ), includeLocation );
 }
コード例 #13
0
 void ConstValueWrapper::toJSONImpl( JSON::ObjectEncoder &objectEncoder ) const
 {
   JSON::Encoder jg = objectEncoder.makeMember( "data" );
   m_unwrapped->getValueDesc()->encodeJSON( m_unwrapped->getImmutableData(), jg );
 }
コード例 #14
0
ファイル: MemberDecl.cpp プロジェクト: EgoIncarnate/fe-devel
 void MemberDecl::appendJSONMembers( JSON::ObjectEncoder const &jsonObjectEncoder, bool includeLocation ) const
 {
   Node::appendJSONMembers( jsonObjectEncoder, includeLocation );
   jsonObjectEncoder.makeMember( "name" ).makeString( m_name );
   jsonObjectEncoder.makeMember( "type" ).makeString( m_type );
 }
コード例 #15
0
 void AssignOpImpl::appendJSONMembers( JSON::ObjectEncoder const &jsonObjectEncoder, bool includeLocation ) const
 {
   FunctionBase::appendJSONMembers( jsonObjectEncoder, includeLocation );
   jsonObjectEncoder.makeMember( "op" ).makeString( CG::assignOpUserName( m_assignOpType ) );
   m_rhs->appendJSON( jsonObjectEncoder.makeMember( "rhs" ), includeLocation );
 }
コード例 #16
0
ファイル: IndexOp.cpp プロジェクト: EgoIncarnate/fe-devel
 void IndexOp::appendJSONMembers( JSON::ObjectEncoder const &jsonObjectEncoder, bool includeLocation ) const
 {
   Expr::appendJSONMembers( jsonObjectEncoder, includeLocation );
   m_expr->appendJSON( jsonObjectEncoder.makeMember( "expr" ), includeLocation );
   m_indexExpr->appendJSON( jsonObjectEncoder.makeMember( "indexExpr" ), includeLocation );
 }
コード例 #17
0
 void GlobalConstDecl::appendJSONMembers( JSON::ObjectEncoder const &jsonObjectEncoder, bool includeLocation ) const
 {
   Global::appendJSONMembers( jsonObjectEncoder, includeLocation );
   m_constDecl->appendJSON( jsonObjectEncoder.makeMember( "constDecl" ), includeLocation );
 }
コード例 #18
0
 void CreateConstValue::appendJSONMembers( JSON::ObjectEncoder const &jsonObjectEncoder, bool includeLocation ) const
 {
   Expr::appendJSONMembers( jsonObjectEncoder, includeLocation );
   m_child->appendJSON( jsonObjectEncoder.makeMember( "child" ), includeLocation );
 }
コード例 #19
0
 void SlicedArrayDesc::jsonDesc( JSON::ObjectEncoder &resultObjectEncoder ) const
 {
   ArrayDesc::jsonDesc( resultObjectEncoder );
   resultObjectEncoder.makeMember( "internalType" ).makeString( "slicedArray" );
   resultObjectEncoder.makeMember( "memberType" ).makeString( getMemberDesc()->getUserName() );
 }
コード例 #20
0
 void VarDeclStatement::appendJSONMembers( JSON::ObjectEncoder const &jsonObjectEncoder, bool includeLocation ) const
 {
   Statement::appendJSONMembers( jsonObjectEncoder, includeLocation );
   jsonObjectEncoder.makeMember( "baseType" ).makeString( m_baseType );
   m_varDecls->appendJSON( jsonObjectEncoder.makeMember( "varDecls" ), includeLocation );
 }
コード例 #21
0
 void FixedArrayDesc::jsonDesc( JSON::ObjectEncoder &resultObjectEncoder ) const
 {
   ArrayDesc::jsonDesc( resultObjectEncoder );
   resultObjectEncoder.makeMember( "internalType" ).makeString( "fixedArray" );
   resultObjectEncoder.makeMember( "numMembers" ).makeInteger( getNumMembers() );
 }
コード例 #22
0
 void CreateValueCache::appendJSONMembers( JSON::ObjectEncoder const &jsonObjectEncoder, bool includeLocation ) const
 {
   Expr::appendJSONMembers( jsonObjectEncoder, includeLocation );
   m_input->appendJSON( jsonObjectEncoder.makeMember( "input" ), includeLocation );
 }