Ext.data.amf.Packet

Hierarchy

Ext.Base
Ext.data.amf.Packet

Files

This class represents an Action Message Format (AMF) Packet. It contains all the logic required to decode an AMF Packet from a byte array. To decode a Packet, first construct a Packet:

var packet = Ext.create('Ext.data.amf.Packet');

Then use the decode method to decode an AMF byte array:

packet.decode(bytes);

where "bytes" is a Uint8Array or an array of numbers representing the binary AMF data.

To access the decoded data use the version, headers, and messages properties:

console.log(packet.getVersion(), packet.getHeaders(), packet.getMessages());

For more information on working with AMF data please refer to the AMF Guide.

Properties

Defined By

Instance properties

Ext.data.amf.Packet
view source
: Objectprivate

Converters used in converting specific typed Flex classes to JavaScript usable form.

Converters used in converting specific typed Flex classes to JavaScript usable form.

Ext.data.amf.Packet
view source
: Arrayreadonly
The decoded headers. ...

The decoded headers. Each header has the following properties:

  • name: String The header name. Typically identifies a remote operation or method to be invoked by this context header.
  • mustUnderstand: Boolean If true this flag instructs the endpoint to abort and generate an error if the header is not understood.
  • byteLength: Number If the byte-length of a header is known it can be specified to optimize memory allocation at the remote endpoint.
  • value: Mixed The header value

Defaults to: []

Ext.data.amf.Packet
view source
: Arrayreadonly
The decoded messages. ...

The decoded messages. Each message has the following properties:

  • targetURI: String Describes which operation, function, or method is to be remotely invoked.
  • responseURI: String A unique operation name
  • byteLength: Number Optional byte-length of the message body
  • body: Mixed The message body

Defaults to: []

Get the reference to the current class from which this object was instantiated. ...

Get the reference to the current class from which this object was instantiated. Unlike statics, this.self is scope-dependent and it's meant to be used for dynamic inheritance. See statics for a detailed comparison

Ext.define('My.Cat', {
    statics: {
        speciesName: 'Cat' // My.Cat.speciesName = 'Cat'
    },

    constructor: function() {
        alert(this.self.speciesName); // dependent on 'this'
    },

    clone: function() {
        return new this.self();
    }
});


Ext.define('My.SnowLeopard', {
    extend: 'My.Cat',
    statics: {
        speciesName: 'Snow Leopard'         // My.SnowLeopard.speciesName = 'Snow Leopard'
    }
});

var cat = new My.Cat();                     // alerts 'Cat'
var snowLeopard = new My.SnowLeopard();     // alerts 'Snow Leopard'

var clone = snowLeopard.clone();
alert(Ext.getClassName(clone));             // alerts 'My.SnowLeopard'
Ext.data.amf.Packet
view source
: Objectprivate
Mapping of AMF data types to the names of the methods responsible for reading them. ...

Mapping of AMF data types to the names of the methods responsible for reading them.

Defaults to: {0: {0: 'readDouble', 1: 'readBoolean', 2: 'readAmf0String', 3: 'readAmf0Object', 5: 'readNull', 6: 'readUndefined', 7: 'readReference', 8: 'readEcmaArray', 10: 'readStrictArray', 11: 'readAmf0Date', 12: 'readLongString', 13: 'readUnsupported', 15: 'readAmf0Xml', 16: 'readTypedObject'}, 3: {0: 'readUndefined', 1: 'readNull', 2: 'readFalse', 3: 'readTrue', 4: 'readUInt29', 5: 'readDouble', 6: 'readAmf3String', 7: 'readAmf3Xml', 8: 'readAmf3Date', 9: 'readAmf3Array', 10: 'readAmf3Object', 11: 'readAmf3Xml', 12: 'readByteArray'}}

Ext.data.amf.Packet
view source
: Numberreadonly
The AMF version number (0 or 3) ...

The AMF version number (0 or 3)

Defaults to: 0

Defined By

Static properties

...

Defaults to: []

Methods

Defined By

Instance methods

Call the original method that was previously overridden with override, This method is deprecated as callParent does ...

Call the original method that was previously overridden with override,

This method is deprecated as callParent does the same thing.

Ext.define('My.Cat', {
    constructor: function() {
        alert("I'm a cat!");
    }
});

My.Cat.override({
    constructor: function() {
        alert("I'm going to be a cat!");

        var instance = this.callOverridden();

        alert("Meeeeoooowwww");

        return instance;
    }
});

var kitty = new My.Cat(); // alerts "I'm going to be a cat!"
                          // alerts "I'm a cat!"
                          // alerts "Meeeeoooowwww"

Parameters

  • args : Array/Arguments

    The arguments, either an array or the arguments object from the current method, for example: this.callOverridden(arguments)

Returns

  • Object

    Returns the result of calling the overridden method

Call the "parent" method of the current method. ...

Call the "parent" method of the current method. That is the method previously overridden by derivation or by an override (see Ext.define).

 Ext.define('My.Base', {
     constructor: function (x) {
         this.x = x;
     },

     statics: {
         method: function (x) {
             return x;
         }
     }
 });

 Ext.define('My.Derived', {
     extend: 'My.Base',

     constructor: function () {
         this.callParent([21]);
     }
 });

 var obj = new My.Derived();

 alert(obj.x);  // alerts 21

This can be used with an override as follows:

 Ext.define('My.DerivedOverride', {
     override: 'My.Derived',

     constructor: function (x) {
         this.callParent([x*2]); // calls original My.Derived constructor
     }
 });

 var obj = new My.Derived();

 alert(obj.x);  // now alerts 42

This also works with static methods.

 Ext.define('My.Derived2', {
     extend: 'My.Base',

     statics: {
         method: function (x) {
             return this.callParent([x*2]); // calls My.Base.method
         }
     }
 });

 alert(My.Base.method(10));     // alerts 10
 alert(My.Derived2.method(10)); // alerts 20

Lastly, it also works with overridden static methods.

 Ext.define('My.Derived2Override', {
     override: 'My.Derived2',

     statics: {
         method: function (x) {
             return this.callParent([x*2]); // calls My.Derived2.method
         }
     }
 });

 alert(My.Derived2.method(10)); // now alerts 40

To override a method and replace it and also call the superclass method, use callSuper. This is often done to patch a method to fix a bug.

Parameters

  • args : Array/Arguments

    The arguments, either an array or the arguments object from the current method, for example: this.callParent(arguments)

Returns

  • Object

    Returns the result of calling the parent method

This method is used by an override to call the superclass method but bypass any overridden method. ...

This method is used by an override to call the superclass method but bypass any overridden method. This is often done to "patch" a method that contains a bug but for whatever reason cannot be fixed directly.

Consider:

 Ext.define('Ext.some.Class', {
     method: function () {
         console.log('Good');
     }
 });

 Ext.define('Ext.some.DerivedClass', {
     method: function () {
         console.log('Bad');

         // ... logic but with a bug ...

         this.callParent();
     }
 });

To patch the bug in DerivedClass.method, the typical solution is to create an override:

 Ext.define('App.paches.DerivedClass', {
     override: 'Ext.some.DerivedClass',

     method: function () {
         console.log('Fixed');

         // ... logic but with bug fixed ...

         this.callSuper();
     }
 });

The patch method cannot use callParent to call the superclass method since that would call the overridden method containing the bug. In other words, the above patch would only produce "Fixed" then "Good" in the console log, whereas, using callParent would produce "Fixed" then "Bad" then "Good".

Parameters

  • args : Array/Arguments

    The arguments, either an array or the arguments object from the current method, for example: this.callSuper(arguments)

Returns

  • Object

    Returns the result of calling the superclass method

Ext.data.amf.Packet
view source
( byteArray ) : Ext.data.amf.Packetchainable
Decodes an AMF btye array and sets the decoded data as the Packet's version, headers, and messages properties ...

Decodes an AMF btye array and sets the decoded data as the Packet's version, headers, and messages properties

Parameters

  • byteArray : Array

    A byte array containing the encoded AMF data.

Returns

Fires

    Ext.data.amf.Packet
    view source
    ( byteArray ) : Object
    Decodes an AMF3 byte array and that has one value and returns it. ...

    Decodes an AMF3 byte array and that has one value and returns it. Note: Destroys previously stored data in this Packet.

    Parameters

    • byteArray : Array

      A byte array containing the encoded AMF data.

    Returns

    Fires

      ...

      Parameters

      Returns the initial configuration passed to constructor. ...

      Returns the initial configuration passed to constructor.

      Parameters

      • name : String (optional)

        When supplied, value for particular configuration option is returned, otherwise the full config object is returned.

      Returns

      ...

      Parameters

      ( instanceConfig ) : Objectchainableprotected
      Initialize configuration for this class. ...

      Initialize configuration for this class. a typical example:

      Ext.define('My.awesome.Class', {
          // The default config
          config: {
              name: 'Awesome',
              isAwesome: true
          },
      
          constructor: function(config) {
              this.initConfig(config);
          }
      });
      
      var awesome = new My.awesome.Class({
          name: 'Super Awesome'
      });
      
      alert(awesome.getName()); // 'Super Awesome'
      

      Parameters

      Returns

      • Object

        mixins The mixin prototypes as key - value pairs

      Fires

        ( names, callback, scope )private
        ...

        Parameters

        Ext.data.amf.Packet
        view source
        ( xml )private
        Parses an xml string and returns an xml document ...

        Parses an xml string and returns an xml document

        Parameters

        Ext.data.amf.Packet
        view source
        ( )private
        Reads an AMF0 date from the byte array ...

        Reads an AMF0 date from the byte array

        Fires

          Ext.data.amf.Packet
          view source
          ( obj )private
          Reads an AMF0 Object from the byte array ...

          Reads an AMF0 Object from the byte array

          Parameters

          Fires

            Ext.data.amf.Packet
            view source
            ( )private
            Reads an AMF0 string from the byte array ...

            Reads an AMF0 string from the byte array

            Fires

              Ext.data.amf.Packet
              view source
              ( )private
              ...

              Fires

                Ext.data.amf.Packet
                view source
                ( )private
                ...

                Fires

                  Ext.data.amf.Packet
                  view source
                  ( )private
                  Reads an AMF3 date from the byte array ...

                  Reads an AMF3 date from the byte array

                  Fires

                    Ext.data.amf.Packet
                    view source
                    ( )private
                    Reads an AMF3 object from the byte array ...

                    Reads an AMF3 object from the byte array

                    Fires

                      Ext.data.amf.Packet
                      view source
                      ( )private
                      Reads an AMF3 string from the byte array ...

                      Reads an AMF3 string from the byte array

                      Fires

                        Ext.data.amf.Packet
                        view source
                        ( )private
                        Reads an AMF3 XMLDocument type or XML type from the byte array ...

                        Reads an AMF3 XMLDocument type or XML type from the byte array

                        Fires

                          Ext.data.amf.Packet
                          view source
                          ( )private
                          Reads an AMF0 boolean from the byte array ...

                          Reads an AMF0 boolean from the byte array

                          Ext.data.amf.Packet
                          view source
                          ( )private
                          Reads an AMF3 ByteArray type from the byte array ...

                          Reads an AMF3 ByteArray type from the byte array

                          Fires

                            Ext.data.amf.Packet
                            view source
                            ( )private
                            Reads a IEEE 754 double-precision binary floating-point number ...

                            Reads a IEEE 754 double-precision binary floating-point number

                            Ext.data.amf.Packet
                            view source
                            ( )private
                            Reads an AMF0 ECMA Array from the byte array ...

                            Reads an AMF0 ECMA Array from the byte array

                            Fires

                              Ext.data.amf.Packet
                              view source
                              ( )private
                              Returns false. ...

                              Returns false. Used for reading the false type

                              Ext.data.amf.Packet
                              view source
                              ( )private
                              Reads a long string (longer than 65535 bytes) from the byte array ...

                              Reads a long string (longer than 65535 bytes) from the byte array

                              Fires

                                Ext.data.amf.Packet
                                view source
                                ( )private
                                Returns null. ...

                                Returns null. Used for reading the null type

                                Ext.data.amf.Packet
                                view source
                                ( )private
                                Reads a reference from the byte array. ...

                                Reads a reference from the byte array. Reference types are used to avoid duplicating data if the same instance of a complex object (which is defined in AMF0 as an anonymous object, typed object, array, or ecma-array) is included in the data more than once.

                                Fires

                                  Ext.data.amf.Packet
                                  view source
                                  ( )private
                                  Reads an AMF0 strict array (an array with ordinal indices) ...

                                  Reads an AMF0 strict array (an array with ordinal indices)

                                  Fires

                                    Ext.data.amf.Packet
                                    view source
                                    ( )private
                                    Returns true. ...

                                    Returns true. Used for reading the true type

                                    Ext.data.amf.Packet
                                    view source
                                    ( )private
                                    Reads an AMF0 typed object from the byte array ...

                                    Reads an AMF0 typed object from the byte array

                                    Fires

                                      Ext.data.amf.Packet
                                      view source
                                      ( byteCount ) : Numberprivate
                                      Reads an unsigned integer from the byte array ...

                                      Reads an unsigned integer from the byte array

                                      Parameters

                                      • byteCount : Number

                                        the number of bytes to read, e.g. 2 to read a 16 bit integer, 4 to read a 32 bit integer, etc.

                                      Returns

                                      Ext.data.amf.Packet
                                      view source
                                      ( ) : Numberprivate
                                      Reads an unsigned 29-bit integer from the byte array. ...

                                      Reads an unsigned 29-bit integer from the byte array. AMF 3 makes use of a special compact format for writing integers to reduce the number of bytes required for encoding. As with a normal 32-bit integer, up to 4 bytes are required to hold the value however the high bit of the first 3 bytes are used as flags to determine whether the next byte is part of the integer. With up to 3 bits of the 32 bits being used as flags, only 29 significant bits remain for encoding an integer. This means the largest unsigned integer value that can be represented is 229-1.

                                            (hex)         :                (binary)
                                      

                                      0x00000000 - 0x0000007F : 0xxxxxxx 0x00000080 - 0x00003FFF : 1xxxxxxx 0xxxxxxx 0x00004000 - 0x001FFFFF : 1xxxxxxx 1xxxxxxx 0xxxxxxx 0x00200000 - 0x3FFFFFFF : 1xxxxxxx 1xxxxxxx 1xxxxxxx xxxxxxxx

                                      Returns

                                      Ext.data.amf.Packet
                                      view source
                                      ( )private
                                      Returns undefined. ...

                                      Returns undefined. Used for reading the undefined type

                                      Ext.data.amf.Packet
                                      view source
                                      ( )private
                                      Returns undefined. ...

                                      Returns undefined. Used for reading the unsupported type

                                      Ext.data.amf.Packet
                                      view source
                                      ( byteLength ) : Stringprivate
                                      Reads a UTF-8 string from the byte array ...

                                      Reads a UTF-8 string from the byte array

                                      Parameters

                                      • byteLength : Number

                                        The number of bytes to read

                                      Returns

                                      Ext.data.amf.Packet
                                      view source
                                      ( )private
                                      Reads an AMF "value-type" from the byte array. ...

                                      Reads an AMF "value-type" from the byte array. Automatically detects the data type by reading the "type marker" from the first byte after the pointer.

                                      Fires

                                        ( config, applyIfNotSet ) : Ext.Basechainableprivate
                                        ...

                                        Parameters

                                        Returns

                                        Get the reference to the class from which this object was instantiated. ...

                                        Get the reference to the class from which this object was instantiated. Note that unlike self, this.statics() is scope-independent and it always returns the class from which it was called, regardless of what this points to during run-time

                                        Ext.define('My.Cat', {
                                            statics: {
                                                totalCreated: 0,
                                                speciesName: 'Cat' // My.Cat.speciesName = 'Cat'
                                            },
                                        
                                            constructor: function() {
                                                var statics = this.statics();
                                        
                                                alert(statics.speciesName);     // always equals to 'Cat' no matter what 'this' refers to
                                                                                // equivalent to: My.Cat.speciesName
                                        
                                                alert(this.self.speciesName);   // dependent on 'this'
                                        
                                                statics.totalCreated++;
                                            },
                                        
                                            clone: function() {
                                                var cloned = new this.self();                    // dependent on 'this'
                                        
                                                cloned.groupName = this.statics().speciesName;   // equivalent to: My.Cat.speciesName
                                        
                                                return cloned;
                                            }
                                        });
                                        
                                        
                                        Ext.define('My.SnowLeopard', {
                                            extend: 'My.Cat',
                                        
                                            statics: {
                                                speciesName: 'Snow Leopard'     // My.SnowLeopard.speciesName = 'Snow Leopard'
                                            },
                                        
                                            constructor: function() {
                                                this.callParent();
                                            }
                                        });
                                        
                                        var cat = new My.Cat();                 // alerts 'Cat', then alerts 'Cat'
                                        
                                        var snowLeopard = new My.SnowLeopard(); // alerts 'Cat', then alerts 'Snow Leopard'
                                        
                                        var clone = snowLeopard.clone();
                                        alert(Ext.getClassName(clone));         // alerts 'My.SnowLeopard'
                                        alert(clone.groupName);                 // alerts 'Cat'
                                        
                                        alert(My.Cat.totalCreated);             // alerts 3
                                        

                                        Returns

                                        Defined By

                                        Static methods

                                        ( config, fullMerge )privatestatic
                                        ...

                                        Parameters

                                        ( members )chainableprivatestatic
                                        ...

                                        Parameters

                                        ( name, member )chainableprivatestatic
                                        ...

                                        Parameters

                                        ( members )chainablestatic
                                        Add methods / properties to the prototype of this class. ...

                                        Add methods / properties to the prototype of this class.

                                        Ext.define('My.awesome.Cat', {
                                            constructor: function() {
                                                // ...
                                            }
                                        });
                                        
                                         My.awesome.Cat.addMembers({
                                             meow: function() {
                                                alert('Meowww...');
                                             }
                                         });
                                        
                                         var kitty = new My.awesome.Cat();
                                         kitty.meow();
                                        

                                        Parameters

                                        ( members ) : Ext.Basechainablestatic
                                        Add / override static properties of this class. ...

                                        Add / override static properties of this class.

                                        Ext.define('My.cool.Class', {
                                            // this.se
                                        });
                                        
                                        My.cool.Class.addStatics({
                                            someProperty: 'someValue',      // My.cool.Class.someProperty = 'someValue'
                                            method1: function() {  },    // My.cool.Class.method1 = function() { ... };
                                            method2: function() {  }     // My.cool.Class.method2 = function() { ... };
                                        });
                                        

                                        Parameters

                                        Returns

                                        ( xtype )chainableprivatestatic
                                        ...

                                        Parameters

                                        ( fromClass, members ) : Ext.Basechainableprivatestatic
                                        Borrow another class' members to the prototype of this class. ...

                                        Borrow another class' members to the prototype of this class.

                                        Ext.define('Bank', {
                                            money: '$$$',
                                            printMoney: function() {
                                                alert('$$$$$$$');
                                            }
                                        });
                                        
                                        Ext.define('Thief', {
                                            // ...
                                        });
                                        
                                        Thief.borrow(Bank, ['money', 'printMoney']);
                                        
                                        var steve = new Thief();
                                        
                                        alert(steve.money); // alerts '$$$'
                                        steve.printMoney(); // alerts '$$$$$$$'
                                        

                                        Parameters

                                        • fromClass : Ext.Base

                                          The class to borrow members from

                                        • members : Array/String

                                          The names of the members to borrow

                                        Returns

                                        ( args )protectedstatic
                                        ...

                                        Parameters

                                        Create a new instance of this Class. ...

                                        Create a new instance of this Class.

                                        Ext.define('My.cool.Class', {
                                            // ...
                                        });
                                        
                                        My.cool.Class.create({
                                            someConfig: true
                                        });
                                        

                                        All parameters are passed to the constructor of the class.

                                        Returns

                                        ( alias, origin )static
                                        Create aliases for existing prototype methods. ...

                                        Create aliases for existing prototype methods. Example:

                                        Ext.define('My.cool.Class', {
                                            method1: function() {  },
                                            method2: function() {  }
                                        });
                                        
                                        var test = new My.cool.Class();
                                        
                                        My.cool.Class.createAlias({
                                            method3: 'method1',
                                            method4: 'method2'
                                        });
                                        
                                        test.method3(); // test.method1()
                                        
                                        My.cool.Class.createAlias('method5', 'method3');
                                        
                                        test.method5(); // test.method3() -> test.method1()
                                        

                                        Parameters

                                        ( parent )privatestatic
                                        ...

                                        Parameters

                                        Get the current class' name in string format. ...

                                        Get the current class' name in string format.

                                        Ext.define('My.cool.Class', {
                                            constructor: function() {
                                                alert(this.self.getName()); // alerts 'My.cool.Class'
                                            }
                                        });
                                        
                                        My.cool.Class.getName(); // 'My.cool.Class'
                                        

                                        Returns

                                        ...
                                        ( name, mixinClass )privatestatic
                                        Used internally by the mixins pre-processor ...

                                        Used internally by the mixins pre-processor

                                        Parameters

                                        ( fn, scope )chainableprivatestatic
                                        ...

                                        Parameters

                                        ( members ) : Ext.Basechainabledeprecatedstatic
                                        Override members of this class. ...

                                        Override members of this class. Overridden methods can be invoked via callParent.

                                        Ext.define('My.Cat', {
                                            constructor: function() {
                                                alert("I'm a cat!");
                                            }
                                        });
                                        
                                        My.Cat.override({
                                            constructor: function() {
                                                alert("I'm going to be a cat!");
                                        
                                                var instance = this.callParent(arguments);
                                        
                                                alert("Meeeeoooowwww");
                                        
                                                return instance;
                                            }
                                        });
                                        
                                        var kitty = new My.Cat(); // alerts "I'm going to be a cat!"
                                                                  // alerts "I'm a cat!"
                                                                  // alerts "Meeeeoooowwww"
                                        

                                        As of 2.1, direct use of this method is deprecated. Use Ext.define instead:

                                        Ext.define('My.CatOverride', {
                                            override: 'My.Cat',
                                        
                                            constructor: function() {
                                                alert("I'm going to be a cat!");
                                        
                                                var instance = this.callParent(arguments);
                                        
                                                alert("Meeeeoooowwww");
                                        
                                                return instance;
                                            }
                                        });
                                        

                                        The above accomplishes the same result but can be managed by the Ext.Loader which can properly order the override and its target class and the build process can determine whether the override is needed based on the required state of the target class (My.Cat).

                                        This method has been deprecated since 2.1.0

                                        Please use Ext.define instead

                                        Parameters

                                        • members : Object

                                          The properties to add to this class. This should be specified as an object literal containing one or more properties.

                                        Returns