![]() |
MAK RTIspy API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 2006 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: forwarderDocs.h,v $ $Revision: 1.3 $ $State: Exp $ 00007 *******************************************************************************/ 00008 #ifndef DtForwarderDocs_H_ 00009 #define DtForwarderDocs_H_ 00010 00011 #include <rtiMsConfig.h> 00012 #include "basicEhsDoc.h" 00013 #include "webSpyUtils.h" 00014 #include <vlutil/vlString.h> 00015 #include <vlutil/vlTime.h> 00016 00017 class DtEhsHttpConnectionMgr; 00018 class HttpRequest; 00019 class HttpResponse; 00020 00021 // The XML data block used to pass a single Forwarder's state to the client 00022 class DT_DLL_WWWEHS DtForwarderXML : public DtBasicEhsDoc 00023 { 00024 private: 00025 00026 // Copy Constructor not implimented : Copy not allowed 00027 DtForwarderXML(const DtForwarderXML&); 00028 // Copy Constructor not implimented : Copy not allowed 00029 DtForwarderXML& operator=(const DtForwarderXML&); 00030 00031 public: 00032 00033 DtForwarderXML( DtEhsHttpConnectionMgr& parent, 00034 const DtWebSpyUtils::ConnectionIdentifier& connInfo ); 00035 virtual ~DtForwarderXML(); 00036 00037 protected: 00038 00039 // Serve requests for this page 00040 virtual ResponseCode HandleNonFileRequest( HttpRequest * ipoHttpRequest, 00041 HttpResponse * ipoHttpResponse ); 00042 00043 // Load an initial empty response until first update is available 00044 void initializePage(); 00045 00046 // WWW Request Handlers 00047 00048 // Handler for state requests from the web client 00049 std::auto_ptr< DtString > handleStateRequest( unsigned long connId, 00050 DtWwwRequestXmlBlockSP requestSP, std::auto_ptr< DtString > requestString ); 00051 00052 00053 protected: 00054 00055 typedef std::pair< unsigned long, DtWebSpyUtils::StateComponentType > ComponentIdStateTypePair; 00056 00057 DtEhsHttpConnectionMgr& myParent; 00058 DtWebSpyUtils::ConnectionIdentifier myConnInfo; 00059 00060 00061 // Cache Status - these determine when to request a cache update 00062 // ( and when to wait for the current request to complete ) 00063 std::map< ComponentIdStateTypePair, DtTime > myPendingRequests; 00064 00065 }; 00066 00067 #endif // DtForwarderDocs_H_