Esempio n. 1
0
VError CopyHelper::DoCopy()
{
    ResizeHelper dstRszHlp;

    VError verr=dstRszHlp.Resize(fDstFd, fSrcSize);

    if(verr!=VE_OK)
        return verr;

    MapHelper srcMapHlp;

    verr=srcMapHlp.Map(fSrcFd, fSrcSize);

    if(verr!=VE_OK)
        return verr;

    void* srcAddr=srcMapHlp.GetAddr();

    MapHelper dstMapHlp;

    verr=dstMapHlp.SetProtection(MapHelper::WRITE).Map(fDstFd, fSrcSize);

    if(verr!=VE_OK)
    {
        srcMapHlp.UnMap();
        return verr;
    }

    void* dstAddr=dstMapHlp.GetAddr();

    memcpy(dstAddr, srcAddr, fSrcSize);

    srcMapHlp.UnMap();
    dstMapHlp.UnMap();

    return verr;
}