Files
expvintl 419f2e4752 init
2025-02-23 17:40:52 +08:00

109 lines
2.9 KiB
C++

/**********************************************************************
Filename : GFxASXml.h
Content : XML reference class for ActionScript 2.0
Created : 11/30/2007
Authors : Prasad Silva
Copyright : (c) 2005-2007 Scaleform Corp. All Rights Reserved.
This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING
THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR ANY PURPOSE.
**********************************************************************/
#ifndef INC_GFxASXML_H
#define INC_GFxASXML_H
#include "GConfig.h"
#ifndef GFC_NO_XML_SUPPORT
#include "GFile.h"
#include "AS/GASObject.h"
#include "AS/GASObjectProto.h"
#include "XML/GFxASXmlNode.h"
#include "AS/GASAsBroadcaster.h"
//
// Actionscrip XML object declaration
//
// ***** Declared Classes
class GASXmlObject;
class GASXmlProto;
class GASXmlCtorFunction;
class GASXmlObject : public GASXmlNodeObject
{
friend class GASXmlProto;
friend class GASXmlCtorFunction;
GASNumber BytesLoadedCurrent;
GASNumber BytesLoadedTotal;
protected:
GASXmlObject(GASStringContext *psc, GASObject* pprototype) :
GASXmlNodeObject(psc, pprototype)
{ }
public:
GASXmlObject(GASEnvironment* penv);
virtual ObjectType GetObjectType() const { return Object_XML; }
//
// XML object callbacks
//
void NotifyOnData(GASEnvironment* penv, GASValue val);
void NotifyOnHTTPStatus(GASEnvironment* penv,
GASNumber httpStatus);
void NotifyOnLoad(GASEnvironment* penv, bool success);
void SetLoadedBytes(GASNumber total, GASNumber loaded);
void AssignXMLDecl(GASEnvironment* penv,
GFxXMLDocument* pdoc);
};
class GASXmlProto : public GASPrototype<GASXmlObject>
{
public:
GASXmlProto(GASStringContext *psc, GASObject* prototype,
const GASFunctionRef& constructor);
static const GASNameFunction FunctionTable[];
//
// Default XML object functions
//
static void AddRequestHeader(const GASFnCall& fn);
static void CreateElement(const GASFnCall& fn);
static void CreateTextNode(const GASFnCall& fn);
static void GetBytesLoaded(const GASFnCall& fn);
static void GetBytesTotal(const GASFnCall& fn);
static void Load(const GASFnCall& fn);
static void ParseXML(const GASFnCall& fn);
static void Send(const GASFnCall& fn);
static void SendAndLoad(const GASFnCall& fn);
static void DefaultOnData(const GASFnCall& fn);
};
class GASXmlCtorFunction : public GASCFunctionObject
{
public:
GASXmlCtorFunction(GASStringContext *psc);
static void GlobalCtor(const GASFnCall& fn);
virtual GASObject* CreateNewObject(GASEnvironment* penv) const;
static GASFunctionRef Register(GASGlobalContext* pgc);
};
#endif // ##ifndef GFC_NO_XML_SUPPORT
#endif // INC_GFxASXML_H