00001 /*----------------------------------------------------------------------------+ 00002 | ___ _ _ | 00003 | / | | | | | | 00004 | / /| | __| | ___ | |__ ___ | 00005 | / /_| |/ _ |/ _ \| _ \ / _ \ | 00006 | / ___ | (_| | (_) | |_) | __/ | 00007 | /_/ |_|\__,_|\___/|____/ \___| | 00008 | | 00009 | | 00010 | ADOBE CONFIDENTIAL | 00011 | __________________ | 00012 | | 00013 | Copyright (c) 2003 - 2007, Adobe Systems Incorporated. | 00014 | All rights reserved. | 00015 | | 00016 | NOTICE: All information contained herein is, and remains the property | 00017 | of Adobe Systems Incorporated and its suppliers, if any. The intellectual | 00018 | and technical concepts contained herein are proprietary to Adobe Systems | 00019 | Incorporated and its suppliers and may be covered by U.S. and Foreign | 00020 | Patents, patents in process, and are protected by trade secret or | 00021 | copyright law. Dissemination of this information or reproduction of this | 00022 | material is strictly forbidden unless prior written permission is | 00023 | obtained from Adobe Systems Incorporated. | 00024 | | 00025 | Adobe Systems Incorporated 415.832.2000 | 00026 | 601 Townsend Street 415.832.2020 fax | 00027 | San Francisco, CA 94103 | 00028 | | 00029 +----------------------------------------------------------------------------*/ 00030 00056 #if !defined( IFCAccessAdaptor_H ) 00057 #define IFCAccessAdaptor_H 00058 00059 #if defined( WIN32 ) 00060 #if defined(FC_DLL_EXPORT) 00061 #define FCExport __declspec(dllexport) 00062 #elif defined(FC_LINK_STATIC) 00063 #define FCExport 00064 #else 00065 #define FCExport __declspec(dllimport) 00066 #endif 00067 #pragma warning(disable : 4251) 00068 #pragma warning(disable : 4275) 00069 #else 00070 #define FCExport 00071 #endif 00072 00073 #define IFC_ACCESS_ENTRY_PROC "IFCCreateAccessAdaptor" 00074 #define STRING_VALUE_BUFFER_LEN 128 00075 00076 class IFCAccessContext; 00077 class IFCStreamInfo; 00078 class IFCAccess; 00079 class IFCAccessAdaptor; 00080 00081 #ifdef __cplusplus 00082 extern "C" { 00083 #endif 00084 00096 extern int FCExport IFCCreateAccessAdaptor(IFCAccessContext* pServer, IFCAccessAdaptor*& pAdaptor); 00097 00098 #ifdef __cplusplus 00099 } 00100 #endif 00101 00106 class FCExport IFCAccessAdaptor 00107 { 00108 public: 00109 inline virtual ~IFCAccessAdaptor() {} 00110 00124 virtual void getVersion( int& iMajor, int& iMinor, int& iMicro ) const = 0; 00125 00130 virtual const char* getDescription() const = 0; 00131 00141 virtual void onAccess( IFCAccess* pAccess ) = 0; 00142 }; 00143 00148 class FCExport IFCAccessContext 00149 { 00150 public: 00154 enum enStats { 00155 eTOTAL_CONNECTED, 00156 eBYTES_IN, 00157 eBYTES_OUT 00158 }; 00159 00160 inline virtual ~IFCAccessContext() {} 00161 00170 virtual const char* getVersion() const = 0; 00171 00178 virtual const char* getDescription() const = 0; 00179 00196 virtual bool getStats(enStats stat, char *strValue, int& iValueLen) const = 0; 00197 }; 00198 00205 namespace fms_access 00206 { 00207 00208 static const char* FLD_REFERRER = "c-referrer"; 00209 static const char* FLD_USER_AGENT = "c-user-agent"; 00210 static const char* FLD_SERVER_URI = "s-uri"; 00211 static const char* FLD_CLIENT_IP = "c-ip"; 00212 static const char* FLD_CLIENT_PROTO = "c-proto"; 00213 static const char* FLD_READ_ACCESS = "readAccess"; 00214 static const char* FLD_WRITE_ACCESS = "writeAccess"; 00215 static const char* FLD_READ_LOCK = "readAccessLock"; 00216 static const char* FLD_WRITE_LOCK = "writeAccessLock"; 00217 static const char* FLD_AUDIO_SAMPLE_ACCESS = "audioSampleAccess"; 00218 static const char* FLD_VIDEO_SAMPLE_ACCESS = "videoSampleAccess"; 00219 static const char* FLD_AUDIO_SAMPLE_LOCK = "audioSampleAccessLock"; 00220 static const char* FLD_VIDEO_SAMPLE_LOCK = "videoSampleAccessLock"; 00221 } 00222 00223 00236 class FCExport IFCAccess 00237 { 00238 public: 00239 00241 00242 enum Type { CONNECT }; 00243 00248 virtual Type getType() const = 0; 00249 00270 virtual const char* getValue( const char* sName ) = 0; 00271 00287 virtual bool setValue( const char* sName, const char* sValue ) = 0; 00288 00301 virtual bool setReadAccess( const char* sReadAccess, bool bLockAccess = true ) = 0; 00302 00315 virtual bool setWriteAccess( const char* sWriteAccess, bool bLockAccess = true ) = 0; 00316 00323 virtual void accept() = 0; 00324 00335 virtual void reject( const char* sReason ) = 0; 00336 00345 virtual void redirect( const char* sUri, const char* sReason ) = 0; 00346 }; 00347 00350 #endif // !defined( IFCAccessAdaptor_H )
Send me an e-mail when comments are added to this page | Comment Report
Current page: http://livedocs.adobe.com/flashmediaserver/3.0/plugin_apiref/html/_i_f_c_access_adaptor_8h-source.html