Пример #1
0
void init_renet_connection()
{
  VALUE cENetConnection = rb_define_class_under(mENet, "Connection", rb_cObject);
  rb_define_alloc_func(cENetConnection, renet_connection_allocate);
  
  rb_define_method(cENetConnection, "initialize",          renet_connection_initialize, 5);
  rb_define_method(cENetConnection, "connect",             renet_connection_connect, 1);
  rb_define_method(cENetConnection, "disconnect",          renet_connection_disconnect, 1);
  rb_define_method(cENetConnection, "send_packet",         renet_connection_send_packet, 3);
  rb_define_method(cENetConnection, "send_queued_packets", renet_connection_send_queued_packets, 0);
  rb_define_method(cENetConnection, "flush",               renet_connection_send_queued_packets, 0);
  rb_define_method(cENetConnection, "update",              renet_connection_update, 1);
  rb_define_method(cENetConnection, "use_compression",     renet_connection_use_compression, 1);
  
  rb_define_method(cENetConnection, "on_connection",     renet_connection_on_connection, 1);
  rb_define_method(cENetConnection, "on_packet_receive", renet_connection_on_packet_receive, 1);
  rb_define_method(cENetConnection, "on_disconnection",  renet_connection_on_disconnection, 1);
  
  rb_define_method(cENetConnection, "online?",    renet_connection_online, 0);
  rb_define_method(cENetConnection, "connected?", renet_connection_online, 0);

  rb_define_attr(cENetConnection, "total_sent_data", 1, 1);
  rb_define_attr(cENetConnection, "total_received_data", 1, 1);
  rb_define_attr(cENetConnection, "total_sent_packets", 1, 1);
  rb_define_attr(cENetConnection, "total_received_packets", 1, 1);
}
Пример #2
0
void Init_cups() {
    rubyCups = rb_define_module("Cups");
    printJobs = rb_define_class_under(rubyCups, "PrintJob", rb_cObject);

    // Cups::PrintJob Attributes
    rb_define_attr(printJobs, "printer", 1, 0);
    rb_define_attr(printJobs, "filename", 1, 0);
    rb_define_attr(printJobs, "job_id", 1, 0);

    // Cups::PrintJob Methods
    rb_define_method(printJobs, "initialize", job_init, -1);
    rb_define_method(printJobs, "print", cups_print, 0);
    rb_define_method(printJobs, "cancel", cups_cancel, 0);
    rb_define_method(printJobs, "state", cups_get_job_state, 0);
    rb_define_method(printJobs, "completed?", cups_job_completed, 0);
    rb_define_method(printJobs, "failed?", cups_job_failed, 0);
    rb_define_method(printJobs, "error_reason", cups_get_error_reason, 0);
    rb_define_method(printJobs, "error_code", cups_get_error_code, 0);

    // Cups Module Methods
    rb_define_singleton_method(rubyCups, "show_destinations", cups_show_dests, 0);
    rb_define_singleton_method(rubyCups, "default_printer", cups_get_default, 0);
    rb_define_singleton_method(rubyCups, "all_jobs", cups_get_jobs, 1);
    rb_define_singleton_method(rubyCups, "options_for", cups_get_options, 1);
}
Пример #3
0
void
ruby_init_xml_sax_parser(void) {
  /* SaxParser */
  cXMLSaxParser = rb_define_class_under(mXML, "SaxParser", rb_cObject);

  /* Atributes */
  CALLBACKS_ATTR = rb_intern("@callbacks");
  INPUT_ATTR = rb_intern("@input");
  rb_define_attr(cXMLSaxParser, "callbacks", 1, 1);
  rb_define_attr(cXMLSaxParser, "input", 1, 0);

  /* Instance Methods */
  rb_define_method(cXMLSaxParser, "initialize", rxml_sax_parser_initialize, 0);
  rb_define_method(cXMLSaxParser, "parse", rxml_sax_parser_parse, 0);

  /* SaxCallbacks */
  cbidOnInternalSubset = rb_intern("on_internal_subset");
  cbidOnIsStandalone = rb_intern("on_is_standalone");
  cbidOnHasInternalSubset = rb_intern("on_has_internal_subset");
  cbidOnHasExternalSubset = rb_intern("on_has_external_subset");
  cbidOnStartDocument = rb_intern("on_start_document");
  cbidOnEndDocument = rb_intern("on_end_document");
  cbidOnStartElement = rb_intern("on_start_element");
  cbidOnEndElement = rb_intern("on_end_element");
  cbidOnReference = rb_intern("on_reference");
  cbidOnCharacters = rb_intern("on_characters");
  cbidOnProcessingInstruction = rb_intern("on_processing_instruction");
  cbidOnComment = rb_intern("on_comment");
  cbidOnXmlParserWarning = rb_intern("on_parser_warning");
  cbidOnXmlParserError = rb_intern("on_parser_error");
  cbidOnXmlParserFatalError = rb_intern("on_parser_fatal_error");
  cbidOnCdataBlock = rb_intern("on_cdata_block");
  cbidOnExternalSubset = rb_intern("on_external_subset");
}
Пример #4
0
void Init_kstat(){
  VALUE mSolaris, cKstat;

  /* The Solaris module only serves as a toplevel namespace */
  mSolaris = rb_define_module("Solaris");

  /* The Kstat class encapsulates kstat (kernel statistics) information */
  cKstat = rb_define_class_under(mSolaris, "Kstat", rb_cObject);

  /* The Kstat::Error class is raised if any of the Kstat methods fail */
  cKstatError = rb_define_class_under(cKstat, "Error", rb_eStandardError);

  rb_define_alloc_func(cKstat, ks_allocate);

  // Instance Methods

  rb_define_method(cKstat, "initialize", ks_init, -1);
  rb_define_method(cKstat, "record", ks_record, 0);

  // Kernel module
  rb_define_attr(cKstat, "module", 1, 1);

  // Index of module entity
  rb_define_attr(cKstat, "instance", 1, 1);

  // Unique name within module
  rb_define_attr(cKstat, "name", 1, 1);

  /* 1.0.3: The version of the solaris-kstat library */
  rb_define_const(cKstat, "VERSION", rb_str_new2(SOLARIS_KSTAT_VERSION));
}
Пример #5
0
void init_renet_server()
{
  VALUE cENetServer = rb_define_class_under(mENet, "Server", rb_cObject);
  rb_define_alloc_func(cENetServer, renet_server_allocate);
  
  rb_define_method(cENetServer, "initialize", renet_server_initialize, 5);
  rb_define_method(cENetServer, "disconnect_client", renet_server_disconnect_client, 1);
  rb_define_method(cENetServer, "send_packet", renet_server_send_packet, 4);
  rb_define_method(cENetServer, "broadcast_packet", renet_server_broadcast_packet, 3);
  rb_define_method(cENetServer, "send_queued_packets", renet_server_send_queued_packets, 0);
  rb_define_method(cENetServer, "flush", renet_server_send_queued_packets, 0);
  rb_define_method(cENetServer, "update", renet_server_update, 1);
  rb_define_method(cENetServer, "use_compression", renet_server_use_compression, 1);
  
  rb_define_method(cENetServer, "on_connection", renet_server_on_connection, 1);
  rb_define_method(cENetServer, "on_packet_receive", renet_server_on_packet_receive, 1);
  rb_define_method(cENetServer, "on_disconnection", renet_server_on_disconnection, 1);
  
  rb_define_method(cENetServer, "max_clients", renet_server_max_clients, 0);
  rb_define_method(cENetServer, "clients_count", renet_server_clients_count, 0);

  rb_define_attr(cENetServer, "total_sent_data", 1, 1);
  rb_define_attr(cENetServer, "total_received_data", 1, 1);
  rb_define_attr(cENetServer, "total_sent_packets", 1, 1);
  rb_define_attr(cENetServer, "total_received_packets", 1, 1);
}
Пример #6
0
void Init_epeg()
{
  VALUE mEpeg      = rb_define_module("Epeg"),
        cEpegImage = rb_define_class_under(mEpeg, "Image", rb_cObject);

  rb_cv_set(cEpegImage, "@@quality", INT2NUM(85));

  rb_define_singleton_method(cEpegImage, "from_blob",        rb_epeg_image_from_blob,           1);
  rb_define_singleton_method(cEpegImage, "open",             rb_epeg_image_open,                1);
  rb_define_singleton_method(cEpegImage, "default_quality=", rb_epeg_image_set_default_quality, 1);
  rb_define_singleton_method(cEpegImage, "default_quality",  rb_epeg_image_get_default_quality, 0);

  rb_define_method(cEpegImage, "initialize", rb_epeg_image_initialize,  0);

  rb_define_method(cEpegImage, "resize",         rb_epeg_image_resize,              2);
  rb_define_method(cEpegImage, "resize_to_fit",  rb_epeg_image_resize_to_fit,       2);
  rb_define_method(cEpegImage, "resize_to_fill", rb_epeg_image_resize_to_fill,      2);
  rb_define_method(cEpegImage, "crop",           rb_epeg_image_crop,               -1);
  rb_define_method(cEpegImage, "write",          rb_epeg_image_write,               1);
  rb_define_method(cEpegImage, "to_blob",        rb_epeg_image_to_blob,             0);
  rb_define_method(cEpegImage, "close",          rb_epeg_image_close,               0);
  rb_define_method(cEpegImage, "closed?",        rb_epeg_image_is_closed,           0);
  rb_define_method(cEpegImage, "quality",        rb_epeg_image_get_or_set_quality, -1);
  rb_define_method(cEpegImage, "quality=",       rb_epeg_image_set_quality,         1);

  rb_define_attr(cEpegImage, "width",   1, 0);
  rb_define_attr(cEpegImage, "height",  1, 0);
}
Пример #7
0
void Init_oci8_error(void)
{
    errbufsiz = ERRBUF_EXPAND_LEN;
    errbuf = xmalloc(errbufsiz);

    oci8_id_at_code = rb_intern("@code");
    oci8_id_at_sql = rb_intern("@sql");
    oci8_id_at_parse_error_offset = rb_intern("@parse_error_offset");
    oci8_id_caller = rb_intern("caller");
    oci8_id_set_backtrace = rb_intern("set_backtrace");

    eOCIException = rb_define_class("OCIException", rb_eStandardError);
    eOCIBreak = rb_define_class("OCIBreak", eOCIException);

    eOCIError = rb_define_class("OCIError", eOCIException);
    eOCINoData = rb_define_class("OCINoData", eOCIError);
    eOCIInvalidHandle = rb_define_class("OCIInvalidHandle", eOCIException);
    eOCINeedData = rb_define_class("OCINeedData", eOCIException);
    eOCIStillExecuting = rb_define_class("OCIStillExecuting", eOCIException);
    eOCIContinue = rb_define_class("OCIContinue", eOCIException);
    eOCISuccessWithInfo = rb_define_class("OCISuccessWithInfo", eOCIError);

    /*
     * @attr_reader [Integer] code  error code
     */
    rb_define_attr(eOCIError, "code", 1, 0);
    rb_define_attr(eOCIError, "sql", 1, 0);
    rb_define_attr(eOCIError, "parse_error_offset", 1, 0);
    rb_define_alias(eOCIError, "parseErrorOffset", "parse_error_offset");
}
Пример #8
0
void init_mpcrnd()
{
  ID new_id = rb_intern ("new");
  cMPC = rb_define_class ("MPC", rb_cNumeric);

  cMPC_Rnd = rb_define_class_under (cMPC, "Rnd", rb_cObject);

  rb_define_singleton_method (cMPC_Rnd, "new", r_mpcrndsg_new, -1);
  rb_define_method (cMPC_Rnd, "initialize", r_mpcrnd_initialize, -1);
  rb_define_method (cMPC_Rnd, "inspect", r_mpcrnd_inspect, 0);

  rb_define_attr (cMPC_Rnd, "mode",    1, 0);
  rb_define_attr (cMPC_Rnd, "name",    1, 0);
  rb_define_attr (cMPC_Rnd, "ieee754", 1, 0);

  rb_define_const(cMPC, "MPC_RNDNN", rb_funcall (cMPC_Rnd, new_id, 1, INT2FIX(0)));
  rb_define_const(cMPC, "MPC_RNDNZ", rb_funcall (cMPC_Rnd, new_id, 1, INT2FIX(16)));
  rb_define_const(cMPC, "MPC_RNDNU", rb_funcall (cMPC_Rnd, new_id, 1, INT2FIX(32)));
  rb_define_const(cMPC, "MPC_RNDND", rb_funcall (cMPC_Rnd, new_id, 1, INT2FIX(48)));
  rb_define_const(cMPC, "MPC_RNDZN", rb_funcall (cMPC_Rnd, new_id, 1, INT2FIX(1)));
  rb_define_const(cMPC, "MPC_RNDZZ", rb_funcall (cMPC_Rnd, new_id, 1, INT2FIX(17)));
  rb_define_const(cMPC, "MPC_RNDZU", rb_funcall (cMPC_Rnd, new_id, 1, INT2FIX(33)));
  rb_define_const(cMPC, "MPC_RNDZD", rb_funcall (cMPC_Rnd, new_id, 1, INT2FIX(49)));
  rb_define_const(cMPC, "MPC_RNDUN", rb_funcall (cMPC_Rnd, new_id, 1, INT2FIX(2)));
  rb_define_const(cMPC, "MPC_RNDUZ", rb_funcall (cMPC_Rnd, new_id, 1, INT2FIX(18)));
  rb_define_const(cMPC, "MPC_RNDUU", rb_funcall (cMPC_Rnd, new_id, 1, INT2FIX(34)));
  rb_define_const(cMPC, "MPC_RNDUD", rb_funcall (cMPC_Rnd, new_id, 1, INT2FIX(50)));
  rb_define_const(cMPC, "MPC_RNDDN", rb_funcall (cMPC_Rnd, new_id, 1, INT2FIX(3)));
  rb_define_const(cMPC, "MPC_RNDDZ", rb_funcall (cMPC_Rnd, new_id, 1, INT2FIX(19)));
  rb_define_const(cMPC, "MPC_RNDDU", rb_funcall (cMPC_Rnd, new_id, 1, INT2FIX(35)));
  rb_define_const(cMPC, "MPC_RNDDD", rb_funcall (cMPC_Rnd, new_id, 1, INT2FIX(51)));
}
Пример #9
0
void
init_pg_coder()
{
	rb_cPG_Coder = rb_define_class_under( rb_mPG, "Coder", rb_cObject );
	rb_define_attr( rb_cPG_Coder, "name", 1, 0 );
	rb_define_attr( rb_cPG_Coder, "format", 1, 0 );
	rb_define_attr( rb_cPG_Coder, "direction", 1, 0 );
}
Пример #10
0
void Init_segmenter_ext() {
    rb_mAvSegmenter = rb_define_module("Segmenter");
    rb_define_module_function(rb_mAvSegmenter, "segment", segmenter_segment, 3);
    
    rb_cAvSegment = rb_define_class_under(rb_mAvSegmenter, "Segment", rb_cObject);
    rb_define_attr(rb_cAvSegment, "duration", 1, 1);
    rb_define_attr(rb_cAvSegment, "index", 1, 1);
    rb_define_attr(rb_cAvSegment, "filename", 1, 1);
}                                       
Пример #11
0
void define_native_key()
{
    KeyClass = rb_define_class_under(AerospikeNativeClass, "Key", rb_cObject);
    rb_define_alloc_func(KeyClass, key_allocate);
    rb_define_method(KeyClass, "initialize", key_initialize, -1);
    rb_define_attr(KeyClass, "namespace", 1, 0);
    rb_define_attr(KeyClass, "set", 1, 0);
    rb_define_attr(KeyClass, "value", 1, 0);
    rb_define_attr(KeyClass, "digest", 1, 0);
}
Пример #12
0
// The initialization method for this module
void Init_ruby_bluetooth()
{
    bt_module = rb_define_module("Bluetooth");
    bt_device_class = rb_define_class_under(bt_module, "Device", rb_cObject);
    bt_devices_class = rb_define_class_under(bt_module, "Devices", rb_cObject);
    rb_define_singleton_method(bt_devices_class, "scan", RUBY_METHOD_FUNC(bt_devices_scan), 0);
    rb_define_method(bt_device_class, "initialize", RUBY_METHOD_FUNC(bt_device_new), 2);
    rb_define_attr(bt_device_class, "addr", Qtrue, Qfalse);
    rb_define_attr(bt_device_class, "name", Qtrue, Qfalse);
    rb_undef_method(bt_devices_class, "initialize");
}
Пример #13
0
void Init_zookeeper_c() {
  ZKRBDebugging = 0;

  /* initialize Zookeeper class */
  Zookeeper = rb_define_class("CZookeeper", rb_cObject);
  zkrb_define_methods();

  ZookeeperClientId = rb_define_class_under(Zookeeper, "ClientId", rb_cObject);
  rb_define_method(ZookeeperClientId, "initialize", zkrb_client_id_method_initialize, 0);
  rb_define_attr(ZookeeperClientId, "session_id", 1, 1);
  rb_define_attr(ZookeeperClientId, "passwd", 1, 1);
}
Пример #14
0
void ruby_init_parser(void)
{
  cXMLParser = rb_define_class_under(mXML, "Parser", rb_cObject);

  /* Atributes */
  CONTEXT_ATTR = rb_intern("@context");
  rb_define_attr(cXMLParser, "input", 1, 0);
  rb_define_attr(cXMLParser, "context", 1, 0);

  /* Instance Methods */
  rb_define_method(cXMLParser, "initialize", rxml_parser_initialize, -1);
  rb_define_method(cXMLParser, "parse", rxml_parser_parse, 0);
}
Пример #15
0
void
Init_ffts(void) {
  mFFTS = rb_const_get(rb_cObject, rb_intern("FFTS"));
  cPlan = rb_define_class_under(mFFTS, "Plan", rb_cObject);
  cCPlan = rb_define_class_under(mFFTS, "CPlan", rb_cObject);

  rb_define_method(cPlan, "initialize", ffts_plan_initialize, 2);
  rb_define_method(cPlan, "execute", ffts_plan_execute, 0);

  rb_define_attr(cPlan, "n", 1, 1);
  rb_define_attr(cPlan, "frames", 1, 1);
  rb_define_attr(cPlan, "sign", 1, 1);
  rb_define_attr(cPlan, "plan", 1, 1);
}
Пример #16
0
void
ruby_init_xml_input(void) {	
  BASE_URL_ATTR = rb_intern("@base_url");
  ENCODING_ATTR = rb_intern("@encoding");
  FILE_ATTR = rb_intern("@file");
  IO_ATTR = rb_intern("@io");
  STRING_ATTR = rb_intern("@string");

  READ_METHOD = rb_intern("read");

  cXMLInput = rb_define_class_under(mXML, "Input", rb_cObject);
  rb_define_singleton_method(cXMLInput, "encoding_to_s", rxml_input_encoding_to_s, 1);

  rb_define_const(cXMLInput, "UNDEFINED", INT2NUM(XPATH_UNDEFINED));
  rb_define_const(cXMLInput, "ERROR", INT2NUM(XML_CHAR_ENCODING_ERROR));         /* No char encoding detected */
  rb_define_const(cXMLInput, "NONE", INT2NUM(XML_CHAR_ENCODING_NONE));           /* No char encoding detected */
  rb_define_const(cXMLInput, "UTF8", INT2NUM(XML_CHAR_ENCODING_UTF8));	          /* UTF-8 */
  rb_define_const(cXMLInput, "UTF16LE", INT2NUM(XML_CHAR_ENCODING_UTF16LE));	    /* UTF-16 little endian */
  rb_define_const(cXMLInput, "UTF16BE", INT2NUM(XML_CHAR_ENCODING_UTF16BE));	    /* UTF-16 big endian */
  rb_define_const(cXMLInput, "UCS4LE", INT2NUM(XML_CHAR_ENCODING_UCS4LE));	      /* UCS-4 little endian */
  rb_define_const(cXMLInput, "UCS4BE", INT2NUM(XML_CHAR_ENCODING_UCS4BE));	      /* UCS-4 big endian */
  rb_define_const(cXMLInput, "EBCDIC", INT2NUM(XML_CHAR_ENCODING_EBCDIC));	      /* EBCDIC uh! */
  rb_define_const(cXMLInput, "UCS4_2143", INT2NUM(XML_CHAR_ENCODING_UCS4_2143)); /* UCS-4 unusual ordering */
  rb_define_const(cXMLInput, "UCS4_3412", INT2NUM(XML_CHAR_ENCODING_UCS4_3412)); /* UCS-4 unusual ordering */
  rb_define_const(cXMLInput, "UCS2", INT2NUM(XML_CHAR_ENCODING_UCS2));	          /* UCS-2 */
  rb_define_const(cXMLInput, "ISO_8859_1", INT2NUM(XML_CHAR_ENCODING_8859_1));	      /* ISO-8859-1 ISO Latin 1 */
  rb_define_const(cXMLInput, "ISO_8859_2", INT2NUM(XML_CHAR_ENCODING_8859_2));	      /* ISO-8859-2 ISO Latin 2 */
  rb_define_const(cXMLInput, "ISO_8859_3", INT2NUM(XML_CHAR_ENCODING_8859_3));	      /* ISO-8859-3 */
  rb_define_const(cXMLInput, "ISO_8859_4", INT2NUM(XML_CHAR_ENCODING_8859_4));	      /* ISO-8859-4 */
  rb_define_const(cXMLInput, "ISO_8859_5", INT2NUM(XML_CHAR_ENCODING_8859_5));	      /* ISO-8859-5 */
  rb_define_const(cXMLInput, "ISO_8859_6", INT2NUM(XML_CHAR_ENCODING_8859_6));	      /* ISO-8859-6 */
  rb_define_const(cXMLInput, "ISO_8859_7", INT2NUM(XML_CHAR_ENCODING_8859_7));	      /* ISO-8859-7 */
  rb_define_const(cXMLInput, "ISO_8859_8", INT2NUM(XML_CHAR_ENCODING_8859_8));	      /* ISO-8859-8 */
  rb_define_const(cXMLInput, "ISO_8859_9", INT2NUM(XML_CHAR_ENCODING_8859_9));	      /* ISO-8859-9 */
  rb_define_const(cXMLInput, "ISO_2022_JP", INT2NUM(XML_CHAR_ENCODING_2022_JP));     /* ISO-2022-JP */
  rb_define_const(cXMLInput, "SHIFT_JIS", INT2NUM(XML_CHAR_ENCODING_SHIFT_JIS)); /* Shift_JIS */
  rb_define_const(cXMLInput, "EUC_JP", INT2NUM(XML_CHAR_ENCODING_EUC_JP));       /* EUC-JP */
  rb_define_const(cXMLInput, "ASCII", INT2NUM(XML_CHAR_ENCODING_ASCII));         /* pure ASCII */

  rb_define_attr(cXMLInput, "base_url", 1, 1);
  rb_define_attr(cXMLInput, "encoding", 1, 1);

  rb_define_method(cXMLInput, "initialize", rxml_input_initialize, 0);
  rb_define_method(cXMLInput, "file", rxml_input_file_get, 0);
  rb_define_method(cXMLInput, "file=", rxml_input_file_set, 1);
  rb_define_method(cXMLInput, "string", rxml_input_string_get, 0);
  rb_define_method(cXMLInput, "string=", rxml_input_string_set, 1);
  rb_define_method(cXMLInput, "io", rxml_input_io_get, 0);
  rb_define_method(cXMLInput, "io=", rxml_input_io_set, 1);
}
Пример #17
0
VALUE class_spec_define_attr(VALUE self, VALUE klass, VALUE sym, VALUE read, VALUE write) {
  int int_read, int_write;
  int_read = read == Qtrue ? 1 : 0;
  int_write = write == Qtrue ? 1 : 0;
  rb_define_attr(klass, rb_id2name(SYM2ID(sym)), int_read, int_write);
  return Qnil;
}
Пример #18
0
void Init_fsevent() {
  rb_require("fsevent/signal_ext");

  fsevent_class = rb_define_class("FSEvent", rb_cObject);
  rb_define_method(fsevent_class, "initialize", t_init, 0);
  rb_define_method(fsevent_class, "on_change", t_on_change, 1);
  rb_define_method(fsevent_class, "watch_directories", t_watch_directories, 1);
  rb_define_method(fsevent_class, "start", t_start, 0);
  rb_define_method(fsevent_class, "stop", t_stop, 0);
  rb_define_method(fsevent_class, "restart", t_restart, 0);

  rb_define_attr(fsevent_class, "latency", 1, 1);
  rb_define_attr(fsevent_class, "registered_directories", 1, 1);

  register_signal_delegation();
}
Пример #19
0
void
rbffi_DynamicLibrary_Init(VALUE moduleFFI)
{
    LibraryClass = rb_define_class_under(moduleFFI, "DynamicLibrary", rb_cObject);
    rb_global_variable(&LibraryClass);
    SymbolClass = rb_define_class_under(LibraryClass, "Symbol", rbffi_PointerClass);
    rb_global_variable(&SymbolClass);

    rb_define_const(moduleFFI, "NativeLibrary", LibraryClass); // backwards compat library
    rb_define_alloc_func(LibraryClass, library_allocate);
    rb_define_singleton_method(LibraryClass, "open", library_open, 2);
    rb_define_singleton_method(LibraryClass, "last_error", library_dlerror, 0);
    rb_define_method(LibraryClass, "initialize", library_initialize, 2);
    rb_define_method(LibraryClass, "find_symbol", library_dlsym, 1);
    rb_define_method(LibraryClass, "find_function", library_dlsym, 1);
    rb_define_method(LibraryClass, "find_variable", library_dlsym, 1);
    rb_define_method(LibraryClass, "last_error", library_dlerror, 0);
    rb_define_attr(LibraryClass, "name", 1, 0);

    rb_define_alloc_func(SymbolClass, symbol_allocate);
    rb_undef_method(SymbolClass, "new");
    rb_define_method(SymbolClass, "inspect", symbol_inspect, 0);

#define DEF(x) rb_define_const(LibraryClass, "RTLD_" #x, UINT2NUM(RTLD_##x))
    DEF(LAZY);
    DEF(NOW);
    DEF(GLOBAL);
    DEF(LOCAL);

}
Пример #20
0
void Init_libssh_error(void) {
  rb_eLibSSHError =
      rb_define_class_under(rb_mLibSSH, "Error", rb_eStandardError);
  id_code = rb_intern("code");

  rb_define_attr(rb_eLibSSHError, "code", 1, 0);
}
Пример #21
0
void
wdm_rb_change_init() {
    WDM_DEBUG("Registering WDM::Event with Ruby!");

    wdm_rb_sym_at_path = rb_intern("@path");
    wdm_rb_sym_at_type = rb_intern("@type");
    wdm_rb_sym_added = rb_intern("added");
    wdm_rb_sym_modified = rb_intern("modified");
    wdm_rb_sym_removed = rb_intern("removed");
    wdm_rb_sym_renamed_old_file = rb_intern("renamed_old_file");
    wdm_rb_sym_renamed_new_file = rb_intern("renamed_new_file");

    cWDM_Change = rb_define_class_under(mWDM, "Change", rb_cObject);

    rb_define_attr(cWDM_Change, "path", 1, 0);
    rb_define_attr(cWDM_Change, "type", 1, 0);
}
Пример #22
0
void Init_rngstream() {
  m_random = rb_define_module("RandomExtension");
  c_rngstream = rb_define_class_under(m_random, "RngStream", rb_cObject);
  rb_define_method(c_rngstream, "initialize", rng_initialize, 0);
  rb_define_method(c_rngstream, "set_seed", rng_set_seed, 1);
  rb_define_method(c_rngstream, "randU01", rng_get_rand, 0);
  rb_define_method(c_rngstream, "advance_state", rng_advance_state, 1);
  rb_define_attr(c_rngstream, "stream_prt", 0, 0);
}
Пример #23
0
static void init_symbol_class( VALUE modBfd ) {
	/* NOTE: Symbol does not support instantiation via .new() */
	clsSymbol = rb_define_class_under(modBfd, SYMBOL_CLASS_NAME, 
					  rb_cObject);
	
	/* attributes (read-only) */
	rb_define_attr(clsSymbol, SYM_ATTR_NAME, 1, 0);
	rb_define_attr(clsSymbol, SYM_ATTR_VALUE, 1, 0);
	rb_define_attr(clsSymbol, SYM_ATTR_FLAGS, 1, 0);
	rb_define_attr(clsSymbol, SYM_ATTR_SECTION, 1, 0);
	rb_define_attr(clsSymbol, SYM_ATTR_BIND, 1, 0);

	/* constants */
	rb_define_const(clsSymbol, SYM_BIND_DYN_NAME,
			rb_str_new_cstr(SYM_BIND_DYNAMIC));
	rb_define_const(clsSymbol, SYM_BIND_STAT_NAME,
			rb_str_new_cstr(SYM_BIND_STATIC));
}
Пример #24
0
void init_kgio_read_write(void)
{
	VALUE mPipeMethods, mSocketMethods;
	VALUE mKgio = rb_define_module("Kgio");
	VALUE mWaiters = rb_const_get(mKgio, rb_intern("DefaultWaiters"));

	sym_wait_readable = ID2SYM(rb_intern("wait_readable"));
	sym_wait_writable = ID2SYM(rb_intern("wait_writable"));

	rb_define_singleton_method(mKgio, "tryread", s_tryread, -1);
	rb_define_singleton_method(mKgio, "trywrite", s_trywrite, 2);
	rb_define_singleton_method(mKgio, "trypeek", s_trypeek, -1);

	/*
	 * Document-module: Kgio::PipeMethods
	 *
	 * This module may be used used to create classes that respond to
	 * various Kgio methods for reading and writing.  This is included
	 * in Kgio::Pipe by default.
	 */
	mPipeMethods = rb_define_module_under(mKgio, "PipeMethods");
	rb_define_method(mPipeMethods, "kgio_read", kgio_read, -1);
	rb_define_method(mPipeMethods, "kgio_read!", kgio_read_bang, -1);
	rb_define_method(mPipeMethods, "kgio_write", kgio_write, 1);
	rb_define_method(mPipeMethods, "kgio_tryread", kgio_tryread, -1);
	rb_define_method(mPipeMethods, "kgio_trywrite", kgio_trywrite, 1);

	/*
	 * Document-module: Kgio::SocketMethods
	 *
	 * This method behaves like Kgio::PipeMethods, but contains
	 * optimizations for sockets on certain operating systems
	 * (e.g. GNU/Linux).
	 */
	mSocketMethods = rb_define_module_under(mKgio, "SocketMethods");
	rb_define_method(mSocketMethods, "kgio_read", kgio_recv, -1);
	rb_define_method(mSocketMethods, "kgio_read!", kgio_recv_bang, -1);
	rb_define_method(mSocketMethods, "kgio_write", kgio_send, 1);
	rb_define_method(mSocketMethods, "kgio_tryread", kgio_tryrecv, -1);
	rb_define_method(mSocketMethods, "kgio_trywrite", kgio_trysend, 1);
	rb_define_method(mSocketMethods, "kgio_trypeek", kgio_trypeek, -1);
	rb_define_method(mSocketMethods, "kgio_peek", kgio_peek, -1);

	/*
	 * Returns the client IP address of the socket as a string
	 * (e.g. "127.0.0.1" or "::1").
	 * This is always the value of the Kgio::LOCALHOST constant
	 * for UNIX domain sockets.
	 */
	rb_define_attr(mSocketMethods, "kgio_addr", 1, 1);
	id_set_backtrace = rb_intern("set_backtrace");
	eErrno_EPIPE = rb_const_get(rb_mErrno, rb_intern("EPIPE"));
	eErrno_ECONNRESET = rb_const_get(rb_mErrno, rb_intern("ECONNRESET"));
	rb_include_module(mPipeMethods, mWaiters);
	rb_include_module(mSocketMethods, mWaiters);
}
Пример #25
0
void Init_zookeeper_c() {
  ZKRBDebugging = 0;

  mZookeeper = rb_define_module("Zookeeper");
  mZookeeperExceptions = rb_define_module_under(mZookeeper, "Exceptions");

  // this will likely fail if the load order is screwed up
  eHandleClosedException = rb_const_get(mZookeeperExceptions, rb_intern("HandleClosedException"));

  /* initialize CZookeeper class */
  CZookeeper = rb_define_class_under(mZookeeper, "CZookeeper", rb_cObject);
  zkrb_define_methods();

  ZookeeperClientId = rb_define_class_under(CZookeeper, "ClientId", rb_cObject);
  rb_define_method(ZookeeperClientId, "initialize", zkrb_client_id_method_initialize, 0);
  rb_define_attr(ZookeeperClientId, "session_id", 1, 1);
  rb_define_attr(ZookeeperClientId, "passwd", 1, 1);

}
Пример #26
0
void Init_etcutils_group()
{
  /* Define-const: Group
   *
   * The struct contains the following members:
   *
   * name::
   *    contains the name of the group as a String.
   * passwd::
   *    contains the encrypted password as a String. An 'x' is
   *    returned if password access to the group is not available; an empty
   *    string is returned if no password is needed to obtain membership of
   *    the group.
   * gid::
   *    contains the group's numeric ID as an integer.
   * mem::
   *    is an Array of Strings containing the short login names of the
   *    members of the group.
   */
#ifdef GROUP
  rb_define_attr(rb_cGroup, "name", 1, 1);
  rb_define_attr(rb_cGroup, "passwd", 1, 1);
  rb_define_attr(rb_cGroup, "gid", 1, 1);
  rb_define_attr(rb_cGroup, "members", 1, 1);

  rb_define_singleton_method(rb_cGroup,"get",eu_getgrent,0);
  rb_define_singleton_method(rb_cGroup,"find",eu_getgrp,1);
  rb_define_singleton_method(rb_cGroup,"parse",eu_sgetgrent,1);
  rb_define_singleton_method(rb_cGroup,"set",eu_setgrent,0);
  rb_define_singleton_method(rb_cGroup,"end",eu_endgrent,0);
  rb_define_singleton_method(rb_cGroup,"each",eu_getgrent,0);

  rb_define_method(rb_cGroup, "fputs", group_putgrent,1);
  rb_define_method(rb_cGroup, "to_entry", group_gr_entry,0);
#endif

#ifdef GSHADOW
  rb_define_attr(rb_cGshadow, "name", 1, 1);
  rb_define_attr(rb_cGshadow, "passwd", 1, 1);
  rb_define_attr(rb_cGshadow, "admins", 1, 1);
  rb_define_attr(rb_cGshadow, "members", 1, 1);

  rb_define_singleton_method(rb_cGshadow,"get",eu_getsgent,0);
  rb_define_singleton_method(rb_cGshadow,"find",eu_getsgrp,1); //getsgent, getsguid
  rb_define_singleton_method(rb_cGshadow,"parse",eu_sgetsgent,1);
  rb_define_singleton_method(rb_cGshadow,"set",eu_setsgent,0);
  rb_define_singleton_method(rb_cGshadow,"end",eu_endsgent,0);
  rb_define_singleton_method(rb_cGshadow,"each",eu_getsgent,0);
  rb_define_method(rb_cGshadow, "fputs", group_putsgent, 1);
  rb_define_method(rb_cGshadow, "to_entry", group_sg_entry,0);
#endif
}
Пример #27
0
// ----------------------------------------------------------------------------------
// Init
//
void init_aerospike_c_query_task(VALUE AerospikeC) {
  //
  // class AerospikeC::QueryTask < Object
  //
  rb_aero_QueryTask = rb_define_class_under(AerospikeC, "QueryTask", rb_cObject);

  // //
  // // methods
  // //
  rb_define_method(rb_aero_QueryTask, "initialize", RB_FN_ANY()query_initialize, 3);
  rb_define_method(rb_aero_QueryTask, "done?", RB_FN_ANY()is_done, 0);
  rb_define_method(rb_aero_QueryTask, "wait_till_completed", RB_FN_ANY()wait_till_completed, -1);

  //
  // attr_reader
  //
  rb_define_attr(rb_aero_QueryTask, "name", 1, 0);
  rb_define_attr(rb_aero_QueryTask, "done", 1, 0);
  rb_define_attr(rb_aero_QueryTask, "query_id", 1, 0);
}
Пример #28
0
void rbVertex::Init( VALUE SFML )
{
    rbVertex::Class = rb_define_class_under( SFML, "Vertex", rb_cObject );

    // Instance methods
    ext_define_method( rbVertex::Class, "initialize",      rbVertex::Initialize,     -1 );
    ext_define_method( rbVertex::Class, "initialize_copy", rbVertex::InitializeCopy,  1 );
    ext_define_method( rbVertex::Class, "marshal_dump",    rbVertex::MarshalDump,     0 );
    ext_define_method( rbVertex::Class, "marshal_load",    rbVertex::MarshalLoad,     1 );
    ext_define_method( rbVertex::Class, "==",              rbVertex::Equal,           1 );
    ext_define_method( rbVertex::Class, "inspect",         rbVertex::Inspect,         0 );

    // Attribute accessors
    rb_define_attr( rbVertex::Class, "position", true, true );
    rb_define_attr( rbVertex::Class, "color", true, true );
    rb_define_attr( rbVertex::Class, "tex_coords", true, true );

    // Instance aliases
    rb_define_alias( rbVertex::Class, "to_s",   "inspect" );
}
Пример #29
0
void gl_init_error(VALUE klass, VALUE module)
{
	Class_GLError = rb_define_class_under(module, "Error", rb_eStandardError);

	rb_define_method(Class_GLError, "initialize", GLError_initialize, 2);
	rb_define_attr(Class_GLError, "id", 1, 0);

	rb_define_method(klass, "enable_error_checking", enable_error_checking, 0);
	rb_define_method(klass, "disable_error_checking", disable_error_checking, 0);
	rb_define_method(klass, "is_error_checking_enabled?", is_error_checking_enabled, 0);
}
Пример #30
0
static void init_section_class( VALUE modBfd ) {
	/* NOTE: Section does not support instantiation via .new() */
	clsSection = rb_define_class_under(modBfd, SECTION_CLASS_NAME, 
					   rb_cObject);
	
	/* attributes (read-only) */
	rb_define_attr(clsSection, SEC_ATTR_ID, 1, 0);
	rb_define_attr(clsSection, SEC_ATTR_NAME, 1, 0);
	rb_define_attr(clsSection, SEC_ATTR_INDEX, 1, 0);
	rb_define_attr(clsSection, SEC_ATTR_FLAGS, 1, 0);
	rb_define_attr(clsSection, SEC_ATTR_VMA, 1, 0);
	rb_define_attr(clsSection, SEC_ATTR_LMA, 1, 0);
	rb_define_attr(clsSection, SEC_ATTR_SIZE, 1, 0);
	rb_define_attr(clsSection, SEC_ATTR_ALIGN, 1, 0);
	rb_define_attr(clsSection, SEC_ATTR_FPOS, 1, 0);
	rb_define_attr(clsSection, SEC_ATTR_SYM, 1, 0);

	rb_define_method(clsSection, SEC_ATTR_CONTENTS, cls_section_contents, 
			 0);
}