Sha256: 9ad656ac0ce474805f04a9c79ff5f39d5ff991925ade86cc7a68836bc3adb023

Contents?: true

Size: 1.12 KB

Versions: 1

Compression:

Stored size: 1.12 KB

Contents

#ifndef __FGDB_HPP__
#define __FGDB_HPP__

#include "ruby.h"
#include <string>
#include <iostream>
#include <FileGDBAPI.h>

using namespace std;
using namespace FileGDBAPI;

typedef VALUE (*RB_INSTANCE_METHOD)(...);

#define FGDB_IS_FAILURE(hr) ((hr) != S_OK)
#define FGDB_RAISE_ERROR(hr) rb_raise(rb_eRuntimeError, "%s", fgdb_error_string(hr))
#define FGDB_FATAL(msg) rb_raise(rb_eRuntimeError, "%s", msg)
#define FGDB_FATAL_ARGUMENT(msg) rb_raise(rb_eArgError, "%s", msg)
#define FGDB_METHOD(method) ((RB_INSTANCE_METHOD)&method)

#define CHECK_ARGUMENT_STRING(arg) \
  if (TYPE(arg) != T_STRING) { \
    FGDB_FATAL_ARGUMENT("Argument must be a String"); \
    return Qnil; \
  }

#define CHECK_ARGUMENT_FIXNUM(arg) \
  if (TYPE(arg) != T_FIXNUM) { \
    FGDB_FATAL_ARGUMENT("Argument must be a FixNum"); \
    return Qnil; \
  }

#define CHECK_ARGUMENT_FLOAT(arg) \
  if (TYPE(arg) != T_FLOAT) { \
    FGDB_FATAL_ARGUMENT("Argument must be a Float"); \
    return Qnil; \
  }

std::wstring to_wstring(const char *input);
const char *to_char_array(std::wstring str);
const char *fgdb_error_string(fgdbError hr);

extern VALUE fgdb_klass;

#endif

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
filegdb-0.0.6 ext/filegdb/filegdb.hpp