2 * (c) Oleg Puchinin 2006
3 * graycardinalster@gmail.com
11 void buf_free (void * ptr
)
26 m_buf
= CNEW (char, len
);
30 Buf::Buf (char * ptr
, int len
)
40 char * Buf::seek (int offset
, int whence
)
44 carret
= &begin
[offset
];
48 carret
= &carret
[offset
];
52 carret
= &end
[offset
];
65 char * Buf::position ()
70 Buf
* Buf::shift (int count
)
79 memcpy (b
->data (), begin
, count
);
83 ptr
= CNEW (char, count
);
84 memcpy (ptr
, carret
, count
);
94 int Buf::unshift (Buf
* m_buf
)
105 len2
= m_buf
->len ();
106 buf
= CNEW (char, len1
+len2
);
109 memcpy (ptr
,m_buf
->data (), len2
);
111 memcpy (ptr
, data (), len1
);
115 end
= &begin
[len1
+ len2
];
121 char * Buf::readString ()
126 ptr
= ch (carret
, '\0');
129 Ret
= strdup (carret
);
135 bool Buf::operator == (Buf
* m_buf
)
146 ptr2
= m_buf
->data ();
148 len2
= m_buf
->len ();
153 if (! memcmp (ptr
, ptr2
, len1
))
159 bool Buf::operator != (Buf
* m_buf
)
161 return !(*this == m_buf
);