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;
}
Example #2
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);
	}
}
Example #4
0
error iRobot::stop()
{
    if (writeData(rData(OPCODE::stop))==ERROR::NONE){
        disconnect();
        return ERROR::NONE;
    }
    return ERROR::NOSUCHDEVICE;
}
Example #5
0
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));

}
Example #6
0
error iRobot::power()
{
    return writeData(rData(OPCODE::power));
}
Example #7
0
error iRobot::seekDock()
{
    return writeData(rData(OPCODE::seekDock));
}
Example #8
0
error iRobot::spot()
{
    return writeData(rData(OPCODE::spot));
}
Example #9
0
error iRobot::max()
{
    return writeData(rData(OPCODE::max));
}
Example #10
0
error iRobot::clean()
{
    return writeData(rData(OPCODE::clean));
}
Example #11
0
error iRobot::modefull()
{
    return writeData(rData(OPCODE::full));
}
Example #12
0
error iRobot::modesafe()
{
    return writeData(rData(OPCODE::safe));
}