Memory (Java Card API, Connected Edition)
Date: 2009-12-11

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javacardx.external
Class Memory

    java.lang.Object
      javacardx.external.Memory

    @TransactionType(value=SUPPORTS)
    public final class Memory

extends Object

This class provides access to memory subsystems that are not directly addressable, typically that of other contactless state machine handlers such as MifareTM. This class could also be used to access specialized memory spaces such as that of a mass storage device.

Since:
  2.2.2

Field Summary
`static byte` | `MEMORY_TYPE_EXTENDED_STORE` Extended Memory Store type constant.
`static byte` | `MEMORY_TYPE_MIFARE` MIFARETM memory type constant.

Method Summary
`static MemoryAccess` | `getMemoryAccessInstance(byte memoryType, short[] memorySize, short memorySizeOffset)` Creates a `MemoryAccess` object instance for the selected memory subsystem.

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### MEMORY_TYPE_MIFARE

    public static final byte MEMORY_TYPE_MIFARE

  MIFARETM memory type constant. When a `MemoryAccess` instance of this type is requested, the `memorySize` and `memorySizeOffset` parameters are ignored.

  To use the `MemoryAccess` instance the following parameters are applicable :

  - auth_key is an 8 byte password, other_len <=16
  - other_sector = 0, 0<= other_block <= 63 for MIFARE 1K chip and 0<= other_block <= 255 for MIFARE 4K chip
  - security related errors return 0 on readData
  - security related errors return false on writeData

  Note:

  - The actual external memory device servicing this memory type maybe a MIFARE 1K chip or a MIFARE 4K chip.

  See Also:
    Constant Field Values

### MEMORY_TYPE_EXTENDED_STORE

    public static final byte MEMORY_TYPE_EXTENDED_STORE

  Extended Memory Store type constant. When a `MemoryAccess` instance of this type is requested, the `memorySize` parameter contains the 32 bit number representing the size in bytes of the memory access required and must be a positive number less than or equal to `2,147,483,647 (2^31 - 1)`.

  To use the `MemoryAccess` instance the following parameters are applicable.

  - auth_key parameter is not required; it is ignored
  - other_len <= 32767
  - (other_sector, other_block) concatenated is a 32 bit address

  Note.

  - To ensure optimal performance on all mass storage memory types when accessing different areas of memory, use monotonically increasing addresses.
  - Each time the `getMemoryAccessInstance` method is called with this memory type parameter, a new memory access object to access a distinct memory chunk is returned. A previously obtained memory access object cannot be used to access the memory chunk obtained via this new memory access object. The new memory access object cannot be used to access the memory chuck accessible via any previously allocated memory access object.

  See Also:
    Constant Field Values

Method Detail

### getMemoryAccessInstance

    public static final MemoryAccess getMemoryAccessInstance(byte memoryType,
                                                             short[] memorySize,
                                                             short memorySizeOffset)
                                                      throws ExternalException

  Creates a `MemoryAccess` object instance for the selected memory subsystem.

  Parameters:
    `memoryType` - the desired external memory subsystem. Valid codes listed in `MEMORY_TYPE_*` constants above, for example `MEMORY_TYPE_MIFARE`.
    `memorySize` - the array containing the desired size in bytes, if applicable, in the external memory subsystem. Check the descriptions of the MEMORY_TYPE_* constants above for more details. The 32 bit number representing the memory size in bytes is formed by concatenating the two short values at offset `memorySizeOffset` (most significant 16 bits) and `memorySizeOffset+1` (least significant 16 bits) in this array
    `memorySizeOffset` - the offset within the `memorySize` array where the 32 bit memory size number in bytes is specified
  Returns:
    the `MemoryAccess` object instance of the requested memory subsystem
  Throws:
    `ExternalException` - with the following reason codes:
    - `ExternalException.NO_SUCH_SUBSYSTEM` if the requested memory subsystem is not available.
    - `ExternalException.INVALID_PARAM` if the `memorySize` parameter is invalid.

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright (c) 2009 Sun Microsystems, Inc. All rights reserved.