コード例 #1
0
		// ------------------------------------------
		PyObject* ConfigServiceBinder::repr(PyObject* self) {
#ifdef IS_PY3K
			return PyBytes_FromFormat("<ConfigService at %p>", self);
#else
			return PyString_FromFormat("<ConfigService at %p>", self);
#endif
		}
コード例 #2
0
		// ------------------------------------------
		PyObject* DataFieldDescIteratorBinder::repr(PyObject *self) {
#ifdef IS_PY3K
			return PyBytes_FromFormat("<DataFieldDescIterator at %p>", self);
#else
			return PyString_FromFormat("<DataFieldDescIterator at %p>", self);
#endif
		}
コード例 #3
0
		// ------------------------------------------
		PyObject* TextureAtlasBinder::repr(PyObject *self) {
#ifdef IS_PY3K
			return PyBytes_FromFormat("<TextureAtlas at %p>", self);
#else
			return PyString_FromFormat("<TextureAtlas at %p>", self);
#endif
		}
コード例 #4
0
		// ------------------------------------------
		PyObject* DrawSheetBinder::repr(PyObject *self) {
#ifdef IS_PY3K
			return PyBytes_FromFormat("<DrawSheet at %p>", self);
#else
			return PyString_FromFormat("<DrawSheet at %p>", self);
#endif
		}
コード例 #5
0
ファイル: asciicompat.c プロジェクト: ncoghlan/asciicompat
static PyObject *
asciistr_concat(PyObject *v, PyObject *w)
{
    PyObject *bytes = NULL;
    Py_buffer view;

    if (PyBytes_Check(w)) {
        if (PyObject_GetBuffer(w, &view, PyBUF_CONTIG_RO) < 0) {
            return NULL;
        }

        bytes = PyBytes_FromFormat("%s%s", PyUnicode_DATA(v), (char *)view.buf);
        PyBuffer_Release(&view);

        return bytes;
    }

    return PyUnicode_Concat(v, w);
}
コード例 #6
0
ファイル: response.c プロジェクト: yosisa/meinheld
static int
set_file_content_length(client_t *client, write_bucket *bucket)
{
    struct stat info;
    int in_fd, ret = 0;
    size_t size = 0;
    Py_ssize_t valuelen = 0;
    FileWrapperObject *filewrap = NULL;
    PyObject *filelike = NULL, *length = NULL;
    char *value = NULL; 

    filewrap = (FileWrapperObject *)client->response;
    filelike = filewrap->filelike;

    in_fd = PyObject_AsFileDescriptor(filelike);
    if (in_fd == -1) {
        call_error_logger();
        return -1;
    }
    if (fstat(in_fd, &info) == -1){
        PyErr_SetFromErrno(PyExc_IOError);
        return -1;
    }

    size = info.st_size;
    client->content_length_set = 1;
    client->content_length = size;
    DEBUG("set content length:%" PRIu64 , size);
    length = PyBytes_FromFormat("%zu", size);
    if (length == NULL) {
        return -1;
    }

    PyBytes_AsStringAndSize(length, &value, &valuelen);
    
    add_header(bucket, "Content-Length", 14, value, valuelen);
    ret = PyList_Append(bucket->temp1, length);
    if (ret == -1) {
        return -1;
    }
    Py_DECREF(length);
    return 1;
}
コード例 #7
0
ファイル: ids_core_Camera.c プロジェクト: MomentFactory/ids
/*
 * Initialize camera info
 *
 * Looks up camera name, width, and height, and initializes
 * the Camera object with it.
 */
static int init_cam_info(ids_core_Camera *self) {
    PyObject *info, *width, *height, *manufacturer, *sensor;

    info = ids_core_Camera_getinfo(self, NULL);
    if (!info) {
        return -1;
    }

    width = PyDict_GetItemString(info, "max_width");
    if (!width) {
        PyErr_SetString(PyExc_KeyError, "'max_width'");
        return -1;
    }

    height = PyDict_GetItemString(info, "max_height");
    if (!width) {
        PyErr_SetString(PyExc_KeyError, "'max_height'");
        return -1;
    }

    manufacturer = PyDict_GetItemString(info, "manufacturer");
    if (!manufacturer) {
        PyErr_SetString(PyExc_KeyError, "'manufacturer'");
        return -1;
    }

    sensor = PyDict_GetItemString(info, "sensor_name");
    if (!sensor) {
        PyErr_SetString(PyExc_KeyError, "'sensor_name'");
        return -1;
    }

    self->width = PyLong_AsLong(width);
    self->height = PyLong_AsLong(height);

    self->name = PyBytes_FromFormat("%s %s", PyBytes_AsString(manufacturer),
                                    PyBytes_AsString(sensor));

    Py_DECREF(info);

    return 0;
}
コード例 #8
0
ファイル: svs_core_Camera.c プロジェクト: ncsuarc/svs
static int svs_core_Camera_init(svs_core_Camera *self, PyObject *args, PyObject *kwds) {
    static char *kwlist[] = {
        "ip", "source_ip", "buffer_count", "packet_size", "queue_length", NULL
    };

    const char *ip = NULL;
    const char *source_ip = NULL;
    unsigned int buffer_count = 10;
    unsigned int packet_size = 9000;
    uint32_t ip_num, source_ip_num;
    char *manufacturer, *model;
    int ret;

    self->main_thread = PyGILState_GetThisThreadState();
    self->ready = NOT_READY;
    TAILQ_INIT(&self->images);
    self->images_length = 0;
    self->images_max = 50;

    /*
     * This means the definition is:
     * def __init__(self, ip, source_ip, buffer_count=10, packet_size=9000,
     *              queue_length=50):
     */
    if (!PyArg_ParseTupleAndKeywords(args, kwds, "ss|III", kwlist,
                &ip, &source_ip, &buffer_count, &packet_size,
                &self->images_max)) {
        return -1;
    }

    ip_num = ip_string_to_int(ip);
    source_ip_num = ip_string_to_int(source_ip);

    ret = openCamera(&self->handle, ip_num, source_ip_num, HEARTBEAT_TIMEOUT);
    if (ret != SVGigE_SUCCESS) {
        raise_general_error(ret);
        return -1;
    }

    self->ready = CONNECTED;

    manufacturer = strdup(Camera_getManufacturerName(self->handle));
    if (!manufacturer) {
        PyErr_SetString(PyExc_MemoryError, "Unable to allocate name");
        return -1;
    }

    model = strdup(Camera_getModelName(self->handle));
    if (!model) {
        free(manufacturer);
        PyErr_SetString(PyExc_MemoryError, "Unable to allocate name");
        return -1;
    }

    self->name = PyBytes_FromFormat("%s %s", manufacturer, model);
    free(manufacturer);
    free(model);
    if (!self->name) {
        return -1;
    }

    self->ready = NAME_ALLOCATED;

    ret = Camera_getTimestampTickFrequency(self->handle, &self->tick_frequency);
    if (ret != SVGigE_SUCCESS) {
        raise_general_error(ret);
        return -1;
    }

    ret = Camera_getImagerWidth(self->handle, &self->width);
    if (ret != SVGigE_SUCCESS) {
        raise_general_error(ret);
        return -1;
    }

    ret = Camera_getImagerHeight(self->handle, &self->height);
    if (ret != SVGigE_SUCCESS) {
        raise_general_error(ret);
        return -1;
    }

    /* 12-bit pixel depth */
    self->depth = 12;
    ret = Camera_setPixelDepth(self->handle, SVGIGE_PIXEL_DEPTH_12);
    if (ret != SVGigE_SUCCESS) {
        raise_general_error(ret);
        return -1;
    }

    /* Image buffer size in bytes */
    ret = Camera_getBufferSize(self->handle, &self->buffer_size);
    if (ret != SVGigE_SUCCESS) {
        raise_general_error(ret);
        return -1;
    }

    /* Open stream */
    ret = addStream(self->handle, &self->stream, &self->stream_ip,
                    &self->stream_port, self->buffer_size, buffer_count,
                    packet_size, PACKET_RESEND_TIMEOUT,
                    svs_core_Camera_stream_callback, self);
    if (ret != SVGigE_SUCCESS) {
        raise_general_error(ret);
        return -1;
    }

    ret = enableStream(self->stream, 1);
    if (ret != SVGigE_SUCCESS) {
        raise_general_error(ret);
        return -1;
    }

    self->ready = READY;

    return 0;
}
コード例 #9
0
ファイル: discodbmodule.c プロジェクト: christofd/disco
static PyObject *
DiscoDB_repr(DiscoDB *self)
{
    return PyBytes_FromFormat("<%s object at %p>", Py_TYPE(self)->tp_name, self);
}
コード例 #10
0
ファイル: winutil.c プロジェクト: yeyanchao/calibre
static PyObject *
winutil_get_removable_drives(PyObject *self, PyObject *args) {
    HDEVINFO hDevInfo;
	BOOL  iterate = TRUE, ddebug = FALSE;
	PSP_DEVICE_INTERFACE_DETAIL_DATA interfaceDetailData;
    DWORD i;
    unsigned int j, length;
    WCHAR volume[BUFSIZE];
    struct tagDrives g_drives[MAX_DRIVES];
    PyObject *volumes, *key, *candidates, *pdebug = Py_False, *temp;

    if (!PyArg_ParseTuple(args, "|O", &pdebug)) {
    	return NULL;
    }

    // Find all removable drives
    for (j = 0; j < MAX_DRIVES; j++) g_drives[j].letter = 0;
    if (!get_all_removable_disks(g_drives)) return NULL;

    volumes = PyDict_New();
    if (volumes == NULL) return PyErr_NoMemory();
    ddebug = PyObject_IsTrue(pdebug);

    hDevInfo = create_device_info_set((LPGUID)&GUID_DEVINTERFACE_VOLUME,
                            NULL, NULL, DIGCF_PRESENT | DIGCF_DEVICEINTERFACE);
    if (hDevInfo == INVALID_HANDLE_VALUE) { Py_DECREF(volumes); return NULL; }

    // Enumerate through the set
    for (i=0; iterate; i++) {
        candidates = PyList_New(0);
        if (candidates == NULL) { Py_DECREF(volumes); return PyErr_NoMemory();}

        interfaceDetailData = get_device_ancestors(hDevInfo, i, candidates, &iterate, ddebug);
        if (interfaceDetailData == NULL) {
            PyErr_Print(); 
            Py_DECREF(candidates); candidates = NULL; 
            continue;
        }

        length = wcslen(interfaceDetailData->DevicePath);
        interfaceDetailData->DevicePath[length] = L'\\';
        interfaceDetailData->DevicePath[length+1] = 0;

        if (ddebug) console_out(L"Device path: %s\n", interfaceDetailData->DevicePath);
        // On Vista+ DevicePath contains the information we need.
        temp = PyUnicode_FromWideChar(interfaceDetailData->DevicePath, length);
        if (temp == NULL) return PyErr_NoMemory();
        PyList_Append(candidates, temp);
        Py_DECREF(temp);
        if(GetVolumeNameForVolumeMountPointW(interfaceDetailData->DevicePath, volume, BUFSIZE)) {
            if (ddebug) console_out(L"Volume: %s\n", volume);
            
            for(j = 0; j < MAX_DRIVES; j++) {
                if(g_drives[j].letter != 0 && wcscmp(g_drives[j].volume, volume)==0) {
                    if (ddebug) printf("Found drive: %c\n", (char)g_drives[j].letter); fflush(stdout);
                    key = PyBytes_FromFormat("%c", (char)g_drives[j].letter);
                    if (key == NULL) return PyErr_NoMemory();
                    PyDict_SetItem(volumes, key, candidates);
                    Py_DECREF(key); key = NULL;
                    break;
                }
            }

        }
        Py_XDECREF(candidates); candidates = NULL;
        PyMem_Free(interfaceDetailData);
    } //for

    SetupDiDestroyDeviceInfoList(hDevInfo);
    return volumes;
}