(* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 3.0.11
 *
 * Do not make changes to this file unless you know what you are doing--modify
 * the SWIG interface file instead.
 * ----------------------------------------------------------------------------- *)

unit example;


{$define example_FUNCTION_WRAPPER}


{$define example_CLASS_WRAPPER}

interface

uses 
     Classes,
     SysUtils;


//type PDouble = ^double;


	type  
		Pdouble=^double;
		doubleArray = array[0..(MaxInt div sizeof(double))-1] of double;
		PdoubleArray = ^doubleArray;



	type  
		Pcardinal=^cardinal;
		cardinalArray = array[0..(MaxInt div sizeof(cardinal))-1] of cardinal;
		PcardinalArray = ^cardinalArray;



	type  
		CFILE=type Pointer;
		CFILEArray = array[0..(MaxInt div sizeof(CFILE))-1] of CFILE;
		PCFILEArray = ^CFILEArray;


type

   T_TF_DataType = (_TF_FLOAT = 1, _TF_DOUBLE = 2, _TF_INT32 = 3, _TF_UINT8 = 4, _TF_INT16 = 5, _TF_INT8 = 6, _TF_STRING = 7, _TF_COMPLEX64 = 8, _TF_COMPLEX = 8, _TF_INT64 = 9, _TF_BOOL = 10, _TF_QINT8 = 11, _TF_QUINT8 = 12, _TF_QINT32 = 13, _TF_BFLOAT16 = 14, _TF_QINT16 = 15, _TF_QUINT16 = 16, _TF_UINT16 = 17, _TF_COMPLEX128 = 18, _TF_HALF = 19, _TF_RESOURCE = 20);

   T_TF_Code = (_TF_OK = 0, _TF_CANCELLED = 1, _TF_UNKNOWN = 2, _TF_INVALID_ARGUMENT = 3, _TF_DEADLINE_EXCEEDED = 4, _TF_NOT_FOUND = 5, _TF_ALREADY_EXISTS = 6, _TF_PERMISSION_DENIED = 7, _TF_UNAUTHENTICATED = 16, _TF_RESOURCE_EXHAUSTED = 8, _TF_FAILED_PRECONDITION = 9, _TF_ABORTED = 10, _TF_OUT_OF_RANGE = 11, _TF_UNIMPLEMENTED = 12, _TF_INTERNAL = 13, _TF_UNAVAILABLE = 14, _TF_DATA_LOSS = 15);

_TF_Buffer = type pointer;
P_TF_BufferArray = ^_TF_BufferArray_;
_TF_BufferArray_=array[0..(MaxInt div sizeof(_TF_Buffer))-1] of _TF_Buffer;

type

_TF_Input = type pointer;
P_TF_InputArray = ^_TF_InputArray_;
_TF_InputArray_=array[0..(MaxInt div sizeof(_TF_Input))-1] of _TF_Input;

type

_TF_Output = type pointer;
P_TF_OutputArray = ^_TF_OutputArray_;
_TF_OutputArray_=array[0..(MaxInt div sizeof(_TF_Output))-1] of _TF_Output;

type

   T_TF_AttrType = (_TF_ATTR_STRING = 0, _TF_ATTR_INT = 1, _TF_ATTR_FLOAT = 2, _TF_ATTR_BOOL = 3, _TF_ATTR_TYPE = 4, _TF_ATTR_SHAPE = 5, _TF_ATTR_TENSOR = 6, _TF_ATTR_PLACEHOLDER = 7, _TF_ATTR_FUNC = 8);

_TF_AttrMetadata = type pointer;
P_TF_AttrMetadataArray = ^_TF_AttrMetadataArray_;
_TF_AttrMetadataArray_=array[0..(MaxInt div sizeof(_TF_AttrMetadata))-1] of _TF_AttrMetadata;

type
	Psize_t = ^Cardinal;


function _TF_Version (): PChar; stdcall;

function _TF_DataTypeSize (dt: integer): NativeUInt; stdcall;

function _TF_NewStatus (): _TF_Status; stdcall;

procedure _TF_DeleteStatus ( arg0: _TF_Status); stdcall;

procedure _TF_SetStatus ( s: _TF_Status;
code: integer;
 msg: PChar); stdcall;

function _TF_GetCode ( s: _TF_Status): integer; stdcall;

function _TF_Message ( s: _TF_Status): PChar; stdcall;

function New_TF_Buffer (): _TF_Buffer; stdcall;

procedure Delete_TF_Buffer ( self: _TF_Buffer); stdcall;

function _TF_NewBufferFromString ( proto: pointer;
proto_len: NativeUInt): _TF_Buffer; stdcall;

function _TF_NewBuffer (): _TF_Buffer; stdcall;

procedure _TF_DeleteBuffer ( arg0: _TF_Buffer); stdcall;

function _TF_GetBuffer ( buffer: _TF_Buffer): _TF_Buffer; stdcall;

function _TF_NewTensor (arg0: integer;
 dims: PNativeUInt;
num_dims: Integer;
 data: pointer;
len: NativeUInt;
 deallocator: void;
 deallocator_arg: pointer): _TF_Tensor; stdcall;

function _TF_AllocateTensor (arg0: integer;
 dims: PNativeUInt;
num_dims: Integer;
len: NativeUInt): _TF_Tensor; stdcall;

procedure _TF_DeleteTensor ( arg0: _TF_Tensor); stdcall;

function _TF_TensorType ( arg0: _TF_Tensor): integer; stdcall;

function _TF_NumDims ( arg0: _TF_Tensor): Integer; stdcall;

function _TF_Dim ( tensor: _TF_Tensor;
dim_index: Integer): NativeUInt; stdcall;

function _TF_TensorByteSize ( arg0: _TF_Tensor): NativeUInt; stdcall;

function _TF_TensorData ( arg0: _TF_Tensor): pointer; stdcall;

function _TF_StringEncode ( src: PChar;
src_len: NativeUInt;
 dst: PChar;
dst_len: NativeUInt;
 status: _TF_Status): NativeUInt; stdcall;

function _TF_StringDecode ( src: PChar;
src_len: NativeUInt;
 dst: char;
 dst_len: PNativeUInt;
 status: _TF_Status): NativeUInt; stdcall;

function _TF_StringEncodedSize (len: NativeUInt): NativeUInt; stdcall;

function _TF_NewSessionOptions (): _TF_SessionOptions; stdcall;

procedure _TF_SetTarget ( options: _TF_SessionOptions;
 target: PChar); stdcall;

procedure _TF_SetConfig ( options: _TF_SessionOptions;
 proto: pointer;
proto_len: NativeUInt;
 status: _TF_Status); stdcall;

procedure _TF_DeleteSessionOptions ( arg0: _TF_SessionOptions); stdcall;

function _TF_NewGraph (): _TF_Graph; stdcall;

procedure _TF_DeleteGraph ( arg0: _TF_Graph); stdcall;

function New_TF_Input (): _TF_Input; stdcall;

procedure Delete_TF_Input ( self: _TF_Input); stdcall;

function New_TF_Output (): _TF_Output; stdcall;

procedure Delete_TF_Output ( self: _TF_Output); stdcall;

procedure _TF_GraphSetTensorShape ( graph: _TF_Graph;
output: _TF_Output;
 dims: PNativeUInt;
num_dims: Integer;
 status: _TF_Status); stdcall;

function _TF_GraphGetTensorNumDims ( graph: _TF_Graph;
output: _TF_Output;
 status: _TF_Status): Integer; stdcall;

procedure _TF_GraphGetTensorShape ( graph: _TF_Graph;
output: _TF_Output;
 dims: PNativeUInt;
num_dims: Integer;
 status: _TF_Status); stdcall;

function _TF_NewOperation ( graph: _TF_Graph;
 op_type, oper_name: PChar): _TF_OperationDescription; stdcall;

procedure _TF_SetDevice ( desc: _TF_OperationDescription;
 device: PChar); stdcall;

procedure _TF_AddInput ( desc: _TF_OperationDescription;
input: _TF_Output); stdcall;

procedure _TF_AddInputList ( desc: _TF_OperationDescription;
 inputs: _TF_Output;
num_inputs: Integer); stdcall;

procedure _TF_AddControlInput ( desc: _TF_OperationDescription;
 input: _TF_Operation); stdcall;

procedure _TF_ColocateWith ( desc: _TF_OperationDescription;
 op: _TF_Operation); stdcall;

procedure _TF_SetAttrString ( desc: _TF_OperationDescription;
 attr_name: PChar;
 value: pointer;
length: NativeUInt); stdcall;

procedure _TF_SetAttrStringList ( desc: _TF_OperationDescription;
 attr_name: PChar;
 values: void;
 lengths: PNativeUInt;
num_values: Integer); stdcall;

procedure _TF_SetAttrInt ( desc: _TF_OperationDescription;
 attr_name: PChar;
value: NativeUInt); stdcall;

procedure _TF_SetAttrIntList ( desc: _TF_OperationDescription;
 attr_name: PChar;
 values: PNativeUInt;
num_values: Integer); stdcall;

procedure _TF_SetAttrFloat ( desc: _TF_OperationDescription;
 attr_name: PChar;
value: single); stdcall;

procedure _TF_SetAttrFloatList ( desc: _TF_OperationDescription;
 attr_name: PChar;
 values: Psingle;
num_values: Integer); stdcall;

procedure _TF_SetAttrBool ( desc: _TF_OperationDescription;
 attr_name: PChar;
value: Byte); stdcall;

procedure _TF_SetAttrBoolList ( desc: _TF_OperationDescription;
 attr_name: PChar;
 values: PByte;
num_values: Integer); stdcall;

procedure _TF_SetAttrType ( desc: _TF_OperationDescription;
 attr_name: PChar;
value: integer); stdcall;

procedure _TF_SetAttrTypeList ( desc: _TF_OperationDescription;
 attr_name: PChar;
 values: _TF_DataType;
num_values: Integer); stdcall;

procedure _TF_SetAttrShape ( desc: _TF_OperationDescription;
 attr_name: PChar;
 dims: PNativeUInt;
num_dims: Integer); stdcall;

procedure _TF_SetAttrShapeList ( desc: _TF_OperationDescription;
 attr_name: PChar;
 dims: NativeUInt;
 num_dims: PInteger;
num_shapes: Integer); stdcall;

procedure _TF_SetAttrTensorShapeProto ( desc: _TF_OperationDescription;
 attr_name: PChar;
 proto: pointer;
proto_len: NativeUInt;
 status: _TF_Status); stdcall;

procedure _TF_SetAttrTensorShapeProtoList ( desc: _TF_OperationDescription;
 attr_name: PChar;
 protos: void;
 proto_lens: PNativeUInt;
num_shapes: Integer;
 status: _TF_Status); stdcall;

procedure _TF_SetAttrTensor ( desc: _TF_OperationDescription;
 attr_name: PChar;
 value: _TF_Tensor;
 status: _TF_Status); stdcall;

procedure _TF_SetAttrTensorList ( desc: _TF_OperationDescription;
 attr_name: PChar;
 values: _TF_Tensor;
num_values: Integer;
 status: _TF_Status); stdcall;

procedure _TF_SetAttrValueProto ( desc: _TF_OperationDescription;
 attr_name: PChar;
 proto: pointer;
proto_len: NativeUInt;
 status: _TF_Status); stdcall;

function _TF_FinishOperation ( desc: _TF_OperationDescription;
 status: _TF_Status): _TF_Operation; stdcall;

function _TF_OperationName ( oper: _TF_Operation): PChar; stdcall;

function _TF_OperationOpType ( oper: _TF_Operation): PChar; stdcall;

function _TF_OperationDevice ( oper: _TF_Operation): PChar; stdcall;

function _TF_OperationNumOutputs ( oper: _TF_Operation): Integer; stdcall;

function _TF_OperationOutputType (oper_out: _TF_Output): integer; stdcall;

function _TF_OperationOutputListLength ( oper: _TF_Operation;
 arg_name: PChar;
 status: _TF_Status): Integer; stdcall;

function _TF_OperationNumInputs ( oper: _TF_Operation): Integer; stdcall;

function _TF_OperationInputType (oper_in: _TF_Input): integer; stdcall;

function _TF_OperationInputListLength ( oper: _TF_Operation;
 arg_name: PChar;
 status: _TF_Status): Integer; stdcall;

function _TF_OperationInput (oper_in: _TF_Input): _TF_Output; stdcall;

function _TF_OperationOutputNumConsumers (oper_out: _TF_Output): Integer; stdcall;

function _TF_OperationOutputConsumers (oper_out: _TF_Output;
 consumers: _TF_Input;
max_consumers: Integer): Integer; stdcall;

function _TF_OperationNumControlInputs ( oper: _TF_Operation): Integer; stdcall;

function _TF_OperationGetControlInputs ( oper, control_inputs: _TF_Operation;
max_control_inputs: Integer): Integer; stdcall;

function _TF_OperationNumControlOutputs ( oper: _TF_Operation): Integer; stdcall;

function _TF_OperationGetControlOutputs ( oper, control_outputs: _TF_Operation;
max_control_outputs: Integer): Integer; stdcall;

function New_TF_AttrMetadata (): _TF_AttrMetadata; stdcall;

procedure Delete_TF_AttrMetadata ( self: _TF_AttrMetadata); stdcall;

function _TF_OperationGetAttrMetadata ( oper: _TF_Operation;
 attr_name: PChar;
 status: _TF_Status): _TF_AttrMetadata; stdcall;

procedure _TF_OperationGetAttrString ( oper: _TF_Operation;
 attr_name: PChar;
 value: pointer;
max_length: NativeUInt;
 status: _TF_Status); stdcall;

procedure _TF_OperationGetAttrStringList ( oper: _TF_Operation;
 attr_name: PChar;
 values: void;
 lengths: PNativeUInt;
max_values: Integer;
 storage: pointer;
storage_size: NativeUInt;
 status: _TF_Status); stdcall;

procedure _TF_OperationGetAttrInt ( oper: _TF_Operation;
 attr_name: PChar;
 value: PNativeUInt;
 status: _TF_Status); stdcall;

procedure _TF_OperationGetAttrIntList ( oper: _TF_Operation;
 attr_name: PChar;
 values: PNativeUInt;
max_values: Integer;
 status: _TF_Status); stdcall;

procedure _TF_OperationGetAttrFloat ( oper: _TF_Operation;
 attr_name: PChar;
 value: Psingle;
 status: _TF_Status); stdcall;

procedure _TF_OperationGetAttrFloatList ( oper: _TF_Operation;
 attr_name: PChar;
 values: Psingle;
max_values: Integer;
 status: _TF_Status); stdcall;

procedure _TF_OperationGetAttrBool ( oper: _TF_Operation;
 attr_name: PChar;
 value: PByte;
 status: _TF_Status); stdcall;

procedure _TF_OperationGetAttrBoolList ( oper: _TF_Operation;
 attr_name: PChar;
 values: PByte;
max_values: Integer;
 status: _TF_Status); stdcall;

procedure _TF_OperationGetAttrType ( oper: _TF_Operation;
 attr_name: PChar;
 value: _TF_DataType;
 status: _TF_Status); stdcall;

procedure _TF_OperationGetAttrTypeList ( oper: _TF_Operation;
 attr_name: PChar;
 values: _TF_DataType;
max_values: Integer;
 status: _TF_Status); stdcall;

procedure _TF_OperationGetAttrShape ( oper: _TF_Operation;
 attr_name: PChar;
 value: PNativeUInt;
num_dims: Integer;
 status: _TF_Status); stdcall;

procedure _TF_OperationGetAttrShapeList ( oper: _TF_Operation;
 attr_name: PChar;
 dims: NativeUInt;
 num_dims: PInteger;
num_shapes: Integer;
 storage: PNativeUInt;
storage_size: Integer;
 status: _TF_Status); stdcall;

procedure _TF_OperationGetAttrTensorShapeProto ( oper: _TF_Operation;
 attr_name: PChar;
 value: _TF_Buffer;
 status: _TF_Status); stdcall;

procedure _TF_OperationGetAttrTensorShapeProtoList ( oper: _TF_Operation;
 attr_name: PChar;
 values: _TF_Buffer;
max_values: Integer;
 status: _TF_Status); stdcall;

procedure _TF_OperationGetAttrTensor ( oper: _TF_Operation;
 attr_name: PChar;
 value: _TF_Tensor;
 status: _TF_Status); stdcall;

procedure _TF_OperationGetAttrTensorList ( oper: _TF_Operation;
 attr_name: PChar;
 values: _TF_Tensor;
max_values: Integer;
 status: _TF_Status); stdcall;

procedure _TF_OperationGetAttrValueProto ( oper: _TF_Operation;
 attr_name: PChar;
 output_attr_value: _TF_Buffer;
 status: _TF_Status); stdcall;

function _TF_GraphOperationByName ( graph: _TF_Graph;
 oper_name: PChar): _TF_Operation; stdcall;

function _TF_GraphNextOperation ( graph: _TF_Graph;
 pos: PNativeUInt): _TF_Operation; stdcall;

procedure _TF_GraphToGraphDef ( graph: _TF_Graph;
 output_graph_def: _TF_Buffer;
 status: _TF_Status); stdcall;

function _TF_NewImportGraphDefOptions (): _TF_ImportGraphDefOptions; stdcall;

procedure _TF_DeleteImportGraphDefOptions ( opts: _TF_ImportGraphDefOptions); stdcall;

procedure _TF_ImportGraphDefOptionsSetPrefix ( opts: _TF_ImportGraphDefOptions;
 prefix: PChar); stdcall;

procedure _TF_GraphImportGraphDef ( graph: _TF_Graph;
 graph_def: _TF_Buffer;
 options: _TF_ImportGraphDefOptions;
 status: _TF_Status); stdcall;

procedure _TF_OperationToNodeDef ( oper: _TF_Operation;
 output_node_def: _TF_Buffer;
 status: _TF_Status); stdcall;

function _TF_NewSession ( graph: _TF_Graph;
 opts: _TF_SessionOptions;
 status: _TF_Status): _TF_Session; stdcall;

function _TF_LoadSessionFromSavedModel ( session_options: _TF_SessionOptions;
 run_options: _TF_Buffer;
 export_dir: PChar;
 tags: char;
tags_len: Integer;
 graph: _TF_Graph;
 meta_graph_def: _TF_Buffer;
 status: _TF_Status): _TF_Session; stdcall;

procedure _TF_CloseSession ( arg0: _TF_Session;
 status: _TF_Status); stdcall;

procedure _TF_DeleteSession ( arg0: _TF_Session;
 status: _TF_Status); stdcall;

procedure _TF_SessionRun ( session: _TF_Session;
 run_options: _TF_Buffer;
 inputs: _TF_Output;
 input_values: _TF_Tensor;
ninputs: Integer;
 outputs: _TF_Output;
 output_values: _TF_Tensor;
noutputs: Integer;
 target_opers: _TF_Operation;
ntargets: Integer;
 run_metadata: _TF_Buffer;
 arg11: _TF_Status); stdcall;

procedure _TF_SessionPRunSetup ( arg0: _TF_Session;
 inputs: _TF_Output;
ninputs: Integer;
 outputs: _TF_Output;
noutputs: Integer;
 target_opers: _TF_Operation;
ntargets: Integer;
 handle: char;
 arg8: _TF_Status); stdcall;

procedure _TF_SessionPRun ( arg0: _TF_Session;
 handle: PChar;
 inputs: _TF_Output;
 input_values: _TF_Tensor;
ninputs: Integer;
 outputs: _TF_Output;
 output_values: _TF_Tensor;
noutputs: Integer;
 target_opers: _TF_Operation;
ntargets: Integer;
 arg10: _TF_Status); stdcall;

function _TF_NewDeprecatedSession ( arg0: _TF_SessionOptions;
 status: _TF_Status): _TF_DeprecatedSession; stdcall;

procedure _TF_CloseDeprecatedSession ( arg0: _TF_DeprecatedSession;
 status: _TF_Status); stdcall;

procedure _TF_DeleteDeprecatedSession ( arg0: _TF_DeprecatedSession;
 status: _TF_Status); stdcall;

procedure _TF_Reset ( opt: _TF_SessionOptions;
 containers: char;
ncontainers: Integer;
 status: _TF_Status); stdcall;

procedure _TF_ExtendGraph ( arg0: _TF_DeprecatedSession;
 proto: pointer;
proto_len: NativeUInt;
 arg3: _TF_Status); stdcall;

procedure _TF_Run ( arg0: _TF_DeprecatedSession;
 run_options: _TF_Buffer;
 input_names: char;
 inputs: _TF_Tensor;
ninputs: Integer;
 output_names: char;
 outputs: _TF_Tensor;
noutputs: Integer;
 target_oper_names: char;
ntargets: Integer;
 run_metadata: _TF_Buffer;
 arg11: _TF_Status); stdcall;

procedure _TF_PRunSetup ( arg0: _TF_DeprecatedSession;
 input_names: char;
ninputs: Integer;
 output_names: char;
noutputs: Integer;
 target_oper_names: char;
ntargets: Integer;
 handle: char;
 arg8: _TF_Status); stdcall;

procedure _TF_PRun ( arg0: _TF_DeprecatedSession;
 handle: PChar;
 input_names: char;
 inputs: _TF_Tensor;
ninputs: Integer;
 output_names: char;
 outputs: _TF_Tensor;
noutputs: Integer;
 target_oper_names: char;
ntargets: Integer;
 arg10: _TF_Status); stdcall;

function _TF_LoadLibrary ( library_filename: PChar;
 status: _TF_Status): _TF_Library; stdcall;

function _TF_GetOpList ( lib_handle: _TF_Library): _TF_Buffer; stdcall;

procedure _TF_DeleteLibraryHandle ( lib_handle: _TF_Library); stdcall;

function _TF_GetAllOpList (): _TF_Buffer; stdcall;

{$ifdef example_CLASS_WRAPPER}

type

  T_TF_Buffer = class

  private
    FCObjPtr : _TF_Buffer;
    FOwnCObjPtr : boolean;

  protected
	procedure SetCObjPtr(Value : _TF_Buffer);
  // IUnknown
    function _AddRef : integer; stdcall;
    function _Release: integer; stdcall;
    function QueryInterface(const GUID:TGUID; out Intf): HRESULT; stdcall;
 public

    procedure SetData ( value: pointer);

    function GetData (): pointer;

    procedure SetLength ( value: NativeUInt);

    function GetLength (): NativeUInt;

 public                  
	property Length : NativeUInt read GetLength write SetLength;


    procedure SetData_deallocator ( value: pointer);

    function GetData_deallocator (): pointer;

    constructor Create ();overload; 

    destructor Destroy; override;
  
  public  
    property CObjPtr : _TF_Buffer read FCObjPtr write SetCObjPtr;
    property OwnCObjPtr : boolean read FOwnCObjPtr  write FOwnCObjPtr ;

  end;


  T_TF_Input = class

  private
    FCObjPtr : _TF_Input;
    FOwnCObjPtr : boolean;

  protected
	procedure SetCObjPtr(Value : _TF_Input);
  // IUnknown
    function _AddRef : integer; stdcall;
    function _Release: integer; stdcall;
    function QueryInterface(const GUID:TGUID; out Intf): HRESULT; stdcall;
 public

    procedure SetOper ( value: TTF_Operation);

    function GetOper (): TTF_Operation;

    procedure SetIndex ( value: Integer);

    function GetIndex (): Integer;

 public                  
	property Index : Integer read GetIndex write SetIndex;


    constructor Create ();overload; 

    destructor Destroy; override;
  
  public  
    property CObjPtr : _TF_Input read FCObjPtr write SetCObjPtr;
    property OwnCObjPtr : boolean read FOwnCObjPtr  write FOwnCObjPtr ;

  end;


  T_TF_Output = class

  private
    FCObjPtr : _TF_Output;
    FOwnCObjPtr : boolean;

  protected
	procedure SetCObjPtr(Value : _TF_Output);
  // IUnknown
    function _AddRef : integer; stdcall;
    function _Release: integer; stdcall;
    function QueryInterface(const GUID:TGUID; out Intf): HRESULT; stdcall;
 public

    procedure SetOper ( value: TTF_Operation);

    function GetOper (): TTF_Operation;

    procedure SetIndex ( value: Integer);

    function GetIndex (): Integer;

 public                  
	property Index : Integer read GetIndex write SetIndex;


    constructor Create ();overload; 

    destructor Destroy; override;
  
  public  
    property CObjPtr : _TF_Output read FCObjPtr write SetCObjPtr;
    property OwnCObjPtr : boolean read FOwnCObjPtr  write FOwnCObjPtr ;

  end;


  T_TF_AttrMetadata = class

  private
    FCObjPtr : _TF_AttrMetadata;
    FOwnCObjPtr : boolean;

  protected
	procedure SetCObjPtr(Value : _TF_AttrMetadata);
  // IUnknown
    function _AddRef : integer; stdcall;
    function _Release: integer; stdcall;
    function QueryInterface(const GUID:TGUID; out Intf): HRESULT; stdcall;
 public

    procedure SetIs_list ( value: Byte);

    function GetIs_list (): Byte;

    procedure SetList_size ( value: NativeUInt);

    function GetList_size (): NativeUInt;

 public                  
	property List_size : NativeUInt read GetList_size write SetList_size;


    procedure SetType ( value: integer);

    function GetType (): integer;

    procedure SetTotal_size ( value: NativeUInt);

    function GetTotal_size (): NativeUInt;

 public                  
	property Total_size : NativeUInt read GetTotal_size write SetTotal_size;


    constructor Create ();overload; 

    destructor Destroy; override;
  
  public  
    property CObjPtr : _TF_AttrMetadata read FCObjPtr write SetCObjPtr;
    property OwnCObjPtr : boolean read FOwnCObjPtr  write FOwnCObjPtr ;

  end;


{$endif} //example_CLASS_WRAPPER

{$ifdef example_FUNCTION_WRAPPER}

// Functions Wrapper 


procedure _TF_Buffer_data_set ( self: _TF_Buffer;
 data: pointer); stdcall;

function _TF_Buffer_data_get ( self: _TF_Buffer): pointer; stdcall;

procedure _TF_Buffer_length_set ( self: _TF_Buffer;
length: NativeUInt); stdcall;

function _TF_Buffer_length_get ( self: _TF_Buffer): NativeUInt; stdcall;

procedure _TF_Buffer_data_deallocator_set ( self: _TF_Buffer;
 data_deallocator: void); stdcall;

function _TF_Buffer_data_deallocator_get ( self: _TF_Buffer): void; stdcall;

procedure _TF_Input_oper_set ( self: _TF_Input;
 oper: _TF_Operation); stdcall;

function _TF_Input_oper_get ( self: _TF_Input): _TF_Operation; stdcall;

procedure _TF_Input_index_set ( self: _TF_Input;
index: Integer); stdcall;

function _TF_Input_index_get ( self: _TF_Input): Integer; stdcall;

procedure _TF_Output_oper_set ( self: _TF_Output;
 oper: _TF_Operation); stdcall;

function _TF_Output_oper_get ( self: _TF_Output): _TF_Operation; stdcall;

procedure _TF_Output_index_set ( self: _TF_Output;
index: Integer); stdcall;

function _TF_Output_index_get ( self: _TF_Output): Integer; stdcall;

procedure _TF_AttrMetadata_is_list_set ( self: _TF_AttrMetadata;
is_list: Byte); stdcall;

function _TF_AttrMetadata_is_list_get ( self: _TF_AttrMetadata): Byte; stdcall;

procedure _TF_AttrMetadata_list_size_set ( self: _TF_AttrMetadata;
list_size: NativeUInt); stdcall;

function _TF_AttrMetadata_list_size_get ( self: _TF_AttrMetadata): NativeUInt; stdcall;

procedure _TF_AttrMetadata_type_set ( self: _TF_AttrMetadata;
_type: integer); stdcall;

function _TF_AttrMetadata_type_get ( self: _TF_AttrMetadata): integer; stdcall;

procedure _TF_AttrMetadata_total_size_set ( self: _TF_AttrMetadata;
total_size: NativeUInt); stdcall;

function _TF_AttrMetadata_total_size_get ( self: _TF_AttrMetadata): NativeUInt; stdcall;

{$endif} //example_FUNCTION_WRAPPER

implementation


const __DLLNAME= 'example.dll';


const __WRAPDLLNAME= 'example.dll';


function _TF_Version (): PChar; stdcall; external __DLLNAME name 'Delphi__TF_Version';

function _TF_DataTypeSize (dt: integer): NativeUInt; stdcall; external __DLLNAME name 'Delphi__TF_DataTypeSize';

function _TF_NewStatus (): _TF_Status; stdcall; external __DLLNAME name 'Delphi__TF_NewStatus';

procedure _TF_DeleteStatus ( arg0: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_DeleteStatus';

procedure _TF_SetStatus ( s: _TF_Status;
code: integer;
 msg: PChar); stdcall; external __DLLNAME name 'Delphi__TF_SetStatus';

function _TF_GetCode ( s: _TF_Status): integer; stdcall; external __DLLNAME name 'Delphi__TF_GetCode';

function _TF_Message ( s: _TF_Status): PChar; stdcall; external __DLLNAME name 'Delphi__TF_Message';

function New_TF_Buffer (): _TF_Buffer; stdcall; external __DLLNAME name 'Delphi_new_TF_Buffer';

procedure Delete_TF_Buffer ( self: _TF_Buffer); stdcall; external __DLLNAME name 'Delphi_delete_TF_Buffer';

function _TF_NewBufferFromString ( proto: pointer;
proto_len: NativeUInt): _TF_Buffer; stdcall; external __DLLNAME name 'Delphi__TF_NewBufferFromString';

function _TF_NewBuffer (): _TF_Buffer; stdcall; external __DLLNAME name 'Delphi__TF_NewBuffer';

procedure _TF_DeleteBuffer ( arg0: _TF_Buffer); stdcall; external __DLLNAME name 'Delphi__TF_DeleteBuffer';

function _TF_GetBuffer ( buffer: _TF_Buffer): _TF_Buffer; stdcall; external __DLLNAME name 'Delphi__TF_GetBuffer';

function _TF_NewTensor (arg0: integer;
 dims: PNativeUInt;
num_dims: Integer;
 data: pointer;
len: NativeUInt;
 deallocator: void;
 deallocator_arg: pointer): _TF_Tensor; stdcall; external __DLLNAME name 'Delphi__TF_NewTensor';

function _TF_AllocateTensor (arg0: integer;
 dims: PNativeUInt;
num_dims: Integer;
len: NativeUInt): _TF_Tensor; stdcall; external __DLLNAME name 'Delphi__TF_AllocateTensor';

procedure _TF_DeleteTensor ( arg0: _TF_Tensor); stdcall; external __DLLNAME name 'Delphi__TF_DeleteTensor';

function _TF_TensorType ( arg0: _TF_Tensor): integer; stdcall; external __DLLNAME name 'Delphi__TF_TensorType';

function _TF_NumDims ( arg0: _TF_Tensor): Integer; stdcall; external __DLLNAME name 'Delphi__TF_NumDims';

function _TF_Dim ( tensor: _TF_Tensor;
dim_index: Integer): NativeUInt; stdcall; external __DLLNAME name 'Delphi__TF_Dim';

function _TF_TensorByteSize ( arg0: _TF_Tensor): NativeUInt; stdcall; external __DLLNAME name 'Delphi__TF_TensorByteSize';

function _TF_TensorData ( arg0: _TF_Tensor): pointer; stdcall; external __DLLNAME name 'Delphi__TF_TensorData';

function _TF_StringEncode ( src: PChar;
src_len: NativeUInt;
 dst: PChar;
dst_len: NativeUInt;
 status: _TF_Status): NativeUInt; stdcall; external __DLLNAME name 'Delphi__TF_StringEncode';

function _TF_StringDecode ( src: PChar;
src_len: NativeUInt;
 dst: char;
 dst_len: PNativeUInt;
 status: _TF_Status): NativeUInt; stdcall; external __DLLNAME name 'Delphi__TF_StringDecode';

function _TF_StringEncodedSize (len: NativeUInt): NativeUInt; stdcall; external __DLLNAME name 'Delphi__TF_StringEncodedSize';

function _TF_NewSessionOptions (): _TF_SessionOptions; stdcall; external __DLLNAME name 'Delphi__TF_NewSessionOptions';

procedure _TF_SetTarget ( options: _TF_SessionOptions;
 target: PChar); stdcall; external __DLLNAME name 'Delphi__TF_SetTarget';

procedure _TF_SetConfig ( options: _TF_SessionOptions;
 proto: pointer;
proto_len: NativeUInt;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_SetConfig';

procedure _TF_DeleteSessionOptions ( arg0: _TF_SessionOptions); stdcall; external __DLLNAME name 'Delphi__TF_DeleteSessionOptions';

function _TF_NewGraph (): _TF_Graph; stdcall; external __DLLNAME name 'Delphi__TF_NewGraph';

procedure _TF_DeleteGraph ( arg0: _TF_Graph); stdcall; external __DLLNAME name 'Delphi__TF_DeleteGraph';

function New_TF_Input (): _TF_Input; stdcall; external __DLLNAME name 'Delphi_new_TF_Input';

procedure Delete_TF_Input ( self: _TF_Input); stdcall; external __DLLNAME name 'Delphi_delete_TF_Input';

function New_TF_Output (): _TF_Output; stdcall; external __DLLNAME name 'Delphi_new_TF_Output';

procedure Delete_TF_Output ( self: _TF_Output); stdcall; external __DLLNAME name 'Delphi_delete_TF_Output';

procedure _TF_GraphSetTensorShape ( graph: _TF_Graph;
output: _TF_Output;
 dims: PNativeUInt;
num_dims: Integer;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_GraphSetTensorShape';

function _TF_GraphGetTensorNumDims ( graph: _TF_Graph;
output: _TF_Output;
 status: _TF_Status): Integer; stdcall; external __DLLNAME name 'Delphi__TF_GraphGetTensorNumDims';

procedure _TF_GraphGetTensorShape ( graph: _TF_Graph;
output: _TF_Output;
 dims: PNativeUInt;
num_dims: Integer;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_GraphGetTensorShape';

function _TF_NewOperation ( graph: _TF_Graph;
 op_type, oper_name: PChar): _TF_OperationDescription; stdcall; external __DLLNAME name 'Delphi__TF_NewOperation';

procedure _TF_SetDevice ( desc: _TF_OperationDescription;
 device: PChar); stdcall; external __DLLNAME name 'Delphi__TF_SetDevice';

procedure _TF_AddInput ( desc: _TF_OperationDescription;
input: _TF_Output); stdcall; external __DLLNAME name 'Delphi__TF_AddInput';

procedure _TF_AddInputList ( desc: _TF_OperationDescription;
 inputs: _TF_Output;
num_inputs: Integer); stdcall; external __DLLNAME name 'Delphi__TF_AddInputList';

procedure _TF_AddControlInput ( desc: _TF_OperationDescription;
 input: _TF_Operation); stdcall; external __DLLNAME name 'Delphi__TF_AddControlInput';

procedure _TF_ColocateWith ( desc: _TF_OperationDescription;
 op: _TF_Operation); stdcall; external __DLLNAME name 'Delphi__TF_ColocateWith';

procedure _TF_SetAttrString ( desc: _TF_OperationDescription;
 attr_name: PChar;
 value: pointer;
length: NativeUInt); stdcall; external __DLLNAME name 'Delphi__TF_SetAttrString';

procedure _TF_SetAttrStringList ( desc: _TF_OperationDescription;
 attr_name: PChar;
 values: void;
 lengths: PNativeUInt;
num_values: Integer); stdcall; external __DLLNAME name 'Delphi__TF_SetAttrStringList';

procedure _TF_SetAttrInt ( desc: _TF_OperationDescription;
 attr_name: PChar;
value: NativeUInt); stdcall; external __DLLNAME name 'Delphi__TF_SetAttrInt';

procedure _TF_SetAttrIntList ( desc: _TF_OperationDescription;
 attr_name: PChar;
 values: PNativeUInt;
num_values: Integer); stdcall; external __DLLNAME name 'Delphi__TF_SetAttrIntList';

procedure _TF_SetAttrFloat ( desc: _TF_OperationDescription;
 attr_name: PChar;
value: single); stdcall; external __DLLNAME name 'Delphi__TF_SetAttrFloat';

procedure _TF_SetAttrFloatList ( desc: _TF_OperationDescription;
 attr_name: PChar;
 values: Psingle;
num_values: Integer); stdcall; external __DLLNAME name 'Delphi__TF_SetAttrFloatList';

procedure _TF_SetAttrBool ( desc: _TF_OperationDescription;
 attr_name: PChar;
value: Byte); stdcall; external __DLLNAME name 'Delphi__TF_SetAttrBool';

procedure _TF_SetAttrBoolList ( desc: _TF_OperationDescription;
 attr_name: PChar;
 values: PByte;
num_values: Integer); stdcall; external __DLLNAME name 'Delphi__TF_SetAttrBoolList';

procedure _TF_SetAttrType ( desc: _TF_OperationDescription;
 attr_name: PChar;
value: integer); stdcall; external __DLLNAME name 'Delphi__TF_SetAttrType';

procedure _TF_SetAttrTypeList ( desc: _TF_OperationDescription;
 attr_name: PChar;
 values: _TF_DataType;
num_values: Integer); stdcall; external __DLLNAME name 'Delphi__TF_SetAttrTypeList';

procedure _TF_SetAttrShape ( desc: _TF_OperationDescription;
 attr_name: PChar;
 dims: PNativeUInt;
num_dims: Integer); stdcall; external __DLLNAME name 'Delphi__TF_SetAttrShape';

procedure _TF_SetAttrShapeList ( desc: _TF_OperationDescription;
 attr_name: PChar;
 dims: NativeUInt;
 num_dims: PInteger;
num_shapes: Integer); stdcall; external __DLLNAME name 'Delphi__TF_SetAttrShapeList';

procedure _TF_SetAttrTensorShapeProto ( desc: _TF_OperationDescription;
 attr_name: PChar;
 proto: pointer;
proto_len: NativeUInt;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_SetAttrTensorShapeProto';

procedure _TF_SetAttrTensorShapeProtoList ( desc: _TF_OperationDescription;
 attr_name: PChar;
 protos: void;
 proto_lens: PNativeUInt;
num_shapes: Integer;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_SetAttrTensorShapeProtoList';

procedure _TF_SetAttrTensor ( desc: _TF_OperationDescription;
 attr_name: PChar;
 value: _TF_Tensor;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_SetAttrTensor';

procedure _TF_SetAttrTensorList ( desc: _TF_OperationDescription;
 attr_name: PChar;
 values: _TF_Tensor;
num_values: Integer;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_SetAttrTensorList';

procedure _TF_SetAttrValueProto ( desc: _TF_OperationDescription;
 attr_name: PChar;
 proto: pointer;
proto_len: NativeUInt;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_SetAttrValueProto';

function _TF_FinishOperation ( desc: _TF_OperationDescription;
 status: _TF_Status): _TF_Operation; stdcall; external __DLLNAME name 'Delphi__TF_FinishOperation';

function _TF_OperationName ( oper: _TF_Operation): PChar; stdcall; external __DLLNAME name 'Delphi__TF_OperationName';

function _TF_OperationOpType ( oper: _TF_Operation): PChar; stdcall; external __DLLNAME name 'Delphi__TF_OperationOpType';

function _TF_OperationDevice ( oper: _TF_Operation): PChar; stdcall; external __DLLNAME name 'Delphi__TF_OperationDevice';

function _TF_OperationNumOutputs ( oper: _TF_Operation): Integer; stdcall; external __DLLNAME name 'Delphi__TF_OperationNumOutputs';

function _TF_OperationOutputType (oper_out: _TF_Output): integer; stdcall; external __DLLNAME name 'Delphi__TF_OperationOutputType';

function _TF_OperationOutputListLength ( oper: _TF_Operation;
 arg_name: PChar;
 status: _TF_Status): Integer; stdcall; external __DLLNAME name 'Delphi__TF_OperationOutputListLength';

function _TF_OperationNumInputs ( oper: _TF_Operation): Integer; stdcall; external __DLLNAME name 'Delphi__TF_OperationNumInputs';

function _TF_OperationInputType (oper_in: _TF_Input): integer; stdcall; external __DLLNAME name 'Delphi__TF_OperationInputType';

function _TF_OperationInputListLength ( oper: _TF_Operation;
 arg_name: PChar;
 status: _TF_Status): Integer; stdcall; external __DLLNAME name 'Delphi__TF_OperationInputListLength';

function _TF_OperationInput (oper_in: _TF_Input): _TF_Output; stdcall; external __DLLNAME name 'Delphi__TF_OperationInput';

function _TF_OperationOutputNumConsumers (oper_out: _TF_Output): Integer; stdcall; external __DLLNAME name 'Delphi__TF_OperationOutputNumConsumers';

function _TF_OperationOutputConsumers (oper_out: _TF_Output;
 consumers: _TF_Input;
max_consumers: Integer): Integer; stdcall; external __DLLNAME name 'Delphi__TF_OperationOutputConsumers';

function _TF_OperationNumControlInputs ( oper: _TF_Operation): Integer; stdcall; external __DLLNAME name 'Delphi__TF_OperationNumControlInputs';

function _TF_OperationGetControlInputs ( oper, control_inputs: _TF_Operation;
max_control_inputs: Integer): Integer; stdcall; external __DLLNAME name 'Delphi__TF_OperationGetControlInputs';

function _TF_OperationNumControlOutputs ( oper: _TF_Operation): Integer; stdcall; external __DLLNAME name 'Delphi__TF_OperationNumControlOutputs';

function _TF_OperationGetControlOutputs ( oper, control_outputs: _TF_Operation;
max_control_outputs: Integer): Integer; stdcall; external __DLLNAME name 'Delphi__TF_OperationGetControlOutputs';

function New_TF_AttrMetadata (): _TF_AttrMetadata; stdcall; external __DLLNAME name 'Delphi_new_TF_AttrMetadata';

procedure Delete_TF_AttrMetadata ( self: _TF_AttrMetadata); stdcall; external __DLLNAME name 'Delphi_delete_TF_AttrMetadata';

function _TF_OperationGetAttrMetadata ( oper: _TF_Operation;
 attr_name: PChar;
 status: _TF_Status): _TF_AttrMetadata; stdcall; external __DLLNAME name 'Delphi__TF_OperationGetAttrMetadata';

procedure _TF_OperationGetAttrString ( oper: _TF_Operation;
 attr_name: PChar;
 value: pointer;
max_length: NativeUInt;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_OperationGetAttrString';

procedure _TF_OperationGetAttrStringList ( oper: _TF_Operation;
 attr_name: PChar;
 values: void;
 lengths: PNativeUInt;
max_values: Integer;
 storage: pointer;
storage_size: NativeUInt;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_OperationGetAttrStringList';

procedure _TF_OperationGetAttrInt ( oper: _TF_Operation;
 attr_name: PChar;
 value: PNativeUInt;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_OperationGetAttrInt';

procedure _TF_OperationGetAttrIntList ( oper: _TF_Operation;
 attr_name: PChar;
 values: PNativeUInt;
max_values: Integer;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_OperationGetAttrIntList';

procedure _TF_OperationGetAttrFloat ( oper: _TF_Operation;
 attr_name: PChar;
 value: Psingle;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_OperationGetAttrFloat';

procedure _TF_OperationGetAttrFloatList ( oper: _TF_Operation;
 attr_name: PChar;
 values: Psingle;
max_values: Integer;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_OperationGetAttrFloatList';

procedure _TF_OperationGetAttrBool ( oper: _TF_Operation;
 attr_name: PChar;
 value: PByte;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_OperationGetAttrBool';

procedure _TF_OperationGetAttrBoolList ( oper: _TF_Operation;
 attr_name: PChar;
 values: PByte;
max_values: Integer;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_OperationGetAttrBoolList';

procedure _TF_OperationGetAttrType ( oper: _TF_Operation;
 attr_name: PChar;
 value: _TF_DataType;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_OperationGetAttrType';

procedure _TF_OperationGetAttrTypeList ( oper: _TF_Operation;
 attr_name: PChar;
 values: _TF_DataType;
max_values: Integer;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_OperationGetAttrTypeList';

procedure _TF_OperationGetAttrShape ( oper: _TF_Operation;
 attr_name: PChar;
 value: PNativeUInt;
num_dims: Integer;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_OperationGetAttrShape';

procedure _TF_OperationGetAttrShapeList ( oper: _TF_Operation;
 attr_name: PChar;
 dims: NativeUInt;
 num_dims: PInteger;
num_shapes: Integer;
 storage: PNativeUInt;
storage_size: Integer;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_OperationGetAttrShapeList';

procedure _TF_OperationGetAttrTensorShapeProto ( oper: _TF_Operation;
 attr_name: PChar;
 value: _TF_Buffer;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_OperationGetAttrTensorShapeProto';

procedure _TF_OperationGetAttrTensorShapeProtoList ( oper: _TF_Operation;
 attr_name: PChar;
 values: _TF_Buffer;
max_values: Integer;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_OperationGetAttrTensorShapeProtoList';

procedure _TF_OperationGetAttrTensor ( oper: _TF_Operation;
 attr_name: PChar;
 value: _TF_Tensor;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_OperationGetAttrTensor';

procedure _TF_OperationGetAttrTensorList ( oper: _TF_Operation;
 attr_name: PChar;
 values: _TF_Tensor;
max_values: Integer;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_OperationGetAttrTensorList';

procedure _TF_OperationGetAttrValueProto ( oper: _TF_Operation;
 attr_name: PChar;
 output_attr_value: _TF_Buffer;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_OperationGetAttrValueProto';

function _TF_GraphOperationByName ( graph: _TF_Graph;
 oper_name: PChar): _TF_Operation; stdcall; external __DLLNAME name 'Delphi__TF_GraphOperationByName';

function _TF_GraphNextOperation ( graph: _TF_Graph;
 pos: PNativeUInt): _TF_Operation; stdcall; external __DLLNAME name 'Delphi__TF_GraphNextOperation';

procedure _TF_GraphToGraphDef ( graph: _TF_Graph;
 output_graph_def: _TF_Buffer;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_GraphToGraphDef';

function _TF_NewImportGraphDefOptions (): _TF_ImportGraphDefOptions; stdcall; external __DLLNAME name 'Delphi__TF_NewImportGraphDefOptions';

procedure _TF_DeleteImportGraphDefOptions ( opts: _TF_ImportGraphDefOptions); stdcall; external __DLLNAME name 'Delphi__TF_DeleteImportGraphDefOptions';

procedure _TF_ImportGraphDefOptionsSetPrefix ( opts: _TF_ImportGraphDefOptions;
 prefix: PChar); stdcall; external __DLLNAME name 'Delphi__TF_ImportGraphDefOptionsSetPrefix';

procedure _TF_GraphImportGraphDef ( graph: _TF_Graph;
 graph_def: _TF_Buffer;
 options: _TF_ImportGraphDefOptions;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_GraphImportGraphDef';

procedure _TF_OperationToNodeDef ( oper: _TF_Operation;
 output_node_def: _TF_Buffer;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_OperationToNodeDef';

function _TF_NewSession ( graph: _TF_Graph;
 opts: _TF_SessionOptions;
 status: _TF_Status): _TF_Session; stdcall; external __DLLNAME name 'Delphi__TF_NewSession';

function _TF_LoadSessionFromSavedModel ( session_options: _TF_SessionOptions;
 run_options: _TF_Buffer;
 export_dir: PChar;
 tags: char;
tags_len: Integer;
 graph: _TF_Graph;
 meta_graph_def: _TF_Buffer;
 status: _TF_Status): _TF_Session; stdcall; external __DLLNAME name 'Delphi__TF_LoadSessionFromSavedModel';

procedure _TF_CloseSession ( arg0: _TF_Session;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_CloseSession';

procedure _TF_DeleteSession ( arg0: _TF_Session;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_DeleteSession';

procedure _TF_SessionRun ( session: _TF_Session;
 run_options: _TF_Buffer;
 inputs: _TF_Output;
 input_values: _TF_Tensor;
ninputs: Integer;
 outputs: _TF_Output;
 output_values: _TF_Tensor;
noutputs: Integer;
 target_opers: _TF_Operation;
ntargets: Integer;
 run_metadata: _TF_Buffer;
 arg11: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_SessionRun';

procedure _TF_SessionPRunSetup ( arg0: _TF_Session;
 inputs: _TF_Output;
ninputs: Integer;
 outputs: _TF_Output;
noutputs: Integer;
 target_opers: _TF_Operation;
ntargets: Integer;
 handle: char;
 arg8: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_SessionPRunSetup';

procedure _TF_SessionPRun ( arg0: _TF_Session;
 handle: PChar;
 inputs: _TF_Output;
 input_values: _TF_Tensor;
ninputs: Integer;
 outputs: _TF_Output;
 output_values: _TF_Tensor;
noutputs: Integer;
 target_opers: _TF_Operation;
ntargets: Integer;
 arg10: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_SessionPRun';

function _TF_NewDeprecatedSession ( arg0: _TF_SessionOptions;
 status: _TF_Status): _TF_DeprecatedSession; stdcall; external __DLLNAME name 'Delphi__TF_NewDeprecatedSession';

procedure _TF_CloseDeprecatedSession ( arg0: _TF_DeprecatedSession;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_CloseDeprecatedSession';

procedure _TF_DeleteDeprecatedSession ( arg0: _TF_DeprecatedSession;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_DeleteDeprecatedSession';

procedure _TF_Reset ( opt: _TF_SessionOptions;
 containers: char;
ncontainers: Integer;
 status: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_Reset';

procedure _TF_ExtendGraph ( arg0: _TF_DeprecatedSession;
 proto: pointer;
proto_len: NativeUInt;
 arg3: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_ExtendGraph';

procedure _TF_Run ( arg0: _TF_DeprecatedSession;
 run_options: _TF_Buffer;
 input_names: char;
 inputs: _TF_Tensor;
ninputs: Integer;
 output_names: char;
 outputs: _TF_Tensor;
noutputs: Integer;
 target_oper_names: char;
ntargets: Integer;
 run_metadata: _TF_Buffer;
 arg11: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_Run';

procedure _TF_PRunSetup ( arg0: _TF_DeprecatedSession;
 input_names: char;
ninputs: Integer;
 output_names: char;
noutputs: Integer;
 target_oper_names: char;
ntargets: Integer;
 handle: char;
 arg8: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_PRunSetup';

procedure _TF_PRun ( arg0: _TF_DeprecatedSession;
 handle: PChar;
 input_names: char;
 inputs: _TF_Tensor;
ninputs: Integer;
 output_names: char;
 outputs: _TF_Tensor;
noutputs: Integer;
 target_oper_names: char;
ntargets: Integer;
 arg10: _TF_Status); stdcall; external __DLLNAME name 'Delphi__TF_PRun';

function _TF_LoadLibrary ( library_filename: PChar;
 status: _TF_Status): _TF_Library; stdcall; external __DLLNAME name 'Delphi__TF_LoadLibrary';

function _TF_GetOpList ( lib_handle: _TF_Library): _TF_Buffer; stdcall; external __DLLNAME name 'Delphi__TF_GetOpList';

procedure _TF_DeleteLibraryHandle ( lib_handle: _TF_Library); stdcall; external __DLLNAME name 'Delphi__TF_DeleteLibraryHandle';

function _TF_GetAllOpList (): _TF_Buffer; stdcall; external __DLLNAME name 'Delphi__TF_GetAllOpList';

{$ifdef example_FUNCTION_WRAPPER}

// Functions Wrapper 


procedure _TF_Buffer_data_set ( self: _TF_Buffer;
 data: pointer); stdcall; external __WRAPDLLNAME name 'Delphi__TF_Buffer_data_set';

function _TF_Buffer_data_get ( self: _TF_Buffer): pointer; stdcall; external __WRAPDLLNAME name 'Delphi__TF_Buffer_data_get';

procedure _TF_Buffer_length_set ( self: _TF_Buffer;
length: NativeUInt); stdcall; external __WRAPDLLNAME name 'Delphi__TF_Buffer_length_set';

function _TF_Buffer_length_get ( self: _TF_Buffer): NativeUInt; stdcall; external __WRAPDLLNAME name 'Delphi__TF_Buffer_length_get';

procedure _TF_Buffer_data_deallocator_set ( self: _TF_Buffer;
 data_deallocator: void); stdcall; external __WRAPDLLNAME name 'Delphi__TF_Buffer_data_deallocator_set';

function _TF_Buffer_data_deallocator_get ( self: _TF_Buffer): void; stdcall; external __WRAPDLLNAME name 'Delphi__TF_Buffer_data_deallocator_get';

procedure _TF_Input_oper_set ( self: _TF_Input;
 oper: _TF_Operation); stdcall; external __WRAPDLLNAME name 'Delphi__TF_Input_oper_set';

function _TF_Input_oper_get ( self: _TF_Input): _TF_Operation; stdcall; external __WRAPDLLNAME name 'Delphi__TF_Input_oper_get';

procedure _TF_Input_index_set ( self: _TF_Input;
index: Integer); stdcall; external __WRAPDLLNAME name 'Delphi__TF_Input_index_set';

function _TF_Input_index_get ( self: _TF_Input): Integer; stdcall; external __WRAPDLLNAME name 'Delphi__TF_Input_index_get';

procedure _TF_Output_oper_set ( self: _TF_Output;
 oper: _TF_Operation); stdcall; external __WRAPDLLNAME name 'Delphi__TF_Output_oper_set';

function _TF_Output_oper_get ( self: _TF_Output): _TF_Operation; stdcall; external __WRAPDLLNAME name 'Delphi__TF_Output_oper_get';

procedure _TF_Output_index_set ( self: _TF_Output;
index: Integer); stdcall; external __WRAPDLLNAME name 'Delphi__TF_Output_index_set';

function _TF_Output_index_get ( self: _TF_Output): Integer; stdcall; external __WRAPDLLNAME name 'Delphi__TF_Output_index_get';

procedure _TF_AttrMetadata_is_list_set ( self: _TF_AttrMetadata;
is_list: Byte); stdcall; external __WRAPDLLNAME name 'Delphi__TF_AttrMetadata_is_list_set';

function _TF_AttrMetadata_is_list_get ( self: _TF_AttrMetadata): Byte; stdcall; external __WRAPDLLNAME name 'Delphi__TF_AttrMetadata_is_list_get';

procedure _TF_AttrMetadata_list_size_set ( self: _TF_AttrMetadata;
list_size: NativeUInt); stdcall; external __WRAPDLLNAME name 'Delphi__TF_AttrMetadata_list_size_set';

function _TF_AttrMetadata_list_size_get ( self: _TF_AttrMetadata): NativeUInt; stdcall; external __WRAPDLLNAME name 'Delphi__TF_AttrMetadata_list_size_get';

procedure _TF_AttrMetadata_type_set ( self: _TF_AttrMetadata;
_type: integer); stdcall; external __WRAPDLLNAME name 'Delphi__TF_AttrMetadata_type_set';

function _TF_AttrMetadata_type_get ( self: _TF_AttrMetadata): integer; stdcall; external __WRAPDLLNAME name 'Delphi__TF_AttrMetadata_type_get';

procedure _TF_AttrMetadata_total_size_set ( self: _TF_AttrMetadata;
total_size: NativeUInt); stdcall; external __WRAPDLLNAME name 'Delphi__TF_AttrMetadata_total_size_set';

function _TF_AttrMetadata_total_size_get ( self: _TF_AttrMetadata): NativeUInt; stdcall; external __WRAPDLLNAME name 'Delphi__TF_AttrMetadata_total_size_get';

{$endif} //example_FUNCTION_WRAPPER

{$ifdef example_CLASS_WRAPPER}

procedure T_TF_Buffer.SetData ( value: pointer);


begin

  assert(FCObjPtr <> nil);
 example._TF_Buffer_data_set(Self.FCObjPtr, value);


end;

function T_TF_Buffer.GetData (): pointer;

begin

  assert(FCObjPtr <> nil);
  Result := example._TF_Buffer_data_get(Self.FCObjPtr) ;

end;

procedure T_TF_Buffer.SetLength ( value: NativeUInt);

begin

  assert(FCObjPtr <> nil);
 example._TF_Buffer_length_set(Self.FCObjPtr, value);

end;

function T_TF_Buffer.GetLength (): NativeUInt;

begin

  assert(FCObjPtr <> nil);
  Result := example._TF_Buffer_length_get(Self.FCObjPtr) ;

end;

procedure T_TF_Buffer.SetData_deallocator ( value: pointer);


begin

  assert(FCObjPtr <> nil);
 example._TF_Buffer_data_deallocator_set(Self.FCObjPtr, value.CObjPtr);


end;

function T_TF_Buffer.GetData_deallocator (): pointer;
var CPtr : _TF_Buffer;

begin

  assert(FCObjPtr <> nil);
 
    cPtr := example._TF_Buffer_data_deallocator_get(Self.FCObjPtr);
    if cPtr <> nil then
		Result := TSWIGTYPE_p_f_p_void_size_t__void.Create(example._TF_Buffer_data_deallocator_get(Self.FCObjPtr), false)
	else
		Result := nil;
;

end;

constructor T_TF_Buffer.Create ();

begin

  inherited Create;
  FOwnCObjPtr := true;
   FCObjPtr := example.New_TF_Buffer();

end;


function T_TF_Buffer._AddRef : integer;
begin
   Result := -1;
end;

function T_TF_Buffer._Release: integer;
begin
   Result := -1;
end;

function T_TF_Buffer.QueryInterface(const GUID:TGUID; out Intf): HRESULT;
begin
   if GetInterface(GUID, Intf) then
      Result := S_OK
   else
      Result := S_FALSE	;
end; 
 
destructor T_TF_Buffer.Destroy; 
begin   
  if (FCObjPtr <> nil) and  FOwnCObjPtr then begin 
    example.delete__TF_Buffer(FCObjPtr);
    FOwnCObjPtr := false;
  end;
  FCObjPtr := nil; 
  inherited Destroy;
end;

procedure T_TF_Buffer.SetCObjPtr(Value : _TF_Buffer);
begin
 
  if (Value <> FCObjPtr) then begin
	if (FCObjPtr <> nil) and  FOwnCObjPtr then begin 
		example.delete__TF_Buffer(FCObjPtr);
	end;
	FCObjPtr := Value;
  
  
  end;

end;


procedure T_TF_Input.SetOper ( value: TTF_Operation);


begin

  assert(FCObjPtr <> nil);
 example._TF_Input_oper_set(Self.FCObjPtr, value.CObjPtr);


end;

function T_TF_Input.GetOper (): TTF_Operation;
var CPtr : _TF_Input;

begin

  assert(FCObjPtr <> nil);
 
    cPtr := example._TF_Input_oper_get(Self.FCObjPtr);
    if cPtr <> nil then
		Result := TSWIGTYPE_p_TF_Operation.Create(example._TF_Input_oper_get(Self.FCObjPtr), false)
	else
		Result := nil;
;

end;

procedure T_TF_Input.SetIndex ( value: Integer);

begin

  assert(FCObjPtr <> nil);
 example._TF_Input_index_set(Self.FCObjPtr, value);

end;

function T_TF_Input.GetIndex (): Integer;

begin

  assert(FCObjPtr <> nil);
  Result := example._TF_Input_index_get(Self.FCObjPtr) ;

end;

constructor T_TF_Input.Create ();

begin

  inherited Create;
  FOwnCObjPtr := true;
   FCObjPtr := example.New_TF_Input();

end;


function T_TF_Input._AddRef : integer;
begin
   Result := -1;
end;

function T_TF_Input._Release: integer;
begin
   Result := -1;
end;

function T_TF_Input.QueryInterface(const GUID:TGUID; out Intf): HRESULT;
begin
   if GetInterface(GUID, Intf) then
      Result := S_OK
   else
      Result := S_FALSE	;
end; 
 
destructor T_TF_Input.Destroy; 
begin   
  if (FCObjPtr <> nil) and  FOwnCObjPtr then begin 
    example.delete__TF_Input(FCObjPtr);
    FOwnCObjPtr := false;
  end;
  FCObjPtr := nil; 
  inherited Destroy;
end;

procedure T_TF_Input.SetCObjPtr(Value : _TF_Input);
begin
 
  if (Value <> FCObjPtr) then begin
	if (FCObjPtr <> nil) and  FOwnCObjPtr then begin 
		example.delete__TF_Input(FCObjPtr);
	end;
	FCObjPtr := Value;
  
  
  end;

end;


procedure T_TF_Output.SetOper ( value: TTF_Operation);


begin

  assert(FCObjPtr <> nil);
 example._TF_Output_oper_set(Self.FCObjPtr, value.CObjPtr);


end;

function T_TF_Output.GetOper (): TTF_Operation;
var CPtr : _TF_Output;

begin

  assert(FCObjPtr <> nil);
 
    cPtr := example._TF_Output_oper_get(Self.FCObjPtr);
    if cPtr <> nil then
		Result := TSWIGTYPE_p_TF_Operation.Create(example._TF_Output_oper_get(Self.FCObjPtr), false)
	else
		Result := nil;
;

end;

procedure T_TF_Output.SetIndex ( value: Integer);

begin

  assert(FCObjPtr <> nil);
 example._TF_Output_index_set(Self.FCObjPtr, value);

end;

function T_TF_Output.GetIndex (): Integer;

begin

  assert(FCObjPtr <> nil);
  Result := example._TF_Output_index_get(Self.FCObjPtr) ;

end;

constructor T_TF_Output.Create ();

begin

  inherited Create;
  FOwnCObjPtr := true;
   FCObjPtr := example.New_TF_Output();

end;


function T_TF_Output._AddRef : integer;
begin
   Result := -1;
end;

function T_TF_Output._Release: integer;
begin
   Result := -1;
end;

function T_TF_Output.QueryInterface(const GUID:TGUID; out Intf): HRESULT;
begin
   if GetInterface(GUID, Intf) then
      Result := S_OK
   else
      Result := S_FALSE	;
end; 
 
destructor T_TF_Output.Destroy; 
begin   
  if (FCObjPtr <> nil) and  FOwnCObjPtr then begin 
    example.delete__TF_Output(FCObjPtr);
    FOwnCObjPtr := false;
  end;
  FCObjPtr := nil; 
  inherited Destroy;
end;

procedure T_TF_Output.SetCObjPtr(Value : _TF_Output);
begin
 
  if (Value <> FCObjPtr) then begin
	if (FCObjPtr <> nil) and  FOwnCObjPtr then begin 
		example.delete__TF_Output(FCObjPtr);
	end;
	FCObjPtr := Value;
  
  
  end;

end;


procedure T_TF_AttrMetadata.SetIs_list ( value: Byte);

begin

  assert(FCObjPtr <> nil);
 example._TF_AttrMetadata_is_list_set(Self.FCObjPtr, value);

end;

function T_TF_AttrMetadata.GetIs_list (): Byte;

begin

  assert(FCObjPtr <> nil);
  Result := example._TF_AttrMetadata_is_list_get(Self.FCObjPtr) ;

end;

procedure T_TF_AttrMetadata.SetList_size ( value: NativeUInt);

begin

  assert(FCObjPtr <> nil);
 example._TF_AttrMetadata_list_size_set(Self.FCObjPtr, value);

end;

function T_TF_AttrMetadata.GetList_size (): NativeUInt;

begin

  assert(FCObjPtr <> nil);
  Result := example._TF_AttrMetadata_list_size_get(Self.FCObjPtr) ;

end;

procedure T_TF_AttrMetadata.SetType ( value: integer);

begin

  assert(FCObjPtr <> nil);
 example._TF_AttrMetadata_type_set(Self.FCObjPtr, value);

end;

function T_TF_AttrMetadata.GetType (): integer;

begin

  assert(FCObjPtr <> nil);
  Result := example._TF_AttrMetadata_type_get(Self.FCObjPtr) ;

end;

procedure T_TF_AttrMetadata.SetTotal_size ( value: NativeUInt);

begin

  assert(FCObjPtr <> nil);
 example._TF_AttrMetadata_total_size_set(Self.FCObjPtr, value);

end;

function T_TF_AttrMetadata.GetTotal_size (): NativeUInt;

begin

  assert(FCObjPtr <> nil);
  Result := example._TF_AttrMetadata_total_size_get(Self.FCObjPtr) ;

end;

constructor T_TF_AttrMetadata.Create ();

begin

  inherited Create;
  FOwnCObjPtr := true;
   FCObjPtr := example.New_TF_AttrMetadata();

end;


function T_TF_AttrMetadata._AddRef : integer;
begin
   Result := -1;
end;

function T_TF_AttrMetadata._Release: integer;
begin
   Result := -1;
end;

function T_TF_AttrMetadata.QueryInterface(const GUID:TGUID; out Intf): HRESULT;
begin
   if GetInterface(GUID, Intf) then
      Result := S_OK
   else
      Result := S_FALSE	;
end; 
 
destructor T_TF_AttrMetadata.Destroy; 
begin   
  if (FCObjPtr <> nil) and  FOwnCObjPtr then begin 
    example.delete__TF_AttrMetadata(FCObjPtr);
    FOwnCObjPtr := false;
  end;
  FCObjPtr := nil; 
  inherited Destroy;
end;

procedure T_TF_AttrMetadata.SetCObjPtr(Value : _TF_AttrMetadata);
begin
 
  if (Value <> FCObjPtr) then begin
	if (FCObjPtr <> nil) and  FOwnCObjPtr then begin 
		example.delete__TF_AttrMetadata(FCObjPtr);
	end;
	FCObjPtr := Value;
  
  
  end;

end;


{$endif} //example_CLASS_WRAPPER

initialization



// constant initialization



//initialization


finalization


//finalization


end.
