当前位置: 首页>>代码示例>>C++>>正文


C++ CCgiContext::GetResponse方法代码示例

本文整理汇总了C++中CCgiContext::GetResponse方法的典型用法代码示例。如果您正苦于以下问题:C++ CCgiContext::GetResponse方法的具体用法?C++ CCgiContext::GetResponse怎么用?C++ CCgiContext::GetResponse使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CCgiContext的用法示例。


在下文中一共展示了CCgiContext::GetResponse方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: Execute

void CSeqBasicCommand::Execute( CCgiContext& ctx )
{
    const CNcbiRegistry& reg = ctx.GetConfig();
    
    /* load in the html template file */
    string baseFile = reg.Get( "filesystem", "HtmlBaseFile" );
    auto_ptr<CHTMLPage> page( new CHTMLPage( NcbiEmptyString, baseFile ) );
    
    /* set up to replace <@[email protected]> in template file with html returned
       from CreateView */
    page->AddTagMap( "QUICKSEARCH", CreateQuickSearch(ctx) );
    page->AddTagMap( "VIEW", CreateView( ctx ) );
    /* actual page output */
    ctx.GetResponse().WriteHeader();
    page->Print(ctx.GetResponse().out(), CNCBINode::eHTML );
}
开发者ID:iandonaldson,项目名称:slri,代码行数:16,代码来源:seqdata_cmd.cpp

示例2: Execute

void CHelloCommand::Execute( CCgiContext& ctx )
{
    const CNcbiRegistry& reg = ctx.GetConfig();
    
    // load in the html template file
    string baseFile = reg.Get( "filesystem", "HtmlBaseFile" );
	auto_ptr<CHTMLPage> page( new CHTMLPage( NcbiEmptyString, baseFile ) );
    
    // set up to replace <@[email protected]> in template file with html returned
    // from CreateView
	page->AddTagMap( "VIEW", CreateView( ctx ) );

	// actual page output
    ctx.GetResponse().WriteHeader();
    page->Print(ctx.GetResponse().out(), CNCBINode::eHTML );
}
开发者ID:svn2github,项目名称:ncbi_tk,代码行数:16,代码来源:hellocmd.cpp

示例3: ProcessRequest

int CSoapServerApplication::ProcessRequest(CCgiContext& ctx)
{
    const CCgiRequest& request  = ctx.GetRequest();
    CCgiResponse&      response = ctx.GetResponse();
    response.SetContentType("text/xml");
    if (!x_ProcessWsdlRequest(response, request)) {
        x_ProcessSoapRequest(response, request);
    }
    response.Flush();
    return 0;
}
开发者ID:,项目名称:,代码行数:11,代码来源:

示例4: Execute

void CNcbiRelocateCommand::Execute( CCgiContext& ctx )
{
    try {
        string url = GetLink(ctx);
        _TRACE("CNcbiRelocateCommand::Execute changing location to:" << url);
        // Theoretically, the status should be set, but...
        // Commented temporarily to avoid the redirection to go out of
        // NCBI and confuse some not-so-smart clients.
        // It can be restored later when (and if) the NCBI internal HTTP
        // servers are tuned to intercept the redirections and resolve these
        // internally.
        //
        //        ctx.GetResponse().SetStatus(301, "Moved");
        ctx.GetResponse().SetHeaderValue("Location", url);
        ctx.GetResponse().WriteHeader();
    }
    catch (exception&) {
        ERR_POST_X(1, "CNcbiRelocateCommand::Execute error getting url");
        throw;
    }
}
开发者ID:svn2github,项目名称:ncbi_tk,代码行数:21,代码来源:ncbires.cpp

示例5: ProcessRequest

int CNetCacheBlobFetchApp::ProcessRequest(CCgiContext& ctx)
{
    const CCgiRequest& request = ctx.GetRequest();
    CCgiResponse&      reply   = ctx.GetResponse();

    bool is_found;

    string key = request.GetEntry("key", &is_found);
    if (key.empty() || !is_found) {
        NCBI_THROW(CArgException, eNoArg, "CGI entry 'key' is missing");
    }

    string fmt = request.GetEntry("fmt", &is_found);
    if (fmt.empty() || !is_found)
        fmt = "image/png";

    string filename(request.GetEntry("filename", &is_found));
    if (is_found && !filename.empty()) {
        string is_inline(request.GetEntry("inline", &is_found));

        reply.SetHeaderValue("Content-Disposition",
                (is_found && NStr::StringToBool(is_inline) ?
                        "inline; filename=" : "attachment; filename=") +
                filename);
    }

    reply.SetContentType(fmt);

    reply.WriteHeader();

    CNetStorageObject netstorage_object(m_NetStorage.Open(key));

    char buffer[NETSTORAGE_IO_BUFFER_SIZE];

    size_t total_bytes_written = 0;

    while (!netstorage_object.Eof()) {
        size_t bytes_read = netstorage_object.Read(buffer, sizeof(buffer));

        reply.out().write(buffer, bytes_read);
        total_bytes_written += bytes_read;

        if (bytes_read < sizeof(buffer))
            break;
    }

    netstorage_object.Close();

    LOG_POST(Info << "retrieved data: " << total_bytes_written << " bytes");

    return 0;
}
开发者ID:DmitrySigaev,项目名称:ncbi,代码行数:52,代码来源:ncfetch.cpp

示例6: ProcessRequest

int CBlastHitMatrixCGIApplication::ProcessRequest(CCgiContext &ctx)
{
    // retrieve our CGI rendering params
    x_GetCGIContextParams(ctx);            
    x_InitAppData(ctx);        
        
    bool success = true;       
    if(m_BlastHitMatrix->IsFileOut()) {
        success = m_BlastHitMatrix->WriteToFile();
    }
    else {        
        string encoding("image/png");
        CCgiResponse& response = ctx.GetResponse();
        response.SetContentType(encoding);
        response.WriteHeader();        
        success = m_BlastHitMatrix->Display(response.out());
    }
    if(!success) {
        NCBI_THROW(CBlastHitMatrixCGIException, eImageRenderError, "Exception occured, exception message: " + m_BlastHitMatrix->GetErrorMessage()); 
    }
    return 0;
}
开发者ID:jackgopack4,项目名称:pico-blast,代码行数:22,代码来源:cgi_hit_matrix.cpp

示例7: ProcessRequest

int CTestMultipartCgiApplication::ProcessRequest(CCgiContext& ctx)
{
    const CArgs& args = GetArgs();
    CCgiResponse& response = ctx.GetResponse();
    string mode = args["mode"].AsString();

    if (mode == "mixed") {
        response.SetMultipartMode(CCgiResponse::eMultipart_mixed);
    } else if (mode == "related") {
        response.SetMultipartMode(CCgiResponse::eMultipart_related);
    } else if (mode == "replace") {
        response.SetMultipartMode(CCgiResponse::eMultipart_replace);
    }

    response.WriteHeader();

    response.out() << "main document" << endl;

    if (mode == "mixed") {
        response.BeginPart("attachment.foo", "application/x-foo-bar");
        response.out() << "attachment" << endl;
    } else if (mode == "related") {
        response.BeginPart("more-content.foo", "application/x-foo-bar");
        response.out() << "more content" << endl;
    } else if (mode == "replace") {
        response.EndPart();
        SleepSec(1);
        response.BeginPart(kEmptyStr, "text/html");
        response.out() << "updated document" << endl;
    }
    if (mode != "none") {
        response.EndLastPart();
    }

    return 0;
}
开发者ID:svn2github,项目名称:ncbi_tk,代码行数:36,代码来源:test_multipart_cgi.cpp

示例8: aip

void CVACommand :: Execute(CCgiContext& ctx)
{

	CCgiRequest&  req = ctx.GetRequest();
   	CCgiResponse& resp = ctx.GetResponse();
	
	string mst = req.GetEntry("master").GetValue();
	if ( mst.empty() ) {
	
		PrtMes::PrintErrorHeader(&resp, "VastAlign", 1);
      		PrtMes::PrintMsgWithTail(&resp,
            		"<h3>No master privided. </h3>n");
 	}

	if ( 4 == mst.size() ) mst += ' ';
	if ( 6 <= mst.size() ) {
		mst[4] = mst[5];
		if ( 6 == mst.size() ) mst[5] = '\0';
	}
	if ( 'x' == mst[4] ) mst[4] = ' ';
	unsigned i;
	for (i=0; i< mst.size(); i++) mst[i]  = toupper(mst[i]);

	string slv = req.GetEntry("slave").GetValue();
	if ( slv.empty() ) {

	     PrtMes::PrintErrorHeader(&resp, "VastAlign", 1);
	     PrtMes::PrintMsgWithTail(&resp, "<h3>No slave privided. </h3>n");
        }

	if ( 4 == slv.size() ) slv += ' ';
	if ( 6 <= slv.size() ) {
		slv[4] = slv[5];
		if ( 6 == slv.size()) slv[5] = '\0';
	}
	
        if ( 'x' == slv[4] ) slv[4] = ' ';
	for (i=0; i< slv.size(); i++) slv[i] = toupper(slv[i]);

	
	string value = req.GetEntry("from").GetValue();
	unsigned from = 0;
	if ( !value.empty() ) from = atoi(value.c_str());

	value = req.GetEntry("to").GetValue();
	unsigned to = 0;
	if ( !value.empty() ) to = atoi(value.c_str());

	VastPageDataPtr vpp = NewDataType <VastPageData> (1);
  	unsigned row_count =
      		constructTopNBestAlignedVastRows(vpp,1, (char *)mst.c_str(),
					(char *)slv.c_str(), from, to, 0, 0,1);

  	if (!row_count) vpp[0].IpdpLen = 0;
  	BiostrucAnnotSetPtr pbsa = constructBASPFromVastPagePtr(vpp, 1);

{AsnIoPtr aip;
aip = AsnIoOpen("pbsa.out", "w");
BiostrucAnnotSetAsnWrite(pbsa, aip, NULL);
AsnIoClose(aip);
}

	auto_ptr <CObjectOStream> oos
	      ( CObjectOStream::Open( eSerial_AsnBinary, resp.out() ) ); //Cn3D
	CObjectOStream::AsnIo aip(*oos, "Biostruc-annot-set");

	//  printf("Content-type: chemical/ncbi-asn1-binary\n\n"); launch Cn3D 
	//  printf("Content-type: text/html\n\n"); for test

/*
   auto_ptr <CObjectOStream> oos
              ( CObjectOStream::Open( eSerial_AsnText, resp.out() ) );
   aip = AsnIoOpen("pbsa.out", "w");  
*/

	resp.SetContentType("application/octet-stream"); 	// Cn3D
	resp.WriteHeader();
  	BiostrucAnnotSetAsnWrite(pbsa, aip, NULL);
	aip.End();

  	BiostrucAnnotSetFree(pbsa);
	delete [] vpp;

  	return;
}
开发者ID:hsptools,项目名称:hsp-wrap,代码行数:85,代码来源:cVAcmd.cpp


注:本文中的CCgiContext::GetResponse方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。