// Handle input from Erlang VM static void outputv(ErlDrvData handle, ErlIOVec *ev) { bdb_drv_t* pdrv = (bdb_drv_t*) handle; ErlDrvBinary* data = ev->binv[1]; int command = data->orig_bytes[0]; // First byte is the command switch(command) { case 'O': process_open(pdrv, ev); break; case 'S': process_set(pdrv, ev); break; case 'G': process_get(pdrv, ev); break; case 'D': process_del(pdrv, ev); break; case 'C': process_count(pdrv, ev); break; case 'F': process_flush(pdrv, ev); break; case 'B': process_bulk_get(pdrv, ev); break; case 'Z': process_compact(pdrv, ev); break; case 'T': process_truncate(pdrv, ev); break; default: process_unkown(pdrv, ev); } }
int process_request(struct request_state* req) { switch (req->cmd) { case cmd_get: if (process_get(req)) return -1; break; case cmd_set: if (process_set(req)) return -1; break; } req->state = conn_send; return 0; }
static void process_message(pep_proxy_t *proxy, msg_t *msg) { char *name = proxy && proxy->name ? proxy->name : "<unknown>"; switch (msg->any.type) { case MSG_TYPE_REGISTER: process_register(proxy, &msg->reg); break; case MSG_TYPE_UNREGISTER: process_unregister(proxy, &msg->unreg); break; case MSG_TYPE_SET: process_set(proxy, &msg->set); break; default: mrp_log_error("Unexpected message 0x%x from client %s.", msg->any.type, name); break; } }
intptr_t process_command(connection_t *conn){ intptr_t result=OK; char *data=conn->rc->command->data; if(strcmp(data,"get")==0){ result=process_get(conn); }else if(strcmp(data,"set")==0){ result=process_set(conn); }else if(strcmp(data,"version")==0){ process_version(conn); }else if(strcmp(data,"delete")==0){ result=process_delete(conn); }else if(strcmp(data,"quit")==0){ close_connection(conn); }else if(strcmp(data,"stats")==0){ process_stats(conn); }else{ process_client_error(conn,unsupport_command); } return result; }
/** * \brief Control request event handler * * This implementation handles the control requests for the GuiderPort device */ void EVENT_USB_Device_ControlRequest() { if (is_control()) { if (is_incoming()) { switch (USB_ControlRequest.bRequest) { case FOCUSER_RESET: process_reset(); break; case FOCUSER_SET: process_set(); break; case FOCUSER_LOCK: process_lock(); break; case FOCUSER_STOP: process_stop(); break; case FOCUSER_SERIAL: process_serial(); break; } } if (is_outgoing()) { switch (USB_ControlRequest.bRequest) { case FOCUSER_GET: process_get(); break; case FOCUSER_RCVR: process_rcvr(); break; case FOCUSER_SAVED: process_saved(); break; } } } }
/* * process_value () - process a value * * return : error status * value(in,out) - the processed value * */ static int process_value (DB_VALUE * value) { int return_value = 0; switch (DB_VALUE_TYPE (value)) { case DB_TYPE_OID: { OID *ref_oid; OID ref_class_oid; ref_oid = DB_GET_OID (value); if (OID_ISNULL (ref_oid)) { break; } if (!heap_get_class_oid (NULL, ref_oid, &ref_class_oid)) { OID_SET_NULL (ref_oid); return_value = 1; break; } if (is_class (ref_oid, &ref_class_oid)) { break; } #if defined(CUBRID_DEBUG) printf (msgcat_message (MSGCAT_CATALOG_UTILS, MSGCAT_UTIL_SET_COMPACTDB, COMPACTDB_MSG_REFOID), ref_oid->volid, ref_oid->pageid, ref_oid->slotid, ref_class_oid.volid, ref_class_oid.pageid, ref_class_oid.slotid); #endif if (!heap_does_exist (NULL, ref_oid, &ref_class_oid)) { OID_SET_NULL (ref_oid); return_value = 1; } break; } case DB_TYPE_POINTER: case DB_TYPE_MULTISET: case DB_TYPE_SEQUENCE: case DB_TYPE_SET: { return_value = process_set (DB_GET_SET (value)); break; } default: break; } return return_value; }