### Class

# Vips TargetCustom

#### Description [src]

    class Vips.TargetCustom : Vips.Target
    {
      /* No available fields */
    }

Subclass of `VipsTarget` with action signals for handlers.

This is supposed to be useful for language bindings.

#### Ancestors

- VipsTarget
- VipsConnection
- VipsObject
- GObject

#### Constructors

###### vips_target_custom_new

Create a `VipsTargetCustom`. Attach signals to implement write and finish.

#### Instance methods

##### Methods inherited from VipsTarget (10)

###### vips_target_end

Call this at the end of write to make the target do any cleaning up. You can call it many times.

###### vips_target_putc

Write a single character `ch` to `target`. See the macro `VIPS_TARGET_PUTC()` for a faster way to do this.

###### vips_target_read

Read up to `length` bytes from `target` and store the bytes in `buffer`. Return the number of bytes actually read. If all bytes have been read from the file, return 0.

###### vips_target_seek

Seek the target. This behaves exactly as `lseek()`.

###### vips_target_steal

Memory targets only (see `vips_target_new_to_memory()`). Steal all data written to the target so far, and call `vips_target_end()`.

###### vips_target_steal_text

As `vips_target_steal()`, but return a null-terminated string.

###### vips_target_write

Write `length` bytes from `data` to the output.

###### vips_target_write_amp

Write `str` to `target`, but escape stuff that xml hates in text. Our argument string is utf-8.

###### vips_target_writef

Format the string and write to `target`.

###### vips_target_writes

Write a null-terminated string to `target`.

##### Methods inherited from VipsConnection (2)

###### vips_connection_filename

No description available.

###### vips_connection_nick

No description available.

##### Methods inherited from VipsObject (27)

Please see VipsObject for a full list of methods.

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

#### Properties

##### Properties inherited from VipsTarget (2)

###### Vips.Target:blob

No description available.

###### Vips.Target:memory

No description available.

##### Properties inherited from VipsConnection (2)

###### Vips.Connection:descriptor

No description available.

###### Vips.Connection:filename

No description available.

##### Properties inherited from VipsObject (2)

###### Vips.Object:description

No description available.

###### Vips.Object:nickname

No description available.

#### Signals

###### Vips.TargetCustom::end

This signal is emitted at the end of write. The target should do any finishing necessary.

###### Vips.TargetCustom::finish

Deprecated for `VipsTargetCustom::end`.

###### Vips.TargetCustom::read

This signal is emitted to read bytes from the target into `buffer`.

###### Vips.TargetCustom::seek

This signal is emitted to seek the target. The handler should change the target position appropriately.

###### Vips.TargetCustom::write

This signal is emitted to write bytes to the target.

##### Signals inherited from VipsObject (4)

###### VipsObject::close

The ::close signal is emitted once during object close. The object is dying and may not work.

###### VipsObject::postbuild

The ::postbuild signal is emitted once just after successful object construction. Return non-zero to cause object construction to fail.

###### VipsObject::postclose

The ::postclose signal is emitted once after object close. The object pointer is still valid, but nothing else.

###### VipsObject::preclose

The ::preclose signal is emitted once just before object close starts. The object is still alive.

##### Signals inherited from GObject (1)

###### GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

#### Class structure

    struct VipsTargetCustomClass {
      VipsTargetClass parent_class;
      gint64 (* write) (
        VipsTargetCustom* target,
        void* data,
        gint64 length
      );
      void (* finish) (
        VipsTargetCustom* target
      );
      gint64 (* read) (
        VipsTargetCustom* target,
        void* buffer,
        gint64 length
      );
      gint64 (* seek) (
        VipsTargetCustom* target,
        gint64 offset,
        int whence
      );
      int (* end) (
        VipsTargetCustom* target
      );

    }

No description available.

###### Class members

`parent_class: VipsTargetClass`

  No description available.

`write: gint64 (* write) ( VipsTargetCustom* target, void* data, gint64 length )`

  No description available.

`finish: void (* finish) ( VipsTargetCustom* target )`

  No description available.

`read: gint64 (* read) ( VipsTargetCustom* target, void* buffer, gint64 length )`

  No description available.

`seek: gint64 (* seek) ( VipsTargetCustom* target, gint64 offset, int whence )`

  No description available.

`end: int (* end) ( VipsTargetCustom* target )`

  No description available.

#### Virtual methods

###### Vips.TargetCustomClass.end

No description available.

###### Vips.TargetCustomClass.finish

No description available.

###### Vips.TargetCustomClass.read

No description available.

###### Vips.TargetCustomClass.seek

No description available.

###### Vips.TargetCustomClass.write

No description available.