void init()

in include/photon/fs/range-split.h [133:192]


        void init(uint64_t offset, uint64_t length)
        {
            begin = offset;
            end = offset + length;
            divide(begin, abegin, begin_remainder, apbegin);
            divide(end, apend, end_remainder, aend);

            if (abegin + 1 == aend)
            {
                first.assign(abegin, begin_remainder, length);
                if (abegin != apbegin)
                {
                    if (aend != apend) //end is an offset but aend is an index, totally different
                    {
                        small_note = first;
                        preface.clear();
                        postface.clear();
                    }
                    else //if (aend == epnd)
                    {
                        small_note.clear();
                        preface = first;
                        postface.clear();
                    }
                }
                else //if (abegin == apbegin)
                {
                    if (aend != apend)
                    {
                        small_note.clear();
                        preface.clear();
                        postface = first;
                    }
                    else //if (aend == apend)
                    {
                        small_note.clear();
                        preface.clear();
                        postface.clear();
                    }
                }
            }
            else
            {
                small_note.clear();
                if (abegin == apbegin)
                    preface.clear();
                else
                    preface.assign(abegin, begin_remainder,
                                    get_length(abegin) - begin_remainder);
                if (preface)
                    first = preface;
                else
                    first.assign(apbegin, 0, get_length(apbegin));
                if (aend == apend)
                    postface.clear();
                else
                    postface.assign(apend, 0,
                                     end_remainder);
            }
        }