Move dead submodules in-tree

Signed-off-by: swurl <swurl@swurl.xyz>
This commit is contained in:
swurl 2025-05-31 02:33:02 -04:00
parent c0cceff365
commit 6c655321e6
No known key found for this signature in database
GPG key ID: A5A7629F109C8FD1
4081 changed files with 1185566 additions and 45 deletions

View file

@ -0,0 +1,48 @@
/*
* Copyright 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <unistd.h>
#include "FileInputStream.h"
namespace parselib {
int32_t FileInputStream::read(void *buff, int32_t numBytes) {
return ::read(mFH, buff, numBytes);
}
int32_t FileInputStream::peek(void *buff, int32_t numBytes) {
int32_t numRead = ::read(mFH, buff, numBytes);
::lseek(mFH, -numBytes, SEEK_CUR);
return numRead;
}
void FileInputStream::advance(int32_t numBytes) {
if (numBytes > 0) {
::lseek(mFH, numBytes, SEEK_CUR);
}
}
int32_t FileInputStream::getPos() {
return ::lseek(mFH, 0L, SEEK_CUR);
}
void FileInputStream::setPos(int32_t pos) {
if (pos > 0) {
::lseek(mFH, pos, SEEK_SET);
}
}
} /* namespace parselib */

View file

@ -0,0 +1,49 @@
/*
* Copyright 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef _IO_STREAM_FILEINPUTSTREAM_H_
#define _IO_STREAM_FILEINPUTSTREAM_H_
#include "InputStream.h"
namespace parselib {
/**
* A concrete implementation of InputStream for a file data source
*/
class FileInputStream : public InputStream {
public:
/** constructor. Caller is presumed to have opened the file with (at least) read permission */
FileInputStream(int fh) : mFH(fh) {}
virtual ~FileInputStream() {}
virtual int32_t read(void *buff, int32_t numBytes);
virtual int32_t peek(void *buff, int32_t numBytes);
virtual void advance(int32_t numBytes);
virtual int32_t getPos();
virtual void setPos(int32_t pos);
private:
/** File handle of the data file to read from */
int mFH;
};
} // namespace parselib
#endif // _IO_STREAM_FILEINPUTSTREAM_H_

View file

@ -0,0 +1,22 @@
/*
* Copyright 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "InputStream.h"
namespace parselib {
// All of the methods of InputStream are pure virtual
} /* namespace wavlib */

View file

@ -0,0 +1,63 @@
/*
* Copyright 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef _IO_STREAM_INPUTSTREAM_H_
#define _IO_STREAM_INPUTSTREAM_H_
#include <cstdint>
namespace parselib {
/**
* An interface declaration for a stream of bytes. Concrete implements for File and Memory Buffers
*/
class InputStream {
public:
InputStream() {}
virtual ~InputStream() {}
/**
* Retrieve the specified number of bytes and advance the read position.
* Returns: The number of bytes actually retrieved. May be less than requested
* if attempt to read beyond the end of the stream.
*/
virtual int32_t read(void *buff, int32_t numBytes) = 0;
/**
* Retrieve the specified number of bytes. DOES NOT advance the read position.
* Returns: The number of bytes actually retrieved. May be less than requested
* if attempt to read beyond the end of the stream.
*/
virtual int32_t peek(void *buff, int32_t numBytes) = 0;
/**
* Moves the read position forward the (positive) number of bytes specified.
*/
virtual void advance(int32_t numBytes) = 0;
/**
* Returns the read position of the stream
*/
virtual int32_t getPos() = 0;
/**
* Sets the read position of the stream to the 0 or positive position.
*/
virtual void setPos(int32_t pos) = 0;
};
} // namespace parselib
#endif // _IO_STREAM_INPUTSTREAM_H_

View file

@ -0,0 +1,60 @@
/*
* Copyright 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <algorithm>
#include <string.h>
#include "MemInputStream.h"
namespace parselib {
int32_t MemInputStream::read(void *buff, int32_t numBytes) {
int32_t numAvail = mBufferLen - mPos;
numBytes = std::min(numBytes, numAvail);
peek(buff, numBytes);
mPos += numBytes;
return numBytes;
}
int32_t MemInputStream::peek(void *buff, int32_t numBytes) {
int32_t numAvail = mBufferLen - mPos;
numBytes = std::min(numBytes, numAvail);
memcpy(buff, mBuffer + mPos, numBytes);
return numBytes;
}
void MemInputStream::advance(int32_t numBytes) {
if (numBytes > 0) {
int32_t numAvail = mBufferLen - mPos;
mPos += std::min(numAvail, numBytes);
}
}
int32_t MemInputStream::getPos() {
return mPos;
}
void MemInputStream::setPos(int32_t pos) {
if (pos > 0) {
if (pos < mBufferLen) {
mPos = pos;
} else {
mPos = mBufferLen - 1;
}
}
}
} // namespace parselib

View file

@ -0,0 +1,55 @@
/*
* Copyright 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef _IO_STREAM_MEMINPUTSTREAM_H_
#define _IO_STREAM_MEMINPUTSTREAM_H_
#include "InputStream.h"
namespace parselib {
/**
* A concrete implementation of InputStream for a memory buffer data source
*/
class MemInputStream : public InputStream {
public:
/** constructor. Caller is presumed to have allocated and filled the memory buffer */
MemInputStream(unsigned char *buff, int32_t len) : mBuffer(buff), mBufferLen(len), mPos(0) {}
virtual ~MemInputStream() {}
virtual int32_t read(void *buff, int32_t numBytes);
virtual int32_t peek(void *buff, int32_t numBytes);
virtual void advance(int32_t numBytes);
virtual int32_t getPos();
virtual void setPos(int32_t pos);
private:
/** Points to the data buffer to stream from. */
unsigned char *mBuffer;
/** Total number of bytes in the memory buffer */
int32_t mBufferLen;
/** The index of the next byte to read */
int32_t mPos;
};
} // namespace parselib
#endif // _IO_STREAM_MEMINPUTSTREAM_H_