You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Current »

Cache configuration changes

Adding ability to set a marshaller to cache configuration:

public class CacheConfiguration {
    // ...
 
    public void setMarshaller(Marshaller marshaller) {...}
    public Marshaller getMarshaller() {...}
 
    // ...
}

 

Public API: New Interface

/**
 * Abstracted binary representation of objects.
 */
public interface IgniteObject {
    /**
     * Gets portable object type ID.
     *
     * @return Type ID.
     */
    public int typeId();

    /**
     * Gets fully deserialized instance of portable object.
     *
     * @return Fully deserialized instance of portable object.
     */
    @Nullable public <T> T deserialize() throws IgniteException;

    /**
     * Gets field value.
     *
     * @param fieldName Field name.
     * @return Field value.
     */
    @Nullable public <T> T field(String fieldName);

    /**
     * Checks whether field is set.
     *
     * @param fieldName Field name.
     * @return {@code true} if field is set.
     */
    public boolean hasField(String fieldName);
 
    /**
     * Gets the source input stream that was used to create this IgniteObject.
     */
    public SeekableDataInput source();
}

 

IgniteObjectFactory and MarshallerEx

 

public interface IgniteObjectMarshaller extends Marshaller {    
    /**
     * @param input Seekable input.
     * @return Cache object.
     */
    @Nullable public IgniteObject toIgniteObject(SeekableDataInput input);

    /**
     * @param input Seekable input.
     * @return Cache object.
     */
    @Nullable public IgniteObject toIgniteObject(byte[] data);

    /**
     * @param typeName Type name.
     * @return Type ID.
     */
    public abstract int typeId(String typeName);}
public interface SeekableDataInput extends DataInput {
    public long position();
 
    public void seek(long pos) throws IOException;
 
    public void ensureOnHeap();
}

 

 
  • No labels