int main(int argc, char *argv[]) { if (argc != 4) { printf("usage: bigdemo -create|-check count filename\n"); return 0; } int count = strtol(argv[2], NULL, 0); const char *filename = argv[3]; // Access the file, declare the layout and open a view c4_Storage storage(filename, true); c4_View vRoot = storage.GetAs("items[_B[name:S,data:B]]"); // Open the blocked version of this base view. c4_View vStuff = vRoot.Blocked(); // Declare our property accessors. c4_StringProp rName("name"); c4_BytesProp rData("data"); if (strcmp("-create", argv[1]) == 0) { // Create some data to pad out the file. char name[34]; char garbage[1024]; randfill(garbage, sizeof(garbage)); c4_Bytes data(garbage, sizeof(garbage)); // Pre-size the view to speed up the creation vStuff.SetSize(count); for (int n = 0; n < count; ++n) { sprintf_s(name, sizeof(name), "item%d", n); c4_RowRef row = vStuff[n]; rData(row) = data; rName(row) = name; } // Finally actually write this to a file. storage.Commit(); } else { char name[34]; sprintf_s(name, sizeof(name), "item%d", count); int row = vStuff.Find(rName[name]); printf("looking for '%s' returned row %d\n", name, row); if (row == -1) printf("error\n"); else printf("found '%s'\n", (const char *)rName(vStuff[row])); } return 0; }
error iRobot::startNetwork(std::string host,uint16_t port) { struct sockaddr_in serveraddr; struct hostent *server; serialIo = socket(AF_INET, SOCK_STREAM, 0); server = gethostbyname(host.c_str()); if (server == 0) { std::cout << "ERROR, no such host as "<< host; return ERROR::NOSUCHDEVICE; } bzero((char *) &serveraddr, sizeof(serveraddr)); serveraddr.sin_family = AF_INET; bcopy((char *)server->h_addr, (char *)&serveraddr.sin_addr.s_addr, server->h_length); serveraddr.sin_port = htons(port); if (connect(serialIo, (const sockaddr*)&serveraddr, sizeof(serveraddr)) < 0){ std::cout << "Can't connect' "<< host; return ERROR::NOSUCHDEVICE; } isNetwork = true; return writeData(rData(OPCODE::start)); }
void BSafe::BSafeBinaryKey::generateKeyBlob( Allocator &allocator, CssmData &blob, CSSM_KEYBLOB_FORMAT &format, // input val ignored for now AppleCSPSession &session, const CssmKey *paramKey, // optional, unused here CSSM_KEYATTR_FLAGS &attrFlags) // IN/OUT { assert(mBsKey != NULL); B_INFO_TYPE bsType; if(!bsafeAlgToInfoType(mAlg, mIsPublic, bsType, format)) { CssmError::throwMe(CSSMERR_CSP_INTERNAL_ERROR); } if(format == CSSM_KEYBLOB_RAW_FORMAT_PKCS1) { /* special case, encode the PKCS1 format blob */ CssmRemoteData rData( Allocator::standard(Allocator::sensitive), blob); BS_GetKeyPkcs1(mBsKey, rData); rData.release(); } else { BSafeItem *info; BSafe::check( B_GetKeyInfo((POINTER *)&info, mBsKey, bsType), true); blob = info->copy<CssmData>(allocator); } }
error iRobot::stop() { if (writeData(rData(OPCODE::stop))==ERROR::NONE){ disconnect(); return ERROR::NONE; } return ERROR::NOSUCHDEVICE; }
error iRobot::start(std::string connection) { serialIo = open(connection.c_str(), O_RDWR | O_NOCTTY); if (serialIo == -1){ return ERROR::NOSUCHDEVICE; } struct termios tio; std::memset(&tio, 0,sizeof(tio)); tio.c_cflag = B115200 | CS8 | CLOCAL | CREAD; tio.c_iflag = IGNPAR; tio.c_cc[VTIME] = 1; tio.c_cc[VMIN] = 0; tcflush(serialIo, TCIFLUSH); tcsetattr(serialIo, TCSANOW, &tio); isNetwork = false; return writeData(rData(OPCODE::start)); }
error iRobot::power() { return writeData(rData(OPCODE::power)); }
error iRobot::seekDock() { return writeData(rData(OPCODE::seekDock)); }
error iRobot::spot() { return writeData(rData(OPCODE::spot)); }
error iRobot::max() { return writeData(rData(OPCODE::max)); }
error iRobot::clean() { return writeData(rData(OPCODE::clean)); }
error iRobot::modefull() { return writeData(rData(OPCODE::full)); }
error iRobot::modesafe() { return writeData(rData(OPCODE::safe)); }