Example #1
0
 public void setNativeData(JSONObjectValue new_value)
 {
     if (flagHasNativeData)
     {
     }
     flagHasNativeData = true;
     storeNativeData   = new_value;
 }
Example #2
0
 public void setRealmData(JSONObjectValue new_value)
 {
     if (flagHasRealmData)
     {
     }
     flagHasRealmData = true;
     storeRealmData   = new_value;
 }
 public void setNutrientNameToID(JSONObjectValue new_value)
 {
     if (flagHasNutrientNameToID)
     {
     }
     flagHasNutrientNameToID = true;
     storeNutrientNameToID   = new_value;
 }
Example #4
0
 public void setNewFieldData(JSONObjectValue new_value)
 {
     if (flagHasNewFieldData)
     {
     }
     flagHasNewFieldData = true;
     storeNewFieldData   = new_value;
 }
Example #5
0
 protected abstract void handle_result(JSONObjectValue result);
Example #6
0
 protected override void finish()
 {
     Debug.Assert(value != null);
     handle_result(value);
     value = null;
 }
Example #7
0
 protected override void start()
 {
     Debug.Assert(value == null);
     value = new JSONObjectValue();
 }
Example #8
0
    protected override void handle_result(JSONObjectValue result)
    {
//@@@        Debug.Assert(!have_value);
        have_value = true;
        value      = result;
    }
Example #9
0
    private void set_up_fetch(Fetch fetcher,
                              ConversationStateJSON conversation_state,
                              RequestInfoJSON request_info)
    {
        fetcher.setUserAgent("HoundCloudRequesterCSharp/1.0");

        if (use_proxy)
        {
            fetcher.setProxyServer(proxy_server, proxy_port);
            int param_count = proxy_parameters.Count;
            for (int param_num = 0; param_num < param_count; ++param_num)
            {
                fetcher.setProxyParameter(proxy_parameters[param_num].key,
                                          proxy_parameters[param_num].value);
            }
        }

        long time_stamp =
            (long)((DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0)).
                   TotalSeconds);

        request_info.setTimeStamp(time_stamp);
        if (conversation_state != null)
        {
            request_info.setConversationState(conversation_state);
        }
        string request_id = request_info.getRequestID();

        request_info.setUserID(user_id);
        request_info.setClientID(client_id);
        request_info.setPartialTranscriptsDesired(true);
        request_info.setObjectByteCountPrefix(false);
        request_info.setResultVersionAccepted(1.1);
        request_info.setSDK("C Sharp");
        {
            JSONObjectValue sdk_info = new JSONObjectValue();
            sdk_info.setField("SDKVariant",
                              new JSONStringValue(BuildInfo.SDKVariant));
            sdk_info.setField("SDKPrivateDomains",
                              new JSONStringValue(BuildInfo.SDKPrivateDomains));
            sdk_info.setField("BuildUser",
                              new JSONStringValue(BuildInfo.BuildUser));
            sdk_info.setField("BuildDate",
                              new JSONStringValue(BuildInfo.BuildDate));
            sdk_info.setField("BuildMachine",
                              new JSONStringValue(BuildInfo.BuildMachine));
            sdk_info.setField("BuildSVNRevision",
                              new JSONStringValue(BuildInfo.BuildSVNRevision));
            sdk_info.setField("BuildSVNBranch",
                              new JSONStringValue(BuildInfo.BuildSVNBranch));
            sdk_info.setField("BuildNumber",
                              new JSONStringValue(BuildInfo.BuildNumber));
            sdk_info.setField("BuildKind",
                              new JSONStringValue(BuildInfo.BuildKind));
            sdk_info.setField("BuildVariant",
                              new JSONStringValue(BuildInfo.BuildVariant));
            request_info.setSDKInfo(sdk_info);
        }
        StringWriter     request_info_stream = new StringWriter();
        JSONStreamWriter request_info_writer = new JSONStreamWriter(
            request_info_stream,
            JSONWriter.whitespace_style.WHITESPACE_NONE);

        request_info.write_as_json(request_info_writer);
        fetcher.setParameter("Hound-Request-Info",
                             request_info_stream.ToString());

        string auth_id = user_id + ";" + request_id;

        fetcher.setParameter("Hound-Request-Authentication", auth_id);

        byte[]     key_bits     = Base64.base64url_decode(client_key);
        HMACSHA256 sha_256_hmac = new HMACSHA256(key_bits);

        byte[] hash_result = sha_256_hmac.ComputeHash(
            Encoding.UTF8.GetBytes(
                String.Format("{0}{1}", auth_id, time_stamp)));

        fetcher.setParameter("Hound-Client-Authentication",
                             client_id + ";" + String.Format("{0}", time_stamp) + ";" +
                             new String(Base64.base64url_encode(hash_result)));

        if (request_info.hasInputLanguageEnglishName())
        {
            fetcher.setParameter("Hound-Input-Language-English-Name",
                                 request_info.getInputLanguageEnglishName());
        }
        if (request_info.hasInputLanguageNativeName())
        {
            fetcher.setParameter("Hound-Input-Language-Native-Name",
                                 request_info.getInputLanguageNativeName());
        }
        if (request_info.hasInputLanguageIETFTag())
        {
            fetcher.setParameter("Hound-Input-Language-IETF-Tag",
                                 request_info.getInputLanguageIETFTag());
        }

        fetcher.setTimeoutSeconds(30);
    }